From e5891bc972c049ded325a06f9d3d8e9ea71f34af Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 22 Jun 2021 11:13:18 -0400 Subject: [PATCH] More medicine fixes --- code/datums/uplink/medical.dm | 13 ++++++++++++- .../objects/items/weapons/storage/firstaid.dm | 2 +- .../objects/items/weapons/storage/quickdraw.dm | 15 ++++++++++++--- code/game/objects/random/unidentified/medicine.dm | 15 ++++++++++----- .../reagents/reagent_containers/hypospray.dm | 15 ++++++++++----- .../reagent_containers/unidentified_hypospray.dm | 12 ++++++++---- code/modules/reagents/reagents/medicine.dm | 6 +++--- code/modules/reagents/reagents/other.dm | 5 +++-- 8 files changed, 59 insertions(+), 24 deletions(-) diff --git a/code/datums/uplink/medical.dm b/code/datums/uplink/medical.dm index 0657b62b2ef..c7b0b0d1233 100644 --- a/code/datums/uplink/medical.dm +++ b/code/datums/uplink/medical.dm @@ -33,7 +33,12 @@ /datum/uplink_item/item/medical/bonemeds name = "Bone Repair injector" item_cost = 10 - path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed + path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed + +/datum/uplink_item/item/medical/clonemeds + name = "Clone injector" + item_cost = 15 + path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed /datum/uplink_item/item/medical/bonemeds_case name = "Bone Repair case" @@ -41,6 +46,12 @@ desc = "A case of three osteodaxon injectors. Can rapidly remove and stow up to six injectors." path = /obj/item/weapon/storage/quickdraw/syringe_case/bonemed +/datum/uplink_item/item/medical/clonemeds_case + name = "Clone case" + item_cost = 30 + desc = "A case of three rezadone injectors. Can rapidly remove and stow up to six injectors." + path = /obj/item/weapon/storage/quickdraw/syringe_case/clonemed + /datum/uplink_item/item/medical/ambrosiadeusseeds name = "Box of 7x ambrosia deus seed packets" item_cost = 10 diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index c03e3e79a6b..ca9709b3fb9 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -167,7 +167,7 @@ name = "bone repair kit" desc = "Contains chemicals to mend broken bones." max_storage_space = ITEMSIZE_COST_SMALL * 7 - starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed = 8) + starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed = 8) /* * Pill Bottles diff --git a/code/game/objects/items/weapons/storage/quickdraw.dm b/code/game/objects/items/weapons/storage/quickdraw.dm index 98cbe58d996..07b549032cd 100644 --- a/code/game/objects/items/weapons/storage/quickdraw.dm +++ b/code/game/objects/items/weapons/storage/quickdraw.dm @@ -93,7 +93,16 @@ desc = "A small case for safely carrying sharps around. This one is deluxe!" max_w_class = ITEMSIZE_SMALL starts_with = list( - /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed, - /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed, - /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed + /obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed, + /obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed, + /obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed + ) + +/obj/item/weapon/storage/quickdraw/syringe_case/clonemed + desc = "A small case for safely carrying sharps around. This one is deluxe!" + max_w_class = ITEMSIZE_SMALL + starts_with = list( + /obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed, + /obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed, + /obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed ) diff --git a/code/game/objects/random/unidentified/medicine.dm b/code/game/objects/random/unidentified/medicine.dm index f779d75a0fb..444f6c3a267 100644 --- a/code/game/objects/random/unidentified/medicine.dm +++ b/code/game/objects/random/unidentified/medicine.dm @@ -19,6 +19,8 @@ much more likely to show up. This is done for several purposes; /obj/random/unidentified_medicine/item_to_spawn() return pick( + /obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed/unidentified, + /obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed/unidentified, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute/unidentified, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn/unidentified, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/toxin/unidentified, @@ -27,7 +29,6 @@ much more likely to show up. This is done for several purposes; /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified, - /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/healing_nanites/unidentified, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/stimm/unidentified, @@ -65,6 +66,8 @@ much more likely to show up. This is done for several purposes; // 75 Good, 25 Bad. 75% chance of getting something good. // Good odds, but the contents aren't super great unless someone gets lucky. return pick( + prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed/unidentified, + prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/toxin/unidentified, @@ -73,7 +76,6 @@ much more likely to show up. This is done for several purposes; prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified, prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified, prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified, - prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified, prob(25);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/expired/unidentified) // For military PoIs like BSD. High odds of good loot since those PoIs are really hard. @@ -82,12 +84,13 @@ much more likely to show up. This is done for several purposes; // 75 Good, 30 Bad, roughly 71.4% chance to get something good. // Very high but very hard to reach and still has a chance of ending poorly if injecting blind. return pick( + prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed/unidentified, + prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed/unidentified, prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute/unidentified, prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn/unidentified, prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified, - prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified, prob(30);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/soporific/unidentified, prob(30);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cyanide/unidentified) @@ -98,10 +101,11 @@ much more likely to show up. This is done for several purposes; // 65 Good, 160 Bad, roughly 28.8% to get something good. // Poor odds, but there are a lot of these scattered in the drug dens and illegal chem labs. return pick( + prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed/unidentified, + prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified, prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified, prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified, - prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified, prob(40);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified, prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/stimm/unidentified, prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/space_drugs/unidentified, @@ -120,9 +124,10 @@ much more likely to show up. This is done for several purposes; // 45 Good, 45 Bad, 50% chance to get something good. // Do you feel lucky? return pick( + prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed/unidentified, + prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified, - prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified, prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified, prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/healing_nanites/unidentified, prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/contaminated/unidentified, diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 80d0e1e34d1..39fe78cecff 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -186,6 +186,16 @@ icon_state = "green" filled_reagents = list("anti_toxin" = 5) +/obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed + name = "bone repair injector" + desc = "A rapid and safe way to administer small amounts of drugs by untrained or trained personnel. This one excels at treating damage to bones." + filled_reagents = list("osteodaxon" = 5) + +/obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed + name = "clone injector" + desc = "A rapid and safe way to administer small amounts of drugs by untrained or trained personnel. This one excels at treating genetic damage." + filled_reagents = list("rezadone" = 5) + // These have a 15u capacity, somewhat higher tech level, and generally more useful chems, but are otherwise the same as the regular autoinjectors. /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector name = "empty hypo" @@ -247,11 +257,6 @@ desc = "A refined version of the standard autoinjector, allowing greater capacity. This variant excels at treating bleeding wounds and internal bleeding." filled_reagents = list("inaprovaline" = 5, "myelamine" = 10) -/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed - name = "bone repair injector" - desc = "A refined version of the standard autoinjector, allowing greater capacity. This one excels at treating damage to bones." - filled_reagents = list("inaprovaline" = 5, "osteodaxon" = 10) - /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose name = "glucose hypo" desc = "A hypoinjector filled with glucose, used for critically malnourished patients and voidsuited workers." diff --git a/code/modules/reagents/reagent_containers/unidentified_hypospray.dm b/code/modules/reagents/reagent_containers/unidentified_hypospray.dm index 496e694cbcf..1a3412dbe74 100644 --- a/code/modules/reagents/reagent_containers/unidentified_hypospray.dm +++ b/code/modules/reagents/reagent_containers/unidentified_hypospray.dm @@ -5,6 +5,14 @@ identity_type = /datum/identification/hypo // The good. +/obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed/unidentified + init_hide_identity = TRUE + flags = 0 + +/obj/item/weapon/reagent_containers/hypospray/autoinjector/clonemed/unidentified + init_hide_identity = TRUE + flags = 0 + /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute/unidentified init_hide_identity = TRUE flags = 0 @@ -37,10 +45,6 @@ init_hide_identity = TRUE flags = 0 -/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified - init_hide_identity = TRUE - flags = 0 - /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified init_hide_identity = TRUE flags = 0 diff --git a/code/modules/reagents/reagents/medicine.dm b/code/modules/reagents/reagents/medicine.dm index 85b6fb757a3..f7effd6d088 100644 --- a/code/modules/reagents/reagents/medicine.dm +++ b/code/modules/reagents/reagents/medicine.dm @@ -8,7 +8,7 @@ reagent_state = LIQUID color = "#00BFFF" overdose = REAGENTS_OVERDOSE * 2 - metabolism = REM * 0.5 + metabolism = REM * 0.1 scannable = 1 /datum/reagent/inaprovaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) @@ -24,9 +24,9 @@ reagent_state = LIQUID color = "#00BFFF" overdose = REAGENTS_OVERDOSE * 2 - metabolism = REM * 0.5 + metabolism = REM * 0.1 scannable = 1 - touch_met = REM * 0.75 + touch_met = REM * 0.15 can_overdose_touch = TRUE /datum/reagent/inaprovaline/topical/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) diff --git a/code/modules/reagents/reagents/other.dm b/code/modules/reagents/reagents/other.dm index 5bb5f419688..e9b702e54ea 100644 --- a/code/modules/reagents/reagents/other.dm +++ b/code/modules/reagents/reagents/other.dm @@ -180,8 +180,8 @@ /datum/reagent/adminordrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) M.heal_organ_damage(40,40) M.adjustCloneLoss(-40) - M.adjustToxLoss(-50) - M.adjustOxyLoss(-100) + M.adjustToxLoss(-40) + M.adjustOxyLoss(-300) M.hallucination = 0 M.setBrainLoss(0) M.disabilities = 0 @@ -204,6 +204,7 @@ M.add_chemical_effect(CE_ANTIBIOTIC, ANTIBIO_SUPER) M.add_chemical_effect(CE_STABLE, 15) M.add_chemical_effect(CE_PAINKILLER, 200) + M.remove_a_modifier_of_type(/datum/modifier/poisoned) if(M.bodytemperature > 310) M.bodytemperature = max(310, M.bodytemperature - (40 * TEMPERATURE_DAMAGE_COEFFICIENT)) else if(M.bodytemperature < 311)