diff --git a/code/__DEFINES/chemistry.dm b/code/__DEFINES/chemistry.dm index 078ccbdc2d..b99013f8a0 100644 --- a/code/__DEFINES/chemistry.dm +++ b/code/__DEFINES/chemistry.dm @@ -221,6 +221,7 @@ #define PROPERTY_ANTICARCINOGENIC "anti-carcinogenic" #define PROPERTY_UNKNOWN "unknown" //just has an OD effect #define PROPERTY_HEMOSITIC "hemositic" +#define PROPERTY_REVITALIZING "revitalizing" //Property rarity diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index 8e556318c7..bf96246e92 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -49,7 +49,6 @@ list("Injector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR), list("Injector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR), - list("Injector (Epinephrine)", 2, /obj/item/reagent_container/hypospray/autoinjector/adrenaline, null, VENDOR_ITEM_REGULAR), list("Injector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR), list("Injector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR), list("Injector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR), @@ -60,7 +59,6 @@ list("Autoinjector (C-M) (EMPTY)", 2, /obj/item/reagent_container/hypospray/autoinjector/empty/medium, null, VENDOR_ITEM_REGULAR), list("Autoinjector (C-L) (EMPTY)", 4, /obj/item/reagent_container/hypospray/autoinjector/empty/large, null, VENDOR_ITEM_REGULAR), - list("Emergency Defibrillator", 4, /obj/item/device/defibrillator, null, VENDOR_ITEM_MANDATORY), list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Surgical Line", 4, /obj/item/tool/surgery/surgical_line, null, VENDOR_ITEM_REGULAR), list("Synth-Graft", 4, /obj/item/tool/surgery/synthgraft, null, VENDOR_ITEM_REGULAR), @@ -348,7 +346,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Autocompressor", 15, /obj/item/clothing/suit/auto_cpr, null, VENDOR_ITEM_REGULAR), list("Backpack Firefighting Watertank", 15, /obj/item/reagent_container/glass/watertank/atmos, null, VENDOR_ITEM_REGULAR), list("Breaching Hammer", 15, /obj/item/weapon/twohanded/breacher/synth, null, VENDOR_ITEM_REGULAR), - list("Compact Defibrillator", 15, /obj/item/device/defibrillator/compact, null, VENDOR_ITEM_REGULAR), list("Compact Nailgun kit", 15, /obj/effect/essentials_set/cnailgun, null, VENDOR_ITEM_REGULAR), list("Crew Monitor", 15, /obj/item/tool/crew_monitor, null, VENDOR_ITEM_REGULAR), list("Experimental Meson Goggles", 15, /obj/item/clothing/glasses/night/experimental_mesons, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/medical.dm b/code/game/machinery/vending/vendor_types/medical.dm index 9844101cb1..6e721ec4fe 100644 --- a/code/game/machinery/vending/vendor_types/medical.dm +++ b/code/game/machinery/vending/vendor_types/medical.dm @@ -141,7 +141,6 @@ list("AUTOINJECTORS", -1, null, null), list("Autoinjector (Bicaridine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), list("Autoinjector (Dexalin+)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), list("Autoinjector (Inaprovaline)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), list("Autoinjector (Kelotane)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), list("Autoinjector (Oxycodone)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm index c965b7c90e..833692b8b9 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm @@ -23,7 +23,6 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( list("AUTOINJECTORS", 0, null, null, null), list("Autoinjector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", 2, /obj/item/reagent_container/hypospray/autoinjector/adrenaline, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR), @@ -214,4 +213,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_medic, list( /obj/item/storage/surgical_case/regular, /obj/item/reagent_container/blood/OMinus, /obj/item/reagent_container/blood/OMinus, + /obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated, + /obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated, ) diff --git a/code/game/objects/items/reagent_containers/autoinjectors.dm b/code/game/objects/items/reagent_containers/autoinjectors.dm index 46463e628c..248bdd7392 100644 --- a/code/game/objects/items/reagent_containers/autoinjectors.dm +++ b/code/game/objects/items/reagent_containers/autoinjectors.dm @@ -99,6 +99,15 @@ display_maptext = TRUE maptext_label = "Ep" +/obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated + name = "epinephrine (concentrated) autoinjector" + chemname = "adrenaline_concentrated" + desc = "An autoinjector loaded with 3 uses of Epinephrine, better known as Adrenaline, a nerve stimulant useful in restarting the heart. In this concentrated form, it will prevent unconciousness but will cause minor suffocation." + amount_per_transfer_from_this = LOWM_REAGENTS_OVERDOSE * INJECTOR_PERCENTAGE_OF_OD + volume = (LOWM_REAGENTS_OVERDOSE * INJECTOR_PERCENTAGE_OF_OD) * INJECTOR_USES + display_maptext = TRUE + maptext_label = "Ep" + /obj/item/reagent_container/hypospray/autoinjector/dexalinp name = "dexalin plus autoinjector" chemname = "dexalinp" diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 71edc21e29..d2451ff29a 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -245,7 +245,6 @@ new /obj/item/stack/medical/advanced/bruise_pack(src) new /obj/item/stack/medical/advanced/ointment(src) new /obj/item/stack/medical/advanced/ointment(src) - new /obj/item/reagent_container/hypospray/autoinjector/adrenaline(src) new /obj/item/reagent_container/hypospray/autoinjector/dexalinp(src) new /obj/item/reagent_container/hypospray/autoinjector/oxycodone(src) new /obj/item/storage/pill_bottle/bicaridine(src) diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm index 640e184263..7baa66fc58 100644 --- a/code/modules/reagents/chemistry_properties/prop_special.dm +++ b/code/modules/reagents/chemistry_properties/prop_special.dm @@ -369,3 +369,20 @@ /datum/chem_property/special/firepenetrating/update_reagent() holder.fire_penetrating = TRUE ..() + +/datum/chem_property/special/revitalizing + name = PROPERTY_REVITALIZING + code = "REV" + description = "For a period of time, revitalizes the main systems of the body and prevents unconciousness." + rarity = PROPERTY_ADMIN + category = PROPERTY_TYPE_STIMULANT + value = 666 + +/datum/chem_property/special/revitalizing/reagent_added(mob/living/M) + if(!ishuman(M)) + return + M.status_flags &= ~CANKNOCKOUT + M.knocked_out = 0 + +/datum/chem_property/special/revitalizing/on_delete(mob/living/M) + M.status_flags |= CANKNOCKOUT diff --git a/code/modules/reagents/chemistry_reactions/medical.dm b/code/modules/reagents/chemistry_reactions/medical.dm index 2e38117134..72a491d779 100644 --- a/code/modules/reagents/chemistry_reactions/medical.dm +++ b/code/modules/reagents/chemistry_reactions/medical.dm @@ -14,6 +14,13 @@ required_reagents = list("carbon" = 1, "nitrogen" = 1, "oxygen" = 1) result_amount = 2 +/datum/chemical_reaction/adrenaline_concentrated + name = "Epinephrine (concentrated)" + id = "adrenaline_concentrated" + result = "adrenaline_concentrated" + required_reagents = list("carbon" = 1, "nitrogen" = 1, "oxygen" = 1, "phoron" = 3) + result_amount = 1 + /datum/chemical_reaction/alkysine name = "Alkysine" id = "alkysine" diff --git a/code/modules/reagents/chemistry_reagents/medical.dm b/code/modules/reagents/chemistry_reagents/medical.dm index f69d1b952c..01269a0d85 100644 --- a/code/modules/reagents/chemistry_reagents/medical.dm +++ b/code/modules/reagents/chemistry_reagents/medical.dm @@ -275,7 +275,7 @@ id = "adrenaline" description = "A natural muscle and heart stimulant. Useful for restarting the heart. Overdosing may stress the heart and cause tissue damage." reagent_state = LIQUID - color = "FFE703" // Yellow-ish + color = "#FFE703" // Yellow-ish overdose = LOWM_REAGENTS_OVERDOSE overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL custom_metabolism = AMOUNT_PER_TIME(1, 5 SECONDS) @@ -283,6 +283,19 @@ properties = list(PROPERTY_PAINKILLING = 1.5, PROPERTY_ELECTROGENETIC = 4, PROPERTY_INTRAVENOUS = 1) flags = REAGENT_TYPE_MEDICAL | REAGENT_SCANNABLE +/datum/reagent/medical/adrenaline_concentrated + name = "Epinephrine (concentrated)" + id = "adrenaline_concentrated" + description = "A natural muscle and heart stimulant that is in a high concerntration. Useful for restarting the heart and preventing unconciousness but in this concentrated form it will cause minor suffocation. Overdosing may stress the heart and cause tissue damage." + reagent_state = LIQUID + color = "#FFE702" // Yellow-ish + overdose = LOWM_REAGENTS_OVERDOSE + overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL + custom_metabolism = AMOUNT_PER_TIME(1, 10 SECONDS) + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_PAINKILLING = 1.5, PROPERTY_ELECTROGENETIC = 4, PROPERTY_REVITALIZING = 1, PROPERTY_HYPOXEMIC = 5, PROPERTY_INTRAVENOUS = 1) + flags = REAGENT_TYPE_MEDICAL | REAGENT_SCANNABLE + /datum/reagent/medical/ultrazine name = "Ultrazine" id = "ultrazine" diff --git a/code/modules/vehicles/interior/interactable/vendors.dm b/code/modules/vehicles/interior/interactable/vendors.dm index 6d98bc85e4..f5aef4f430 100644 --- a/code/modules/vehicles/interior/interactable/vendors.dm +++ b/code/modules/vehicles/interior/interactable/vendors.dm @@ -77,7 +77,6 @@ list("AUTOINJECTORS", -1, null, null), list("Autoinjector (Bicaridine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), list("Autoinjector (Dexalin+)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), list("Autoinjector (Inaprovaline)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), list("Autoinjector (Kelotane)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), list("Autoinjector (Oxycodone)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), diff --git a/icons/obj/items/syringe.dmi b/icons/obj/items/syringe.dmi index d08b2a8c2d..d54123a898 100644 Binary files a/icons/obj/items/syringe.dmi and b/icons/obj/items/syringe.dmi differ