From 51644e9e89e948a379766df421007b90d41daa93 Mon Sep 17 00:00:00 2001 From: homexp13 Date: Fri, 10 May 2024 00:00:14 +0300 Subject: [PATCH 1/5] chems_1 --- .../code/modules/reagents/reagents/medical.dm | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm index 8cd0d7a01ef8a..14e666368aae6 100644 --- a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm +++ b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm @@ -115,3 +115,100 @@ /datum/reagent/medicine/research/medicalnanites/overdose_crit_process(mob/living/L, metabolism) L.adjustCloneLoss(1) //YUM! + +/datum/reagent/medicine/ibuprofen + name = "Ibuprofen" + description = "Ibuprofen is a nonsteroidal anti-inflammatory drug" + color = COLOR_REAGENT_BICARIDINE + purge_list = list(/datum/reagent/medicine/ryetalyn, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/tricordrazine) + purge_rate = 5 + custom_metabolism = REAGENTS_METABOLISM * 0.5 + overdose_threshold = REAGENTS_OVERDOSE + overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL + scannable = TRUE + +/datum/reagent/medicine/ibuprofen/on_mob_life(mob/living/L, metabolism) + L.heal_overall_damage(1.2*effect_str, 0) + if(volume < 10) + L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT + L.heal_overall_damage(0.5*effect_str, 0) + else + L.reagent_pain_modifier -= PAIN_REDUCTION_VERY_LIGHT + return ..() + +/datum/reagent/medicine/ibuprofen/overdose_process(mob/living/L, metabolism) + L.apply_damage(effect_str, BURN) + +/datum/reagent/medicine/ibuprofen/overdose_crit_process(mob/living/L, metabolism) + L.apply_damages(effect_str, 3*effect_str, 2*effect_str) + +/datum/reagent/medicine/ketoprofen + name = "Ketoprofen" + description = "Ketoprofen is one of the propionic acid class of nonsteroidal anti-inflammatory drugs" + color = COLOR_REAGENT_BICARIDINE + purge_list = list(/datum/reagent/medicine/ryetalyn, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/tricordrazine) + purge_rate = 5 + custom_metabolism = REAGENTS_METABOLISM * 0.5 + overdose_threshold = REAGENTS_OVERDOSE + overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL + scannable = TRUE + +/datum/reagent/medicine/ketoprofen/on_mob_life(mob/living/L, metabolism) + L.heal_overall_damage(0, 1.2*effect_str) + if(volume < 10) + L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT + L.heal_overall_damage(0, 0.5*effect_str) + else + L.reagent_pain_modifier -= PAIN_REDUCTION_VERY_LIGHT + return ..() + +/datum/reagent/medicine/ketoprofen/overdose_process(mob/living/L, metabolism) + L.apply_damages(effect_str, BRUTE) + +/datum/reagent/medicine/ketoprofen/overdose_crit_process(mob/living/L, metabolism) + L.apply_damages(3*effect_str, effect_str, 2*effect_str) + +/datum/reagent/histamine + name = "Histamine" + description = "Histamine is an organic nitrogenous compound involved in local immune responses communication" + color = COLOR_REAGENT_BICARIDINE + custom_metabolism = REAGENTS_METABOLISM * 0.5 + overdose_threshold = REAGENTS_OVERDOSE * 0.5 + overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 0.5 + scannable = TRUE + +/datum/reagent/histamine/on_mob_life(mob/living/L, metabolism) + + //reagents + var/ibuprofen = L.reagents.get_reagent_amount(/datum/reagent/medicine/ibuprofen) + var/ketoprofen = L.reagents.get_reagent_amount(/datum/reagent/medicine/ketoprofen) + var/tricordrazine = L.reagents.get_reagent_amount(/datum/reagent/medicine/tricordrazine) + var/kelotane = L.reagents.get_reagent_amount(/datum/reagent/medicine/kelotane) + var/bicaridine = L.reagents.get_reagent_amount(/datum/reagent/medicine/bicaridine) + //debuffs + if(ibuprofen) + L.apply_damages(2*effect_str, BRUTE) + if(ketoprofen) + L.apply_damages(2*effect_str, BURN) + if(tricordrazine) + L.apply_damages(effect_str, effect_str, effect_str) + if(kelotane) + L.apply_damages(1.5*effect_str, BURN) + if(bicaridine) + L.apply_damages(1.5*effect_str, BRUTE) + + L.apply_damage(0.5*effect_str, OXY) + + return ..() + +/datum/reagent/histamine/on_mob_add(mob/living/L, metabolism) + to_chat(L, span_userdanger("You feel your throat tightening!")) + +/datum/reagent/histamine/on_mob_delete(mob/living/L, metabolism) + to_chat(L, span_userdanger("You feel how it becomes easier for you to breathe")) + +/datum/reagent/histamine/overdose_process(mob/living/L, metabolism) + L.apply_damages(1*effect_str, 1*effect_str, 4*effect_str) + +/datum/reagent/histamine/overdose_crit_process(mob/living/L, metabolism) + L.apply_damages(0, 0, 6*effect_str) From 294a6ef2f9d799d48760f5869369b8e82f7b3b79 Mon Sep 17 00:00:00 2001 From: homexp13 Date: Sun, 12 May 2024 14:48:52 +0300 Subject: [PATCH 2/5] chem_2 --- .../items/reagent_containers/autoinjectors.dm | 8 ++ .../objects/items/reagent_containers/pill.dm | 14 ++ .../game/objects/items/storage/firstaid.dm | 26 ++++ .../code/modules/reagents/reagents/medical.dm | 134 ++++++++++++++++-- modular_RUtgmc/includes.dm | 3 + 5 files changed, 175 insertions(+), 10 deletions(-) create mode 100644 modular_RUtgmc/code/game/objects/items/reagent_containers/autoinjectors.dm create mode 100644 modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm create mode 100644 modular_RUtgmc/code/game/objects/items/storage/firstaid.dm diff --git a/modular_RUtgmc/code/game/objects/items/reagent_containers/autoinjectors.dm b/modular_RUtgmc/code/game/objects/items/reagent_containers/autoinjectors.dm new file mode 100644 index 0000000000000..711b05f99abb6 --- /dev/null +++ b/modular_RUtgmc/code/game/objects/items/reagent_containers/autoinjectors.dm @@ -0,0 +1,8 @@ +/obj/item/reagent_containers/hypospray/autoinjector/bacteriophages + name = "bacteriophages autoinjector" + desc = "An auto-injector loaded with medical nanites. A potent new method of healing that that reproduces using a subject's blood and has a brief but potentially dangerous activation period! Beware of Neurotoxin!" + icon_state = "autoinjector-6" + amount_per_transfer_from_this = 1 + volume = 1 + list_reagents = list(/datum/reagent/medicine/research/bacteriophages_agent = 1) + free_refills = FALSE diff --git a/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm b/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm new file mode 100644 index 0000000000000..0efca26c05698 --- /dev/null +++ b/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm @@ -0,0 +1,14 @@ +/obj/item/reagent_containers/pill/ibuprofen + pill_desc = "A ibuprofen pill. A long-duration nonsteroidal anti-inflammatory drug" + list_reagents = list(/datum/reagent/medicine/ibuprofen = 15) + pill_id = 7 + +/obj/item/reagent_containers/pill/ketoprofen + pill_desc = "A ketoprofen pill. A long-duration nonsteroidal anti-inflammatory drug" + list_reagents = list(/datum/reagent/medicine/ketoprofen = 15) + pill_id = 7 + +/obj/item/reagent_containers/pill/ifex + pill_desc = "A Ifosfamide pill. A cytostatic antitumor drug." + list_reagents = list(/datum/reagent/medicine/ifex = 15) + pill_id = 11 diff --git a/modular_RUtgmc/code/game/objects/items/storage/firstaid.dm b/modular_RUtgmc/code/game/objects/items/storage/firstaid.dm new file mode 100644 index 0000000000000..1fe6b575f09c0 --- /dev/null +++ b/modular_RUtgmc/code/game/objects/items/storage/firstaid.dm @@ -0,0 +1,26 @@ +/obj/item/storage/pill_bottle/ibuprofen + name = "ibuprofen pill bottle" + desc = "Contains pills capable of long-duration nonsteroidal anti-inflammatory effect." + icon_state = "pill_canistercomplete" + pill_type_to_fill = /obj/item/reagent_containers/pill/ibuprofen + greyscale_colors = "#FF8C00#ffffff" + greyscale_config = /datum/greyscale_config/pillbottleround + description_overlay = "Ib" + +/obj/item/storage/pill_bottle/ketoprofen + name = "ketoprofen pill bottle" + desc = "Contains pills capable of long-duration nonsteroidal anti-inflammatory effect." + icon_state = "pill_canistercomplete" + pill_type_to_fill = /obj/item/reagent_containers/pill/ketoprofen + greyscale_colors = "#FF8C00#ffffff" + greyscale_config = /datum/greyscale_config/pillbottleround + description_overlay = "Kf" + +/obj/item/storage/pill_bottle/ifex + name = "ifex pill bottle" + desc = "Contains pills of cytostatic antitumor emergency use drug." + icon_state = "pill_canistercomplete" + pill_type_to_fill = /obj/item/reagent_containers/pill/ifex + greyscale_colors = "#9ACD32#ffffff" + greyscale_config = /datum/greyscale_config/pillbottleround + description_overlay = "If" diff --git a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm index 14e666368aae6..419eab12a8d21 100644 --- a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm +++ b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm @@ -120,7 +120,7 @@ name = "Ibuprofen" description = "Ibuprofen is a nonsteroidal anti-inflammatory drug" color = COLOR_REAGENT_BICARIDINE - purge_list = list(/datum/reagent/medicine/ryetalyn, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/tricordrazine) + purge_list = list(/datum/reagent/medicine/ryetalyn, /datum/reagent/medicine/bicaridine) purge_rate = 5 custom_metabolism = REAGENTS_METABOLISM * 0.5 overdose_threshold = REAGENTS_OVERDOSE @@ -128,7 +128,12 @@ scannable = TRUE /datum/reagent/medicine/ibuprofen/on_mob_life(mob/living/L, metabolism) - L.heal_overall_damage(1.2*effect_str, 0) + + var/tricordrazine = L.reagents.get_reagent_amount(/datum/reagent/medicine/tricordrazine) + if(tricordrazine) + L.apply_damages(0.2, 0.2) + + L.heal_overall_damage(effect_str, 0) if(volume < 10) L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT L.heal_overall_damage(0.5*effect_str, 0) @@ -144,9 +149,9 @@ /datum/reagent/medicine/ketoprofen name = "Ketoprofen" - description = "Ketoprofen is one of the propionic acid class of nonsteroidal anti-inflammatory drugs" + description = "Ketoprofen is one of the propionic acid class of nonsteroidal anti-inflammatory drug" color = COLOR_REAGENT_BICARIDINE - purge_list = list(/datum/reagent/medicine/ryetalyn, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/tricordrazine) + purge_list = list(/datum/reagent/medicine/ryetalyn, /datum/reagent/medicine/kelotane) purge_rate = 5 custom_metabolism = REAGENTS_METABOLISM * 0.5 overdose_threshold = REAGENTS_OVERDOSE @@ -154,7 +159,12 @@ scannable = TRUE /datum/reagent/medicine/ketoprofen/on_mob_life(mob/living/L, metabolism) - L.heal_overall_damage(0, 1.2*effect_str) + + var/tricordrazine = L.reagents.get_reagent_amount(/datum/reagent/medicine/tricordrazine) + if(tricordrazine) + L.apply_damages(0.2, 0.2) + + L.heal_overall_damage(0, effect_str) if(volume < 10) L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT L.heal_overall_damage(0, 0.5*effect_str) @@ -172,7 +182,7 @@ name = "Histamine" description = "Histamine is an organic nitrogenous compound involved in local immune responses communication" color = COLOR_REAGENT_BICARIDINE - custom_metabolism = REAGENTS_METABOLISM * 0.5 + custom_metabolism = 0 overdose_threshold = REAGENTS_OVERDOSE * 0.5 overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 0.5 scannable = TRUE @@ -180,22 +190,27 @@ /datum/reagent/histamine/on_mob_life(mob/living/L, metabolism) //reagents + var/Ifex = L.reagents.get_reagent_amount(/datum/reagent/medicine/ifex) var/ibuprofen = L.reagents.get_reagent_amount(/datum/reagent/medicine/ibuprofen) var/ketoprofen = L.reagents.get_reagent_amount(/datum/reagent/medicine/ketoprofen) var/tricordrazine = L.reagents.get_reagent_amount(/datum/reagent/medicine/tricordrazine) var/kelotane = L.reagents.get_reagent_amount(/datum/reagent/medicine/kelotane) var/bicaridine = L.reagents.get_reagent_amount(/datum/reagent/medicine/bicaridine) + + if(!Ifex) + holder.remove_reagent(/datum/reagent/histamine, 0.2) + //debuffs if(ibuprofen) - L.apply_damages(2*effect_str, BRUTE) + L.apply_damages(2*effect_str, 0) if(ketoprofen) - L.apply_damages(2*effect_str, BURN) + L.apply_damages(0, 2*effect_str) if(tricordrazine) L.apply_damages(effect_str, effect_str, effect_str) if(kelotane) - L.apply_damages(1.5*effect_str, BURN) + L.apply_damages(0, 2*effect_str) if(bicaridine) - L.apply_damages(1.5*effect_str, BRUTE) + L.apply_damages(2*effect_str, 0) L.apply_damage(0.5*effect_str, OXY) @@ -212,3 +227,102 @@ /datum/reagent/histamine/overdose_crit_process(mob/living/L, metabolism) L.apply_damages(0, 0, 6*effect_str) + +/datum/reagent/medicine/ifex + name = "Ifex" + description = "Ifosfamide is a cytostatic antitumor drug" + color = COLOR_REAGENT_BICARIDINE + custom_metabolism = REAGENTS_METABOLISM * 2 + overdose_threshold = REAGENTS_OVERDOSE * 0.5 + overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 0.5 + scannable = TRUE + +/datum/reagent/medicine/ifex/on_mob_life(mob/living/L, metabolism) + + L.adjustOxyLoss(-0.5*effect_str) + L.adjustToxLoss(-0.5*effect_str) + L.heal_overall_damage(4*effect_str, 4*effect_str) + + if(volume > 5) + L.reagent_pain_modifier -= PAIN_REDUCTION_MEDIUM + else + L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT + + L.reagents.add_reagent(/datum/reagent/histamine, 0.4) + + return ..() + +/datum/reagent/medicine/ifex/overdose_process(mob/living/L, metabolism) + L.adjustToxLoss(2*effect_str) + +/datum/reagent/medicine/ifex/overdose_crit_process(mob/living/L, metabolism) + L.adjustToxLoss(4*effect_str) + +/datum/reagent/medicine/research/bacteriophages_agent + name = "Artificial bacteriophages" + description = "These are a batch of construction nanites altered for in-vivo replication. They can heal wounds using the iron present in the bloodstream. Medical care is recommended during injection." + color = COLOR_REAGENT_MEDICALNANITES + custom_metabolism = REAGENTS_METABOLISM * 5 + purge_list = list(/datum/reagent/medicine, /datum/reagent/toxin, /datum/reagent/zombium) + purge_rate = 5 + scannable = FALSE + taste_description = "metal, followed by mild burning" + +/datum/reagent/medicine/research/bacteriophages_agent/on_mob_add(mob/living/L, metabolism) + var/bacteriophages = L.reagents.get_reagent_amount(/datum/reagent/medicine/research/bacteriophages) + if(!bacteriophages) + L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 1) + +#define MODE_HEAL_DAMAGE "heal damage" +#define MODE_HEAL_BACTERIA "heal bacteria" + +/datum/reagent/medicine/research/bacteriophages + name = "Artificial bacteriophages" + description = "These are a batch of construction nanites altered for in-vivo replication. They can heal wounds using the iron present in the bloodstream. Medical care is recommended during injection." + color = COLOR_REAGENT_MEDICALNANITES + custom_metabolism = 0 + scannable = TRUE + taste_description = "metal, followed by mild burning" + overdose_threshold = REAGENTS_OVERDOSE_CRITICAL //slight buffer to keep you safe + var/mode = MODE_HEAL_DAMAGE + +//artificial bacteriophage +/datum/reagent/medicine/research/bacteriophages/on_mob_add(mob/living/L, metabolism) + to_chat(L, span_userdanger("You feel like you should stay near medical help until this shot settles in.")) + +/datum/reagent/medicine/research/bacteriophages/on_mob_life(mob/living/L, metabolism) + switch(current_cycle) + if(1 to 80) + L.take_limb_damage(2*effect_str, 2*effect_str) + L.adjustToxLoss(1*effect_str) + L.reagent_pain_modifier -= PAIN_REDUCTION_SUPER_HEAVY + L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) + if(prob(5)) + to_chat(L, span_notice("You feel intense itching!")) + if(81) + to_chat(L, span_warning("The pain rapidly subsides. Looks like they've adapted to you.")) + if(82 to INFINITY) + if(mode == MODE_HEAL_DAMAGE) + if(volume < 20) + mode = MODE_HEAL_BACTERIA + else + if (4 < L.getBruteLoss(organic_only = TRUE)) + L.heal_overall_damage(3*effect_str, 0) + L.adjustToxLoss(1*effect_str) + holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) + if(prob(40)) + to_chat(L, span_notice("Your cuts and bruises begin to scab over rapidly!")) + if (4 < L.getFireLoss(organic_only = TRUE)) + L.heal_overall_damage(0, 3*effect_str) + L.adjustToxLoss(1*effect_str) + holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) + if(prob(40)) + to_chat(L, span_notice("Your cuts and bruises begin to scab over rapidly!")) + L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.2) + else + if(volume > 30) + mode = MODE_HEAL_DAMAGE + else + L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.4) + L.adjustToxLoss(3*effect_str) + return ..() diff --git a/modular_RUtgmc/includes.dm b/modular_RUtgmc/includes.dm index 1746bfe7b3e27..654d6ec059a21 100644 --- a/modular_RUtgmc/includes.dm +++ b/modular_RUtgmc/includes.dm @@ -68,6 +68,8 @@ #include "code\game\objects\items\radio\intercom.dm" #include "code\game\objects\items\reagent_containers\glass\bottle.dm" #include "code\game\objects\items\reagent_containers\hypospray.dm" +#include "code\game\objects\items\reagent_containers\autoinjectors.dm" +#include "code\game\objects\items\reagent_containers\pill.dm" #include "code\game\objects\items\robot\robot_parts.dm" #include "code\game\objects\items\sheets\sheet_types.dm" #include "code\game\objects\items\stacks\medical.dm" @@ -76,6 +78,7 @@ #include "code\game\objects\items\storage\boxes.dm" #include "code\game\objects\items\storage\dispenser.dm" #include "code\game\objects\items\storage\holsters.dm" +#include "code\game\objects\items\storage\firstaid.dm" #include "code\game\objects\items\tools\cleaning_tools.dm" #include "code\game\objects\items\tools\maintenance_tools.dm" #include "code\game\objects\items\tools\mining_tools.dm" From 6719c3285ad74b13498b438db5db6603928fe1ac Mon Sep 17 00:00:00 2001 From: homexp13 Date: Wed, 12 Jun 2024 12:35:47 +0300 Subject: [PATCH 3/5] upd --- code/__DEFINES/~RUtgmc_defines/loadout.dm | 1 + .../objects/items/reagent_containers/pill.dm | 5 ++ .../game/objects/items/storage/firstaid.dm | 11 +++- .../machinery/vending/marine_vending.dm | 8 +++ .../code/modules/reagents/reagents/medical.dm | 57 +++++++++---------- 5 files changed, 51 insertions(+), 31 deletions(-) diff --git a/code/__DEFINES/~RUtgmc_defines/loadout.dm b/code/__DEFINES/~RUtgmc_defines/loadout.dm index 52ea5e4c1b856..fd2ea35e64ef8 100644 --- a/code/__DEFINES/~RUtgmc_defines/loadout.dm +++ b/code/__DEFINES/~RUtgmc_defines/loadout.dm @@ -46,6 +46,7 @@ GLOBAL_LIST_INIT(medic_gear_listed_products, list( /obj/effect/vendor_bundle/medic = list(CAT_ESS, "Essential Medic Set", 0, "white"), /obj/item/storage/pill_bottle/meralyne = list(CAT_MEDSUP, "Meralyne pills", 14, "orange"), /obj/item/storage/pill_bottle/dermaline = list(CAT_MEDSUP, "Dermaline pills", 14, "orange"), + /obj/item/storage/pill_bottle/imidalk = list(CAT_MEDSUP, "Imidalk pills", 2, "orange"), /obj/item/tool/surgery/solderingtool = list(CAT_MEDSUP, "Soldering tool", 2, "orange"), /obj/item/stack/medical/heal_pack/advanced/bruise_combat_pack = list(CAT_MEDSUP, "Combat Trauma Kit", 3, "orange"), /obj/item/stack/medical/heal_pack/advanced/burn_combat_pack = list(CAT_MEDSUP, "Combat Burn Kit", 3, "orange"), diff --git a/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm b/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm index 0efca26c05698..e60492fad112c 100644 --- a/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm +++ b/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm @@ -12,3 +12,8 @@ pill_desc = "A Ifosfamide pill. A cytostatic antitumor drug." list_reagents = list(/datum/reagent/medicine/ifex = 15) pill_id = 11 + +/obj/item/reagent_containers/pill/imidalk + pill_desc = "A imidalk pill. Used to fix brain, ear and eye damage." + list_reagents = list(/datum/reagent/medicine/alkysine = 3.5, /datum/reagent/medicine/imidazoline = 11.5) + pill_id = 18 diff --git a/modular_RUtgmc/code/game/objects/items/storage/firstaid.dm b/modular_RUtgmc/code/game/objects/items/storage/firstaid.dm index 1fe6b575f09c0..51d08a32826b0 100644 --- a/modular_RUtgmc/code/game/objects/items/storage/firstaid.dm +++ b/modular_RUtgmc/code/game/objects/items/storage/firstaid.dm @@ -3,7 +3,7 @@ desc = "Contains pills capable of long-duration nonsteroidal anti-inflammatory effect." icon_state = "pill_canistercomplete" pill_type_to_fill = /obj/item/reagent_containers/pill/ibuprofen - greyscale_colors = "#FF8C00#ffffff" + greyscale_colors = "#FC3D03#ffffff" greyscale_config = /datum/greyscale_config/pillbottleround description_overlay = "Ib" @@ -24,3 +24,12 @@ greyscale_colors = "#9ACD32#ffffff" greyscale_config = /datum/greyscale_config/pillbottleround description_overlay = "If" + +/obj/item/storage/pill_bottle/imidalk + name = "imidalk pill bottle" + desc = "Contains pills used to fix brain, ear and eye damage" + icon_state = "pill_canistercomplete" + pill_type_to_fill = /obj/item/reagent_containers/pill/imidalk + greyscale_colors = "#E467B3#ffffff" + greyscale_config = /datum/greyscale_config/pillbottleround + description_overlay = "IA" diff --git a/modular_RUtgmc/code/game/objects/machinery/vending/marine_vending.dm b/modular_RUtgmc/code/game/objects/machinery/vending/marine_vending.dm index 2960080933fda..e20ab57bf9abb 100644 --- a/modular_RUtgmc/code/game/objects/machinery/vending/marine_vending.dm +++ b/modular_RUtgmc/code/game/objects/machinery/vending/marine_vending.dm @@ -339,9 +339,12 @@ products = list( "Pill Bottles" = list( /obj/item/storage/pill_bottle/bicaridine = -1, + /obj/item/storage/pill_bottle/ibuprofen = -1, /obj/item/storage/pill_bottle/kelotane = -1, + /obj/item/storage/pill_bottle/ketoprofen = -1, /obj/item/storage/pill_bottle/tramadol = -1, /obj/item/storage/pill_bottle/tricordrazine = -1, + /obj/item/storage/pill_bottle/ifex = -1, /obj/item/storage/pill_bottle/dylovene = -1, /obj/item/storage/pill_bottle/dexalin = -1, /obj/item/storage/pill_bottle/paracetamol = -1, @@ -364,6 +367,7 @@ /obj/item/reagent_containers/hypospray/autoinjector/imidazoline = 20, /obj/item/reagent_containers/hypospray/autoinjector/quickclot = 10, /obj/item/reagent_containers/hypospray/autoinjector/medicalnanites = 20, + /obj/item/reagent_containers/hypospray/autoinjector/bacteriophages = 20, /obj/item/reagent_containers/hypospray/autoinjector/russian_red = 10, ), "Heal Pack" = list( @@ -386,9 +390,12 @@ products = list( "Pill Bottles" = list( /obj/item/storage/pill_bottle/bicaridine = -1, + /obj/item/storage/pill_bottle/ibuprofen = -1, /obj/item/storage/pill_bottle/kelotane = -1, + /obj/item/storage/pill_bottle/ketoprofen = -1, /obj/item/storage/pill_bottle/tramadol = -1, /obj/item/storage/pill_bottle/tricordrazine = -1, + /obj/item/storage/pill_bottle/ifex = -1, /obj/item/storage/pill_bottle/dylovene = -1, /obj/item/storage/pill_bottle/dexalin = -1, /obj/item/storage/pill_bottle/paracetamol = -1, @@ -410,6 +417,7 @@ /obj/item/reagent_containers/hypospray/autoinjector/imidazoline = -1, /obj/item/reagent_containers/hypospray/autoinjector/quickclot = -1, /obj/item/reagent_containers/hypospray/autoinjector/medicalnanites = -1, + /obj/item/reagent_containers/hypospray/autoinjector/bacteriophages = -1, /obj/item/reagent_containers/hypospray/autoinjector/russian_red = -1, ), "Heal Pack" = list( diff --git a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm index 419eab12a8d21..badfd97083297 100644 --- a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm +++ b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm @@ -198,7 +198,7 @@ var/bicaridine = L.reagents.get_reagent_amount(/datum/reagent/medicine/bicaridine) if(!Ifex) - holder.remove_reagent(/datum/reagent/histamine, 0.2) + holder.remove_reagent(/datum/reagent/histamine, 0.4) //debuffs if(ibuprofen) @@ -214,7 +214,7 @@ L.apply_damage(0.5*effect_str, OXY) - return ..() + current_cycle++ /datum/reagent/histamine/on_mob_add(mob/living/L, metabolism) to_chat(L, span_userdanger("You feel your throat tightening!")) @@ -262,8 +262,6 @@ name = "Artificial bacteriophages" description = "These are a batch of construction nanites altered for in-vivo replication. They can heal wounds using the iron present in the bloodstream. Medical care is recommended during injection." color = COLOR_REAGENT_MEDICALNANITES - custom_metabolism = REAGENTS_METABOLISM * 5 - purge_list = list(/datum/reagent/medicine, /datum/reagent/toxin, /datum/reagent/zombium) purge_rate = 5 scannable = FALSE taste_description = "metal, followed by mild burning" @@ -281,10 +279,11 @@ description = "These are a batch of construction nanites altered for in-vivo replication. They can heal wounds using the iron present in the bloodstream. Medical care is recommended during injection." color = COLOR_REAGENT_MEDICALNANITES custom_metabolism = 0 + purge_list = list(/datum/reagent/medicine/research/medicalnanites) + purge_rate = 5 scannable = TRUE taste_description = "metal, followed by mild burning" overdose_threshold = REAGENTS_OVERDOSE_CRITICAL //slight buffer to keep you safe - var/mode = MODE_HEAL_DAMAGE //artificial bacteriophage /datum/reagent/medicine/research/bacteriophages/on_mob_add(mob/living/L, metabolism) @@ -293,36 +292,34 @@ /datum/reagent/medicine/research/bacteriophages/on_mob_life(mob/living/L, metabolism) switch(current_cycle) if(1 to 80) - L.take_limb_damage(2*effect_str, 2*effect_str) - L.adjustToxLoss(1*effect_str) L.reagent_pain_modifier -= PAIN_REDUCTION_SUPER_HEAVY L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) + L.adjustStaminaLoss(2*effect_str) if(prob(5)) to_chat(L, span_notice("You feel intense itching!")) if(81) to_chat(L, span_warning("The pain rapidly subsides. Looks like they've adapted to you.")) if(82 to INFINITY) - if(mode == MODE_HEAL_DAMAGE) - if(volume < 20) - mode = MODE_HEAL_BACTERIA - else - if (4 < L.getBruteLoss(organic_only = TRUE)) - L.heal_overall_damage(3*effect_str, 0) - L.adjustToxLoss(1*effect_str) - holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) - if(prob(40)) - to_chat(L, span_notice("Your cuts and bruises begin to scab over rapidly!")) - if (4 < L.getFireLoss(organic_only = TRUE)) - L.heal_overall_damage(0, 3*effect_str) - L.adjustToxLoss(1*effect_str) - holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) - if(prob(40)) - to_chat(L, span_notice("Your cuts and bruises begin to scab over rapidly!")) - L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.2) - else - if(volume > 30) - mode = MODE_HEAL_DAMAGE - else - L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.4) - L.adjustToxLoss(3*effect_str) + if(volume < 20) + L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.4) + L.adjustStaminaLoss(2*effect_str) + L.adjustToxLoss(1*effect_str) + if(volume < 30) + L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.3) + L.adjustStaminaLoss(2*effect_str) + L.adjustToxLoss(0.5*effect_str) + if(volume < 40) + L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.2) + + if (volume > 10 && L.getBruteLoss(organic_only = TRUE)) + L.heal_overall_damage(1*effect_str, 0) + L.adjustToxLoss(0.1*effect_str) + holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) + if(prob(20)) + to_chat(L, span_notice("Your cuts and bruises begin to scab over rapidly!")) + if (volume > 10 && L.getFireLoss(organic_only = TRUE)) + L.heal_overall_damage(0, 1*effect_str) + holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) + if(prob(20)) + to_chat(L, span_notice("Your burns begin to slough off, revealing healthy tissue!")) return ..() From 044d246c5e90c458b92535e3372b315b363a3add Mon Sep 17 00:00:00 2001 From: homexp13 Date: Wed, 12 Jun 2024 13:11:38 +0300 Subject: [PATCH 4/5] bacteriophages upd --- .../code/modules/reagents/reagents/medical.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm index badfd97083297..875b04ba153ba 100644 --- a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm +++ b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm @@ -223,7 +223,7 @@ to_chat(L, span_userdanger("You feel how it becomes easier for you to breathe")) /datum/reagent/histamine/overdose_process(mob/living/L, metabolism) - L.apply_damages(1*effect_str, 1*effect_str, 4*effect_str) + L.apply_damages(1*effect_str, 1*effect_str, 1*effect_str) /datum/reagent/histamine/overdose_crit_process(mob/living/L, metabolism) L.apply_damages(0, 0, 6*effect_str) @@ -274,7 +274,7 @@ #define MODE_HEAL_DAMAGE "heal damage" #define MODE_HEAL_BACTERIA "heal bacteria" -/datum/reagent/medicine/research/bacteriophages +/datum/reagent/bacteriophages name = "Artificial bacteriophages" description = "These are a batch of construction nanites altered for in-vivo replication. They can heal wounds using the iron present in the bloodstream. Medical care is recommended during injection." color = COLOR_REAGENT_MEDICALNANITES @@ -286,10 +286,10 @@ overdose_threshold = REAGENTS_OVERDOSE_CRITICAL //slight buffer to keep you safe //artificial bacteriophage -/datum/reagent/medicine/research/bacteriophages/on_mob_add(mob/living/L, metabolism) +/datum/reagent/bacteriophages/on_mob_add(mob/living/L, metabolism) to_chat(L, span_userdanger("You feel like you should stay near medical help until this shot settles in.")) -/datum/reagent/medicine/research/bacteriophages/on_mob_life(mob/living/L, metabolism) +/datum/reagent/bacteriophages/on_mob_life(mob/living/L, metabolism) switch(current_cycle) if(1 to 80) L.reagent_pain_modifier -= PAIN_REDUCTION_SUPER_HEAVY @@ -311,13 +311,13 @@ if(volume < 40) L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.2) - if (volume > 10 && L.getBruteLoss(organic_only = TRUE)) + if (volume > 10 && (1 < L.getBruteLoss(organic_only = TRUE))) L.heal_overall_damage(1*effect_str, 0) L.adjustToxLoss(0.1*effect_str) holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) if(prob(20)) to_chat(L, span_notice("Your cuts and bruises begin to scab over rapidly!")) - if (volume > 10 && L.getFireLoss(organic_only = TRUE)) + if (volume > 10 && (1 < L.getFireLoss(organic_only = TRUE))) L.heal_overall_damage(0, 1*effect_str) holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) if(prob(20)) From 0ed36955a8cef4f10dbba3c938fda0d396f8bf48 Mon Sep 17 00:00:00 2001 From: homexp13 Date: Wed, 12 Jun 2024 13:25:19 +0300 Subject: [PATCH 5/5] for real --- .../objects/items/reagent_containers/pill.dm | 6 +++--- .../code/modules/reagents/reagents/medical.dm | 18 ++++++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm b/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm index e60492fad112c..3c3fcad6eecc4 100644 --- a/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm +++ b/modular_RUtgmc/code/game/objects/items/reagent_containers/pill.dm @@ -1,15 +1,15 @@ /obj/item/reagent_containers/pill/ibuprofen - pill_desc = "A ibuprofen pill. A long-duration nonsteroidal anti-inflammatory drug" + pill_desc = "A ibuprofen pill. A long-duration nonsteroidal anti-inflammatory drug. Heal cuts and bruises. Do not mix with bicaridine" list_reagents = list(/datum/reagent/medicine/ibuprofen = 15) pill_id = 7 /obj/item/reagent_containers/pill/ketoprofen - pill_desc = "A ketoprofen pill. A long-duration nonsteroidal anti-inflammatory drug" + pill_desc = "A ketoprofen pill. A long-duration nonsteroidal anti-inflammatory drug. Heal burns. Do not mix with kelotane" list_reagents = list(/datum/reagent/medicine/ketoprofen = 15) pill_id = 7 /obj/item/reagent_containers/pill/ifex - pill_desc = "A Ifosfamide pill. A cytostatic antitumor drug." + pill_desc = "A Ifosfamide pill. A cytostatic antitumor drug. Quickly heals wounds and burns, but releases histamine. Do not mix with BKTT and -fen drugs" list_reagents = list(/datum/reagent/medicine/ifex = 15) pill_id = 11 diff --git a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm index 875b04ba153ba..709d250b5bff1 100644 --- a/modular_RUtgmc/code/modules/reagents/reagents/medical.dm +++ b/modular_RUtgmc/code/modules/reagents/reagents/medical.dm @@ -267,12 +267,10 @@ taste_description = "metal, followed by mild burning" /datum/reagent/medicine/research/bacteriophages_agent/on_mob_add(mob/living/L, metabolism) - var/bacteriophages = L.reagents.get_reagent_amount(/datum/reagent/medicine/research/bacteriophages) + var/bacteriophages = L.reagents.get_reagent_amount(/datum/reagent/bacteriophages) if(!bacteriophages) - L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 1) + L.reagents.add_reagent(/datum/reagent/bacteriophages, 1) -#define MODE_HEAL_DAMAGE "heal damage" -#define MODE_HEAL_BACTERIA "heal bacteria" /datum/reagent/bacteriophages name = "Artificial bacteriophages" @@ -293,7 +291,7 @@ switch(current_cycle) if(1 to 80) L.reagent_pain_modifier -= PAIN_REDUCTION_SUPER_HEAVY - L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) + L.reagents.add_reagent(/datum/reagent/bacteriophages, 0.5) L.adjustStaminaLoss(2*effect_str) if(prob(5)) to_chat(L, span_notice("You feel intense itching!")) @@ -301,25 +299,25 @@ to_chat(L, span_warning("The pain rapidly subsides. Looks like they've adapted to you.")) if(82 to INFINITY) if(volume < 20) - L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.4) + L.reagents.add_reagent(/datum/reagent/bacteriophages, 0.4) L.adjustStaminaLoss(2*effect_str) L.adjustToxLoss(1*effect_str) if(volume < 30) - L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.3) + L.reagents.add_reagent(/datum/reagent/bacteriophages, 0.3) L.adjustStaminaLoss(2*effect_str) L.adjustToxLoss(0.5*effect_str) if(volume < 40) - L.reagents.add_reagent(/datum/reagent/medicine/research/bacteriophages, 0.2) + L.reagents.add_reagent(/datum/reagent/bacteriophages, 0.2) if (volume > 10 && (1 < L.getBruteLoss(organic_only = TRUE))) L.heal_overall_damage(1*effect_str, 0) L.adjustToxLoss(0.1*effect_str) - holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) + holder.remove_reagent(/datum/reagent/bacteriophages, 0.5) if(prob(20)) to_chat(L, span_notice("Your cuts and bruises begin to scab over rapidly!")) if (volume > 10 && (1 < L.getFireLoss(organic_only = TRUE))) L.heal_overall_damage(0, 1*effect_str) - holder.remove_reagent(/datum/reagent/medicine/research/bacteriophages, 0.5) + holder.remove_reagent(/datum/reagent/bacteriophages, 0.5) if(prob(20)) to_chat(L, span_notice("Your burns begin to slough off, revealing healthy tissue!")) return ..()