From 00b951a7faa6dde6df045d6c446dfcb7ca7ac2d2 Mon Sep 17 00:00:00 2001 From: EgorDinamit Date: Mon, 17 Jul 2023 18:29:00 +0300 Subject: [PATCH] More addictions, more drugs. --- baystation12.dme | 2 ++ .../Chemistry-Reagents/toxins/toxins_drugs.dm | 31 +++++++++++++++++-- code/modules/reagents/Chemistry-Recipes.dm | 15 +++++++++ .../reagents/addiction/hallucinogens.dm | 30 ++++++++++++++++++ code/modules/reagents/addiction/psionics.dm | 30 ++++++++++++++++++ 5 files changed, 105 insertions(+), 3 deletions(-) create mode 100644 code/modules/reagents/addiction/hallucinogens.dm create mode 100644 code/modules/reagents/addiction/psionics.dm diff --git a/baystation12.dme b/baystation12.dme index 81fcad5b26a..4b2f3f8b5eb 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -2903,7 +2903,9 @@ #include "code\modules\reagents\addiction\_addiction.dm" #include "code\modules\reagents\addiction\alcohol.dm" #include "code\modules\reagents\addiction\gottheit.dm" +#include "code\modules\reagents\addiction\hallucinogens.dm" #include "code\modules\reagents\addiction\opiate.dm" +#include "code\modules\reagents\addiction\psionics.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Core.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Dispenser.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Drinks.dm" diff --git a/code/modules/reagents/Chemistry-Reagents/toxins/toxins_drugs.dm b/code/modules/reagents/Chemistry-Reagents/toxins/toxins_drugs.dm index 79c708796be..f9ae0879d22 100644 --- a/code/modules/reagents/Chemistry-Reagents/toxins/toxins_drugs.dm +++ b/code/modules/reagents/Chemistry-Reagents/toxins/toxins_drugs.dm @@ -13,6 +13,7 @@ overdose = REAGENTS_OVERDOSE value = 2.8 should_admin_log = TRUE + addiction_types = list(/datum/addiction/hallucinogens = 2) /datum/reagent/space_drugs/affect_blood(mob/living/carbon/M, alien, removed) if (alien == IS_DIONA) @@ -41,12 +42,16 @@ metabolism = REM * 0.25 overdose = REAGENTS_OVERDOSE value = 2.5 + addiction_types = list(/datum/addiction/hallucinogens = 2) /datum/reagent/serotrotium/affect_blood(mob/living/carbon/M, alien, removed) - if (alien == IS_DIONA) + if(alien == IS_DIONA) return - if (prob(7)) - M.emote(pick("twitch", "drool", "moan", "gasp")) + M.adjustToxLoss(2 * removed) + M.add_chemical_effect(CE_SPEEDBOOST, 0.3) + M.add_chemical_effect(CE_MIND, 1) + if(prob(7)) + M.emote(pick("twitch", "drool", "moan", "smile", "laugh")) return @@ -61,6 +66,7 @@ overdose = REAGENTS_OVERDOSE value = 0.6 should_admin_log = TRUE + addiction_types = list(/datum/addiction/hallucinogens = 5) /datum/reagent/mindbreaker_toxin/affect_blood(mob/living/carbon/M, alien, removed) if (alien == IS_DIONA) @@ -130,6 +136,7 @@ metabolism = REM overdose = 25 should_admin_log = TRUE + addiction_types = list(/datum/addiction/psionics = 5) // M A X I M U M C H E E S E var/global/list/dose_messages = list( @@ -199,6 +206,7 @@ color = "#d0ff00" metabolism = 1 overdose = 5 + addiction_types = list(/datum/addiction/psionics = 20) // You usually only take small amount var/global/list/dose_messages = list( "Your name is called. It is your time.", @@ -237,3 +245,20 @@ H.seizure() if(prob(10)) to_chat(M, SPAN_DANGER("[pick(overdose_messages)]")) + +/datum/reagent/mensvir + name = "Mensvir" + taste_description = "brain liquid" + description = "A somewhat expensive hallucinogenic drug used by psionic users to either get high or keep addictions in check. Has several benefits, but it is still addictive." + reagent_state = LIQUID + color = "#d5f29d" + addiction_types = list(/datum/addiction/psionics = 2, /datum/addiction/hallucinogens = 1) + +/datum/reagent/mensvir/affect_blood(mob/living/carbon/M, alien, removed) + if(!M.psi) // Sorry, elitist drug + return + + M.hallucination(5, 25) + M.add_chemical_effect(CE_PULSE, 1) + M.add_chemical_effect(CE_THIRDEYE, 1) + M.psi.stamina = min(M.psi.max_stamina, M.psi.stamina + 1) diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index c14375d535b..1113d34482b 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -137,6 +137,14 @@ minimum_temperature = 50 CELSIUS maximum_temperature = (50 CELSIUS) + 100 +/datum/chemical_reaction/serotrotium + name = "Serotrotium" + result = /datum/reagent/serotrotium + required_reagents = list(/datum/reagent/ethanol = 1, /datum/reagent/sugar = 1, /datum/reagent/lithium = 1) + result_amount = 3 + minimum_temperature = 40 CELSIUS + maximum_temperature = (40 CELSIUS) + 100 + /datum/chemical_reaction/pacid name = "Polytrinic acid" result = /datum/reagent/acid/polytrinic @@ -2342,6 +2350,13 @@ /datum/reagent/gold = 10 ) +/datum/chemical_reaction/mensvir + name = "Mensvir" + result = /datum/reagent/mensvir + result_amount = 1 + minimum_temperature = 40 CELSIUS + required_reagents = list(/datum/reagent/mindbreaker_toxin = 1, /datum/reagent/crystallizing_agent = 1, /datum/reagent/gold = 1) + // tea expansion pack content - black tea drinks /datum/chemical_reaction/icetea name = "Iced Tea" diff --git a/code/modules/reagents/addiction/hallucinogens.dm b/code/modules/reagents/addiction/hallucinogens.dm new file mode 100644 index 00000000000..aa865b43cd9 --- /dev/null +++ b/code/modules/reagents/addiction/hallucinogens.dm @@ -0,0 +1,30 @@ +// Hallucinogens +/datum/addiction/hallucinogens + name = "Hallucinogens" + withdrawal_stage_messages = list("I feel so empty...", "I wonder what the machine elves are up to?..", "I need to see the beautiful colors again!!") + +/datum/addiction/hallucinogens/WithdrawalStage1Process(mob/living/carbon/victim, delta_time) + . = ..() + if(prob(15)) + victim.emote(pick("twitch", "drool")) + +/datum/addiction/hallucinogens/WithdrawalStage2Process(mob/living/carbon/victim, delta_time) + . = ..() + victim.hallucination(20, 20) + if(prob(4)) + victim.Weaken(3) + to_chat(victim, SPAN_WARNING("You feel as if your legs fell off...")) + else if(prob(2)) + victim.Paralyse(2) + to_chat(victim, SPAN_DANGER(pick("The voices won't stop!!", "Ugh, it's too difficult to stay awake...", "What is going on?!"))) + +/datum/addiction/hallucinogens/WithdrawalStage3Process(mob/living/carbon/victim, delta_time) + . = ..() + victim.hallucination(50, 50) + victim.eye_blurry = clamp(victim.eye_blurry + 3 * delta_time, victim.eye_blurry, 50) + if(prob(6)) + victim.Weaken(6) + to_chat(victim, SPAN_WARNING("Your legs feel unreal...")) + else if(prob(2)) + victim.Paralyse(4) + to_chat(victim, SPAN_DANGER(pick("The voices won't stop!!", "Ugh, it's too difficult to stay awake...", "What is going on?!"))) diff --git a/code/modules/reagents/addiction/psionics.dm b/code/modules/reagents/addiction/psionics.dm new file mode 100644 index 00000000000..8854ffcdcb2 --- /dev/null +++ b/code/modules/reagents/addiction/psionics.dm @@ -0,0 +1,30 @@ +// Psionics +/datum/addiction/psionics + name = "psionics" + withdrawal_stage_messages = list("My mind aches.", "My mind wants more power...", "My head will explode! I need more power!") + +/datum/addiction/psionics/WithdrawalStage1Process(mob/living/carbon/victim, delta_time) + . = ..() + // Deplete the psi stamina + if(victim.psi && victim.psi.stamina > 5) + victim.psi.spend_power(0.5 * delta_time) + +/datum/addiction/psionics/WithdrawalStage2Process(mob/living/carbon/victim, delta_time) + . = ..() + if(victim.psi && victim.psi.stamina > 5) + victim.psi.spend_power(1 * delta_time) + victim.adjustBrainLoss(1 * delta_time) + victim.hallucination(10, 50) + +/datum/addiction/psionics/WithdrawalStage3Process(mob/living/carbon/victim, delta_time) + . = ..() + if(victim.psi && victim.psi.stamina > 5) + victim.psi.spend_power(2 * delta_time) + victim.adjustBrainLoss(2 * delta_time) + victim.hallucination(30, 100) + +/datum/addiction/psionics/LoseAddiction(mob/living/carbon/victim) + // BLAST THEM!!! + if(victim.psi) + victim.psi.spend_power(victim.psi.stamina) + return ..()