From 9698797f56ec74836c5fbe5023dfb7d81d43b897 Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Sat, 26 Apr 2025 15:30:19 +0200 Subject: [PATCH 1/8] Port all autoinjector content from Goobstation --- .../Chemistry/Hypospray/HyposprayEvents.cs | 23 ++ .../Hypospray/SolutionCartridgeComponent.cs | 21 ++ .../Hypospray/SolutionCartridgeSystem.cs | 54 ++++ .../EntitySystems/HypospraySystem.cs | 9 +- .../HyposprayBlockNonMobInjectionComponent.cs | 17 ++ .../HyposprayBlockNonMobInjectionSystem.cs | 49 ++++ .../Prototypes/Catalog/Fills/Items/belt.yml | 10 +- .../VendingMachines/Inventories/medical.yml | 6 + .../VendingMachines/Inventories/sec.yml | 5 + .../VendingMachines/Inventories/wallmed.yml | 1 + .../Entities/Clothing/Belt/belts.yml | 1 + .../Objects/Specific/Medical/healing.yml | 1 + .../Objects/Specific/Medical/hypospray.yml | 28 +- .../Entities/Structures/Machines/lathe.yml | 10 + .../Objects/Specific/Medical/hypospray.yml | 257 ++++++++++++++++++ .../Entities/Objects/base_contraband.yml | 12 + .../Recipes/Lathes/Packs/medical.yml | 22 ++ .../Recipes/Lathes/Packs/misc.yml | 16 ++ .../Recipes/Lathes/Packs/security.yml | 19 ++ .../_Goobstation/Recipes/Lathes/medical.yml | 26 ++ .../_Goobstation/Recipes/Lathes/security.yml | 102 +++++++ Resources/Prototypes/_Goobstation/tags.yml | 6 + .../Medical/autoinjector.rsi/cartridge1.png | Bin 0 -> 616 bytes .../Medical/autoinjector.rsi/inhand-left.png | Bin 0 -> 498 bytes .../Medical/autoinjector.rsi/inhand-right.png | Bin 0 -> 514 bytes .../Medical/autoinjector.rsi/medical-base.png | Bin 0 -> 5004 bytes .../Medical/autoinjector.rsi/meta.json | 28 ++ .../autoinjector.rsi/security-base.png | Bin 0 -> 4972 bytes .../Specific/Medical/cartridge.rsi/base.png | Bin 0 -> 661 bytes .../Medical/cartridge.rsi/filling.png | Bin 0 -> 674 bytes .../Specific/Medical/cartridge.rsi/meta.json | 17 ++ 31 files changed, 723 insertions(+), 17 deletions(-) create mode 100644 Content.Goobstation.Shared/Chemistry/Hypospray/HyposprayEvents.cs create mode 100644 Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeComponent.cs create mode 100644 Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeSystem.cs create mode 100644 Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs create mode 100644 Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionSystem.cs create mode 100644 Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml create mode 100644 Resources/Prototypes/_Goobstation/Entities/Objects/base_contraband.yml create mode 100644 Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/medical.yml create mode 100644 Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/misc.yml create mode 100644 Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/security.yml create mode 100644 Resources/Prototypes/_Goobstation/Recipes/Lathes/medical.yml create mode 100644 Resources/Prototypes/_Goobstation/Recipes/Lathes/security.yml create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/cartridge1.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/inhand-left.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/inhand-right.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/medical-base.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/meta.json create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/security-base.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Medical/cartridge.rsi/base.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Medical/cartridge.rsi/filling.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Medical/cartridge.rsi/meta.json diff --git a/Content.Goobstation.Shared/Chemistry/Hypospray/HyposprayEvents.cs b/Content.Goobstation.Shared/Chemistry/Hypospray/HyposprayEvents.cs new file mode 100644 index 000000000000..f616e7e8c207 --- /dev/null +++ b/Content.Goobstation.Shared/Chemistry/Hypospray/HyposprayEvents.cs @@ -0,0 +1,23 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace Content.Goobstation.Shared.Chemistry.Hypospray; + +/// +/// Raised on a hypospray when it successfully injects. +/// +[ByRefEvent] +public record struct AfterHyposprayInjectsEvent() +{ + /// + /// Entity that used the hypospray. + /// + public EntityUid User; + + /// + /// Entity that was injected. + /// + public EntityUid Target; +} diff --git a/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeComponent.cs b/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeComponent.cs new file mode 100644 index 000000000000..b1b56e708540 --- /dev/null +++ b/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeComponent.cs @@ -0,0 +1,21 @@ +// SPDX-FileCopyrightText: 2024 Aviu00 <93730715+Aviu00@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Misandry +// SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gus +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Content.Shared.Chemistry.Components; + +namespace Content.Goobstation.Shared.Chemistry.Hypospray; + +[RegisterComponent] +public sealed partial class SolutionCartridgeComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite)] + public string TargetSolution = "default"; + + [DataField(required: true)] + public Solution Solution; +} diff --git a/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeSystem.cs b/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeSystem.cs new file mode 100644 index 000000000000..b9057abb26a4 --- /dev/null +++ b/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeSystem.cs @@ -0,0 +1,54 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.Components.SolutionManager; +using Content.Shared.Chemistry.EntitySystems; +using Robust.Shared.Containers; + +namespace Content.Goobstation.Shared.Chemistry.Hypospray; + +public sealed class SolutionCartridgeSystem : EntitySystem +{ + [Dependency] private readonly SharedSolutionContainerSystem _solution = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnCartridgeInserted); + SubscribeLocalEvent(OnCartridgeRemoved); + SubscribeLocalEvent(OnHyposprayInjected); + } + + private void OnCartridgeInserted(Entity ent, ref EntInsertedIntoContainerMessage args) + { + if (!TryComp(args.Entity, out var cartridge) + || !TryComp(ent, out SolutionContainerManagerComponent? manager) + || !_solution.TryGetSolution((ent, manager), cartridge.TargetSolution, out var solutionEntity)) + return; + + _solution.TryAddSolution(solutionEntity.Value, cartridge.Solution); + } + + private void OnCartridgeRemoved(Entity ent, ref EntRemovedFromContainerMessage args) + { + if (!TryComp(args.Entity, out var cartridge) + || !TryComp(ent, out SolutionContainerManagerComponent? manager) + || !_solution.TryGetSolution((ent, manager), cartridge.TargetSolution, out var solutionEntity)) + return; + + _solution.RemoveAllSolution(solutionEntity.Value); + } + + private void OnHyposprayInjected(Entity ent, ref AfterHyposprayInjectsEvent args) + { + if (!_container.TryGetContainer(ent, "item", out var container)) + return; + + _container.CleanContainer(container); + } +} diff --git a/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs b/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs index d537c2ffdd7e..2a92701ffaec 100644 --- a/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs +++ b/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs @@ -15,6 +15,7 @@ using Content.Server.Body.Components; using System.Linq; using Robust.Server.Audio; +using Content.Goobstation.Shared.Chemistry.Hypospray; // Goobstation namespace Content.Server.Chemistry.EntitySystems; @@ -61,6 +62,9 @@ public void OnAfterInteract(Entity entity, ref AfterInteract public void OnAttack(Entity entity, ref MeleeHitEvent args) { + if (args.Handled) // Goobstation + return; + if (!args.HitEntities.Any()) return; @@ -123,7 +127,7 @@ public bool TryDoInject(Entity entity, EntityUid target, Ent if (!_solutionContainers.TryGetSolution(uid, component.SolutionName, out var hypoSpraySoln, out var hypoSpraySolution) || hypoSpraySolution.Volume == 0) { _popup.PopupEntity(Loc.GetString("hypospray-component-empty-message"), target, user); - return true; + return false; // Goobstation edit - why was it true? } if (!_solutionContainers.TryGetInjectableSolution(target, out var targetSoln, out var targetSolution)) @@ -168,6 +172,9 @@ public bool TryDoInject(Entity entity, EntityUid target, Ent var ev = new TransferDnaEvent { Donor = target, Recipient = uid }; RaiseLocalEvent(target, ref ev); + var afterinjectev = new AfterHyposprayInjectsEvent { User = user, Target = target }; // Goobstation + RaiseLocalEvent(uid, ref afterinjectev); // Goobstation + // same LogType as syringes... _adminLogger.Add(LogType.ForceFeed, $"{EntityManager.ToPrettyString(user):user} injected {EntityManager.ToPrettyString(target):target} with a solution {SharedSolutionContainerSystem.ToPrettyString(removedSolution):removedSolution} using a {EntityManager.ToPrettyString(uid):using}"); diff --git a/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs b/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs new file mode 100644 index 000000000000..1cc7eb2a7161 --- /dev/null +++ b/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs @@ -0,0 +1,17 @@ +// SPDX-FileCopyrightText: 2024 Aviu00 <93730715+Aviu00@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Misandry +// SPDX-FileCopyrightText: 2025 gus +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace Content.Server._Goobstation.Chemistry.HyposprayBlockNonMobInjection; + +/// +/// For some reason if you set HyposprayComponent onlyAffectsMobs to true it would be able to draw from containers +/// even if injectOnly is also true. I don't want to modify HypospraySystem, so I made this component. +/// +[RegisterComponent] +public sealed partial class HyposprayBlockNonMobInjectionComponent : Component +{ +} diff --git a/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionSystem.cs b/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionSystem.cs new file mode 100644 index 000000000000..e9b0eb2937ad --- /dev/null +++ b/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionSystem.cs @@ -0,0 +1,49 @@ +// SPDX-FileCopyrightText: 2024 Aviu00 <93730715+Aviu00@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Misandry +// SPDX-FileCopyrightText: 2025 gus +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Content.Server.Chemistry.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Interaction.Events; +using Content.Shared.Mobs.Components; +using Content.Shared.Weapons.Melee.Events; + +namespace Content.Server._Goobstation.Chemistry.HyposprayBlockNonMobInjection; + +public sealed class HyposprayBlockNonMobInjectionSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnAfterInteract, before: new []{typeof(HypospraySystem)}); + SubscribeLocalEvent(OnAttack, before: new []{typeof(HypospraySystem)}); + SubscribeLocalEvent(OnUseInHand, before: new []{typeof(HypospraySystem)}); + } + + private void OnUseInHand(Entity ent, ref UseInHandEvent args) + { + if (!IsMob(args.User)) + args.Handled = true; + } + + private void OnAttack(Entity ent, ref MeleeHitEvent args) + { + if (args.HitEntities.Count == 0 || !IsMob(args.HitEntities[0])) + args.Handled = true; + } + + private void OnAfterInteract(Entity ent, ref AfterInteractEvent args) + { + if (args.Target == null || !IsMob(args.Target.Value)) + args.Handled = true; + } + + private bool IsMob(EntityUid uid) + { + return HasComp(uid); + } +} diff --git a/Resources/Prototypes/Catalog/Fills/Items/belt.yml b/Resources/Prototypes/Catalog/Fills/Items/belt.yml index 9bd1fb8d33d4..8414b2440ce7 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/belt.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/belt.yml @@ -115,8 +115,14 @@ - id: Bloodpack - id: Gauze - id: Portafib # DeltaV - Add PortaFib to EMT belt - - id: EmergencyMedipen #You never know what people are going to latejoin into - amount: 3 + #- id: EmergencyMedipen #You never know what people are going to latejoin into # Goobstation - start + # amount: 3 + - id: HandheldCrewMonitor + - id: ParamedHypo + - id: CartridgeSaline + - id: CartridgeBicaridine + - id: CartridgeDermaline + - id: CartridgeAtropine # Goobstation - end - type: entity id: ClothingBeltPlantFilled diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml index d28f4c003188..124eeb2b93f8 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml @@ -11,5 +11,11 @@ Portafib: 1 # DeltaV - Add Portafibs, see Prototypes/_DV/Entities/Objects/Devices/Medical/portafib.yml ClothingEyesHudMedical: 3 # DeltaV - was 2 ClothingEyesEyepatchHudMedical: 2 + Tourniquet: 6 # Goobstation - start + ParamedHypo: 2 + CartridgeSaline: 6 + CartridgeBicaridine: 6 + CartridgeDermaline: 6 + CartridgeAtropine: 6 # Goobstation -end contrabandInventory: FoodApple: 1 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml index 49e975b1c3ac..592a58926d91 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml @@ -29,6 +29,11 @@ ClothingOuterArmorReflective: 2 # DeltaV - added reflective vest to sectech ClothingHeadHelmetBasic: 2 # DeltaV - added helmets to the SecTech. Another line of defense between the tide and your grey matter. BreachingCharge: 8 # DeltaV - added breaching charges + SecHypo: 4 # Goobstation - start + CartridgeEpinephrine: 4 + CartridgeSaline: 4 + CartridgeBicaridine: 4 + CartridgeDermaline: 4 # Goobstation - end # security officers need to follow a diet regimen! contrabandInventory: WeaponMeleeNeedle: 2 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/wallmed.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/wallmed.yml index 327c17269afb..5ff1fd56c915 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/wallmed.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/wallmed.yml @@ -6,5 +6,6 @@ Bloodpack: 3 ChemistryBottleEpinephrine: 3 Syringe: 3 + Tourniquet: 3 #Goobstation - ParamedHypo contrabandInventory: PowerCellSmall: 2 diff --git a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml index 2ec4ee2eae43..8ad3a41be54d 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml @@ -273,6 +273,7 @@ - SurgeryTool - Dropper - Vial # DeltaV - vial gaming + - Tourniquet #Goobstation - ParamedHypo components: - Defibrillator # DeltaV - Add PortaFib to EMT belt - Hypospray diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml index daea1e5c4169..12d35542cbcb 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml @@ -247,6 +247,7 @@ components: - type: Tag tags: + - Tourniquet #Goobstation - ParamedHypo - SecBeltEquip - type: Sprite state: tourniquet diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml index 5bd559bc73a2..dcb3124a0ec0 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml @@ -148,7 +148,7 @@ name: emergency medipen parent: ChemicalMedipen id: EmergencyMedipen - description: A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge. Beware, as it's easy to overdose on epinephrine and tranexamic acid. + description: A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge. components: - type: Sprite sprite: Objects/Specific/Medical/medipen.rsi @@ -164,10 +164,10 @@ pen: maxVol: 15 reagents: - - ReagentId: Epinephrine - Quantity: 12 - - ReagentId: TranexamicAcid - Quantity: 3 + - ReagentId: Atropine # Goobstation + Quantity: 10 + - ReagentId: Ibuprofen # Goobstation + Quantity: 5 - type: Tag tags: [] @@ -175,7 +175,7 @@ name: poison auto-injector parent: ChemicalMedipen id: AntiPoisonMedipen - description: A rapid dose of anti-poison. Contains ultravasculine and epinephrine. + description: A rapid dose of anti-poison. Causes extreme stress when mixed with other medications. components: - type: Item inhandVisuals: @@ -203,10 +203,10 @@ pen: maxVol: 15 reagents: - - ReagentId: Ultravasculine - Quantity: 10 - - ReagentId: Epinephrine - Quantity: 5 + - ReagentId: Monover + Quantity: 15 + # - ReagentId: Epinephrine + # Quantity: 5 - type: Tag tags: [] @@ -258,7 +258,7 @@ name: burn auto-injector parent: ChemicalMedipen id: BurnAutoInjector - description: A rapid dose of dermaline and leporazine, intended for combat applications. + description: A rapid dose of oxandrolone and leporazine, intended for combat applications. components: - type: Item inhandVisuals: @@ -291,7 +291,7 @@ pen: maxVol: 20 reagents: - - ReagentId: Dermaline + - ReagentId: Oxandrolone # Goobstation Quantity: 10 - ReagentId: Leporazine Quantity: 10 @@ -390,7 +390,7 @@ name: pyrazine auto-injector parent: ChemicalMedipen id: PyraAutoInjector - description: A rapid dose of pyrazine and dermaline, intended for combat applications. + description: A rapid dose of pyrazine and oxandrolone, intended for combat applications. components: - type: Item inhandVisuals: @@ -425,7 +425,7 @@ reagents: - ReagentId: Pyrazine Quantity: 10 - - ReagentId: Dermaline + - ReagentId: Oxandrolone # Goobstation Quantity: 10 - type: Tag tags: [] diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 432418314fa5..fccb67325c25 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -428,6 +428,11 @@ - PrisonerSoftsuits - EVASuit # End DeltaV Additions + - CartridgeEpinephrine # Goobstation + - CartridgeBicaridine # Goobstation + - CartridgeDermaline # Goobstation + - CartridgeAtropine # Goobstation + - SecHypo # Goobstation dynamicPacks: - SalvageSecurityBoards - SalvageSecurityWeapons @@ -518,6 +523,11 @@ - EVASuit - PowerCellsStatic # End DeltaV Additions + - CartridgeEpinephrine # Goobstation - ParamedHypo + - CartridgeBicaridine # Goobstation - ParamedHypo + - CartridgeDermaline # Goobstation - ParamedHypo + - CartridgeAtropine # Goobstation + - ParamedHypo # Goobstation - ParamedHypo dynamicPacks: - Chemistry - CyberneticsMedical # Shitmed change diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml new file mode 100644 index 000000000000..e2c4b79d6a4d --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml @@ -0,0 +1,257 @@ +# SPDX-FileCopyrightText: 2024 Aviu00 <93730715+Aviu00@users.noreply.github.com> +# SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com> +# SPDX-FileCopyrightText: 2024 Piras314 +# SPDX-FileCopyrightText: 2024 a_person <40855173+a-person5660@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Aiden +# SPDX-FileCopyrightText: 2025 Aidenkrz +# SPDX-FileCopyrightText: 2025 BramvanZijp <56019239+BramvanZijp@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Killerqu00 <47712032+Killerqu00@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 SX-7 <92227810+SX-7@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Solstice +# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 pheenty +# +# SPDX-License-Identifier: AGPL-3.0-or-later +# Cartridge Autoinjectors + +- type: entity + parent: BaseItem + id: BaseCartridgeAutoinjector + abstract: true + components: + - type: Item + sprite: _Goobstation/Objects/Specific/Medical/autoinjector.rsi + - type: Sprite + sprite: _Goobstation/Objects/Specific/Medical/autoinjector.rsi + - type: SolutionContainerVisuals + maxFillLevels: 1 + fillBaseName: cartridge + - type: Appearance + - type: SolutionContainerManager + solutions: + hypospray: + maxVol: 10 + - type: ExaminableSolution + solution: hypospray + - type: Hypospray + solutionName: hypospray + transferAmount: 10 + onlyAffectsMobs: false + injectOnly: true + - type: HyposprayBlockNonMobInjection + - type: UseDelay + delay: 30 # up this later if its too low + - type: ContainerContainer + containers: + item: !type:ContainerSlot + - type: ItemSlots + slots: + item: + name: Cartridge + whitelist: + tags: + - AutoinjectorCartridge + +- type: entity + name: security cartridge autoinjector + parent: [ BaseCartridgeAutoinjector , BaseSecurityContraband ] + description: Used for rapid administration of medicine. Uses cartridges printable at the security techfab. + id: SecHypo + components: + - type: Sprite + layers: + - state: security-base + - state: cartridge1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + +- type: entity + name: medical cartridge autoinjector + parent: [ BaseCartridgeAutoinjector , BaseMedicalContraband ] + description: Used for rapid administration of medicine. Uses cartridges printable at the medical techfab. + id: ParamedHypo + components: + - type: Sprite + layers: + - state: medical-base + - state: cartridge1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + +# Autoinjector Cartridges + +- type: entity + name: autoinjector cartridge + parent: BaseItem + description: Used in a cartridge autoinjector. + id: BaseAutoinjectorCartridge + abstract: true + components: + - type: Item + size: Tiny + - type: Sprite + sprite: _Goobstation/Objects/Specific/Medical/cartridge.rsi + layers: + - state: base + - state: filling + color: "#ffffff" + - type: SolutionCartridge + targetSolution: hypospray + solution: + maxVol: 10 + - type: Tag + tags: + - AutoinjectorCartridge + +- type: entity + name: adrenaline autoinjector cartridge + parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] + description: Contains 7u of epinephrine and 3u of tranexamic acid, used in a cartridge autoinjector. + id: CartridgeEpinephrine + components: + - type: Sprite + layers: + - state: base + - state: filling + color: "#cad8d4" + - type: SolutionCartridge + targetSolution: hypospray + solution: + maxVol: 10 + reagents: + - ReagentId: Epinephrine + Quantity: 7 + - ReagentId: TranexamicAcid + Quantity: 3 # Fully stops bleeding + +- type: entity + name: airloss autoinjector cartridge + parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] + description: Contains 7u of saline and 3u of dexalin plus, used in a cartridge autoinjector. + id: CartridgeSaline + components: + - type: Sprite + layers: + - state: base + - state: filling + color: "#1776c4" + - type: SolutionCartridge + targetSolution: hypospray + solution: + maxVol: 10 + reagents: + - ReagentId: Saline + Quantity: 7 + - ReagentId: DexalinPlus + Quantity: 3 + +- type: entity + name: brute autoinjector cartridge + parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] + description: Contains 4u of bicaridine, 3u of bozaide, 2u of salicylic acid and 1u of tranexamic acid, used in a cartridge autoinjector. + id: CartridgeBicaridine + components: + - type: Sprite + layers: + - state: base + - state: filling + color: "#c5932d" + - type: SolutionCartridge + targetSolution: hypospray + solution: + maxVol: 10 + reagents: + - ReagentId: Bicaridine + Quantity: 4 + - ReagentId: Bozaide + Quantity: 3 + - ReagentId: SalicylicAcid + Quantity: 2 + - ReagentId: TranexamicAcid + Quantity: 1 # Stops 30% of maximum bleeding + # Finely tuned mix, heals up to 98 total brute split between 3 types, equivalent of 3.23 brute packs + +- type: entity + name: burn autoinjector cartridge + parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] + description: Contains 4u of kelotane, 3u of dermaline, 2u of oxandrolone and 1u of sigynate, used in a cartridge autoinjector. + id: CartridgeDermaline + components: + - type: Sprite + layers: + - state: base + - state: filling + color: "#956960" + - type: SolutionCartridge + targetSolution: hypospray + solution: + maxVol: 10 + reagents: + - ReagentId: Kelotane + Quantity: 4 + - ReagentId: Dermaline + Quantity: 3 + - ReagentId: Oxandrolone + Quantity: 2 + - ReagentId: Sigynate + Quantity: 1 + # Finely tuned mix, heals up to 114 total burn split between 4 types, twice as good for heat/cold/shock than for caustic, equivalent of 3.25 ointments + +- type: entity + name: emergency autoinjector cartridge + parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] + description: Contains 10u of atropine, used in a cartridge autoinjector. + id: CartridgeAtropine + components: + - type: Sprite + layers: + - state: base + - state: filling + color: "#572757" + - type: SolutionCartridge + targetSolution: hypospray + solution: + maxVol: 10 + reagents: + - ReagentId: Atropine + Quantity: 10 + +- type: entity + name: piercing autoinjector cartridge + parent: [ BaseSyndicateContraband , BaseAutoinjectorCartridge ] + description: Contains 10u of puncturase, used in a cartridge autoinjector. + id: CartridgePuncturase + components: + - type: Sprite + layers: + - state: base + - state: filling + color: "#b9bf93" + - type: SolutionCartridge + targetSolution: hypospray + solution: + maxVol: 10 + reagents: + - ReagentId: Puncturase + Quantity: 10 + +- type: entity + name: stimulant autoinjector cartridge + parent: [ BaseSyndicateContraband , BaseAutoinjectorCartridge ] + description: Contains 10u of ephedrine, used in a cartridge autoinjector. + id: CartridgeEphedrine + components: + - type: Sprite + layers: + - state: base + - state: filling + color: "#d2fffa" + - type: SolutionCartridge + targetSolution: hypospray + solution: + maxVol: 10 + reagents: + - ReagentId: Ephedrine + Quantity: 10 diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/base_contraband.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/base_contraband.yml new file mode 100644 index 000000000000..4e102dad6fe9 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Entities/Objects/base_contraband.yml @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: entity + id: BaseSecurityMedicalContraband + parent: BaseRestrictedContraband + abstract: true + components: + - type: Contraband + allowedDepartments: [ Security, Medical ] diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/medical.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/medical.yml new file mode 100644 index 000000000000..82d2ba71c63c --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/medical.yml @@ -0,0 +1,22 @@ +# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Aidenkrz +# SPDX-FileCopyrightText: 2025 GoobBot +# SPDX-FileCopyrightText: 2025 PunishedJoe +# SPDX-FileCopyrightText: 2025 SX_7 +# SPDX-FileCopyrightText: 2025 Solstice +# SPDX-FileCopyrightText: 2025 SolsticeOfTheWinter +# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Thom <119594676+ItsMeThom@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 pheenty +# +# SPDX-License-Identifier: AGPL-3.0-or-later +## Static +- type: latheRecipePack + id: ParamedHypoStatic + recipes: + - CartridgeAtropine + - CartridgeEpinephrine + - CartridgeBicaridine + - CartridgeDermaline + - CartridgeSaline + - ParamedHypo diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/misc.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/misc.yml new file mode 100644 index 000000000000..113ad1522888 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/misc.yml @@ -0,0 +1,16 @@ +# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 GoobBot +# SPDX-FileCopyrightText: 2025 PunishedJoe +# SPDX-FileCopyrightText: 2025 SX_7 +# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +## Static + +- type: latheRecipePack + id: SyndicateCatridgesStatic + recipes: + - CartridgeEphedrine + - CartridgePuncturase + - CartridgeTirizene diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/security.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/security.yml new file mode 100644 index 000000000000..0420abda4aaa --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/security.yml @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Aidenkrz +# SPDX-FileCopyrightText: 2025 Creatorbot01 +# SPDX-FileCopyrightText: 2025 SX_7 +# SPDX-FileCopyrightText: 2025 Solstice +# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 pheenty +# +# SPDX-License-Identifier: AGPL-3.0-or-later +## Static +- type: latheRecipePack + id: SecurityHypoStatic + recipes: + - CartridgeEpinephrine + - CartridgeBicaridine + - CartridgeDermaline + - CartridgeAtropine + - CartridgeSaline + - SecHypo diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/medical.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/medical.yml new file mode 100644 index 000000000000..b22febe3961f --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/medical.yml @@ -0,0 +1,26 @@ +# SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com> +# SPDX-FileCopyrightText: 2024 Piras314 +# SPDX-FileCopyrightText: 2024 Scruq445 +# SPDX-FileCopyrightText: 2024 a_person <40855173+a-person5660@users.noreply.github.com> +# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Aiden +# SPDX-FileCopyrightText: 2025 Aidenkrz +# SPDX-FileCopyrightText: 2025 BombasterDS2 +# SPDX-FileCopyrightText: 2025 GoobBot +# SPDX-FileCopyrightText: 2025 Solstice +# SPDX-FileCopyrightText: 2025 SolsticeOfTheWinter +# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Thom <119594676+ItsMeThom@users.noreply.github.com> +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: latheRecipe + id: ParamedHypo + result: ParamedHypo + completetime: 3 + materials: + Steel: 1500 + Plastic: 800 + Glass: 1200 + Gold: 500 diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/security.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/security.yml new file mode 100644 index 000000000000..536bdb84795b --- /dev/null +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/security.yml @@ -0,0 +1,102 @@ +# SPDX-FileCopyrightText: 2024 NULL882 +# SPDX-FileCopyrightText: 2024 Remuchi <72476615+Remuchi@users.noreply.github.com> +# SPDX-FileCopyrightText: 2024 VMSolidus +# SPDX-FileCopyrightText: 2024 a_person <40855173+a-person5660@users.noreply.github.com> +# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Aiden +# SPDX-FileCopyrightText: 2025 Aidenkrz +# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 BombasterDS +# SPDX-FileCopyrightText: 2025 BombasterDS2 +# SPDX-FileCopyrightText: 2025 Creatorbot01 +# SPDX-FileCopyrightText: 2025 Fishbait +# SPDX-FileCopyrightText: 2025 GoobBot +# SPDX-FileCopyrightText: 2025 Piras314 +# SPDX-FileCopyrightText: 2025 PunishedJoe +# SPDX-FileCopyrightText: 2025 SX_7 +# SPDX-FileCopyrightText: 2025 Solstice +# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Theodore Lukin <66275205+pheenty@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 fishbait +# SPDX-FileCopyrightText: 2025 pheenty +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: latheRecipe + id: CartridgeEpinephrine + result: CartridgeEpinephrine + completetime: 1 + materials: + Steel: 100 + Glass: 300 + +- type: latheRecipe + id: CartridgeAtropine + result: CartridgeAtropine + completetime: 1 + materials: + Steel: 100 + Glass: 300 + +- type: latheRecipe + id: CartridgeBicaridine + result: CartridgeBicaridine + completetime: 1 + materials: + Steel: 100 + Glass: 300 + +- type: latheRecipe + id: CartridgeDermaline + result: CartridgeDermaline + completetime: 1 + materials: + Steel: 100 + Glass: 300 + +- type: latheRecipe + id: CartridgeSaline + result: CartridgeSaline + completetime: 1 + materials: + Steel: 100 + Glass: 300 + +- type: latheRecipe + id: CartridgeEphedrine + result: CartridgeEphedrine + completetime: 1 + materials: + Steel: 200 + Glass: 400 + Plasma: 200 + +- type: latheRecipe + id: CartridgePuncturase + result: CartridgePuncturase + completetime: 1 + materials: + Steel: 200 + Glass: 400 + Plasma: 200 + +- type: latheRecipe + id: CartridgeTirizene + result: CartridgeTirizene + completetime: 1 + materials: + Steel: 200 + Glass: 400 + Plasma: 200 + +- type: latheRecipe + id: SecHypo + result: SecHypo + completetime: 3 + materials: + Steel: 1500 + Plastic: 800 + Glass: 1200 + Gold: 500 + Silver: 500 diff --git a/Resources/Prototypes/_Goobstation/tags.yml b/Resources/Prototypes/_Goobstation/tags.yml index 9a4c789d38bf..223bbcb57e5d 100644 --- a/Resources/Prototypes/_Goobstation/tags.yml +++ b/Resources/Prototypes/_Goobstation/tags.yml @@ -21,3 +21,9 @@ - type: Tag id: Tongue + +- type: Tag + id: AutoinjectorCartridge + +- type: Tag + id: Tourniquet diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/cartridge1.png b/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/cartridge1.png new file mode 100644 index 0000000000000000000000000000000000000000..72093b05f81f8a03f1fff0faffbc77473dece347 GIT binary patch literal 616 zcmV-u0+;=XP)EX>4Tx04R}tkv&MmKpe$i(~4Cp4t7v+$WWc^q9Tr^ibb$c+6t{Ym|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jf7n~Gbq{ROvg%&X$9QWhhy~o`dDMv7M|nl9zMR_MR}I@xj)B%QZO0d6NzI?H!R`};@M40 z=e$oGW@SksJ|~_u=z_$LT$f#b<6LrB;F)0~o1P~Q6N{xTmb;jh4V8F?IHIT;DJc?(N?*?f!lMI+Svd)wTIg00006VoOIv0G!7^3@051LK^@802y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{002NqL_t(o!|lvAkyl8ac?Q7%Pn?~?KysYt|y*dP`}_=!^!^k8S@T~uEh_SSyY_V zx97a&?r7B6w)@j-(arxe&*@L8-oN(3z5jRCtMJZw=VYnIaLSM|ppUbm$cJG{GSdPX zVTPwO7&MNvI9NKe@c8H539swidywIGVbAkLFSgDtG?}^M`>I37vs&lAVaoshd~Ny< z0hfjrS@q7zPx;%5WA1;At=jc1Zo!|*|Cdk8the}6yO(3j9)UMP5jxX_Zk_EqfA3A= z-B+7?*Axcr+;4f1ql*89l--w4OtB8rQrE4^o|5XxJ%8EC?nNAx^DegruzCbU#vL-6 zSZNgg%=jo*2&0gn)3@_^jWsT_wLiaFoxEYX_>1WcEjr8hJZ(MxGUIn0>o!(|`|)_K zgt1U&x8Bwr`fGm8(OVE%H#zE#cv`KW_=Tln-&-T+v+rd8k-^i| K&t;ucLK6U|QPr9N literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/inhand-right.png b/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..37eb7e8d4c1a599f4b0ed2c224ca2c12d0211055 GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|Vn0 zPZ!6KiaBp*ZS*=EAky}KQT1z~63AjLjMJme+cp2I?G-lDB^yQox`KW zFYo3paRL35jd!PJ_nQQ$Ost+9J-guC_9;$9?|<%}DxWl_XR%xz;f1IC?n3Lc5!tNi%s9Jt$h3VJU!gf9&%O+ zGJ#x=$75irfM;s6f8At#9lAH@)XTV~EH|#45B(W?RiD)&cK;XUged#))XSl@ON}4c zzy9p|_UaDj3#HDvstsn#&*%ONKd|hV*+DOdnZItDuKT{NjwR=H`t=>_UP+g;?Qnw! dBVRS+{Xb8ZF3w`z#sQ2}22WQ%mvv4FO#mfu-3b5y literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/medical-base.png b/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/medical-base.png new file mode 100644 index 0000000000000000000000000000000000000000..e3da8913af798e6bfe15c2ddd48215fc0cdfc5e6 GIT binary patch literal 5004 zcmeHLdsGu=79XsNg5V2rixh^SsD&hxcQO*52_$GRMdTqOJIPF7gk<7mfB-EZRlDe} zVy(|AVv#+rv>t7>K3QdvD%QGHs|8jO1#5laV`0To)cq13LhEVk+3kPioJlhGyZ3kR z{oQ-N$(Lenbfk-uhZ6)rE^3t`27JP{Yt%^aZpqE<03Wrvu?b8JmJOR}%0OliFq2~@ zV8TioAjsNi)F!#sz+-;ANMdj^0~Rkk`02NE)A5yQ*eO5(GIcBg4bB>hSQsgg_cw-&reH z)r5G~rd(V(|4r8{?UK{lZTCK6t*%(9+^cPL`UKsyuxo_I<9)Zuk<|y9n@{O3Ro5oQ zJI05O>xPz0-s+aT^W^hs%iVcio}DdMt4>{=6_OUWdGSbH;qJr;bo^w?5A*kRPI7oM zUf~@v)o`cotj@i(<*rxI-aQte+zZxZ!f6K{NZ-vALcGLhTbY zy;S&p(aALnHzwz|ETj{fH)FmZmQHt_xT=D);pnFIF6*r;q#y0_xaln0IO$x{)=P`G z9e7Ze@`pFm{9oU5(KCG5Y!z$7c>bMTWlqj-EfB@b*+~Z9zwVvcJ(I3$-Cej=?;zS$ z;u-wJyZip-fatl0)jOnLx9k4p-4gPE^Y!BT$DR9(2cx0q0&_)X_W?hoQ=MC0u3TMM zZEU`Aq`WTg#7$SEd*|#Gt*ZPjVf#iM+kRehbLozxvVyPLKB-!B(Gi}V%)SOWzIQ@V z{OPyyrZ?{0Z@VUFdzKHOAJ8S~VH1Zzkn0H&G+2UW4yvb&91N#)1jlMLgU*AXz+kHx z)29;*tRqrMlbrS7=y4WI;&N8JNP}q1;Y1p#%B6{UxzVxu+;qJRX9Wj21zJ%6U?dm} zwi+``7St+d*>O?u-6rO;V7m&FE@vfZv~V~@6R?mYo)tYb?NsZPR^7(@~tZvezxngnf(W&BUk;Cj?R(MAl^pEP2r z1lMdzwfnGD2o2S$TRyy(*+Cy;RICFP;+8lvl!7 z(dG2wSW1|{FQ9C2=o}j*6oLcmNZss61yl+(L#l|9Sz~}?v{{vC0jJ!Pw##9?zv~nr zbY#>TrQ_}4uZ?noFG<*X0tJ}_b zKTY}4V_}!Wg|Xi&+V-WQZ%w)F_@@THzwE7`eUaqK%6!kHb=#7*_)XT^^msKkqcGCA{?M%2d~+Dn^lpDnE&R-CB)W@^p(MPo0wK1`CtHME~o&ELIXOYsEZ!IXAWL88)IY(4hmQe8mx zyOXI&C+;^^Vj-V(kXy!d&dGBh{jpEf9{xr@NgXF@&!>;lk9wclN&e$bu4Lnx1>=zeoIJ0vLsuG?a{Zm-FK3^L z%DcWA-|jjgvZyO{l61R#D?vRjoOvpu@0PA~GR fc6OTqJ)DyK_E~hn@SHQC6(F@TTCpeWk466l9(^Y2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/meta.json b/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/meta.json new file mode 100644 index 000000000000..887a4ae51071 --- /dev/null +++ b/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from YogStation at https://github.com/yogstation13/Yogstation at b38f136e1e3b587de23956df450e6d320046bc2b, modified by a_person5660/ReggieTheRat, split to layers pheenty", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "security-base" + }, + { + "name": "medical-base" + }, + { + "name": "cartridge1" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/security-base.png b/Resources/Textures/_Goobstation/Objects/Specific/Medical/autoinjector.rsi/security-base.png new file mode 100644 index 0000000000000000000000000000000000000000..01ceadae5147c0b2c7dc1633603ccc19b956b06f GIT binary patch literal 4972 zcmeHLdsGu=79VT{8U$b96Jdyg51b@3NeCGU&wxoW7!ec{tCP%xjF3!71`_G1QmR(% zs#qUItB7ywtHl-Jotp|m#Z^)w`6BO0UuvyCnT})gcUZK86BNY!R!JP z1yeR!2SK*m26e^2vv9wkn>|N4edhNxc&DoASVZZkr{j2ZpvQMEV;9qJpDJKSj!Rb5 zZND@tHYY!+)>R~Jso6|EmMAU3 z;_uo2kx7&i5?L0x>;s9}m2I0bfA_`bZuJ`usqc&Q?$>L_{qm2)^Rid3u$HV_DI6>K z{Fsx^@j=$tvEjQ-pK!~QMkTt99aeTq+ECbETAEz0xhyG!Ag9H2RFqm771fy$$Yb+6 zYh;SE;oj%xUR#kk!6QqZQKsJV!*=efT`QtLQ{Uzs#Pd^H`l?2J=s9%qnc~XIQqA=< z=aXl;%#0Y&3S|u4>^W!Wxi@=IXmAOYcq!*U#8E-&vEhFF6JuIMnhyv8dV0 z>DfTJZ_F57-Gy&7LkgVjrHE>aC-c zexYLvMBnG0Tb=UJoQ2gX=A_Dv#ORL;#(E6?U>9%0@%;7f>upPex9=VCz)kv*SNZJC z*XM63Zn`jc*aUsx@I%+Uqx!@uxP1p=b$bgrZqsIop}=$XUpV7 zgxO4lHjQFo4V6k8W!$FYr?@ap%D6MdDuK!rMd@ipwwaoq9hacZPSZ+BZdfQM#D)U^ z1H}@s&5&-i;5Hf8fs2Fhb}^p|J51O#88=C#hNBoW1&eqho&brq(ODQblmmyDNgW<9 zkLiE_cQUS?WlcDrZ?#%^Rw0iur}9y$RLU1%d<;W?1!7rXWC0kly!M716KFSmD4F-Pq6&5x+3xIS4^wJfU z1Td)lc*??LnzdAP7G-2dcZVRgUF%Jm=5$9oq?S*mQwCsa0bbD_E+;Eh>aG=b3Q}o< z$*~HM-NVwPXIRFfXG~q@Jp$}fI}+<25=-k|u-s#fUGp1r;P>SoI!SY211psZmowT- zdtOSpj0+?@k|uF2MFmMT6ov!~g#tvV5eX3uN@@`-NTj1sRD_{YZ8r#|(ZUi&E!7D@ z+aW{(DTxviBnZ<=5s`!vBN{0hgy<-e#B>BEkpyeHK}BYhM6{hBlIn)$&4>KpUv(EMeynm578vK@zDz zDiDi;gV7g8GbpnKG_M^M74U??4oz1P@hB#pF{>Dol5vF&mAzIt$P}RM1Vs@{nt-A>D#lT4R!>95oWL;YGOj%_*zUbctpZa_5-ib$B*q0I zTp&!a!=SiG8Yqz9f^PNeHh5)}mL#0aJl=@1bWOd(Q| zL=g!_NhmFW1yNLcSN*3{CxflV(Ez`jpBNE{kZygz?MN?#Z{K@6OBllcO_AFTx^32g zmUbC<2!Lk_zw4pW!54`2&wO<>*PrPEhI^g762HB4_0si947`$YZ+G?5^-2u9l5uZ$ z{om-~yf~IpM(_*B3J#rpb;>K?!0N1toh*k6ph`#)lQ*d!ki211BwN5K_niH5S|8{! z5(r&br7GH`_Vw3X-O$}@iIw1AiHk~kL_*Tph6LHvuhgD0@x*mA2Y(o|Oc@4egy#*| z()wDA%iWE?^e-9aoLRLsxTLc1QCPU^eD5iczuyuO0o6V8E=!vg`b0J{qgJ_Tchl38 zmL_R)C@fz#psk;hjSBd94^&v|T;S9A@Tu>X%~u;AxG?2Sux3bZqOLQ?NANEfxK!j`agLy%xCo-F_UtxPa`@8 zJ%2;tKO*|paK*(cNKo*X+>ud{o_ZZ;)5bo291eXeaoL)pMXu9I%8m|J1RNP(-?+{2 z^Uk)wl0iQX`a02T@i_e#-dp?b=YCZ!^IP$0%Oi5knbB>xz48zGKz}O_fBZD(#_nQ& zL46z7ZRrvB{rA`Q`F!5D;@Gm*vZ8$bdol9;TThx!e4lmuPIc)!1B(J`KAEyERf`BrnuzgN5+ckX1nEv0J@EX>4Tx04R}tkv&MmKp2MKrj?3R94sQ@kfA!+rHVL~Di*;)X)CnqU~=gnG-*gu zTpR`0f`dPcRR5iU0(R(2PmU)Kl5T96ZO@J$!t>i}Eb*xxJ|~_s=z_$LT$f#b<6L%F;F)0~mzgIH6N}{@mV20043&6>IHIT;1{AqH@06F_hmXg6*9``EVICxHJMxYD}*dJCBQB)!?y zB1gc`HgIv>)#N?kat9cF(j`N3BtI>oR07`5=$i__@GUT~=Ju^~j?)JqN4;9U0S*p< z$uecHd%U~9w{QQ}bo%!LxyN$D)N)^R00006VoOIv0G!567ba~pPzV4302y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{003=CL_t(o!|l_}3BVu>1>k45$qpGIcNcXRr^wNBdJ>AX zLJLxa_nizV`5^*CL_|MJZy)5G0{~iUk9SHbX-Ty``FOs@sv672Wo9u;{-uCptA*(k vxa+jXA`(lNa5iFh2LRMs6aP065pClH<^3cj#itqk00000NkvXXu0mjf2Rsgp literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Medical/cartridge.rsi/filling.png b/Resources/Textures/_Goobstation/Objects/Specific/Medical/cartridge.rsi/filling.png new file mode 100644 index 0000000000000000000000000000000000000000..9f04a57f915a602e0f83a0d7dbfaf6900fa3cad7 GIT binary patch literal 674 zcmV;T0$u%yP)EX>4Tx04R}tkv&MmP!xqv(@I4u4i*t{$WWc^q9Tr^6^me@v=v%)FnQ@8G-*gu zTpR`0f`dPcRRqzlK0s*Im}&-MfT~$W zCK(s=g;g>5iU0(RP=zFB>Z$Bv4xa1l9zMR`MR}I@y+7BWQZyOh6NzI?H!R`};<-&r z=e$oGW)(>xJ|~_ss6paKuFEdJaV|S7@XWB0%Or@y#A3OJG?f|1tx@1U>!563n*;-AW{GT02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{004SPL_t(o!|l?s4MQ;q1W+7h6z}3yEO`ePp2DlJ3&^!^ z2~vG2N=NE@4K(NkLWGEjh?2}K%q+fpRSgl5r)Ipe1MV)h)}pH6?&9v!S}S|+IOn7n zdS?fokl!!>e_b?v0RXbrir#wxAOK{H5p&LR@8ypY5fP<*0Hkw3rIB~Mp8x;=07*qo IM6N<$g0KY-i~s-t literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Goobstation/Objects/Specific/Medical/cartridge.rsi/meta.json b/Resources/Textures/_Goobstation/Objects/Specific/Medical/cartridge.rsi/meta.json new file mode 100644 index 000000000000..80c0f9a77790 --- /dev/null +++ b/Resources/Textures/_Goobstation/Objects/Specific/Medical/cartridge.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Original sprite by ReggieTheRat/a_person5660; reworked to work with layers by pheenty", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "filling" + } + ] +} From 17914b22e140077945bf4a1459087f61b755f8f1 Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Sat, 26 Apr 2025 15:32:44 +0200 Subject: [PATCH 2/8] Move goobstation hypospray code under _Goobstation --- Content.Server/Chemistry/EntitySystems/HypospraySystem.cs | 2 +- .../_Goobstation}/Chemistry/Hypospray/HyposprayEvents.cs | 2 +- .../Chemistry/Hypospray/SolutionCartridgeComponent.cs | 2 +- .../Chemistry/Hypospray/SolutionCartridgeSystem.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename {Content.Goobstation.Shared => Content.Shared/_Goobstation}/Chemistry/Hypospray/HyposprayEvents.cs (90%) rename {Content.Goobstation.Shared => Content.Shared/_Goobstation}/Chemistry/Hypospray/SolutionCartridgeComponent.cs (92%) rename {Content.Goobstation.Shared => Content.Shared/_Goobstation}/Chemistry/Hypospray/SolutionCartridgeSystem.cs (97%) diff --git a/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs b/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs index 2a92701ffaec..862570025998 100644 --- a/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs +++ b/Content.Server/Chemistry/EntitySystems/HypospraySystem.cs @@ -15,7 +15,7 @@ using Content.Server.Body.Components; using System.Linq; using Robust.Server.Audio; -using Content.Goobstation.Shared.Chemistry.Hypospray; // Goobstation +using Content.Shared._Goobstation.Chemistry.Hypospray; // Goobstation namespace Content.Server.Chemistry.EntitySystems; diff --git a/Content.Goobstation.Shared/Chemistry/Hypospray/HyposprayEvents.cs b/Content.Shared/_Goobstation/Chemistry/Hypospray/HyposprayEvents.cs similarity index 90% rename from Content.Goobstation.Shared/Chemistry/Hypospray/HyposprayEvents.cs rename to Content.Shared/_Goobstation/Chemistry/Hypospray/HyposprayEvents.cs index f616e7e8c207..48a3eca299f5 100644 --- a/Content.Goobstation.Shared/Chemistry/Hypospray/HyposprayEvents.cs +++ b/Content.Shared/_Goobstation/Chemistry/Hypospray/HyposprayEvents.cs @@ -3,7 +3,7 @@ // // SPDX-License-Identifier: AGPL-3.0-or-later -namespace Content.Goobstation.Shared.Chemistry.Hypospray; +namespace Content.Shared._Goobstation.Chemistry.Hypospray; /// /// Raised on a hypospray when it successfully injects. diff --git a/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeComponent.cs b/Content.Shared/_Goobstation/Chemistry/Hypospray/SolutionCartridgeComponent.cs similarity index 92% rename from Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeComponent.cs rename to Content.Shared/_Goobstation/Chemistry/Hypospray/SolutionCartridgeComponent.cs index b1b56e708540..4819d4ced948 100644 --- a/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeComponent.cs +++ b/Content.Shared/_Goobstation/Chemistry/Hypospray/SolutionCartridgeComponent.cs @@ -8,7 +8,7 @@ using Content.Shared.Chemistry.Components; -namespace Content.Goobstation.Shared.Chemistry.Hypospray; +namespace Content.Shared._Goobstation.Chemistry.Hypospray; [RegisterComponent] public sealed partial class SolutionCartridgeComponent : Component diff --git a/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeSystem.cs b/Content.Shared/_Goobstation/Chemistry/Hypospray/SolutionCartridgeSystem.cs similarity index 97% rename from Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeSystem.cs rename to Content.Shared/_Goobstation/Chemistry/Hypospray/SolutionCartridgeSystem.cs index b9057abb26a4..b7998635de81 100644 --- a/Content.Goobstation.Shared/Chemistry/Hypospray/SolutionCartridgeSystem.cs +++ b/Content.Shared/_Goobstation/Chemistry/Hypospray/SolutionCartridgeSystem.cs @@ -8,7 +8,7 @@ using Content.Shared.Chemistry.EntitySystems; using Robust.Shared.Containers; -namespace Content.Goobstation.Shared.Chemistry.Hypospray; +namespace Content.Shared._Goobstation.Chemistry.Hypospray; public sealed class SolutionCartridgeSystem : EntitySystem { From 195d5b4ac577c756eba50d953db16a90dd2d449d Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Sat, 26 Apr 2025 15:38:30 +0200 Subject: [PATCH 3/8] Remove cartridges and chemicals we don't have --- .../Prototypes/Catalog/Fills/Items/belt.yml | 3 +- .../VendingMachines/Inventories/medical.yml | 3 +- .../Objects/Specific/Medical/hypospray.yml | 28 +++++++++---------- .../Entities/Structures/Machines/lathe.yml | 2 -- .../Objects/Specific/Medical/hypospray.yml | 27 ++---------------- .../Recipes/Lathes/Packs/medical.yml | 1 - .../Recipes/Lathes/Packs/misc.yml | 1 - .../Recipes/Lathes/Packs/security.yml | 1 - .../_Goobstation/Recipes/Lathes/security.yml | 17 ----------- 9 files changed, 19 insertions(+), 64 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Items/belt.yml b/Resources/Prototypes/Catalog/Fills/Items/belt.yml index 8414b2440ce7..ae05433e74a4 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/belt.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/belt.yml @@ -121,8 +121,7 @@ - id: ParamedHypo - id: CartridgeSaline - id: CartridgeBicaridine - - id: CartridgeDermaline - - id: CartridgeAtropine # Goobstation - end + - id: CartridgeDermaline # Goobstation - end - type: entity id: ClothingBeltPlantFilled diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml index 124eeb2b93f8..23813433fb0f 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/medical.yml @@ -15,7 +15,6 @@ ParamedHypo: 2 CartridgeSaline: 6 CartridgeBicaridine: 6 - CartridgeDermaline: 6 - CartridgeAtropine: 6 # Goobstation -end + CartridgeDermaline: 6 # Goobstation - end contrabandInventory: FoodApple: 1 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml index dcb3124a0ec0..5bd559bc73a2 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml @@ -148,7 +148,7 @@ name: emergency medipen parent: ChemicalMedipen id: EmergencyMedipen - description: A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge. + description: A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge. Beware, as it's easy to overdose on epinephrine and tranexamic acid. components: - type: Sprite sprite: Objects/Specific/Medical/medipen.rsi @@ -164,10 +164,10 @@ pen: maxVol: 15 reagents: - - ReagentId: Atropine # Goobstation - Quantity: 10 - - ReagentId: Ibuprofen # Goobstation - Quantity: 5 + - ReagentId: Epinephrine + Quantity: 12 + - ReagentId: TranexamicAcid + Quantity: 3 - type: Tag tags: [] @@ -175,7 +175,7 @@ name: poison auto-injector parent: ChemicalMedipen id: AntiPoisonMedipen - description: A rapid dose of anti-poison. Causes extreme stress when mixed with other medications. + description: A rapid dose of anti-poison. Contains ultravasculine and epinephrine. components: - type: Item inhandVisuals: @@ -203,10 +203,10 @@ pen: maxVol: 15 reagents: - - ReagentId: Monover - Quantity: 15 - # - ReagentId: Epinephrine - # Quantity: 5 + - ReagentId: Ultravasculine + Quantity: 10 + - ReagentId: Epinephrine + Quantity: 5 - type: Tag tags: [] @@ -258,7 +258,7 @@ name: burn auto-injector parent: ChemicalMedipen id: BurnAutoInjector - description: A rapid dose of oxandrolone and leporazine, intended for combat applications. + description: A rapid dose of dermaline and leporazine, intended for combat applications. components: - type: Item inhandVisuals: @@ -291,7 +291,7 @@ pen: maxVol: 20 reagents: - - ReagentId: Oxandrolone # Goobstation + - ReagentId: Dermaline Quantity: 10 - ReagentId: Leporazine Quantity: 10 @@ -390,7 +390,7 @@ name: pyrazine auto-injector parent: ChemicalMedipen id: PyraAutoInjector - description: A rapid dose of pyrazine and oxandrolone, intended for combat applications. + description: A rapid dose of pyrazine and dermaline, intended for combat applications. components: - type: Item inhandVisuals: @@ -425,7 +425,7 @@ reagents: - ReagentId: Pyrazine Quantity: 10 - - ReagentId: Oxandrolone # Goobstation + - ReagentId: Dermaline Quantity: 10 - type: Tag tags: [] diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index fccb67325c25..6a8a788aa099 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -431,7 +431,6 @@ - CartridgeEpinephrine # Goobstation - CartridgeBicaridine # Goobstation - CartridgeDermaline # Goobstation - - CartridgeAtropine # Goobstation - SecHypo # Goobstation dynamicPacks: - SalvageSecurityBoards @@ -526,7 +525,6 @@ - CartridgeEpinephrine # Goobstation - ParamedHypo - CartridgeBicaridine # Goobstation - ParamedHypo - CartridgeDermaline # Goobstation - ParamedHypo - - CartridgeAtropine # Goobstation - ParamedHypo # Goobstation - ParamedHypo dynamicPacks: - Chemistry diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml index e2c4b79d6a4d..619c50727084 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml @@ -150,7 +150,7 @@ - type: entity name: brute autoinjector cartridge parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] - description: Contains 4u of bicaridine, 3u of bozaide, 2u of salicylic acid and 1u of tranexamic acid, used in a cartridge autoinjector. + description: Contains 7u of bicaridine, 2u of salicylic acid and 1u of tranexamic acid, used in a cartridge autoinjector. # DeltaV - Replace Bozaide with more Bicaridine id: CartridgeBicaridine components: - type: Sprite @@ -163,10 +163,8 @@ solution: maxVol: 10 reagents: - - ReagentId: Bicaridine - Quantity: 4 - - ReagentId: Bozaide - Quantity: 3 + - ReagentId: Bicaridine # DeltaV - Replace Bozaide with more Bicaridine + Quantity: 7 - ReagentId: SalicylicAcid Quantity: 2 - ReagentId: TranexamicAcid @@ -199,25 +197,6 @@ Quantity: 1 # Finely tuned mix, heals up to 114 total burn split between 4 types, twice as good for heat/cold/shock than for caustic, equivalent of 3.25 ointments -- type: entity - name: emergency autoinjector cartridge - parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] - description: Contains 10u of atropine, used in a cartridge autoinjector. - id: CartridgeAtropine - components: - - type: Sprite - layers: - - state: base - - state: filling - color: "#572757" - - type: SolutionCartridge - targetSolution: hypospray - solution: - maxVol: 10 - reagents: - - ReagentId: Atropine - Quantity: 10 - - type: entity name: piercing autoinjector cartridge parent: [ BaseSyndicateContraband , BaseAutoinjectorCartridge ] diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/medical.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/medical.yml index 82d2ba71c63c..0fcbb8c6205b 100644 --- a/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/medical.yml +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/medical.yml @@ -14,7 +14,6 @@ - type: latheRecipePack id: ParamedHypoStatic recipes: - - CartridgeAtropine - CartridgeEpinephrine - CartridgeBicaridine - CartridgeDermaline diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/misc.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/misc.yml index 113ad1522888..fd63606d55b3 100644 --- a/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/misc.yml +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/misc.yml @@ -13,4 +13,3 @@ recipes: - CartridgeEphedrine - CartridgePuncturase - - CartridgeTirizene diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/security.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/security.yml index 0420abda4aaa..d3b35ed9b783 100644 --- a/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/security.yml +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/Packs/security.yml @@ -14,6 +14,5 @@ - CartridgeEpinephrine - CartridgeBicaridine - CartridgeDermaline - - CartridgeAtropine - CartridgeSaline - SecHypo diff --git a/Resources/Prototypes/_Goobstation/Recipes/Lathes/security.yml b/Resources/Prototypes/_Goobstation/Recipes/Lathes/security.yml index 536bdb84795b..d71a2f04f474 100644 --- a/Resources/Prototypes/_Goobstation/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/_Goobstation/Recipes/Lathes/security.yml @@ -31,14 +31,6 @@ Steel: 100 Glass: 300 -- type: latheRecipe - id: CartridgeAtropine - result: CartridgeAtropine - completetime: 1 - materials: - Steel: 100 - Glass: 300 - - type: latheRecipe id: CartridgeBicaridine result: CartridgeBicaridine @@ -81,15 +73,6 @@ Glass: 400 Plasma: 200 -- type: latheRecipe - id: CartridgeTirizene - result: CartridgeTirizene - completetime: 1 - materials: - Steel: 200 - Glass: 400 - Plasma: 200 - - type: latheRecipe id: SecHypo result: SecHypo From d0c6aef0d87376929b60fdf7bcd96030cc8c7430 Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Sat, 26 Apr 2025 16:40:28 +0200 Subject: [PATCH 4/8] Swap to using Lathe recipe packs --- .../Prototypes/Entities/Structures/Machines/lathe.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 6a8a788aa099..b8d4be4d61ca 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -428,10 +428,7 @@ - PrisonerSoftsuits - EVASuit # End DeltaV Additions - - CartridgeEpinephrine # Goobstation - - CartridgeBicaridine # Goobstation - - CartridgeDermaline # Goobstation - - SecHypo # Goobstation + - SecurityHypoStatic # Goobstation dynamicPacks: - SalvageSecurityBoards - SalvageSecurityWeapons @@ -522,10 +519,7 @@ - EVASuit - PowerCellsStatic # End DeltaV Additions - - CartridgeEpinephrine # Goobstation - ParamedHypo - - CartridgeBicaridine # Goobstation - ParamedHypo - - CartridgeDermaline # Goobstation - ParamedHypo - - ParamedHypo # Goobstation - ParamedHypo + - ParamedHypoStatic # Goobstation - ParamedHypo dynamicPacks: - Chemistry - CyberneticsMedical # Shitmed change From d512ccb9a3f286d69432e67c3ae44e7b16c21d6c Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Sat, 26 Apr 2025 18:06:26 +0200 Subject: [PATCH 5/8] Swap Dexalin plus to Convermol --- .../Entities/Objects/Specific/Medical/hypospray.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml index 619c50727084..64503e3d13b7 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml @@ -129,7 +129,7 @@ - type: entity name: airloss autoinjector cartridge parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] - description: Contains 7u of saline and 3u of dexalin plus, used in a cartridge autoinjector. + description: Contains 7u of saline and 3u of convermol, used in a cartridge autoinjector. # DeltaV - DexalinPlus to Convermol id: CartridgeSaline components: - type: Sprite @@ -144,7 +144,7 @@ reagents: - ReagentId: Saline Quantity: 7 - - ReagentId: DexalinPlus + - ReagentId: Convermol # DeltaV - DexalinPlus to Convermol Quantity: 3 - type: entity From 08024b32f3f762724d558e6ac4d458e29cbe4eab Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Sun, 27 Apr 2025 08:26:54 +0200 Subject: [PATCH 6/8] Move BlockNonMobInjection component to shared --- .../HyposprayBlockNonMobInjectionSystem.cs | 1 + .../HyposprayBlockNonMobInjectionComponent.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) rename {Content.Server/_Goobstation/Chemistry => Content.Shared/_Goobstation/Chemistry/HyposprayBlockNonMobInjection}/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs (91%) diff --git a/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionSystem.cs b/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionSystem.cs index e9b0eb2937ad..ff1ba4c8fe2c 100644 --- a/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionSystem.cs +++ b/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionSystem.cs @@ -10,6 +10,7 @@ using Content.Shared.Interaction.Events; using Content.Shared.Mobs.Components; using Content.Shared.Weapons.Melee.Events; +using Content.Shared._Goobstation.Chemistry.HyposprayBlockNonMobInjection; namespace Content.Server._Goobstation.Chemistry.HyposprayBlockNonMobInjection; diff --git a/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs b/Content.Shared/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs similarity index 91% rename from Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs rename to Content.Shared/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs index 1cc7eb2a7161..4b75225df163 100644 --- a/Content.Server/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs +++ b/Content.Shared/_Goobstation/Chemistry/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjection/HyposprayBlockNonMobInjectionComponent.cs @@ -5,7 +5,7 @@ // // SPDX-License-Identifier: AGPL-3.0-or-later -namespace Content.Server._Goobstation.Chemistry.HyposprayBlockNonMobInjection; +namespace Content.Shared._Goobstation.Chemistry.HyposprayBlockNonMobInjection; /// /// For some reason if you set HyposprayComponent onlyAffectsMobs to true it would be able to draw from containers From 5785cc9f6efb886d864dab635629e4fa883ea0f7 Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Sun, 27 Apr 2025 10:51:06 +0200 Subject: [PATCH 7/8] Fix EMT belt test failures by actually allowing cartridges and remove dermaline cartridge --- Resources/Prototypes/Catalog/Fills/Items/belt.yml | 4 +--- Resources/Prototypes/Entities/Clothing/Belt/belts.yml | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Items/belt.yml b/Resources/Prototypes/Catalog/Fills/Items/belt.yml index ae05433e74a4..344109293371 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/belt.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/belt.yml @@ -117,11 +117,9 @@ - id: Portafib # DeltaV - Add PortaFib to EMT belt #- id: EmergencyMedipen #You never know what people are going to latejoin into # Goobstation - start # amount: 3 - - id: HandheldCrewMonitor - id: ParamedHypo - id: CartridgeSaline - - id: CartridgeBicaridine - - id: CartridgeDermaline # Goobstation - end + - id: CartridgeBicaridine # Goobstation - end - type: entity id: ClothingBeltPlantFilled diff --git a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml index 8ad3a41be54d..2f10c1f00c21 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml @@ -274,6 +274,7 @@ - Dropper - Vial # DeltaV - vial gaming - Tourniquet #Goobstation - ParamedHypo + - AutoinjectorCartridge #Goobstation - Autoinjectors components: - Defibrillator # DeltaV - Add PortaFib to EMT belt - Hypospray From f9f9d45520a2c6b7186e459e6cb8a2e6e1ab13d7 Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Sun, 27 Apr 2025 20:34:25 +0200 Subject: [PATCH 8/8] Swap to using entity localisations to change descriptions --- .../entities/objects/specific/medical/hypospray.ftl | 4 ++++ .../Entities/Objects/Specific/Medical/hypospray.yml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 Resources/Locale/en-US/_DV/prototypes/entities/objects/specific/medical/hypospray.ftl diff --git a/Resources/Locale/en-US/_DV/prototypes/entities/objects/specific/medical/hypospray.ftl b/Resources/Locale/en-US/_DV/prototypes/entities/objects/specific/medical/hypospray.ftl new file mode 100644 index 000000000000..8f5fc2a1d9d0 --- /dev/null +++ b/Resources/Locale/en-US/_DV/prototypes/entities/objects/specific/medical/hypospray.ftl @@ -0,0 +1,4 @@ +ent-CartridgeSaline = airloss autoinjector cartridge + .desc = Contains 7u of saline and 3u of convermol, used in a cartridge autoinjector. +ent-CartridgeBicaridine = brute autoinjector cartridge + .desc = Contains 7u of bicaridine, 2u of salicylic acid and 1u of tranexamic acid, used in a cartridge autoinjector. diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml index 64503e3d13b7..fe260ccf5510 100644 --- a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/hypospray.yml @@ -129,7 +129,7 @@ - type: entity name: airloss autoinjector cartridge parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] - description: Contains 7u of saline and 3u of convermol, used in a cartridge autoinjector. # DeltaV - DexalinPlus to Convermol + description: Contains 7u of saline and 3u of dexalin plus, used in a cartridge autoinjector. id: CartridgeSaline components: - type: Sprite @@ -150,7 +150,7 @@ - type: entity name: brute autoinjector cartridge parent: [ BaseSecurityMedicalContraband , BaseAutoinjectorCartridge ] - description: Contains 7u of bicaridine, 2u of salicylic acid and 1u of tranexamic acid, used in a cartridge autoinjector. # DeltaV - Replace Bozaide with more Bicaridine + description: Contains 4u of bicaridine, 3u of bozaide, 2u of salicylic acid and 1u of tranexamic acid, used in a cartridge autoinjector. id: CartridgeBicaridine components: - type: Sprite