mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-16 17:44:25 +01:00
medicine.dm
This commit is contained in:
@@ -31,11 +31,11 @@
|
||||
var/injection_amount = 15 //How much reagent do we inject at a time?
|
||||
var/heal_threshold = 10 //Start healing when they have this much damage in a category
|
||||
var/use_beaker = 0 //Use reagents in beaker instead of default treatment agents.
|
||||
var/treatment_brute = "tricordrazine"
|
||||
var/treatment_oxy = "tricordrazine"
|
||||
var/treatment_fire = "tricordrazine"
|
||||
var/treatment_tox = "tricordrazine"
|
||||
var/treatment_virus = "spaceacillin"
|
||||
var/treatment_brute = REAGENT_ID_TRICORDRAZINE
|
||||
var/treatment_oxy = REAGENT_ID_TRICORDRAZINE
|
||||
var/treatment_fire = REAGENT_ID_TRICORDRAZINE
|
||||
var/treatment_tox = REAGENT_ID_TRICORDRAZINE
|
||||
var/treatment_virus = REAGENT_ID_SPACEACILLIN
|
||||
var/treatment_emag = REAGENT_ID_TOXIN
|
||||
var/declare_treatment = 0 //When attempting to treat a patient, should it notify everyone wearing medhuds?
|
||||
|
||||
@@ -52,10 +52,10 @@
|
||||
name = "\improper Mysterious Medibot"
|
||||
desc = "International Medibot of mystery."
|
||||
skin = "bezerk"
|
||||
treatment_brute = "bicaridine"
|
||||
treatment_fire = "dermaline"
|
||||
treatment_oxy = "dexalin"
|
||||
treatment_tox = "anti_toxin"
|
||||
treatment_brute = REAGENT_ID_BICARIDINE
|
||||
treatment_fire = REAGENT_ID_DERMALINE
|
||||
treatment_oxy = REAGENT_ID_DEXALIN
|
||||
treatment_tox = REAGENT_ID_ANTITOXIN
|
||||
|
||||
/mob/living/bot/medbot/handleIdle()
|
||||
if(is_tipped) // Don't handle idle things if we're incapacitated!
|
||||
|
||||
@@ -82,8 +82,8 @@
|
||||
// ========
|
||||
/datum/medical_effect/headache
|
||||
name = "Headache"
|
||||
triggers = list("cryoxadone" = 10, "bicaridine" = 15, "tricordrazine" = 15)
|
||||
cures = list("alkysine", "tramadol", "paracetamol", "oxycodone")
|
||||
triggers = list(REAGENT_ID_CRYOXADONE = 10, REAGENT_ID_BICARIDINE = 15, REAGENT_ID_TRICORDRAZINE = 15)
|
||||
cures = list(REAGENT_ID_ALKYSINE, REAGENT_ID_TRAMADOL, REAGENT_ID_PARACETAMOL, REAGENT_ID_OXYCODONE)
|
||||
cure_message = "Your head stops throbbing..."
|
||||
|
||||
/datum/medical_effect/headache/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -99,8 +99,8 @@
|
||||
// ===========
|
||||
/datum/medical_effect/bad_stomach
|
||||
name = "Bad Stomach"
|
||||
triggers = list("kelotane" = 30, "dermaline" = 15)
|
||||
cures = list("anti_toxin")
|
||||
triggers = list(REAGENT_ID_KELOTANE = 30, REAGENT_ID_DERMALINE = 15)
|
||||
cures = list(REAGENT_ID_ANTITOXIN)
|
||||
cure_message = "Your stomach feels a little better now..."
|
||||
|
||||
/datum/medical_effect/bad_stomach/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -116,8 +116,8 @@
|
||||
// ======
|
||||
/datum/medical_effect/cramps
|
||||
name = "Cramps"
|
||||
triggers = list("anti_toxin" = 30, "tramadol" = 15)
|
||||
cures = list("inaprovaline")
|
||||
triggers = list(REAGENT_ID_ANTITOXIN = 30, REAGENT_ID_TRAMADOL = 15)
|
||||
cures = list(REAGENT_ID_INAPROVALINE)
|
||||
cure_message = "The cramps let up..."
|
||||
|
||||
/datum/medical_effect/cramps/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -135,7 +135,7 @@
|
||||
/datum/medical_effect/itch
|
||||
name = "Itch"
|
||||
triggers = list(REAGENT_ID_BLISS = 10)
|
||||
cures = list("inaprovaline")
|
||||
cures = list(REAGENT_ID_INAPROVALINE)
|
||||
cure_message = "The itching stops..."
|
||||
|
||||
/datum/medical_effect/itch/on_life(mob/living/carbon/human/H, strength)
|
||||
|
||||
@@ -82,8 +82,8 @@
|
||||
// ========
|
||||
/datum/medical_effect/headache
|
||||
name = "Headache"
|
||||
triggers = list("cryoxadone" = 10, "bicaridine" = 15, "tricordrazine" = 15)
|
||||
cures = list("alkysine", "tramadol", "paracetamol", "oxycodone")
|
||||
triggers = list(REAGENT_ID_CRYOXADONE = 10, REAGENT_ID_BICARIDINE = 15, REAGENT_ID_TRICORDRAZINE = 15)
|
||||
cures = list(REAGENT_ID_ALKYSINE, REAGENT_ID_TRAMADOL, REAGENT_ID_PARACETAMOL, REAGENT_ID_OXYCODONE)
|
||||
cure_message = "Your head stops throbbing..."
|
||||
|
||||
/datum/medical_effect/headache/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -99,8 +99,8 @@
|
||||
// ===========
|
||||
/datum/medical_effect/bad_stomach
|
||||
name = "Bad Stomach"
|
||||
triggers = list("kelotane" = 30, "dermaline" = 15)
|
||||
cures = list("anti_toxin")
|
||||
triggers = list(REAGENT_ID_KELOTANE = 30, REAGENT_ID_DERMALINE = 15)
|
||||
cures = list(REAGENT_ID_ANTITOXIN)
|
||||
cure_message = "Your stomach feels a little better now..."
|
||||
|
||||
/datum/medical_effect/bad_stomach/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -116,8 +116,8 @@
|
||||
// ======
|
||||
/datum/medical_effect/cramps
|
||||
name = "Cramps"
|
||||
triggers = list("anti_toxin" = 30, "tramadol" = 15)
|
||||
cures = list("inaprovaline")
|
||||
triggers = list(REAGENT_ID_ANTITOXIN = 30, REAGENT_ID_TRAMADOL = 15)
|
||||
cures = list(REAGENT_ID_INAPROVALINE)
|
||||
cure_message = "The cramps let up..."
|
||||
|
||||
/datum/medical_effect/cramps/on_life(mob/living/carbon/human/H, strength)
|
||||
@@ -135,7 +135,7 @@
|
||||
/datum/medical_effect/itch
|
||||
name = "Itch"
|
||||
triggers = list(REAGENT_ID_BLISS = 10)
|
||||
cures = list("inaprovaline")
|
||||
cures = list(REAGENT_ID_INAPROVALINE)
|
||||
cure_message = "The itching stops..."
|
||||
|
||||
/datum/medical_effect/itch/on_life(mob/living/carbon/human/H, strength)
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
name = "MediHound hypospray"
|
||||
desc = "An advanced chemical synthesizer and injection system utilizing carrier's reserves, designed for heavy-duty medical equipment."
|
||||
charge_cost = 10
|
||||
reagent_ids = list("inaprovaline", "dexalin", "bicaridine", "kelotane", "anti_toxin", "spaceacillin", "paracetamol")
|
||||
reagent_ids = list(REAGENT_ID_INAPROVALINE, REAGENT_ID_DEXALIN, REAGENT_ID_BICARIDINE, REAGENT_ID_KELOTANE, REAGENT_ID_ANTITOXIN, REAGENT_ID_SPACEACILLIN, REAGENT_ID_PARACETAMOL)
|
||||
var/datum/matter_synth/water = null
|
||||
|
||||
/obj/item/reagent_containers/borghypo/hound/process() //Recharges in smaller steps and uses the water reserves as well.
|
||||
@@ -220,12 +220,12 @@
|
||||
/obj/item/reagent_containers/borghypo/hound/lost
|
||||
name = "Hound hypospray"
|
||||
desc = "An advanced chemical synthesizer and injection system utilizing carrier's reserves."
|
||||
reagent_ids = list("tricordrazine", "inaprovaline", "bicaridine", "dexalin", "anti_toxin", "tramadol", "spaceacillin")
|
||||
reagent_ids = list(REAGENT_ID_TRICORDRAZINE, REAGENT_ID_INAPROVALINE, REAGENT_ID_BICARIDINE, REAGENT_ID_DEXALIN, REAGENT_ID_ANTITOXIN, REAGENT_ID_TRAMADOL, REAGENT_ID_SPACEACILLIN)
|
||||
|
||||
/obj/item/reagent_containers/borghypo/hound/trauma
|
||||
name = "Hound hypospray"
|
||||
desc = "An advanced chemical synthesizer and injection system utilizing carrier's reserves."
|
||||
reagent_ids = list("tricordrazine", "inaprovaline", "oxycodone", "dexalin" ,"spaceacillin")
|
||||
reagent_ids = list(REAGENT_ID_TRICORDRAZINE, REAGENT_ID_INAPROVALINE, REAGENT_ID_OXYCODONE, REAGENT_ID_DEXALIN ,REAGENT_ID_SPACEACILLIN)
|
||||
|
||||
|
||||
//Tongue stuff
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
var/min_health = -100
|
||||
var/cleaning = 0
|
||||
var/patient_laststat = null
|
||||
var/list/injection_chems = list("inaprovaline", "bicaridine", "kelotane", "anti_toxin", "dexalin", "tricordrazine", "spaceacillin", "tramadol") //The borg is able to heal every damage type. As a nerf, they use 750 charge per injection.
|
||||
var/list/injection_chems = list(REAGENT_ID_INAPROVALINE, REAGENT_ID_BICARIDINE, REAGENT_ID_KELOTANE, REAGENT_ID_ANTITOXIN, REAGENT_ID_DEXALIN, REAGENT_ID_TRICORDRAZINE, REAGENT_ID_SPACEACILLIN, REAGENT_ID_TRAMADOL) //The borg is able to heal every damage type. As a nerf, they use 750 charge per injection.
|
||||
var/eject_port = "ingestion"
|
||||
var/list/items_preserved = list()
|
||||
var/UI_open = FALSE
|
||||
@@ -449,7 +449,7 @@
|
||||
return
|
||||
|
||||
if(patient && !(patient.stat & DEAD)) //What is bitwise NOT? ... Thought it was tilde.
|
||||
if(href_list["inject"] == "inaprovaline" || patient.health > min_health)
|
||||
if(href_list["inject"] == REAGENT_ID_INAPROVALINE || patient.health > min_health)
|
||||
inject_chem(usr, href_list["inject"])
|
||||
else
|
||||
to_chat(usr, span_notice("ERROR: Subject is not in stable condition for injections."))
|
||||
@@ -462,7 +462,7 @@
|
||||
|
||||
/obj/item/dogborg/sleeper/proc/inject_chem(mob/user, chem)
|
||||
if(patient && patient.reagents)
|
||||
if(chem in injection_chems + "inaprovaline")
|
||||
if(chem in injection_chems + REAGENT_ID_INAPROVALINE)
|
||||
if(hound.cell.charge < 800) //This is so borgs don't kill themselves with it.
|
||||
to_chat(hound, span_notice("You don't have enough power to synthesize fluids."))
|
||||
return
|
||||
@@ -748,7 +748,7 @@
|
||||
name = "Supply Storage"
|
||||
desc = "A mounted survival unit with fuel processor, helpful with both deliveries and assisting injured miners."
|
||||
icon_state = "sleeperc"
|
||||
injection_chems = list("glucose","inaprovaline","tricordrazine")
|
||||
injection_chems = list("glucose",REAGENT_ID_INAPROVALINE,REAGENT_ID_TRICORDRAZINE)
|
||||
max_item_count = 10
|
||||
recycles = FALSE
|
||||
stabilizer = TRUE
|
||||
@@ -775,19 +775,19 @@
|
||||
name = "Emergency Storage"
|
||||
desc = "A mounted 'emergency containment cell'."
|
||||
icon_state = "sleeperert"
|
||||
injection_chems = list("inaprovaline", "tramadol") // short list
|
||||
injection_chems = list(REAGENT_ID_INAPROVALINE, REAGENT_ID_TRAMADOL) // short list
|
||||
|
||||
/obj/item/dogborg/sleeper/trauma //Trauma borg belly
|
||||
name = "Recovery Belly"
|
||||
desc = "A downgraded model of the sleeper belly, intended primarily for post-surgery recovery."
|
||||
icon_state = "sleeper"
|
||||
injection_chems = list("inaprovaline", "dexalin", "tricordrazine", "spaceacillin", "oxycodone")
|
||||
injection_chems = list(REAGENT_ID_INAPROVALINE, REAGENT_ID_DEXALIN, REAGENT_ID_TRICORDRAZINE, REAGENT_ID_SPACEACILLIN, REAGENT_ID_OXYCODONE)
|
||||
|
||||
/obj/item/dogborg/sleeper/lost
|
||||
name = "Multipurpose Belly"
|
||||
desc = "A multipurpose belly, capable of functioning as both sleeper and processor."
|
||||
icon_state = "sleeperlost"
|
||||
injection_chems = list("tricordrazine", "bicaridine", "dexalin", "anti_toxin", "tramadol", "spaceacillin")
|
||||
injection_chems = list(REAGENT_ID_TRICORDRAZINE, REAGENT_ID_BICARIDINE, REAGENT_ID_DEXALIN, REAGENT_ID_ANTITOXIN, REAGENT_ID_TRAMADOL, REAGENT_ID_SPACEACILLIN)
|
||||
compactor = TRUE
|
||||
max_item_count = 25
|
||||
stabilizer = TRUE
|
||||
@@ -797,7 +797,7 @@
|
||||
name = "Combat Triage Belly"
|
||||
desc = "A mounted sleeper that stabilizes patients and can inject reagents in the borg's reserves. This one is for more extreme combat scenarios."
|
||||
icon_state = "sleepersyndiemed"
|
||||
injection_chems = list("healing_nanites", "hyperzine", "tramadol", "oxycodone", "spaceacillin", "peridaxon", "osteodaxon", "myelamine", REAGENT_ID_SYNTHBLOOD)
|
||||
injection_chems = list(REAGENT_ID_HEALINGNANITES, REAGENT_ID_HYPERZINE, REAGENT_ID_TRAMADOL, REAGENT_ID_OXYCODONE, REAGENT_ID_SPACEACILLIN, REAGENT_ID_PERIDAXON, REAGENT_ID_OSTEODAXON, REAGENT_ID_MYELAMINE, REAGENT_ID_SYNTHBLOOD)
|
||||
digest_multiplier = 2
|
||||
|
||||
/obj/item/dogborg/sleeper/K9/syndie
|
||||
|
||||
@@ -1437,7 +1437,7 @@
|
||||
water_state = "enzyme_shallow"
|
||||
under_state = "flesh_floor"
|
||||
|
||||
reagent_type = "Sulphuric acid" //why not
|
||||
reagent_type = REAGENT_ID_SACID //why not
|
||||
outdoors = FALSE
|
||||
var/mob/living/simple_mob/vore/overmap/stardog/linked_mob
|
||||
var/mobstuff = TRUE //if false, we don't care about dogs, and that's terrible
|
||||
|
||||
@@ -218,7 +218,7 @@
|
||||
if(chemicals < 50)
|
||||
to_chat(src, span_warning("You don't have enough chemicals!"))
|
||||
|
||||
var/chem = tgui_input_list(usr, "Select a chemical to secrete.", "Chemicals", list("alkysine","bicaridine","hyperzine","tramadol"))
|
||||
var/chem = tgui_input_list(usr, "Select a chemical to secrete.", "Chemicals", list(REAGENT_ID_ALKYSINE,REAGENT_ID_BICARIDINE,REAGENT_ID_HYPERZINE,REAGENT_ID_TRAMADOL))
|
||||
|
||||
if(!chem || chemicals < 50 || !host || controlling || !src || stat) //Sanity check.
|
||||
return
|
||||
|
||||
@@ -49,9 +49,9 @@
|
||||
var/list/bodypart_targets = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_GROIN,BP_HEAD)
|
||||
var/infest_target = BP_TORSO // The currently chosen bodypart to infest.
|
||||
var/mob/living/carbon/host // Our humble host.
|
||||
var/list/produceable_chemicals = list("inaprovaline","anti_toxin","alkysine","bicaridine","tramadol","kelotane","leporazine",REAGENT_ID_IRON,REAGENT_ID_PHORON,REAGENT_ID_CONDENSEDCAPSAICINV,"frostoil")
|
||||
var/list/produceable_chemicals = list(REAGENT_ID_INAPROVALINE,REAGENT_ID_ANTITOXIN,REAGENT_ID_ALKYSINE,REAGENT_ID_BICARIDINE,REAGENT_ID_TRAMADOL,REAGENT_ID_KELOTANE,REAGENT_ID_LEPORAZINE,REAGENT_ID_IRON,REAGENT_ID_PHORON,REAGENT_ID_CONDENSEDCAPSAICINV,"frostoil")
|
||||
var/randomized_reagent = REAGENT_ID_IRON // The reagent chosen at random to be produced, if there's no one piloting the worm.
|
||||
var/passive_reagent = "paracetamol" // Reagent passively produced by the leech. Should usually be a painkiller.
|
||||
var/passive_reagent = REAGENT_ID_PARACETAMOL // Reagent passively produced by the leech. Should usually be a painkiller.
|
||||
|
||||
var/feeding_delay = 30 SECONDS // How long do we have to wait to bite our host's organs?
|
||||
var/last_feeding = 0
|
||||
@@ -159,7 +159,7 @@
|
||||
ai_holder.hostile = FALSE
|
||||
ai_holder.lose_target()
|
||||
alpha = 5
|
||||
if(host.reagents.has_reagent("cordradaxon") && !docile) // Overwhelms the leech with food.
|
||||
if(host.reagents.has_reagent(REAGENT_ID_CORDRADAXON) && !docile) // Overwhelms the leech with food.
|
||||
var/message = "We feel the rush of cardiac pluripotent cells in your host's blood, lulling us into docility."
|
||||
to_chat(src, span_warning(message))
|
||||
docile = TRUE
|
||||
@@ -178,23 +178,23 @@
|
||||
if(!docile && ishuman(host) && chemicals < max_chemicals)
|
||||
var/mob/living/carbon/human/H = host
|
||||
H.remove_blood(1)
|
||||
if(!H.reagents.has_reagent("inaprovaline"))
|
||||
H.reagents.add_reagent("inaprovaline", 1)
|
||||
if(!H.reagents.has_reagent(REAGENT_ID_INAPROVALINE))
|
||||
H.reagents.add_reagent(REAGENT_ID_INAPROVALINE, 1)
|
||||
chemicals += 2
|
||||
|
||||
if(!client && !docile) // Automatic 'AI' to manage damage levels.
|
||||
if(host.getBruteLoss() >= 30 && chemicals > 50)
|
||||
host.reagents.add_reagent("bicaridine", 5)
|
||||
host.reagents.add_reagent(REAGENT_ID_BICARIDINE, 5)
|
||||
chemicals -= 30
|
||||
|
||||
if(host.getToxLoss() >= 30 && chemicals > 50)
|
||||
var/randomchem = pickweight(list("tramadol" = 7, "anti_toxin" = 15, "frostoil" = 3))
|
||||
var/randomchem = pickweight(list(REAGENT_ID_TRAMADOL = 7, REAGENT_ID_ANTITOXIN = 15, "frostoil" = 3))
|
||||
host.reagents.add_reagent(randomchem, 5)
|
||||
chemicals -= 50
|
||||
|
||||
if(host.getFireLoss() >= 30 && chemicals > 50)
|
||||
host.reagents.add_reagent("kelotane", 5)
|
||||
host.reagents.add_reagent("leporazine", 2)
|
||||
host.reagents.add_reagent(REAGENT_ID_KELOTANE, 5)
|
||||
host.reagents.add_reagent(REAGENT_ID_LEPORAZINE, 2)
|
||||
chemicals -= 50
|
||||
|
||||
if(host.getOxyLoss() >= 30 && chemicals > 50)
|
||||
@@ -202,8 +202,8 @@
|
||||
chemicals -= 40
|
||||
|
||||
if(host.getBrainLoss() >= 10 && chemicals > 100)
|
||||
host.reagents.add_reagent("alkysine", 5)
|
||||
host.reagents.add_reagent("tramadol", 3)
|
||||
host.reagents.add_reagent(REAGENT_ID_ALKYSINE, 5)
|
||||
host.reagents.add_reagent(REAGENT_ID_TRAMADOL, 3)
|
||||
chemicals -= 100
|
||||
|
||||
if(prob(30) && chemicals > 50)
|
||||
|
||||
@@ -1007,7 +1007,7 @@ I think I covered everything.
|
||||
//Alternatively bully a coder (me) to make a unique digest_mode for mob healbellies that prevents death, or something.
|
||||
if(istype(A, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/P = L
|
||||
var/list/to_inject = list("myelamine","osteodaxon","spaceacillin","peridaxon", REAGENT_ID_IRON, "hyronalin")
|
||||
var/list/to_inject = list(REAGENT_ID_MYELAMINE,REAGENT_ID_OSTEODAXON,REAGENT_ID_SPACEACILLIN,REAGENT_ID_PERIDAXON, REAGENT_ID_IRON, REAGENT_ID_HYRONALIN)
|
||||
//Lets not OD them...
|
||||
for(var/RG in to_inject)
|
||||
if(!P.reagents.has_reagent(RG))
|
||||
|
||||
Reference in New Issue
Block a user