diff --git a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml index 2bbcc3b13d..323248104a 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml @@ -62,7 +62,6 @@ Nitrogen: 0.270782035 # nitrogen temperature: 293.15 - - type: entity id: ExtendedEmergencyOxygenTankFilled parent: ExtendedEmergencyOxygenTank @@ -90,6 +89,9 @@ moles: Nitrogen: 0.615413715 # nitrogen temperature: 293.15 + - type: Tag + tags: + - NitrogenTank - type: entity @@ -135,6 +137,9 @@ NitrousOxide: 0.014251686 # 5% N2O # 0.285033721 total temperature: 293.15 + - type: Tag + tags: + - ClownOxygenTank - type: entity id: AirTankFilled @@ -151,6 +156,9 @@ Nitrogen: 1.600075659 # 78% nitrogen # 2.051379050 total temperature: 293.15 + - type: Tag + tags: + - AirTank - type: entity id: NitrogenTankFilled @@ -165,6 +173,9 @@ moles: Nitrogen: 2.051379050 # nitrogen temperature: 293.15 + - type: Tag + tags: + - NitrogenTank - type: entity id: NitrousOxideTankFilled @@ -187,6 +198,9 @@ NitrousOxide: 0.615413715 # 30% N2O # 2.051379050 total temperature: 293.15 + - type: Tag + tags: + - NitrousOxideTank - type: entity id: PlasmaTankFilled @@ -202,3 +216,6 @@ moles: Plasma: 2.051379050 temperature: 293.15 + - type: Tag + tags: + - PlasmaTank diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml index cb038b3c5a..36eaa05000 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml @@ -69,6 +69,9 @@ sprite: Objects/Tanks/oxygen.rsi - type: Clothing sprite: Objects/Tanks/oxygen.rsi + - type: Tag # Funkystation - Crash Carts + tags: + - OxygenTank - type: entity parent: GasTankRoundBase @@ -82,6 +85,9 @@ sprite: Objects/Tanks/red.rsi - type: Clothing sprite: Objects/Tanks/red.rsi + - type: Tag # Funkystation - Crash Carts + tags: + - NitrogenTank - type: entity parent: GasTankRoundBase @@ -154,6 +160,9 @@ sprite: Objects/Tanks/emergency_extended_red.rsi - type: Clothing sprite: Objects/Tanks/emergency_extended_red.rsi + - type: Tag # Funkystation - Crash Carts + tags: + - NitrogenTank - type: entity parent: ExtendedEmergencyOxygenTank @@ -202,6 +211,9 @@ sprite: Objects/Tanks/emergency_clown.rsi - type: Clothing sprite: Objects/Tanks/emergency_clown.rsi + - type: Tag # Funkystation - Crash Carts + tags: + - ClownOxygenTank - type: entity parent: GasTankRoundBase @@ -211,6 +223,9 @@ components: - type: GasTank outputPressure: 101.3 + - type: Tag # Funkystation - Crash Carts + tags: + - AirTank - type: entity parent: GasTankRoundBase @@ -226,6 +241,9 @@ outputPressure: 30.4 - type: Clothing sprite: Objects/Tanks/anesthetic.rsi + - type: Tag # Funkystation - Crash Carts + tags: + - NitrousOxideTank - type: entity # it's a square so no rolling dough diff --git a/Resources/Prototypes/_DV/Entities/Objects/Tools/gas_tank.yml b/Resources/Prototypes/_DV/Entities/Objects/Tools/gas_tank.yml index d720c76b10..352b466d97 100644 --- a/Resources/Prototypes/_DV/Entities/Objects/Tools/gas_tank.yml +++ b/Resources/Prototypes/_DV/Entities/Objects/Tools/gas_tank.yml @@ -10,6 +10,9 @@ sprite: _DV/Objects/Tanks/water_vapor.rsi - type: Clothing sprite: _DV/Objects/Tanks/water_vapor.rsi + - type: Tag + tags: + - WaterVaporTank - type: entity parent: EmergencyOxygenTank diff --git a/Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml b/Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml new file mode 100644 index 0000000000..289d75a193 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml @@ -0,0 +1,141 @@ +# SPDX-FileCopyrightText: 2025 mkanke-real +# +# SPDX-License-Identifier: MIT + +- type: entity + id: CrashCart + parent: [BaseStructureDynamic, StructureWheeled] + name: crash cart + description: Meds on the move for when the patient decides to tombstone. + components: + - type: Sprite + noRot: true + sprite: _Funkystation/Objects/Specific/Medical/crashcart.rsi + state: cart + - type: Appearance + - type: Rotatable + - type: InteractionOutline + - type: ItemSlots + slots: + defib_slot1: + whitelist: + components: + - Defibrillator + insertOnInteract: true + priority: 9 + tank_slot1: + whitelist: + tags: + - OxygenTank + - NitrogenTank + - NitrousOxideTank + - PlasmaTank + - ClownOxygenTank + - AirTank + - WaterVaporTank + insertOnInteract: true + priority: 8 + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + tank_slot1: !type:ContainerSlot {} + defib_slot1: !type:ContainerSlot {} + - type: ItemMapper + mapLayers: + front_oxy: + minCount: 1 + whitelist: + tags: + - OxygenTank + front_nit: + minCount: 1 + whitelist: + tags: + - NitrogenTank + front_fun: + minCount: 1 + whitelist: + tags: + - ClownOxygenTank + front_slp: + minCount: 1 + whitelist: + tags: + - NitrousOxideTank + front_plasma: + minCount: 1 + whitelist: + tags: + - PlasmaTank + front_plain: + minCount: 1 + whitelist: + tags: + - AirTank + - WaterVaporTank # TODO: DeltaV - Sprite WaterVaporTank. This is the closest at the moment. + defib: + minCount: 1 + whitelist: + components: + - Defibrillator + sprite: _Funkystation/Objects/Specific/Medical/crashcart.rsi + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.3 + density: 250 + layer: + - TableLayer + mask: + - TableMask + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + - type: Storage + maxItemSize: Huge + grid: + - 0,0,5,1 + - 0,3,5,4 + - 0,6,5,7 + - 0,9,5,10 + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 400 + - type: StaticPrice + price: 500 + +- type: entity + parent: CrashCart + id: CrashCartFilled + name: crash cart + description: Meds on the move for when the patient decides to tombstone. + suffix: Filled + components: + - type: StorageFill + contents: + - id: Brutepack + - id: Gauze + - id: Ointment + - id: Bloodpack + - id: SyringeSaline + amount: 2 + - id: EmergencyMedipen + amount: 2 + - id: AntiPoisonMedipen + amount: 2 + - id: ChemistryBottleDexalin + - id: Syringe + - id: NitrogenTankFilled + + + + diff --git a/Resources/Prototypes/_Funkystation/tags.yml b/Resources/Prototypes/_Funkystation/tags.yml new file mode 100644 index 0000000000..0cc88eb802 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/tags.yml @@ -0,0 +1,20 @@ +- type: Tag + id: AirTank # Crash cart sprite layers + +- type: Tag + id: ClownOxygenTank # Crash cart sprite layers # DeltaV - was ClownEmergencyOxygenTank + +- type: Tag + id: NitrogenTank # Crash cart sprite layers + +- type: Tag + id: NitrousOxideTank # Crash cart sprite layers + +- type: Tag + id: OxygenTank # Crash cart sprite layers + +- type: Tag + id: PlasmaTank # Crash cart sprite layers + +- type: Tag + id: WaterVaporTank # DeltaV - Crash cart sprite layers diff --git a/Resources/ServerInfo/Guidebook/Mobs/_DV/Harpy.xml b/Resources/ServerInfo/Guidebook/Mobs/_DV/Harpy.xml index cd5b10d054..6cbbd0e7d7 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/_DV/Harpy.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/_DV/Harpy.xml @@ -29,13 +29,12 @@ - Comes with the Ultraviolet Vision trait by default. This can be disabled via accessibility options. - Cannot wear Jumpsuits, and will automatically start with a Jumpskirt instead. - While singing, musical notes appear floating around their head. + - Gases breathed in metabolize twice as fast. ## Drawbacks - They take [color=#ffa500]15% more Blunt, Slash, and Piercing damage.[/color] - Their low bone density makes them very light, weighing half as much as a Human and less than even Felinids. - - A Harpy breathes in air twice as often as Humans, inhaling and exhaling every 3 seconds. - - Air tanks last half as long and Harpies are more susceptible than usual to low air quality. - - If a Harpy is exposed to at least 0.2 moles of combined CO2 and/or Miasma, they start struggling to take in oxygen. + diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_fun.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_fun.png new file mode 100644 index 0000000000..427cb4ac11 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_fun.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_nit.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_nit.png new file mode 100644 index 0000000000..105a15f10c Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_nit.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_oxy.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_oxy.png new file mode 100644 index 0000000000..a43f350371 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_oxy.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_plain.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_plain.png new file mode 100644 index 0000000000..3913d9c706 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_plain.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_plasma.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_plasma.png new file mode 100644 index 0000000000..212d998f58 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_plasma.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_slp.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_slp.png new file mode 100644 index 0000000000..5bec765edf Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_slp.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_yox.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_yox.png new file mode 100644 index 0000000000..509379ed8b Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/back_yox.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/cart.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/cart.png new file mode 100644 index 0000000000..bb04cb73cd Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/cart.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/cartdoubletank.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/cartdoubletank.png new file mode 100644 index 0000000000..0fea9882ce Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/cartdoubletank.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/defib.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/defib.png new file mode 100644 index 0000000000..a9d5c541ab Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/defib.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_fun.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_fun.png new file mode 100644 index 0000000000..b9a431ccb8 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_fun.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_nit.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_nit.png new file mode 100644 index 0000000000..eb73cf1803 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_nit.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_oxy.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_oxy.png new file mode 100644 index 0000000000..2723fe8718 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_oxy.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_plain.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_plain.png new file mode 100644 index 0000000000..3381131440 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_plain.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_plasma.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_plasma.png new file mode 100644 index 0000000000..12b7a83868 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_plasma.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_slp.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_slp.png new file mode 100644 index 0000000000..3edd8f268f Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_slp.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_yox.png b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_yox.png new file mode 100644 index 0000000000..daf3c5840e Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/front_yox.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/meta.json b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/meta.json new file mode 100644 index 0000000000..efedad8f68 --- /dev/null +++ b/Resources/Textures/_Funkystation/Objects/Specific/Medical/crashcart.rsi/meta.json @@ -0,0 +1,62 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Sprites created by Tea(d.d.tea on Discord, @teasq.bsky.social)", + "states": [ + { + "name": "cart" + }, + { + "name": "cartdoubletank" + }, + { + "name": "defib" + }, + { + "name": "front_plasma" + }, + { + "name": "back_plasma" + }, + { + "name": "front_oxy" + }, + { + "name": "back_oxy" + }, + { + "name": "front_nit" + }, + { + "name": "back_nit" + }, + { + "name": "front_yox" + }, + { + "name": "back_yox" + }, + { + "name": "front_fun" + }, + { + "name": "back_fun" + }, + { + "name": "front_slp" + }, + { + "name": "back_slp" + }, + { + "name": "front_plain" + }, + { + "name": "back_plain" + } + ] +}