Skip to content

Commit

Permalink
More addictions, more drugs.
Browse files Browse the repository at this point in the history
  • Loading branch information
EgorDinamit committed Jul 17, 2023
1 parent 533180f commit 00b951a
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 3 deletions.
2 changes: 2 additions & 0 deletions baystation12.dme
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
31 changes: 28 additions & 3 deletions code/modules/reagents/Chemistry-Reagents/toxins/toxins_drugs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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


Expand All @@ -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)
Expand Down Expand Up @@ -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(
Expand Down Expand Up @@ -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.",
Expand Down Expand Up @@ -237,3 +245,20 @@
H.seizure()
if(prob(10))
to_chat(M, SPAN_DANGER("<font size = [rand(3,4)]>[pick(overdose_messages)]</font>"))

/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)
15 changes: 15 additions & 0 deletions code/modules/reagents/Chemistry-Recipes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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"
Expand Down
30 changes: 30 additions & 0 deletions code/modules/reagents/addiction/hallucinogens.dm
Original file line number Diff line number Diff line change
@@ -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?!")))
30 changes: 30 additions & 0 deletions code/modules/reagents/addiction/psionics.dm
Original file line number Diff line number Diff line change
@@ -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 ..()

0 comments on commit 00b951a

Please sign in to comment.