diff --git a/maps/exodus/exodus.dm b/maps/exodus/exodus.dm index 6c13c0ddb9c..0a4a3d310d8 100644 --- a/maps/exodus/exodus.dm +++ b/maps/exodus/exodus.dm @@ -11,7 +11,8 @@ #include "../../mods/gamemodes/mixed/_mixed.dme" #include "../../mods/content/mundane.dm" - #include "../../mods/content/bigpharma/_bigpharma.dme" + #include "../../mods/content/baychems/_baychems.dme" +// #include "../../mods/content/bigpharma/_bigpharma.dme" #include "../../mods/content/corporate/_corporate.dme" #include "../../mods/content/government/_government.dme" #include "../../mods/content/matchmaking/_matchmaking.dme" diff --git a/maps/modpack_testing/modpack_testing.dm b/maps/modpack_testing/modpack_testing.dm index 0e75223cde4..192d9606c42 100644 --- a/maps/modpack_testing/modpack_testing.dm +++ b/maps/modpack_testing/modpack_testing.dm @@ -17,6 +17,7 @@ #include "../../mods/content/scaling_descriptors.dm" #include "../../mods/content/dungeon_loot/_dungeon_loot.dme" + #include "../../mods/content/baychems/_baychems.dme" #include "../../mods/content/bigpharma/_bigpharma.dme" #include "../../mods/content/byond_membership/_byond_membership.dm" #include "../../mods/content/corporate/_corporate.dme" diff --git a/mods/content/baychems/_baychems.dm b/mods/content/baychems/_baychems.dm new file mode 100644 index 00000000000..e13030743b4 --- /dev/null +++ b/mods/content/baychems/_baychems.dm @@ -0,0 +1,3 @@ +// Renames chems to their Bay equivalent. +/decl/modpack/baychems + name = "Baystation 12 Chemical Names" \ No newline at end of file diff --git a/mods/content/baychems/_baychems.dme b/mods/content/baychems/_baychems.dme new file mode 100644 index 00000000000..6430865b8ef --- /dev/null +++ b/mods/content/baychems/_baychems.dme @@ -0,0 +1,11 @@ +#ifndef MODPACK_BAYCHEMS +#define MODPACK_BAYCHEMS +#include "_baychems.dm" +#include "chems_drugs.dm" +#include "chems_medicines.dm" +#include "chems_painkillers.dm" +#include "chems_poisons.dm" +#include "items.dm" +#include "reactions.dm" +#include "pills.dm" +#endif \ No newline at end of file diff --git a/mods/content/baychems/chems_drugs.dm b/mods/content/baychems/chems_drugs.dm new file mode 100644 index 00000000000..09d678c7f89 --- /dev/null +++ b/mods/content/baychems/chems_drugs.dm @@ -0,0 +1,28 @@ +/decl/material/liquid/amphetamines + name = "hyperzine" + +/decl/material/liquid/narcotics + name = "impedrezene" + +/decl/material/liquid/sedatives + name = "midazolam" + +/decl/material/liquid/hallucinogenics + name = "mindbreaker toxin" + +/decl/material/liquid/opium + name = "opium" + lore_text = "A milky substance extracted from space poppy. Very useful in the creation of opiates." + taste_description = "incredible bitterness" + color = "#a68480" + overdose = REAGENTS_OVERDOSE * 0.5 + value = 2 + uid = "chem_opium" + +/decl/material/liquid/opium/affect_blood(var/mob/living/M, var/alien, var/removed, var/datum/reagents/holder) + M.add_chemical_effect(CE_PAINKILLER, 40) + M.add_chemical_effect(CE_BLOCKAGE, 10) //raw plant matter in bloodstream + M.add_chemical_effect(CE_TOXIN, 1) + SET_STATUS_MAX(M, STAT_SLUR, 40) + SET_STATUS_MAX(M, STAT_DIZZY, 40) + SET_STATUS_MAX(M, STAT_BLURRY, 40) \ No newline at end of file diff --git a/mods/content/baychems/chems_medicines.dm b/mods/content/baychems/chems_medicines.dm new file mode 100644 index 00000000000..1b1c8fbd518 --- /dev/null +++ b/mods/content/baychems/chems_medicines.dm @@ -0,0 +1,116 @@ +// RENAMED: +/decl/material/liquid/stabilizer + name = "inaprovaline" + +/decl/material/liquid/brute_meds + name = "bicaridine" + lore_text = "Bicaridine is an analgesic medication and can be used to treat blunt trauma." + +/decl/material/liquid/burn_meds + name = "kelotane" + lore_text = "Kelotane is a drug used to treat burns." + +/decl/material/liquid/antitoxins + name = "dylovene" + lore_text = "Dylovene is a broad-spectrum antitoxin used to neutralize poisons before they can do significant harm." + +/decl/material/liquid/oxy_meds + name = "dexalin" + lore_text = "Dexalin is used in the treatment of oxygen deprivation." + color = "#0080ff" + uid = "chem_dexalin" + +/decl/material/liquid/oxy_meds/dexalinp + name = "dexalin plus" + lore_text = "Dexalin Plus is used in the treatment of oxygen deprivation. It is highly effective." + color = "#0040ff" + overdose = REAGENTS_OVERDOSE * 0.5 + value = 3.7 + uid = "chem_dexalin_plus" + +/decl/material/liquid/oxy_meds/dexalinp/affect_blood(var/mob/living/M, var/alien, var/removed, var/datum/reagents/holder) + M.add_chemical_effect(CE_OXYGENATED, 2) // change to add_chemical_effect_max later + holder.remove_reagent(/decl/material/gas/carbon_monoxide, 3 * removed) + +/decl/material/liquid/regenerator + name = "tricordrazine" + lore_text = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries." + +/decl/material/liquid/neuroannealer + name = "alkysine" + lore_text = "Alkysine is a drug used to lessen the damage to neurological tissue after a injury. Can aid in healing brain tissue." + +/decl/material/liquid/eyedrops + name = "imidazoline" + +/decl/material/liquid/retrovirals + name = "ryetalyn" + lore_text = "Ryetalyn can cure all genetic abnomalities via a catalytic process." + +/decl/material/liquid/antirads + name = "hyronalin" + lore_text = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning." + +/decl/material/liquid/antibiotics + name = "spaceacillin" + lore_text = "An all-purpose antiviral agent." + +/decl/material/liquid/antiseptic + name = "sterilizine" + +/decl/material/liquid/stimulants + name = "methylphenidate" + lore_text = "Improves the ability to concentrate." + +/decl/material/liquid/antidepressants + name = "citalopram" + lore_text = "Stabilizes the mind a little." + +// NEW, NOT RENAMED: +/decl/material/liquid/antidepressants/paroxetine + name = "paroxetine" + value = 3.5 + uid = "chem_paroxetine" + +/decl/material/liquid/antidepressants/paroxetine/affect_blood(var/mob/living/M, var/alien, var/removed, var/datum/reagents/holder) + var/volume = REAGENT_VOLUME(holder, type) + if(volume <= 0.1 && LAZYACCESS(M.chem_doses, type) >= 0.5 && world.time > REAGENT_DATA(holder, type) + 5 MINUTES) + LAZYSET(holder.reagent_data, type, world.time) + to_chat(M, SPAN_WARNING("Your mind feels much less stable...")) + else + M.add_chemical_effect(CE_MIND, 2) + M.adjust_hallucination(-10) + if(world.time > REAGENT_DATA(holder, type) + 5 MINUTES) + LAZYSET(holder.reagent_data, type, world.time) + if(prob(90)) + to_chat(M, SPAN_NOTICE("Your mind feels much more stable.")) + else + to_chat(M, SPAN_WARNING("Your mind breaks apart...")) + M.set_hallucination(200, 100) + +/decl/material/liquid/burn_meds/dermaline + name = "dermaline" + lore_text = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue." + taste_description = "bitterness" + taste_mult = 1.5 + color = "#ff8000" + overdose = REAGENTS_OVERDOSE * 0.5 + scannable = 1 + value = 3.9 + uid = "chem_dermaline" + +/decl/material/liquid/burn_meds/dermaline/affect_blood(mob/living/M, alien, removed, var/datum/reagents/holder) + ..() + M.heal_organ_damage(0, 6 * removed) // 6 extra damage on top of kelotane's 6 + +/decl/material/liquid/antirads/arithrazine + name = "arithrazine" + lore_text = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning." + color = "#008000" + value = 2.7 + uid = "chem_arithrazine" + +/decl/material/liquid/antirads/arithrazine/affect_blood(var/mob/living/M, var/alien, var/removed, var/datum/reagents/holder) + M.radiation = max(M.radiation - 70 * removed, 0) + if(prob(60)) + M.take_organ_damage(4 * removed, 0) \ No newline at end of file diff --git a/mods/content/baychems/chems_painkillers.dm b/mods/content/baychems/chems_painkillers.dm new file mode 100644 index 00000000000..c3cb76572bc --- /dev/null +++ b/mods/content/baychems/chems_painkillers.dm @@ -0,0 +1,82 @@ +// RENAMED: +/decl/material/liquid/painkillers/strong + name = "tramadol" + lore_text = "A simple, yet effective opioid painkiller. Don't mix with alcohol." + sedation = 0.05 + additional_effect_threshold = 20 + breathloss_severity = 1 + slowdown_severity = 1.2 + blurred_vision = 0.5 + stuttering_severity = 0.5 + weakness_severity = 0 + slur_severity = 0 + confusion_severity = 0.2 + dizziness_severity = 1 + +// NEW, NOT RENAMED: +/decl/material/liquid/painkillers + name = "paracetamol" + lore_text = "Most probably know this as Tylenol, but this chemical is a mild, simple painkiller." + overdose = 60 + pain_power = 35 + narcotic = FALSE + breathloss_severity = 0 //Not an opioid. Should not suppress breathing. + uid = "chem_paracetamol" + +// NEW: +/decl/material/liquid/painkillers/nefopam + name = "nefopam" //better in every way than paracetamol. Very minor side effects. + lore_text = "A strong, effective non-opioid alternative to tramadol." + color = "#cfe2f3" + narcotic = FALSE + sedation = 0 + additional_effect_threshold = 15 + breathloss_severity = 0 //Not an opioid. Should not suppress breathing. + slowdown_severity = 0.8 //we should still prevent SOME abuse. + blurred_vision = 2 //balance + weakness_severity = 0 + stuttering_severity = 0.2 + slur_severity = 0.2 + confusion_severity = 0 + dizziness_severity = 0.5 + uid = "chem_nefopam" + +/decl/material/liquid/painkillers/morphine + name = "morphine" //similar to tramadol, more effective but more expensive to prepare, also greater side effects + lore_text = "An effective, strong opioid painkiller. Don't mix with alcohol." + color = "#864794" + overdose = 10 + metabolism = 0.02 + pain_power = 160 + effective_dose = 0.20 + sedation = 1 + additional_effect_threshold = 5 //160 pain power is no joke. + breathloss_severity = 2 + slowdown_severity = 2 + blurred_vision = 0.5 + stuttering_severity = 0.5 + slur_severity = 1 + confusion_severity = 1 + dizziness_severity = 1 + narcotic = TRUE + uid = "chem_morphine" + +/decl/material/liquid/painkillers/fentanyl + name = "fentanyl" //similar to morphine, but should hit you like a truck and prevent pain shock at all costs + lore_text = "An incredibly powerful opioid painkiller, often utilized as a surgical sedative. Don't mix with alcohol." + color = "#cfe2f3" + overdose = 2 //mix it with water or something else first + metabolism = 0.01 //but also lasts for a long time + pain_power = 500 + effective_dose = 0.10 + sedation = 3 //Acts as a sedative, and also prevents antags from taking fentanyl and becoming invincible. + additional_effect_threshold = 0.25 //Very low threshold. Hard to abuse. + breathloss_severity = 4 + slowdown_severity = 2 + blurred_vision = 1 + stuttering_severity = 1 + slur_severity = 1 + confusion_severity = 1 + dizziness_severity = 2 + narcotic = TRUE + uid = "chem_fentanyl" diff --git a/mods/content/baychems/chems_poisons.dm b/mods/content/baychems/chems_poisons.dm new file mode 100644 index 00000000000..cdc88009e30 --- /dev/null +++ b/mods/content/baychems/chems_poisons.dm @@ -0,0 +1,6 @@ +/decl/material/liquid/paralytics + name = "vecuronium bromide" + +/decl/material/liquid/presyncopics + name = "cryptobiolin" + lore_text = "Cryptobiolin causes presyncopic effects such as confusion and dizziness." \ No newline at end of file diff --git a/mods/content/baychems/items.dm b/mods/content/baychems/items.dm new file mode 100644 index 00000000000..8319b487be0 --- /dev/null +++ b/mods/content/baychems/items.dm @@ -0,0 +1,71 @@ +/obj/item/chems/hypospray/autoinjector/pouch_auto/oxy_meds + name = "emergency oxygenation autoinjector" + +/obj/item/rig_module/chem_dispenser + charges = list( + list("dexalin", "dexalin", /decl/material/liquid/oxy_meds, 80), + list("inaprovaline", "inaprovaline", /decl/material/liquid/stabilizer, 80), + list("dylovene", "dylovene", /decl/material/liquid/antitoxins, 80), + list("hyronalin", "hyronalin", /decl/material/liquid/antirads, 80), + list("spaceacillin", "spaceacillin", /decl/material/liquid/antibiotics, 80), + list("tramadol", "tramadol", /decl/material/liquid/painkillers, 80) + ) + +/obj/item/rig_module/chem_dispenser/ninja + //just over a syringe worth of each. Want more? Go refill. Gives the ninja another reason to have to show their face. + charges = list( + list("dexalin", "dexalin", /decl/material/liquid/oxy_meds, 20), + list("inaprovaline", "inaprovaline", /decl/material/liquid/stabilizer, 20), + list("dylovene", "dylovene", /decl/material/liquid/antitoxins, 20), + list("glucose", "glucose", /decl/material/liquid/nutriment/glucose, 80), + list("hyronalin", "hyronalin", /decl/material/liquid/antirads, 20), + list("kelotane", "kelotane", /decl/material/liquid/burn_meds, 20), + list("spaceacillin", "spaceacillin", /decl/material/liquid/antibiotics, 20), + list("tramadol", "tramadol", /decl/material/liquid/painkillers, 20) + ) + + +/obj/item/chems/glass/bottle/opium/populate_reagents() + add_to_reagents(/decl/material/liquid/opium, volume) + . = ..() + + +DEFINE_CARTRIDGE_FOR_CHEM(opium, /decl/material/liquid/opium) + +/obj/item/chems/glass/bottle/opium/populate_reagents() + var/opium_amount = round(reagents.maximum_volume / 2) + add_to_reagents(/decl/material/liquid/opium, opium_amount) + . = ..() + +/obj/machinery/chemical_dispenser/full + spawn_cartridges = list( + /obj/item/chems/chem_disp_cartridge/hydrazine, + /obj/item/chems/chem_disp_cartridge/lithium, + /obj/item/chems/chem_disp_cartridge/carbon, + /obj/item/chems/chem_disp_cartridge/ammonia, + /obj/item/chems/chem_disp_cartridge/acetone, + /obj/item/chems/chem_disp_cartridge/sodium, + /obj/item/chems/chem_disp_cartridge/aluminium, + /obj/item/chems/chem_disp_cartridge/silicon, + /obj/item/chems/chem_disp_cartridge/phosphorus, + /obj/item/chems/chem_disp_cartridge/sulfur, + /obj/item/chems/chem_disp_cartridge/hclacid, + /obj/item/chems/chem_disp_cartridge/potassium, + /obj/item/chems/chem_disp_cartridge/iron, + /obj/item/chems/chem_disp_cartridge/copper, + /obj/item/chems/chem_disp_cartridge/mercury, + /obj/item/chems/chem_disp_cartridge/radium, + /obj/item/chems/chem_disp_cartridge/water, + /obj/item/chems/chem_disp_cartridge/ethanol, + /obj/item/chems/chem_disp_cartridge/sugar, + /obj/item/chems/chem_disp_cartridge/sacid, + /obj/item/chems/chem_disp_cartridge/tungsten, + /obj/item/chems/chem_disp_cartridge/opium + ) + +/obj/item/chems/glass/bottle/tramadol + desc = "A small bottle of tramadol, an effective but dangerous and addictive painkiller. Do not mix with alcohol." + +/obj/item/chems/glass/bottle/tramadol/populate_reagents() + add_to_reagents(/decl/material/liquid/painkillers/strong, reagents.maximum_volume) + . = ..() diff --git a/mods/content/baychems/pills.dm b/mods/content/baychems/pills.dm new file mode 100644 index 00000000000..85376de696c --- /dev/null +++ b/mods/content/baychems/pills.dm @@ -0,0 +1,67 @@ +/obj/item/chems/pill/antitox + name = "dylovene (25u)" + +/obj/item/chems/pill/stox + name = "soporific (15u)" + +/obj/item/chems/pill/burn_meds + name = "kelotane (15u)" + +/obj/item/chems/pill/painkillers + name = "paracetamol (15u)" + +/obj/item/chems/pill/strong_painkillers + name = "tramadol (15u)" + +/obj/item/chems/pill/stabilizer + name = "inaprovaline (30u)" + +/obj/item/chems/pill/oxygen + name = "dexalin (15u)" + +/obj/item/chems/pill/brute_meds + name = "bicaridine (20u)" + +/obj/item/chems/pill/antibiotics + name = "spaceacillin (10u)" + +/obj/item/chems/pill/stimulants + name = "methylphenidate (15u)" + +/obj/item/chems/pill/antidepressants + name = "citalopram (15u)" + +/obj/item/chems/pill/antirads + name = "hyronalin (7u)" + +////Bottles + +/obj/item/pill_bottle/antitox + labeled_name = "dylovene" + +/obj/item/pill_bottle/brute_meds + labeled_name = "bicaridine" + +/obj/item/pill_bottle/oxygen + labeled_name = "dexalin" + +/obj/item/pill_bottle/antitoxins + labeled_name = "dylovene" + +/obj/item/pill_bottle/adrenaline + labeled_name = "inaprovaline" + +/obj/item/pill_bottle/burn_meds + labeled_name = "kelotane" + +/obj/item/pill_bottle/antibiotics + labeled_name = "spaceacillin" + +/obj/item/pill_bottle/painkillers + labeled_name = "tramadol" + +/obj/item/pill_bottle/antidepressants + labeled_name = "citalopram" + +/obj/item/pill_bottle/stimulants + labeled_name = "methylphenidate" diff --git a/mods/content/baychems/reactions.dm b/mods/content/baychems/reactions.dm new file mode 100644 index 00000000000..0700ad800b0 --- /dev/null +++ b/mods/content/baychems/reactions.dm @@ -0,0 +1,61 @@ +/decl/chemical_reaction/drug/arithrazine + name = "Arithrazine" + result = /decl/material/liquid/antirads/arithrazine + required_reagents = list(/decl/material/liquid/antirads = 1, /decl/material/liquid/fuel/hydrazine = 1) + result_amount = 2 + +/decl/chemical_reaction/drug/dermaline + name = "Dermaline" + result = /decl/material/liquid/burn_meds/dermaline + required_reagents = list(/decl/material/liquid/acetone = 1, /decl/material/solid/phosphorus = 1, /decl/material/liquid/burn_meds = 1) + result_amount = 3 + minimum_temperature = -150 CELSIUS + maximum_temperature = -50 CELSIUS + +/decl/chemical_reaction/drug/oxy_meds + name = "Dexalin" + result_amount = 1 + required_reagents = list(/decl/material/liquid/acetone = 1, /decl/material/liquid/acid = 0.1) + catalysts = list(/decl/material/solid/metal/tungsten = 5) + +/decl/chemical_reaction/drug/dexalinp + name = "Dexalin Plus" + result = /decl/material/liquid/oxy_meds/dexalinp + required_reagents = list(/decl/material/liquid/oxy_meds = 1, /decl/material/solid/carbon = 1, /decl/material/solid/metal/iron = 1) + result_amount = 3 + +/decl/chemical_reaction/drug/paracetamol + name = "Paracetamol" + result = /decl/material/liquid/painkillers + required_reagents = list(/decl/material/liquid/ethanol = 1, /decl/material/liquid/nutriment/sugar = 1, /decl/material/liquid/water = 1) + result_amount = 3 + +/decl/chemical_reaction/drug/nefopam + name = "Nefopam" + result = /decl/material/liquid/painkillers/nefopam + required_reagents = list(/decl/material/solid/carbon = 1, /decl/material/liquid/painkillers = 3) + result_amount = 1 + +/decl/chemical_reaction/drug/painkillers + name = "Tramadol" + result = /decl/material/liquid/painkillers + required_reagents = list(/decl/material/liquid/opium = 1, /decl/material/liquid/ethanol = 1, /decl/material/liquid/acetone = 1) + result_amount = 3 + +/decl/chemical_reaction/drug/morphine + name = "Morphine" + result = /decl/material/liquid/painkillers/morphine + required_reagents = list(/decl/material/liquid/opium = 1, /decl/material/liquid/painkillers = 1) + result_amount = 2 + +/decl/chemical_reaction/drug/fentanyl + name = "Fentanyl" + result = /decl/material/liquid/painkillers/fentanyl + required_reagents = list(/decl/material/liquid/opium = 1, /decl/material/liquid/painkillers/morphine = 1, /decl/material/liquid/sedatives = 1, /decl/material/liquid/hallucinogenics = 1) + result_amount = 2 + +/decl/chemical_reaction/drug/paroxetine + name = "Paroxetine" + result = /decl/material/liquid/antidepressants/paroxetine + required_reagents = list(/decl/material/liquid/hallucinogenics = 1, /decl/material/liquid/acetone = 1, /decl/material/liquid/stabilizer = 1) + result_amount = 3 \ No newline at end of file