diff --git a/code/modules/reagents/chemistry/colors.dm b/code/modules/reagents/chemistry/colors.dm index e0c6d5efd84..479059bda08 100644 --- a/code/modules/reagents/chemistry/colors.dm +++ b/code/modules/reagents/chemistry/colors.dm @@ -2,6 +2,8 @@ * Returns: * #RRGGBB(AA) on success, null on failure */ + var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d11141","#00b159","#00aedb","#f37735","#ffc425","#008744","#0057e7","#d62d20","#ffa700") + /proc/mix_color_from_reagents(const/list/reagent_list) if(!istype(reagent_list)) return diff --git a/code/modules/reagents/chemistry/reagents/admin.dm b/code/modules/reagents/chemistry/reagents/admin.dm index 024b78c3cb0..9e5b78376e2 100644 --- a/code/modules/reagents/chemistry/reagents/admin.dm +++ b/code/modules/reagents/chemistry/reagents/admin.dm @@ -1,4 +1,4 @@ -/datum/reagent/adminordrazine //An OP chemical for admins +/datum/reagent/medicine/adminordrazine //An OP chemical for admins name = "Adminordrazine" id = "adminordrazine" description = "It's magic. We don't have to explain it." @@ -7,7 +7,7 @@ process_flags = ORGANIC | SYNTHETIC //Adminbuse knows no bounds! admin_only = 1 -/datum/reagent/adminordrazine/on_mob_life(mob/living/carbon/M) +/datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/carbon/M) M.setCloneLoss(0) M.setOxyLoss(0) M.radiation = 0 @@ -54,7 +54,7 @@ D.cure() ..() -/datum/reagent/adminordrazine/nanites +/datum/reagent/medicine/adminordrazine/nanites name = "Nanites" id = "nanites" description = "Nanomachines that aid in rapid cellular regeneration." \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/disease.dm b/code/modules/reagents/chemistry/reagents/disease.dm index b4c76ac1338..56493362f7c 100644 --- a/code/modules/reagents/chemistry/reagents/disease.dm +++ b/code/modules/reagents/chemistry/reagents/disease.dm @@ -122,26 +122,23 @@ qdel(ate_heart) ..() -//virus-specific symptom reagents +/datum/reagent/concentrated_initro + name = "Concentrated Initropidril" + id = "concentrated_initro" + description = "A guaranteed heart-stopper!" + reagent_state = LIQUID + color = "#AB1CCF" + metabolization_rate = 0.4 -/datum/reagent/synaphydramine - name = "Diphen-Synaptizine" - id = "synaphydramine" - description = "Reduces drowsiness and hallucinations while also purging histamine from the body." - color = "#EC536D" // rgb: 236, 83, 109 +/datum/reagent/concentrated_initro/on_mob_life(mob/living/M) + if(volume >=5) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!H.heart_attack) + H.heart_attack = 1 // rip in pepperoni -/datum/reagent/synaphydramine/on_mob_life(mob/living/M) - M.AdjustDrowsy(-5) - if(holder.has_reagent("lsd")) - holder.remove_reagent("lsd", 5) - if(holder.has_reagent("histamine")) - holder.remove_reagent("histamine", 5) - M.AdjustHallucinate(-10) - if(prob(30)) - M.adjustToxLoss(1) - ..() +//virus foods -//virus food /datum/reagent/virus_food name = "Virus Food" id = "virusfood" @@ -165,7 +162,7 @@ id = "sugarvirusfood" color = "#41B0C0" // rgb: 65,176,192 -/datum/reagent/diphenhydramine/diphenhydraminevirusfood +/datum/reagent/medicine/diphenhydramine/diphenhydraminevirusfood name = "virus rations" id = "diphenhydraminevirusfood" description = "mutates blood" diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index 2cbf4bdbd00..96ddcb5be3b 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -1,4 +1,8 @@ -/datum/reagent/hydrocodone +/datum/reagent/medicine + name = "Medicine" + id = "medicine" + +/datum/reagent/medicine/hydrocodone name = "Hydrocodone" id = "hydrocodone" description = "An extremely effective painkiller; may have long term abuse consequences." @@ -7,14 +11,14 @@ metabolization_rate = 0.3 // Lasts 1.5 minutes for 15 units shock_reduction = 200 -/datum/reagent/hydrocodone/on_mob_life(mob/living/M) +/datum/reagent/medicine/hydrocodone/on_mob_life(mob/living/M) if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.traumatic_shock < 100) H.shock_stage = 0 ..() -/datum/reagent/sterilizine +/datum/reagent/medicine/sterilizine name = "Sterilizine" id = "sterilizine" description = "Sterilizes wounds in preparation for surgery." @@ -22,17 +26,17 @@ color = "#C8A5DC" // rgb: 200, 165, 220 //makes you squeaky clean -/datum/reagent/sterilizine/reaction_mob(mob/living/M, method=TOUCH, volume) +/datum/reagent/medicine/sterilizine/reaction_mob(mob/living/M, method=TOUCH, volume) if(method == TOUCH) M.germ_level -= min(volume*20, M.germ_level) -/datum/reagent/sterilizine/reaction_obj(obj/O, volume) +/datum/reagent/medicine/sterilizine/reaction_obj(obj/O, volume) O.germ_level -= min(volume*20, O.germ_level) -/datum/reagent/sterilizine/reaction_turf(turf/T, volume) +/datum/reagent/medicine/sterilizine/reaction_turf(turf/T, volume) T.germ_level -= min(volume*20, T.germ_level) -/datum/reagent/synaptizine +/datum/reagent/medicine/synaptizine name = "Synaptizine" id = "synaptizine" description = "Synaptizine is used to treat neuroleptic shock. Can be used to help remove disabling symptoms such as paralysis." @@ -40,7 +44,7 @@ color = "#FA46FA" overdose_threshold = 40 -/datum/reagent/synaptizine/on_mob_life(mob/living/M) +/datum/reagent/medicine/synaptizine/on_mob_life(mob/living/M) M.AdjustDrowsy(-5) M.AdjustParalysis(-1) M.AdjustStunned(-1) @@ -50,7 +54,7 @@ M.adjustBrainLoss(-1.0) ..() -/datum/reagent/synaptizine/overdose_process(mob/living/M, severity) +/datum/reagent/medicine/synaptizine/overdose_process(mob/living/M, severity) var/effect = ..() if(severity == 1) if(effect <= 1) @@ -71,14 +75,14 @@ if(effect <= 15) M.adjustToxLoss(1) -/datum/reagent/mitocholide +/datum/reagent/medicine/mitocholide name = "Mitocholide" id = "mitocholide" description = "A specialized drug that stimulates the mitochondria of cells to encourage healing of internal organs." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 -/datum/reagent/mitocholide/on_mob_life(mob/living/M) +/datum/reagent/medicine/mitocholide/on_mob_life(mob/living/M) if(ishuman(M)) var/mob/living/carbon/human/H = M @@ -89,12 +93,12 @@ I.damage = max(I.damage-0.4, 0) ..() -/datum/reagent/mitocholide/reaction_obj(obj/O, volume) +/datum/reagent/medicine/mitocholide/reaction_obj(obj/O, volume) if(istype(O, /obj/item/organ)) var/obj/item/organ/Org = O Org.rejuvenate() -/datum/reagent/cryoxadone +/datum/reagent/medicine/cryoxadone name = "Cryoxadone" id = "cryoxadone" description = "A plasma mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 265K for it to metabolise correctly." @@ -102,7 +106,7 @@ color = "#0000C8" // rgb: 200, 165, 220 heart_rate_decrease = 1 -/datum/reagent/cryoxadone/on_mob_life(mob/living/M) +/datum/reagent/medicine/cryoxadone/on_mob_life(mob/living/M) if(M.bodytemperature < 265) M.adjustCloneLoss(-4) M.adjustOxyLoss(-10) @@ -112,7 +116,7 @@ M.status_flags &= ~DISFIGURED ..() -/datum/reagent/rezadone +/datum/reagent/medicine/rezadone name = "Rezadone" id = "rezadone" description = "A powder derived from fish toxin, Rezadone can effectively treat genetic damage as well as restoring minor wounds. Overdose will cause intense nausea and minor toxin damage." @@ -120,7 +124,7 @@ color = "#669900" // rgb: 102, 153, 0 overdose_threshold = 30 -/datum/reagent/rezadone/on_mob_life(mob/living/M) +/datum/reagent/medicine/rezadone/on_mob_life(mob/living/M) M.setCloneLoss(0) //Rezadone is almost never used in favor of cryoxadone. Hopefully this will change that. M.adjustCloneLoss(-1) //What? We just set cloneloss to 0. Why? Simple; this is so external organs properly unmutate. M.adjustBruteLoss(-1) @@ -128,12 +132,12 @@ M.status_flags &= ~DISFIGURED ..() -/datum/reagent/rezadone/overdose_process(mob/living/M, severity) +/datum/reagent/medicine/rezadone/overdose_process(mob/living/M, severity) M.adjustToxLoss(1) M.Dizzy(5) M.Jitter(5) -/datum/reagent/spaceacillin +/datum/reagent/medicine/spaceacillin name = "Spaceacillin" id = "spaceacillin" description = "An all-purpose antibiotic agent extracted from space fungus." @@ -142,7 +146,7 @@ metabolization_rate = 0.2 -/datum/reagent/silver_sulfadiazine +/datum/reagent/medicine/silver_sulfadiazine name = "Silver Sulfadiazine" id = "silver_sulfadiazine" description = "This antibacterial compound is used to treat burn victims." @@ -150,7 +154,7 @@ color = "#F0C814" metabolization_rate = 3 -/datum/reagent/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1) +/datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1) if(iscarbon(M)) if(method == TOUCH) M.adjustFireLoss(-volume) @@ -162,11 +166,11 @@ to_chat(M, "You feel sick...") ..() -/datum/reagent/silver_sulfadiazine/on_mob_life(mob/living/M) +/datum/reagent/medicine/silver_sulfadiazine/on_mob_life(mob/living/M) M.adjustFireLoss(-2*REM) ..() -/datum/reagent/styptic_powder +/datum/reagent/medicine/styptic_powder name = "Styptic Powder" id = "styptic_powder" description = "Styptic (aluminium sulfate) powder helps control bleeding and heal physical wounds." @@ -174,7 +178,7 @@ color = "#C8A5DC" metabolization_rate = 3 -/datum/reagent/styptic_powder/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1) +/datum/reagent/medicine/styptic_powder/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1) if(iscarbon(M)) if(method == TOUCH) M.adjustBruteLoss(-volume) @@ -187,11 +191,11 @@ to_chat(M, "You feel gross!") ..() -/datum/reagent/styptic_powder/on_mob_life(mob/living/M) +/datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/M) M.adjustBruteLoss(-2*REM) ..() -/datum/reagent/salglu_solution +/datum/reagent/medicine/salglu_solution name = "Saline-Glucose Solution" id = "salglu_solution" description = "This saline and glucose solution can help stabilize critically injured patients and cleanse wounds." @@ -200,7 +204,7 @@ penetrates_skin = 1 metabolization_rate = 0.15 -/datum/reagent/salglu_solution/on_mob_life(mob/living/M) +/datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/M) if(prob(33)) M.adjustBruteLoss(-2*REM) M.adjustFireLoss(-2*REM) @@ -210,14 +214,14 @@ H.vessel.add_reagent("blood", 1) ..() -/datum/reagent/synthflesh +/datum/reagent/medicine/synthflesh name = "Synthflesh" id = "synthflesh" description = "A resorbable microfibrillar collagen and protein mixture that can rapidly heal injuries when applied topically." reagent_state = LIQUID color = "#FFEBEB" -/datum/reagent/synthflesh/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1) +/datum/reagent/medicine/synthflesh/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1) if(iscarbon(M)) if(method == TOUCH) M.adjustBruteLoss(-1.5*volume) @@ -226,19 +230,19 @@ to_chat(M, "The synthetic flesh integrates itself into your wounds, healing you.") ..() -/datum/reagent/synthflesh/reaction_turf(turf/T, volume) //let's make a mess! +/datum/reagent/medicine/synthflesh/reaction_turf(turf/T, volume) //let's make a mess! if(volume >= 5 && !istype(T, /turf/space)) new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T) playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) -/datum/reagent/charcoal +/datum/reagent/medicine/charcoal name = "Charcoal" id = "charcoal" description = "Activated charcoal helps to absorb toxins." reagent_state = LIQUID color = "#000000" -/datum/reagent/charcoal/on_mob_life(mob/living/M) +/datum/reagent/medicine/charcoal/on_mob_life(mob/living/M) M.adjustToxLoss(-1.5*REM) if(prob(50)) for(var/datum/reagent/R in M.reagents.reagent_list) @@ -246,7 +250,7 @@ M.reagents.remove_reagent(R.id,1) ..() -/datum/reagent/omnizine +/datum/reagent/medicine/omnizine name = "Omnizine" id = "omnizine" description = "Omnizine is a highly potent healing medication that can be used to treat a wide range of injuries." @@ -256,7 +260,7 @@ overdose_threshold = 30 addiction_chance = 5 -/datum/reagent/omnizine/on_mob_life(mob/living/M) +/datum/reagent/medicine/omnizine/on_mob_life(mob/living/M) M.adjustToxLoss(-1*REM) M.adjustOxyLoss(-1*REM) M.adjustBruteLoss(-2*REM) @@ -265,7 +269,7 @@ M.AdjustLoseBreath(-1) ..() -/datum/reagent/omnizine/overdose_process(mob/living/M, severity) +/datum/reagent/medicine/omnizine/overdose_process(mob/living/M, severity) var/effect = ..() if(severity == 1) //lesser M.stuttering += 1 @@ -299,7 +303,7 @@ M.Dizzy(5) M.Weaken(3) -/datum/reagent/calomel +/datum/reagent/medicine/calomel name = "Calomel" id = "calomel" description = "This potent purgative rids the body of impurities. It is highly toxic however and close supervision is required." @@ -307,7 +311,7 @@ color = "#22AB35" metabolization_rate = 0.8 -/datum/reagent/calomel/on_mob_life(mob/living/M) +/datum/reagent/medicine/calomel/on_mob_life(mob/living/M) for(var/datum/reagent/R in M.reagents.reagent_list) if(R != src) M.reagents.remove_reagent(R.id,5) @@ -317,26 +321,26 @@ M.fakevomit() ..() -/datum/reagent/potass_iodide +/datum/reagent/medicine/potass_iodide name = "Potassium Iodide" id = "potass_iodide" description = "Potassium Iodide is a medicinal drug used to counter the effects of radiation poisoning." reagent_state = LIQUID color = "#B4DCBE" -/datum/reagent/potass_iodide/on_mob_life(mob/living/M) +/datum/reagent/medicine/potass_iodide/on_mob_life(mob/living/M) if(prob(80)) M.radiation = max(0, M.radiation-1) ..() -/datum/reagent/pen_acid +/datum/reagent/medicine/pen_acid name = "Pentetic Acid" id = "pen_acid" description = "Pentetic Acid is an aggressive chelation agent. May cause tissue damage. Use with caution." reagent_state = LIQUID color = "#C8A5DC" -/datum/reagent/pen_acid/on_mob_life(mob/living/M) +/datum/reagent/medicine/pen_acid/on_mob_life(mob/living/M) for(var/datum/reagent/R in M.reagents.reagent_list) if(R != src) M.reagents.remove_reagent(R.id,4) @@ -348,7 +352,7 @@ M.adjustFireLoss(1*REM) ..() -/datum/reagent/sal_acid +/datum/reagent/medicine/sal_acid name = "Salicylic Acid" id = "sal_acid" description = "This is a is a standard salicylate pain reliever and fever reducer." @@ -358,7 +362,7 @@ shock_reduction = 25 overdose_threshold = 25 -/datum/reagent/sal_acid/on_mob_life(mob/living/M) +/datum/reagent/medicine/sal_acid/on_mob_life(mob/living/M) if(prob(55)) M.adjustBruteLoss(-2*REM) if(ishuman(M)) @@ -367,7 +371,7 @@ H.shock_stage = 0 ..() -/datum/reagent/salbutamol +/datum/reagent/medicine/salbutamol name = "Salbutamol" id = "salbutamol" description = "Salbutamol is a common bronchodilation medication for asthmatics. It may help with other breathing problems as well." @@ -375,12 +379,12 @@ color = "#00FFFF" metabolization_rate = 0.2 -/datum/reagent/salbutamol/on_mob_life(mob/living/M) +/datum/reagent/medicine/salbutamol/on_mob_life(mob/living/M) M.adjustOxyLoss(-6*REM) M.AdjustLoseBreath(-4) ..() -/datum/reagent/perfluorodecalin +/datum/reagent/medicine/perfluorodecalin name = "Perfluorodecalin" id = "perfluorodecalin" description = "This experimental perfluoronated solvent has applications in liquid breathing and tissue oxygenation. Use with caution." @@ -389,7 +393,7 @@ metabolization_rate = 0.2 addiction_chance = 20 -/datum/reagent/perfluorodecalin/on_mob_life(mob/living/carbon/human/M) +/datum/reagent/medicine/perfluorodecalin/on_mob_life(mob/living/carbon/human/M) M.adjustOxyLoss(-25*REM) if(volume >= 4) M.LoseBreath(6) @@ -399,7 +403,7 @@ M.adjustFireLoss(-1*REM) ..() -/datum/reagent/ephedrine +/datum/reagent/medicine/ephedrine name = "Ephedrine" id = "ephedrine" description = "Ephedrine is a plant-derived stimulant." @@ -409,7 +413,7 @@ overdose_threshold = 35 addiction_chance = 25 -/datum/reagent/ephedrine/on_mob_life(mob/living/M) +/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/M) M.AdjustDrowsy(-5) M.AdjustParalysis(-1) M.AdjustStunned(-1) @@ -424,7 +428,7 @@ M.adjustFireLoss(-1) ..() -/datum/reagent/ephedrine/overdose_process(mob/living/M, severity) +/datum/reagent/medicine/ephedrine/overdose_process(mob/living/M, severity) var/effect = ..() if(severity == 1) if(effect <= 1) @@ -445,7 +449,7 @@ if(effect <= 15) M.emote("collapse") -/datum/reagent/diphenhydramine +/datum/reagent/medicine/diphenhydramine name = "Diphenhydramine" id = "diphenhydramine" description = "Anti-allergy medication. May cause drowsiness, do not operate heavy machinery while using this." @@ -453,7 +457,7 @@ color = "#5BCBE1" addiction_chance = 10 -/datum/reagent/diphenhydramine/on_mob_life(mob/living/M) +/datum/reagent/medicine/diphenhydramine/on_mob_life(mob/living/M) M.AdjustJitter(-20) M.reagents.remove_reagent("histamine",3) M.reagents.remove_reagent("itching_powder",3) @@ -465,7 +469,7 @@ M.visible_message("[M] looks a bit dazed.") ..() -/datum/reagent/morphine +/datum/reagent/medicine/morphine name = "Morphine" id = "morphine" description = "A strong but highly addictive opiate painkiller with sedative side effects." @@ -475,7 +479,7 @@ addiction_chance = 50 shock_reduction = 50 -/datum/reagent/morphine/on_mob_life(mob/living/M) +/datum/reagent/medicine/morphine/on_mob_life(mob/living/M) M.AdjustJitter(-25) switch(current_cycle) if(1 to 15) @@ -492,7 +496,7 @@ H.shock_stage = 0 ..() -/datum/reagent/oculine/on_mob_life(mob/living/M) +/datum/reagent/medicine/oculine/on_mob_life(mob/living/M) if(prob(80)) if(ishuman(M)) var/mob/living/carbon/human/H = M @@ -511,7 +515,7 @@ M.SetEarDeaf(0) ..() -/datum/reagent/oculine +/datum/reagent/medicine/oculine name = "Oculine" id = "oculine" description = "Oculine is a saline eye medication with mydriatic and antibiotic effects." @@ -520,7 +524,7 @@ metabolization_rate = 0.4 var/cycle_amount = 0 -/datum/reagent/atropine +/datum/reagent/medicine/atropine name = "Atropine" id = "atropine" description = "Atropine is a potent cardiac resuscitant but it can causes confusion, dizzyness and hyperthermia." @@ -529,7 +533,7 @@ metabolization_rate = 0.2 overdose_threshold = 25 -/datum/reagent/atropine/on_mob_life(mob/living/M) +/datum/reagent/medicine/atropine/on_mob_life(mob/living/M) M.AdjustDizzy(1) M.Confused(5) if(prob(4)) @@ -546,7 +550,7 @@ M.reagents.remove_reagent("sarin", 20) ..() -/datum/reagent/epinephrine +/datum/reagent/medicine/epinephrine name = "Epinephrine" id = "epinephrine" description = "Epinephrine is a potent neurotransmitter, used in medical emergencies to halt anaphylactic shock and prevent cardiac arrest." @@ -555,7 +559,7 @@ metabolization_rate = 0.2 overdose_threshold = 20 -/datum/reagent/epinephrine/on_mob_life(mob/living/M) +/datum/reagent/medicine/epinephrine/on_mob_life(mob/living/M) M.AdjustDrowsy(-5) if(prob(20)) M.AdjustParalysis(-1) @@ -577,7 +581,7 @@ M.adjustFireLoss(-1*REM) ..() -/datum/reagent/epinephrine/overdose_process(mob/living/M, severity) +/datum/reagent/medicine/epinephrine/overdose_process(mob/living/M, severity) var/effect = ..() if(severity == 1) if(effect <= 1) @@ -598,7 +602,7 @@ if(effect <= 15) M.emote("collapse") -/datum/reagent/strange_reagent +/datum/reagent/medicine/strange_reagent name = "Strange Reagent" id = "strange_reagent" description = "A glowing green fluid highly reminiscent of nuclear waste." @@ -606,7 +610,7 @@ color = "#A0E85E" metabolization_rate = 0.2 -/datum/reagent/strange_reagent/reaction_mob(mob/living/M, method=TOUCH, volume) +/datum/reagent/medicine/strange_reagent/reaction_mob(mob/living/M, method=TOUCH, volume) if(isanimal(M)) if(method == TOUCH) var/mob/living/simple_animal/SM = M @@ -638,31 +642,23 @@ add_logs(M, M, "revived", object="strange reagent") //Yes, the logs say you revived yourself. ..() -/datum/reagent/strange_reagent/on_mob_life(mob/living/M) +/datum/reagent/medicine/strange_reagent/on_mob_life(mob/living/M) if(prob(10)) M.adjustBruteLoss(2*REM) M.adjustToxLoss(2*REM) ..() -/datum/reagent/life - name = "Life" - id = "life" - description = "Can create a life form, however it is not guaranteed to be friendly. May want to have Security on hot standby." - reagent_state = LIQUID - color = "#C8A5DC" - metabolization_rate = 0.2 - -/datum/reagent/mannitol/on_mob_life(mob/living/M) +/datum/reagent/medicine/mannitol/on_mob_life(mob/living/M) M.adjustBrainLoss(-3) ..() -/datum/reagent/mannitol +/datum/reagent/medicine/mannitol name = "Mannitol" id = "mannitol" description = "Mannitol is a sugar alcohol that can help alleviate cranial swelling." color = "#D1D1F1" -/datum/reagent/mutadone/on_mob_life(mob/living/carbon/human/M) +/datum/reagent/medicine/mutadone/on_mob_life(mob/living/carbon/human/M) M.SetJitter(0) var/needs_update = M.mutations.len > 0 || M.disabilities > 0 @@ -680,19 +676,19 @@ H.update_mutations() ..() -/datum/reagent/mutadone +/datum/reagent/medicine/mutadone name = "Mutadone" id = "mutadone" description = "Mutadone is an experimental bromide that can cure genetic abnomalities." color = "#5096C8" -/datum/reagent/antihol +/datum/reagent/medicine/antihol name = "Antihol" id = "antihol" description = "A medicine which quickly eliminates alcohol in the body." color = "#009CA8" -/datum/reagent/antihol/on_mob_life(mob/living/M) +/datum/reagent/medicine/antihol/on_mob_life(mob/living/M) M.SetSlur(0) M.AdjustDrunk(-4) M.reagents.remove_all_type(/datum/reagent/ethanol, 8, 0, 1) @@ -700,14 +696,14 @@ M.adjustToxLoss(-2.0) ..() -/datum/reagent/stimulants +/datum/reagent/medicine/stimulants name = "Stimulants" id = "stimulants" description = "Increases run speed and eliminates stuns, can heal minor damage. If overdosed it will deal toxin damage and stun." color = "#C8A5DC" metabolization_rate = 0.4 -/datum/reagent/stimulants/on_mob_life(mob/living/M) +/datum/reagent/medicine/stimulants/on_mob_life(mob/living/M) if(volume > 5) M.adjustOxyLoss(-5*REM) M.adjustToxLoss(-5*REM) @@ -729,7 +725,7 @@ M.Stun(3) ..() -/datum/reagent/stimulants/on_mob_delete(mob/living/M) +/datum/reagent/medicine/stimulants/on_mob_delete(mob/living/M) M.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE ..() @@ -764,25 +760,25 @@ M.adjustToxLoss(1*REM) M.AdjustLoseBreath(1) -/datum/reagent/insulin +/datum/reagent/medicine/insulin name = "Insulin" id = "insulin" description = "A hormone generated by the pancreas responsible for metabolizing carbohydrates and fat in the bloodstream." reagent_state = LIQUID color = "#C8A5DC" -/datum/reagent/insulin/on_mob_life(mob/living/M) +/datum/reagent/medicine/insulin/on_mob_life(mob/living/M) M.reagents.remove_reagent("sugar", 5) ..() -/datum/reagent/simethicone +/datum/reagent/medicine/simethicone name = "Simethicone" id = "simethicone" description = "This strange liquid seems to have no bubbles on the surface." color = "#14AA46" -/datum/reagent/teporone +/datum/reagent/medicine/teporone name = "Teporone" id = "teporone" description = "This experimental plasma-based compound seems to regulate body temperature." @@ -791,21 +787,21 @@ addiction_chance = 20 overdose_threshold = 50 -/datum/reagent/teporone/on_mob_life(mob/living/M) +/datum/reagent/medicine/teporone/on_mob_life(mob/living/M) if(M.bodytemperature > 310) M.bodytemperature = max(310, M.bodytemperature - (40 * TEMPERATURE_DAMAGE_COEFFICIENT)) else if(M.bodytemperature < 311) M.bodytemperature = min(310, M.bodytemperature + (40 * TEMPERATURE_DAMAGE_COEFFICIENT)) ..() -/datum/reagent/haloperidol +/datum/reagent/medicine/haloperidol name = "Haloperidol" id = "haloperidol" description = "Haloperidol is a powerful antipsychotic and sedative. Will help control psychiatric problems, but may cause brain damage." reagent_state = LIQUID color = "#FFDCFF" -/datum/reagent/haloperidol/on_mob_life(mob/living/M) +/datum/reagent/medicine/haloperidol/on_mob_life(mob/living/M) M.reagents.remove_reagent("crank", 5) M.reagents.remove_reagent("methamphetamine", 5) M.reagents.remove_reagent("space_drugs", 5) @@ -827,14 +823,14 @@ M.adjustBrainLoss(1) ..() -/datum/reagent/ether +/datum/reagent/medicine/ether name = "Ether" id = "ether" description = "A strong anesthetic and sedative." reagent_state = LIQUID color = "#96DEDE" -/datum/reagent/ether/on_mob_life(mob/living/M) +/datum/reagent/medicine/ether/on_mob_life(mob/living/M) M.AdjustJitter(-25) switch(current_cycle) if(1 to 15) @@ -847,12 +843,32 @@ M.Drowsy(20) ..() +//virus-specific symptom reagents + +/datum/reagent/medicine/synaphydramine + name = "Diphen-Synaptizine" + id = "synaphydramine" + description = "Reduces drowsiness and hallucinations while also purging histamine from the body." + color = "#EC536D" // rgb: 236, 83, 109 + +/datum/reagent/medicine/synaphydramine/on_mob_life(mob/living/M) + M.AdjustDrowsy(-5) + if(holder.has_reagent("lsd")) + holder.remove_reagent("lsd", 5) + if(holder.has_reagent("histamine")) + holder.remove_reagent("histamine", 5) + M.AdjustHallucinate(-10) + if(prob(30)) + M.adjustToxLoss(1) + ..() + + ////////////////////////////// // Synth-Meds // ////////////////////////////// //Degreaser: Mild Purgative / Lube Remover -/datum/reagent/degreaser +/datum/reagent/medicine/degreaser name = "Degreaser" id = "degreaser" description = "An industrial degreaser which can be used to clean residual build-up from machinery and surfaces." @@ -860,12 +876,12 @@ color = "#CC7A00" process_flags = SYNTHETIC -/datum/reagent/degreaser/reaction_turf(turf/simulated/T, volume) +/datum/reagent/medicine/degreaser/reaction_turf(turf/simulated/T, volume) if(volume >= 1 && istype(T)) if(T.wet) T.MakeDry(TURF_WET_LUBE) -/datum/reagent/degreaser/on_mob_life(mob/living/M) +/datum/reagent/medicine/degreaser/on_mob_life(mob/living/M) if(prob(50)) //Same effects as coffee, to help purge ill effects like paralysis M.AdjustParalysis(-1) M.AdjustStunned(-1) @@ -881,7 +897,7 @@ ..() //Liquid Solder: Mannitol -/datum/reagent/liquid_solder +/datum/reagent/medicine/liquid_solder name = "Liquid Solder" id = "liquid_solder" description = "A solution formulated to clean and repair damaged connections in posibrains while in use." @@ -889,7 +905,7 @@ color = "#D7B395" process_flags = SYNTHETIC -/datum/reagent/liquid_solder/on_mob_life(mob/living/M) +/datum/reagent/medicine/liquid_solder/on_mob_life(mob/living/M) M.adjustBrainLoss(-3) ..() @@ -910,7 +926,7 @@ ..() -/datum/reagent/omnizine_diluted +/datum/reagent/medicine/omnizine_diluted name = "Diluted Omnizine" id = "weak_omnizine" description = "Slowly heals all damage types. A far weaker substitute than actual omnizine." @@ -919,14 +935,14 @@ overdose_threshold = 30 metabolization_rate = 0.1 -/datum/reagent/omnizine_diluted/on_mob_life(mob/living/M) +/datum/reagent/medicine/omnizine_diluted/on_mob_life(mob/living/M) M.adjustToxLoss(-0.5*REM) M.adjustOxyLoss(-0.5*REM) M.adjustBruteLoss(-0.5*REM) M.adjustFireLoss(-0.5*REM) ..() -/datum/reagent/omnizine_diluted/overdose_process(mob/living/M, severity) +/datum/reagent/medicine/omnizine_diluted/overdose_process(mob/living/M, severity) var/effect = ..() if(severity == 1) //lesser M.stuttering += 1 diff --git a/code/modules/reagents/chemistry/reagents/misc.dm b/code/modules/reagents/chemistry/reagents/misc.dm index 2b0b51ad89e..3a33fcddcd2 100644 --- a/code/modules/reagents/chemistry/reagents/misc.dm +++ b/code/modules/reagents/chemistry/reagents/misc.dm @@ -177,8 +177,6 @@ reagent_state = LIQUID color = "#322D00" - -// Ported from Bay as part of the Botany Update // Allows you to make planks from any plant that has this reagent in it. // Also vines with this reagent are considered dense. /datum/reagent/woodpulp @@ -188,8 +186,6 @@ reagent_state = LIQUID color = "#B97A57" -var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d11141","#00b159","#00aedb","#f37735","#ffc425","#008744","#0057e7","#d62d20","#ffa700") - /datum/reagent/oil name = "Oil" id = "oil" @@ -271,13 +267,6 @@ var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d111 T.color = pick(random_color_list) ..() -/datum/reagent/corgium - name = "Corgium" - id = "corgium" - description = "Corgi in liquid form. Don't ask." - reagent_state = LIQUID - color = "#F9A635" - /datum/reagent/hair_dye name = "Quantum Hair Dye" id = "hair_dye" @@ -409,6 +398,17 @@ var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d111 break ..() +/datum/reagent/royal_bee_jelly + name = "royal bee jelly" + id = "royal_bee_jelly" + description = "Royal Bee Jelly, if injected into a Queen Space Bee said bee will split into two bees." + color = "#00ff80" + +/datum/reagent/royal_bee_jelly/on_mob_life(mob/living/M) + if(prob(2)) + M.say(pick("Bzzz...","BZZ BZZ","Bzzzzzzzzzzz...")) + ..() + ///Alchemical Reagents /datum/reagent/eyenewt @@ -444,15 +444,4 @@ var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d111 id = "triplepiss" description = "Ewwwwwwwww." reagent_state = LIQUID - color = "#857400" - -/datum/reagent/royal_bee_jelly - name = "royal bee jelly" - id = "royal_bee_jelly" - description = "Royal Bee Jelly, if injected into a Queen Space Bee said bee will split into two bees." - color = "#00ff80" - -/datum/reagent/royal_bee_jelly/on_mob_life(mob/living/M) - if(prob(2)) - M.say(pick("Bzzz...","BZZ BZZ","Bzzzzzzzzzzz...")) - ..() \ No newline at end of file + color = "#857400" \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index 4585e8df667..b4510044594 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -732,21 +732,6 @@ H.heart_attack = 1 // rip in pepperoni ..() -/datum/reagent/concentrated_initro - name = "Concentrated Initropidril" - id = "concentrated_initro" - description = "A guaranteed heart-stopper!" - reagent_state = LIQUID - color = "#AB1CCF" - metabolization_rate = 0.4 - -/datum/reagent/concentrated_initro/on_mob_life(mob/living/M) - if(volume >=5) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(!H.heart_attack) - H.heart_attack = 1 // rip in pepperoni - /datum/reagent/pancuronium name = "Pancuronium" id = "pancuronium"