Added new drugs from lore and otherwise (#16773)

* Initial commit of new drugs

Start on caromeg and oracle

Further work on caromeg

Fix nicotine and caromeg

Begin populating map

Designer cocaine effects

Weaken heroin, Joy now causes genetic damage

Added an artificial alternative to morphine, tramarine, that can be used in its place.

Nerf new opioids, fix tramaline recipe

Added special mentholated adhomian cigarettes, for NKA cigarettes

General fixes

Fix recipe pathing

Add coca leaves, cocaine recipes, and coca drinks

Update Chemistry-Reagents-Medicine.dm

Null name for abstract drug class

Remove abstract_class from reagents (shouldn't be used there)

* Oracle sprites by Wezzy

* .

* Begin resolving issues from code review

* Remove all per-player data from drug singletons

* Resolve Arrow's code review

* Apply suggestions from code review

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

Update code/modules/hydroponics/seed_datums/smokables.dm

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

* Removed coca plants from the standard garden and hydroponics vendors (they remain as contraband and in the xenobotany garden)

* Fix merge conflict errors caused by snack PR

---------

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
Co-authored-by: Cody Brittain <cbrittain10@live.com>
This commit is contained in:
Cody Brittain
2023-10-20 13:55:13 -04:00
committed by GitHub
parent 38b107398d
commit 4e2b58f02a
43 changed files with 893 additions and 203 deletions
+4 -4
View File
@@ -142,7 +142,7 @@
var/list/possible_reagents = list(
/singleton/reagent/leporazine,
/singleton/reagent/clonexadone,
/singleton/reagent/space_drugs,
/singleton/reagent/drugs/mms,
/singleton/reagent/thermite,
/singleton/reagent/cetahydramine,
/singleton/reagent/sterilizine,
@@ -164,11 +164,11 @@
/singleton/reagent/pneumalin,
/singleton/reagent/acid/polyacid,
/singleton/reagent/mutagen,
/singleton/reagent/impedrezene,
/singleton/reagent/night_juice,
/singleton/reagent/drugs/impedrezene,
/singleton/reagent/drugs/night_juice,
/singleton/reagent/toxin/cardox,
/singleton/reagent/toxin/stimm,
/singleton/reagent/ambrosia_extract)
/singleton/reagent/drugs/ambrosia_extract)
var/reagent_type = pick(possible_reagents)
wanted_reagent = new reagent_type
@@ -58,6 +58,7 @@
cigarettes["Royal Choice cigarette packet"] = /obj/item/storage/box/fancy/cigarettes/nka
cigarettes["Eriuyushi Sunset cigarette packet"] = /obj/item/storage/box/fancy/cigarettes/federation
cigarettes["Xaqixal Dyn Fields cigarette packet"] = /obj/item/storage/box/fancy/cigarettes/dyn
cigarettes["Natural Vysokan Soothsayer oracle cigarette packet"] = /obj/item/storage/box/fancy/cigarettes/oracle
gear_tweaks += new /datum/gear_tweak/path(cigarettes)
/datum/gear/smoking/chew
@@ -79,8 +80,8 @@
gear_tweaks += new /datum/gear_tweak/path(chews)
/datum/gear/smoking/leaves
display_name = "tobacco leaf selection"
description = "A selection of tobacco leaves."
display_name = "smokable leaf selection"
description = "A selection of smokable leaves."
path = /obj/item/storage/chewables/rollable
cost = 2
flags = GEAR_HAS_DESC_SELECTION
@@ -92,6 +93,8 @@
leaves["Agyre Lake tobacco leaves"] = /obj/item/storage/chewables/rollable
leaves["Excelsior Epsilon tobacco leaves"] = /obj/item/storage/chewables/rollable/fine
leaves["Golden Sol tobacco leaves"] = /obj/item/storage/chewables/rollable/nico
leaves["Vysokan Plains oracle leaves"] = /obj/item/storage/chewables/rollable/oracle
leaves["Velhalktai Marathon oracle leaves"] = /obj/item/storage/chewables/rollable/vedamor
gear_tweaks += new /datum/gear_tweak/path(leaves)
/datum/gear/smoking/pipe
@@ -47,7 +47,7 @@
/singleton/recipe/spacylibertyduff
appliance = OVEN
reagents = list(/singleton/reagent/water = 5, /singleton/reagent/alcohol/vodka = 5, /singleton/reagent/psilocybin = 5)
reagents = list(/singleton/reagent/water = 5, /singleton/reagent/alcohol/vodka = 5, /singleton/reagent/drugs/psilocybin = 5)
result = /obj/item/reagent_containers/food/snacks/spacylibertyduff
/singleton/recipe/hotdiggitydonk //heated donk, in lieu of a microwave
@@ -55,7 +55,7 @@
/singleton/recipe/rofflewaffles
appliance = OVEN
reagents = list(/singleton/reagent/psilocybin = 5, /singleton/reagent/sugar = 10)
reagents = list(/singleton/reagent/drugs/psilocybin = 5, /singleton/reagent/sugar = 10)
items = list(
/obj/item/reagent_containers/food/snacks/dough,
/obj/item/reagent_containers/food/snacks/dough
+7 -7
View File
@@ -11,10 +11,10 @@
/singleton/reagent/spacecleaner = 6,
/singleton/reagent/nutriment = 6,
/singleton/reagent/capsaicin/condensed = 2,
/singleton/reagent/mindbreaker = 0.5,
/singleton/reagent/drugs/mindbreaker = 0.5,
/singleton/reagent/lube = 4,
/singleton/reagent/drink/banana = 3,
/singleton/reagent/space_drugs = 3,
/singleton/reagent/drugs/mms = 3,
/singleton/reagent/water/holywater = 1,
/singleton/reagent/drink/hot_coco = 3,
/singleton/reagent/hyperzine = 0.75,
@@ -38,12 +38,12 @@
/singleton/reagent/sodiumchloride = 2,
/singleton/reagent/drink/zorasoda/venomgrass = 1,
/singleton/reagent/nutriment/protein/egg = 2,
/singleton/reagent/serotrotium = 1,
/singleton/reagent/psilocybin = 0.5,
/singleton/reagent/drugs/serotrotium = 1,
/singleton/reagent/drugs/psilocybin = 0.5,
/singleton/reagent/toxin/spectrocybin = 0.1,
/singleton/reagent/ambrosia_extract = 0.3,
/singleton/reagent/skrell_nootropic = 0.5,
/singleton/reagent/xuxigas = 2
/singleton/reagent/drugs/ambrosia_extract = 0.3,
/singleton/reagent/drugs/skrell_nootropic = 0.5,
/singleton/reagent/drugs/xuxigas = 2
)
/datum/event/vent_clog/setup()
+1 -1
View File
@@ -92,7 +92,7 @@
descriptors |= "radioactive"
if(reagents.has_reagent(/singleton/reagent/toxin/amatoxin) || reagents.has_reagent(/singleton/reagent/toxin))
descriptors |= "poisonous"
if(reagents.has_reagent(/singleton/reagent/psilocybin) || reagents.has_reagent(/singleton/reagent/ambrosia_extract) || reagents.has_reagent(/singleton/reagent/space_drugs) || reagents.has_reagent(/singleton/reagent/mindbreaker))
if(reagents.has_reagent(/singleton/reagent/drugs/psilocybin) || reagents.has_reagent(/singleton/reagent/drugs/ambrosia_extract) || reagents.has_reagent(/singleton/reagent/drugs/mms) || reagents.has_reagent(/singleton/reagent/drugs/mindbreaker))
descriptors |= "hallucinogenic"
if(reagents.has_reagent(/singleton/reagent/bicaridine) || reagents.has_reagent(/singleton/reagent/dylovene))
descriptors |= "medicinal"
+6 -6
View File
@@ -426,7 +426,7 @@
/singleton/reagent/butazoline,
/singleton/reagent/blood,
/singleton/reagent/cryoxadone,
/singleton/reagent/cryptobiolin,
/singleton/reagent/drugs/cryptobiolin,
/singleton/reagent/toxin/cyanide,
/singleton/reagent/dermaline,
/singleton/reagent/dexalin,
@@ -434,9 +434,9 @@
/singleton/reagent/hydrazine,
/singleton/reagent/hyperzine,
/singleton/reagent/hyronalin,
/singleton/reagent/impedrezene,
/singleton/reagent/drugs/impedrezene,
/singleton/reagent/mercury,
/singleton/reagent/mindbreaker,
/singleton/reagent/drugs/mindbreaker,
/singleton/reagent/inaprovaline,
/singleton/reagent/peridaxon,
/singleton/reagent/toxin/phoron,
@@ -446,7 +446,7 @@
/singleton/reagent/rezadone,
/singleton/reagent/ryetalyn,
/singleton/reagent/slimejelly,
/singleton/reagent/space_drugs,
/singleton/reagent/drugs/mms,
/singleton/reagent/soporific,
/singleton/reagent/sugar,
/singleton/reagent/synaptizine,
@@ -455,8 +455,8 @@
/singleton/reagent/mortaphenyl,
/singleton/reagent/water,
/singleton/reagent/woodpulp,
/singleton/reagent/ambrosia_extract,
/singleton/reagent/skrell_nootropic,
/singleton/reagent/drugs/ambrosia_extract,
/singleton/reagent/drugs/skrell_nootropic,
/singleton/reagent/toxin/berserk
)
@@ -23,7 +23,7 @@
name = "poppies"
seed_name = "poppy"
display_name = "poppies"
chems = list(/singleton/reagent/nutriment = list(1,20), /singleton/reagent/bicaridine = list(1,10))
chems = list(/singleton/reagent/nutriment = list(1,20), /singleton/reagent/morphine = list(1,10))
kitchen_tag = "poppy"
/datum/seed/flower/poppy/setup_traits()
@@ -79,3 +79,4 @@
set_trait(TRAIT_PLANT_COLOUR,"#6B8C5E")
set_trait(TRAIT_PLANT_ICON,"flower")
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
+22 -1
View File
@@ -41,4 +41,25 @@
set_trait(TRAIT_IDEAL_LIGHT, 6)
/obj/item/seeds/teaseed
seed_type = "tea"
seed_type = "tea"
/datum/seed/coca
name = "coca"
seed_name = "coca leaf"
display_name = "coca plant"
chems = list(/singleton/reagent/nutriment/cocagrounds = list(2,10))
kitchen_tag = "coca"
/datum/seed/coca/setup_traits()
..()
set_trait(TRAIT_MATURATION, 3)
set_trait(TRAIT_PRODUCTION, 3)
set_trait(TRAIT_YIELD, 3)
set_trait(TRAIT_POTENCY, 2)
set_trait(TRAIT_PRODUCT_ICON, "herb")
set_trait(TRAIT_PRODUCT_COLOUR, "#056608")
set_trait(TRAIT_PLANT_ICON, "herb")
set_trait(TRAIT_IDEAL_LIGHT, 6)
/obj/item/seeds/cocaseed
seed_type = "coca"
@@ -147,7 +147,7 @@
seed_name = "reishi"
display_name = "reishi"
mutants = list("libertycap","glowshroom")
chems = list(/singleton/reagent/nutriment = list(1,50), /singleton/reagent/psilocybin = list(3,5))
chems = list(/singleton/reagent/nutriment = list(1,50), /singleton/reagent/drugs/psilocybin = list(3,5))
/datum/seed/mushroom/hallucinogenic/setup_traits()
..()
@@ -168,7 +168,7 @@
seed_name = "liberty cap"
display_name = "liberty cap mushrooms"
mutants = list("ghostmushroom")
chems = list(/singleton/reagent/nutriment = list(1), /singleton/reagent/soporific = list(3,3), /singleton/reagent/psilocybin = list(1,25))
chems = list(/singleton/reagent/nutriment = list(1), /singleton/reagent/soporific = list(3,3), /singleton/reagent/drugs/psilocybin = list(1,25))
/datum/seed/mushroom/hallucinogenic/strong/setup_traits()
..()
@@ -187,7 +187,7 @@
seed_name = "fly amanita"
display_name = "fly amanita mushrooms"
mutants = list("destroyingangel","plastic","panocelium")
chems = list(/singleton/reagent/nutriment = list(1), /singleton/reagent/toxin/amatoxin = list(3,3), /singleton/reagent/psilocybin = list(1,25))
chems = list(/singleton/reagent/nutriment = list(1), /singleton/reagent/toxin/amatoxin = list(3,3), /singleton/reagent/drugs/psilocybin = list(1,25))
/datum/seed/mushroom/poison/setup_traits()
..()
@@ -208,7 +208,7 @@
seed_name = "destroying angel"
display_name = "destroying angel mushrooms"
mutants = null
chems = list(/singleton/reagent/nutriment = list(1,50), /singleton/reagent/toxin/amatoxin = list(13,3), /singleton/reagent/psilocybin = list(1,25))
chems = list(/singleton/reagent/nutriment = list(1,50), /singleton/reagent/toxin/amatoxin = list(13,3), /singleton/reagent/drugs/psilocybin = list(1,25))
/datum/seed/mushroom/poison/death/setup_traits()
..()
@@ -228,7 +228,7 @@
seed_name = "panocelium"
display_name = "panocelium mushrooms"
mutants = null
chems = list(/singleton/reagent/nutriment = list(1,50), /singleton/reagent/toxin/panotoxin = list(10,3), /singleton/reagent/psilocybin = list(1,25))
chems = list(/singleton/reagent/nutriment = list(1,50), /singleton/reagent/toxin/panotoxin = list(10,3), /singleton/reagent/drugs/psilocybin = list(1,25))
/datum/seed/mushroom/poison/panocelium/setup_traits()
..()
@@ -70,7 +70,7 @@
seed_name = "ambrosia vulgaris"
display_name = "ambrosia vulgaris"
mutants = list("ambrosiadeus")
chems = list(/singleton/reagent/nutriment = list(1), /singleton/reagent/ambrosia_extract = list(4,8), /singleton/reagent/kelotane = list(1,8,1), /singleton/reagent/bicaridine = list(1,10,1), /singleton/reagent/toxin = list(1,10))
chems = list(/singleton/reagent/nutriment = list(1), /singleton/reagent/drugs/ambrosia_extract = list(4,8), /singleton/reagent/kelotane = list(1,8,1), /singleton/reagent/bicaridine = list(1,10,1), /singleton/reagent/toxin = list(1,10))
kitchen_tag = "ambrosia"
/datum/seed/ambrosia/setup_traits()
@@ -93,7 +93,7 @@
seed_name = "ambrosia deus"
display_name = "ambrosia deus"
mutants = null
chems = list(/singleton/reagent/nutriment = list(1), /singleton/reagent/bicaridine = list(1,8), /singleton/reagent/synaptizine = list(1,8,1), /singleton/reagent/ambrosia_extract = list(4,10))
chems = list(/singleton/reagent/nutriment = list(1), /singleton/reagent/bicaridine = list(1,8), /singleton/reagent/synaptizine = list(1,8,1), /singleton/reagent/drugs/ambrosia_extract = list(4,10))
kitchen_tag = "ambrosiadeus"
/datum/seed/ambrosia/deus/setup_traits()
@@ -103,3 +103,44 @@
/obj/item/seeds/ambrosiadeusseed
seed_type = "ambrosiadeus"
////////////////
// Oracle //
////////////////
/datum/seed/oracle
name = "oracle"
seed_name = "oracle"
display_name = "oracle"
mutants = list("vedamororacle")
chems = list(/singleton/reagent/nutriment = list(1,5), /singleton/reagent/toxin/oracle = list(4,8))
/datum/seed/oracle/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT, 1)
set_trait(TRAIT_MATURATION, 6)
set_trait(TRAIT_PRODUCTION, 6)
set_trait(TRAIT_YIELD, 6)
set_trait(TRAIT_POTENCY, 5)
set_trait(TRAIT_PRODUCT_ICON, "tobacco")
set_trait(TRAIT_PRODUCT_COLOUR, "#ad5555")
set_trait(TRAIT_PLANT_COLOUR, "#ffa2a2")
set_trait(TRAIT_PLANT_ICON, "flower")
set_trait(TRAIT_IDEAL_LIGHT, 6)
/obj/item/seeds/oracleseed
seed_type = "oracle"
/datum/seed/oracle/vedamor
name = "vedamororacle"
seed_name = "vedamor oracle"
display_name = "vedamor oracle"
mutants = null
chems = list(/singleton/reagent/nutriment = list(1,5), /singleton/reagent/toxin/oracle/rich = list(4,8))
/datum/seed/oracle/vedamor/setup_traits()
..()
set_trait(TRAIT_PRODUCT_COLOUR,"#ed1c1c")
set_trait(TRAIT_PLANT_COLOUR,"#ad5555")
/obj/item/seeds/vedamororacleseed
seed_type = "vedamororacle"
+3
View File
@@ -80,6 +80,7 @@
/obj/item/seeds/mollusc = 15,
/obj/item/seeds/nifberries = 2,
/obj/item/seeds/onionseed = 3,
/obj/item/seeds/oracleseed = 3,
/obj/item/seeds/orangeseed = 3,
/obj/item/seeds/peanutseed = 3,
/obj/item/seeds/peppercornseed = 3,
@@ -137,6 +138,7 @@
/obj/item/seeds/chantermycelium = 3,
/obj/item/seeds/cherryseed = 3,
/obj/item/seeds/chiliseed = 3,
/obj/item/seeds/cocaseed = 3,
/obj/item/seeds/cocoapodseed = 3,
/obj/item/seeds/coffeeseed = 3,
/obj/item/seeds/cornseed = 3,
@@ -159,6 +161,7 @@
/obj/item/seeds/nettleseed = 2,
/obj/item/seeds/nifberries = 2,
/obj/item/seeds/onionseed = 3,
/obj/item/seeds/oracleseed = 3,
/obj/item/seeds/orangeseed = 3,
/obj/item/seeds/peanutseed = 3,
/obj/item/seeds/peppercornseed = 3,
+1 -1
View File
@@ -62,7 +62,7 @@
/singleton/reagent/toxin/plantbgone = 3,
/singleton/reagent/cryoxadone = -3,
/singleton/reagent/radium = 2,
/singleton/reagent/raskara_dust = 2.5
/singleton/reagent/drugs/raskara_dust = 2.5
)
var/global/list/nutrient_reagents = list(
/singleton/reagent/drink/milk = 0.1,
+7 -7
View File
@@ -765,22 +765,22 @@
/singleton/reagent/polysomnine/beer2
value = 2.2
/singleton/reagent/space_drugs
/singleton/reagent/drugs/mms
value = 2.8
/singleton/reagent/serotrotium
/singleton/reagent/drugs/serotrotium
value = 2.5
/singleton/reagent/cryptobiolin
/singleton/reagent/drugs/cryptobiolin
value = 2
/singleton/reagent/impedrezene
/singleton/reagent/drugs/impedrezene
value = 1.8
/singleton/reagent/mindbreaker
/singleton/reagent/drugs/mindbreaker
value = 0.6
/singleton/reagent/psilocybin
/singleton/reagent/drugs/psilocybin
value = 0.7
/singleton/reagent/aslimetoxin
@@ -813,5 +813,5 @@
/singleton/reagent/toxin/undead
value = 300
/singleton/reagent/ambrosia_extract
/singleton/reagent/drugs/ambrosia_extract
value = 2.8
@@ -134,7 +134,7 @@
// ====
/datum/medical_effect/itch
name = "Itch"
triggers = list(/singleton/reagent/space_drugs = 10)
triggers = list(/singleton/reagent/drugs/mms = 10)
cures = list(/singleton/reagent/inaprovaline)
cure_message = "The itching stops..."
@@ -396,7 +396,7 @@
if(istype(A, /mob/living))
var/mob/living/L = A
if(L.reagents)
var/madhouse = pick(/singleton/reagent/psilocybin,/singleton/reagent/mindbreaker,/singleton/reagent/impedrezene,/singleton/reagent/cryptobiolin,/singleton/reagent/soporific,/singleton/reagent/mutagen)
var/madhouse = pick(/singleton/reagent/drugs/psilocybin,/singleton/reagent/drugs/mindbreaker,/singleton/reagent/drugs/impedrezene,/singleton/reagent/drugs/cryptobiolin,/singleton/reagent/soporific,/singleton/reagent/mutagen)
var/madhouse_verbal_component = pick(thoughts)
L.reagents.add_reagent(madhouse, 3)
to_chat(L, "<span class='alium'><b><i>[madhouse_verbal_component]</i></b></span>")
+1 -1
View File
@@ -225,7 +225,7 @@
icon_state = "pen_blue"
colour = "blue"
origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5)
reagents_to_add = list(/singleton/reagent/wulumunusha = 2, /singleton/reagent/pacifier = 15, /singleton/reagent/cryptobiolin = 10)
reagents_to_add = list(/singleton/reagent/wulumunusha = 2, /singleton/reagent/pacifier = 15, /singleton/reagent/drugs/cryptobiolin = 10)
/obj/item/pen/reagent/hyperzine
icon_state = "pen_yellow"
@@ -1,27 +1,53 @@
/singleton/reagent/space_drugs
name = "Mercury Monolithium Sucrose"
description = "Mercury Monolithium Sucrose, or MMS, is a synthetic relaxant. It's both abused and used as a chemical precursor. Lasts twice as long when inhaled."
#define DRUG_MESSAGE_DELAY 90 SECONDS
/singleton/reagent/drugs
name = null
description = DESC_PARENT
taste_description = "a bad investment"
taste_mult = 1.2
color = "#1a1414"
reagent_state = LIQUID
color = "#60A584"
metabolism = REM * 0.5
breathe_met = REM
ingest_met = REM * 1.5
overdose = REAGENTS_OVERDOSE
taste_description = "bitterness"
taste_mult = 0.4
breathe_met = REM * 0.5 * 0.5
/singleton/reagent/space_drugs/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD(pick("You close your eyes, and when they open, everything appears so much more vibrant.", "You feel a wave of pleasure suddenly rush over you.", "This is already the best decision you've ever made.")))
var/effect_messages = TRUE
var/list/initial_effect_message_list = list("You close your eyes, and when they open, everything appears so much more vibrant.", "You feel a wave of pleasure suddenly rush over you.", "This is already the best decision you've ever made.")
var/list/sober_message_list = list("You feel like garbage now...", "Your head aches.")
/singleton/reagent/space_drugs/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/power = 0
var/ignores_drug_resistance = FALSE
/singleton/reagent/drugs/initial_effect(mob/living/carbon/human/M, alien, datum/reagents/holder)
if (effect_messages)
var/msg = pick(initial_effect_message_list)
to_chat(M, SPAN_GOOD("[msg]"))
/singleton/reagent/drugs/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
M.add_chemical_effect(CE_PULSE, -1)
var/power = (M.chem_doses[type] + REAGENT_VOLUME(holder, type))/2 //Larger the dose and volume, the more affected you are by the chemical.
if(HAS_TRAIT(M, TRAIT_ORIGIN_DRUG_RESISTANCE))
power = (M.chem_doses[type] + REAGENT_VOLUME(holder, type))/2 //Larger the dose and volume, the more affected you are by the chemical.
if(HAS_TRAIT(M, TRAIT_ORIGIN_DRUG_RESISTANCE) && !ignores_drug_resistance)
power = max(power - 2, 0)
/singleton/reagent/drugs/final_effect(mob/living/carbon/M, datum/reagents/holder)
if (effect_messages)
var/msg = pick(sober_message_list)
to_chat(M, SPAN_WARNING("[msg]"))
/singleton/reagent/drugs/mms
name = "Mercury Monolithium Sucrose"
description = "Mercury Monolithium Sucrose, or MMS, is a synthetic relaxant. It's both abused and used as a chemical precursor. Lasts twice as long when inhaled."
color = "#60A584"
taste_description = "bitterness"
taste_mult = 0.4
/singleton/reagent/drugs/mms/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
M.druggy = max(M.druggy, power)
M.add_chemical_effect(CE_PAINKILLER, 5 + round(power,5))
@@ -40,14 +66,14 @@
if(prob(probmod) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
step(M, pick(cardinal))
if(prob(3))
if(prob(7))
M.emote(pick("smile","giggle","moan","yawn","laugh","drool","twitch"))
/singleton/reagent/space_drugs/overdose(var/mob/living/carbon/M, var/alien, var/removed = 0, var/scale = 1, var/datum/reagents/holder)
. = ..()
/singleton/reagent/drugs/mms/overdose(mob/living/carbon/M, alien, removed = 0, scale = 1, datum/reagents/holder)
..()
M.hallucination = max(M.hallucination, 30 * scale)
/singleton/reagent/serotrotium
/singleton/reagent/drugs/serotrotium
name = "Serotrotium"
description = "A chemical compound that promotes concentrated production of the serotonin neurotransmitter in humans."
reagent_state = LIQUID
@@ -56,51 +82,62 @@
overdose = REAGENTS_OVERDOSE
taste_description = "bitterness"
fallback_specific_heat = 1.2
effect_messages = FALSE
/singleton/reagent/drugs/serotrotium/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
/singleton/reagent/serotrotium/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/mob/living/carbon/human/H = M
if(!istype(H) || (istype(H) && (H.species.flags & NO_BLOOD))) //If we're not human OR if we're human but don't have blood.
return
if(prob(7))
M.emote(pick("twitch", "drool", "moan", "gasp"))
return
/singleton/reagent/cryptobiolin
/singleton/reagent/drugs/serotrotium/overdose(mob/living/carbon/M, alien, removed = 0, scale = 1, datum/reagents/holder)
..()
M.bodytemperature = max(M.bodytemperature + 1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
M.add_chemical_effect(CE_PULSE, 2)
if(prob(5))
to_chat(M, SPAN_WARNING(pick("You feel so hot...", "Why is it so hot!?")))
M.make_jittery(10)
M.dizziness = max(150, M.dizziness)
M.make_dizzy(10)
/singleton/reagent/drugs/cryptobiolin
name = "Cryptobiolin"
description = "Cryptobiolin causes confusion and dizzyness."
description = "Cryptobiolin causes confusion and dizziness."
reagent_state = LIQUID
color = "#000055"
metabolism = REM * 0.5
overdose = REAGENTS_OVERDOSE
taste_description = "sourness"
effect_messages = FALSE
/singleton/reagent/cryptobiolin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
/singleton/reagent/drugs/cryptobiolin/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
M.dizziness = max(150, M.dizziness)//Setting dizziness directly works as long as the make_dizzy proc is called after to spawn the process
M.make_dizzy(4)
M.add_chemical_effect(CE_HALLUCINATE, 1)
M.confused = max(M.confused, 20)
M.add_chemical_effect(CE_HALLUCINATE, power)
M.confused = max(M.confused, power)
/singleton/reagent/impedrezene
/singleton/reagent/drugs/impedrezene
name = "Impedrezene"
description = "Impedrezene is a narcotic that impedes one's ability by slowing down the higher brain cell functions."
reagent_state = LIQUID
color = "#C8A5DC"
overdose = REAGENTS_OVERDOSE
taste_description = "numbness"
effect_messages = FALSE
/singleton/reagent/impedrezene/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/impedrezene/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
M.jitteriness = max(M.jitteriness - 5, 0)
M.confused = max(M.confused, 10)
M.confused = max(M.confused, power)
M.add_chemical_effect(CE_NEUROTOXIC, 2*removed)
if(prob(50))
M.drowsiness = max(M.drowsiness, 3)
if(prob(10) && ishuman(M))
M.emote("drool")
/singleton/reagent/mindbreaker
/singleton/reagent/drugs/mindbreaker
name = "Mindbreaker Toxin"
description = "An incredibly potent hallucinogen designed to wreak havoc on the brain, resulting in disturbing hallucinations with long-term impacts on those given the drug - this drug is not pleasant, thus the name, and only hardcore addicts use the drug recreationally."
reagent_state = LIQUID
@@ -108,19 +145,21 @@
metabolism = REM * 0.25
overdose = REAGENTS_OVERDOSE
taste_description = "sourness"
ignores_drug_resistance = TRUE
/singleton/reagent/mindbreaker/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/mindbreaker/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
M.hallucination = max(M.hallucination, 100)
M.add_chemical_effect(CE_HALLUCINATE, 2)
M.add_chemical_effect(CE_NEUROTOXIC, 2*removed)
/singleton/reagent/mindbreaker/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/mindbreaker/overdose(mob/living/carbon/M, alien, removed, datum/reagents/holder)
M.add_chemical_effect(CE_NEUROTOXIC, 4*removed)
if(prob(5))
to_chat(M, SPAN_DANGER(pick("You feel the strongest of pains deeply rooted beneath your skull.", "Your head feels like it's going to burst!", "Your head stings!")))
M.adjustHalLoss(20)
to_chat(M, SPAN_DANGER(pick("You feel the strongest of pains deeply rooted beneath your skull.", "Your head feels like it's going to burst!", "Your head stings!")))
/singleton/reagent/psilocybin
/singleton/reagent/drugs/psilocybin
name = "Psilocybin"
description = "A strong psychotropic derived from certain species of mushroom."
color = "#E700E7"
@@ -133,10 +172,9 @@
condiment_icon_state = "psilocybin"
condiment_center_of_mass = list("x"=16, "y"=8)
/singleton/reagent/psilocybin/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD(pick("You lean back and begin to fall... and fall... and fall.", "Your eyes open wide and you look upon this new world you now see.", "You close your eyes, and when they open, everything appears so much more vibrant.", "You feel a wave of pleasure suddenly rush over you.", "This is already the best decision you've ever made.")))
initial_effect_message_list = list("You lean back and begin to fall... and fall... and fall.", "Your eyes open wide and you look upon this new world you now see.", "You close your eyes, and when they open, everything appears so much more vibrant.", "You feel a wave of pleasure suddenly rush over you.", "This is already the best decision you've ever made.")
/singleton/reagent/psilocybin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/psilocybin/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
@@ -148,7 +186,7 @@
if(dose < 1)
M.apply_effect(3, STUTTER)
M.make_dizzy(5)
if(prob(3))
if(prob(5))
to_chat(M, SPAN_GOOD(pick("You feel giddy.", "You can't put your finger on it, but whatever it is, it's really funny.", "You feel full of energy.", "Your anxieties no longer cloud your mind.")))
else if(dose < 2)
M.apply_effect(3, STUTTER)
@@ -156,7 +194,7 @@
M.dizziness = max(150, M.dizziness)
M.make_dizzy(5)
M.druggy = max(M.druggy, 35)
if(prob(3))
if(prob(5))
to_chat(M, SPAN_GOOD(pick("Everything is so vibrant...", "Look at all those colours...", "Shapes dance across your vision.", "You feel like you're looking through a kaleidoscope.", "That's so funny!")))
else
M.apply_effect(3, STUTTER)
@@ -164,19 +202,18 @@
M.dizziness = max(150, M.dizziness)
M.make_dizzy(10)
M.druggy = max(M.druggy, 40)
if(prob(3))
if(prob(5))
to_chat(M, SPAN_GOOD(pick("Everything is so vibrant...", "Look at all those colours...", "Shapes dance across your vision.", "You feel like you're looking through a kaleidoscope.", "That's so funny!")))
if(ishuman(M) && prob(min(15, dose*5)))
M.emote(pick("twitch", "giggle"))
/singleton/reagent/psilocybin/overdose(var/mob/living/carbon/M, var/datum/reagents/holder)
/singleton/reagent/drugs/psilocybin/overdose(mob/living/carbon/M, datum/reagents/holder)
M.add_chemical_effect(CE_EMETIC, M.chem_doses[type])
if(prob(3))
to_chat(M, SPAN_WARNING(pick("You feel... disconnected from your body - is it your body?", "You are dying... but that's okay, right?", "You are at peace with the universe.", "The stars are beckoning you to them.")))
to_chat(M, SPAN_WARNING(pick("You feel... disconnected from your body - is it your body?", "You are dying... but that's okay, right?", "You are at peace with the universe.", "The stars are beckoning you to them.")))
if(prob(5))
M.custom_pain("You feel a sharp pain in your stomach!", 10)
/singleton/reagent/raskara_dust
/singleton/reagent/drugs/raskara_dust
name = "Raskara Dust"
description = "A powdery narcotic found in the gang-ridden slums of Biesel and Sol. Known for it's relaxing poperties that cause trance-like states when inhaled. Casual users tend to snort or inhale, while hardcore users inject."
reagent_state = SOLID
@@ -187,32 +224,33 @@
breathe_met = REM * 0.2
ingest_met = REM * 0.3
/singleton/reagent/raskara_dust/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD(pick("You gradually begin to slow down, and so does everything around you.", "You lean back and begin to fall... and fall... and fall.", "This is already the best decision you've ever made.")))
initial_effect_message_list = list("You gradually begin to slow down, and so does everything around you.", "You lean back and begin to fall... and fall... and fall.", "This is already the best decision you've ever made.")
/singleton/reagent/raskara_dust/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/effect_message_list = list("You feel so relaxed...", "Nothing's really bothering you right now...", "You should lay down and just... take it easy.", "You deserve a break from all your hard work today.")
/singleton/reagent/drugs/raskara_dust/affect_ingest(mob/living/carbon/M, alien, removed, datum/reagents/holder)
M.add_chemical_effect(CE_PAINKILLER, 10)
M.drowsiness += 1 * removed
if(prob(3))
to_chat(M, SPAN_GOOD(pick("You feel so relaxed...", "Nothing's really bothering you right now...", "You should lay down and just... take it easy.", "You deserve a break from all your hard work today.")))
to_chat(M, SPAN_GOOD(pick(effect_message_list)))
/singleton/reagent/raskara_dust/affect_breathe(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/raskara_dust/affect_breathe(mob/living/carbon/M, alien, removed, datum/reagents/holder)
M.add_chemical_effect(CE_PAINKILLER, 10)
M.drowsiness += 2 * removed
if(prob(5) && ishuman(M))
M.emote("cough")
if(prob(3))
to_chat(M, SPAN_GOOD(pick("You feel so relaxed...", "Nothing's really bothering you right now...", "You should lay down and just... take it easy.", "You deserve a break from all your hard work today.")))
to_chat(M, SPAN_GOOD(pick(effect_message_list)))
/singleton/reagent/raskara_dust/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/raskara_dust/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
M.add_chemical_effect(CE_PAINKILLER, 30)
M.drowsiness += 3 * removed
if(prob(5))
M.emote("twitch")
if(prob(5))
to_chat(M, SPAN_GOOD(pick("You feel so relaxed...", "Nothing's really bothering you right now...", "You should lay down and just... take it easy.", "You deserve a break from all your hard work today.")))
if(prob(3))
to_chat(M, SPAN_GOOD(pick(effect_message_list)))
/singleton/reagent/raskara_dust/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/raskara_dust/overdose(mob/living/carbon/M, alien, removed, datum/reagents/holder)
if(prob(3))
to_chat(M, SPAN_WARNING(pick("You feel... disconnected from your body - is it your body?", "Are you ascending to another plane of existence... that's so cool?", "You are dying... but that's okay, right?", "You feel a tingly sensation in your body.", "You can smell something unusual.", "You can taste something unusual.")))
if(prob(M.chem_doses[type] / 3))
@@ -221,7 +259,7 @@
else
M.seizure()
/singleton/reagent/night_juice
/singleton/reagent/drugs/night_juice
name = "Nightlife"
description = "A liquid narcotic commonly used by the more wealthy drug-abusing citizens of the Eridani Federation. Works as a potent stimulant that causes extreme awakefulness. Lethal in high doses."
reagent_state = LIQUID
@@ -233,16 +271,14 @@
breathe_mul = 0.5
ingest_mul = 0.125
/singleton/reagent/night_juice/initialize_data(newdata, datum/reagents/holder)
initial_effect_message_list = list("You feel a wave of pleasure smash into you and liven you up!", "You're startled by the sheer strength and speed of this drug!", "You already feel so damn good!", "This is the best decision you've ever made!")
/singleton/reagent/drugs/night_juice/initialize_data(newdata, datum/reagents/holder)
. = ..()
LAZYSET(., "special", 0)
/singleton/reagent/night_juice/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD(pick("You feel a wave of pleasure smash into you and liven you up!", "You're startled by the sheer strength and speed of this drug!", "You already feel so damn good!", "This is the best decision you've ever made!")))
/singleton/reagent/night_juice/affect_blood(var/mob/living/carbon/human/M, var/alien, var/removed, var/datum/reagents/holder)
if(!istype(M))
return
/singleton/reagent/drugs/night_juice/affect_blood(mob/living/carbon/human/M, alien, removed, datum/reagents/holder)
..()
holder.reagent_data[type]["special"] += (REAGENT_VOLUME(holder, type)/10)*removed
@@ -260,16 +296,16 @@
var/obj/item/organ/H = M.internal_organs_by_name[BP_HEART]
H.take_damage(holder.reagent_data[type]["special"] * removed * 0.025)
/singleton/reagent/night_juice/overdose(var/mob/living/carbon/human/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/night_juice/overdose(mob/living/carbon/human/M, alien, removed, datum/reagents/holder)
M.bodytemperature = max(M.bodytemperature + 1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
if(prob(2))
M.emote("shiver")
if(prob(2))
to_chat(M, SPAN_WARNING(pick("You feel so hot...", "Why is it so hot!?")))
if(prob(25))
M.add_chemical_effect(CE_NEPHROTOXIC, 1)
/singleton/reagent/guwan_painkillers
/singleton/reagent/drugs/guwan_painkillers
name = "Tremble"
description = "An ancient tribal Unathi narcotic based on the outer gel layer of the seeds of a poisonous flower. The chemical itself acts as a very potent omni-healer when consumed, however as the chemical metabolizes, it causes immense and crippling pain."
reagent_state = LIQUID
@@ -278,11 +314,13 @@
metabolism = REM * 0.25
overdose = 10
fallback_specific_heat = 1
ignores_drug_resistance = TRUE
effect_messages = FALSE
/singleton/reagent/guwan_painkillers/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/guwan_painkillers/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
affect_ingest(M, alien, removed*0.5, holder)
/singleton/reagent/guwan_painkillers/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/guwan_painkillers/affect_ingest(mob/living/carbon/M, alien, removed, datum/reagents/holder)
var/dose = M.chem_doses[type]
if(dose > 5 && REAGENT_VOLUME(holder, type) <= 3)
M.adjustHalLoss(removed*300) //So oxycomorphine can't be used with it.
@@ -304,7 +342,7 @@
overdose = 10
strength = 3
/singleton/reagent/toxin/stimm/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/toxin/stimm/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
if(alien == IS_TAJARA)
removed *= 1.25
..()
@@ -324,7 +362,7 @@
metabolism = REM
overdose = 15
/singleton/reagent/toxin/krok/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/toxin/krok/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
var/mob/living/carbon/human/H = M
if(!istype(H))
return
@@ -364,7 +402,7 @@
condiment_desc = "A small dropper bottle full of a stoner's paradise. A warning label warns of muteness as a side effect."
condiment_icon_state = "wuluextract"
/singleton/reagent/wulumunusha/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/wulumunusha/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
M.druggy = max(M.druggy, 100)
M.silent = max(M.silent, 5)
if(prob(3) && !isskrell(M))
@@ -372,11 +410,11 @@
if(prob(3) && isskrell(M))
to_chat(M, SPAN_ALIEN(pick("You can see the thoughts of those around you dancing in the air.", "You feel as if your mind has opened even further, your thought-field expanding.", "It's difficult to contain your thoughts - but why hide them anyway?", "You feel safe and comfortable.")))
/singleton/reagent/wulumunusha/overdose(var/mob/living/carbon/M, var/alien, var/removed = 0, var/scale = 1, var/datum/reagents/holder)
/singleton/reagent/wulumunusha/overdose(mob/living/carbon/M, alien, removed = 0, scale = 1, datum/reagents/holder)
if(isskrell(M))
M.hallucination = max(M.hallucination, 10 * scale) //light hallucinations that afflict skrell
/singleton/reagent/ambrosia_extract
/singleton/reagent/drugs/ambrosia_extract
name = "Ambrosia Extract"
description = "Ambrosia Extract is a fairly strong relaxant commonly found in Ambrosia plants. It's one of the most widely available drugs in human space."
reagent_state = LIQUID
@@ -392,16 +430,10 @@
condiment_center_of_mass = list("x"=16, "y"=8)
/singleton/reagent/ambrosia_extract/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
/singleton/reagent/drugs/ambrosia_extract/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
M.add_chemical_effect(CE_PULSE, -1)
var/power = (M.chem_doses[type] + REAGENT_VOLUME(holder, type))/2 //Larger the dose and volume, the more affected you are by the chemical.
if(HAS_TRAIT(M, TRAIT_ORIGIN_DRUG_RESISTANCE))
power = max(power - 5, 0)
M.add_chemical_effect(CE_PAINKILLER, 5 + round(power,5))
if(power < 15)
@@ -418,11 +450,11 @@
if(prob(3))
to_chat(M, SPAN_WARNING(pick("It's a little bit difficult to focus.","You feel a bit lethargic."," It's kinda hard to pay attention to what you're doing.", "Am I forgetting something?", "What was I doing again?")))
/singleton/reagent/ambrosia_extract/overdose(var/mob/living/carbon/M, var/alien, var/removed = 0, var/scale = 1, var/datum/reagents/holder)
. = ..()
/singleton/reagent/drugs/ambrosia_extract/overdose(mob/living/carbon/M, alien, removed = 0, scale = 1, datum/reagents/holder)
..()
M.hallucination = max(M.hallucination, 30 * scale)
/singleton/reagent/joy
/singleton/reagent/drugs/joy
name = "Joy"
description = "An expensive and illegal drug often abused by those who find no other means to numb their physical and mental pains. A Joy addict is a truly sad sight."
reagent_state = LIQUID
@@ -432,12 +464,13 @@
od_minimum_dose = 2
taste_description = "tranquility"
/singleton/reagent/joy/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD(pick("You feel a numbing sensation spread from within you.", "A numbing sensation builds within you.", "Everything will be okay... just relax.")))
initial_effect_message_list = list("You feel a numbing sensation spread from within you.", "A numbing sensation builds within you.", "Everything will be okay... just relax.")
sober_message_list = list("You feel grounded in the real world again... for better or worse.")
/singleton/reagent/joy/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/joy/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
M.add_chemical_effect(CE_PAINKILLER, 100)
M.add_chemical_effect(CE_NEUROTOXIC, 4*removed)
M.adjustCloneLoss(6*removed)
M.add_chemical_effect(CE_PACIFIED, 1)
M.eye_blurry = max(M.eye_blurry, 30)
M.drowsiness = max(M.drowsiness, 10)
@@ -449,7 +482,7 @@
if(prob(3))
to_chat(M, SPAN_GOOD(pick("Stress was an inconvenience that you are now free of.", "You lose all sense of connection to the real world.", "Everything is so tranquil.", "You feel totaly detached from reality.", "Your feel disconnected from your body.", "You are aware of nothing but your conscious thoughts.", "You keep falling... and falling... and falling - never stopping.", "Is this what it feels like to be dead?", "Your memories are hazy... all you have ever known is this feeling.", "You're watching yourself from afar - detached from your physical body.")))
/singleton/reagent/joy/overdose(var/mob/living/carbon/M, var/alien, var/removed = 0, var/datum/reagents/holder)
/singleton/reagent/drugs/joy/overdose(mob/living/carbon/M, alien, removed, scale, datum/reagents/holder)
M.ear_deaf = 20
M.add_chemical_effect(CE_EMETIC, M.chem_doses[type])
M.adjustOxyLoss(2 * removed)
@@ -458,10 +491,7 @@
if(prob(3))
to_chat(M, SPAN_GOOD(pick("You're dying... but you don't care.", "The numbing sensation continues to build and build.", "One more hit... and maybe even death will cease to exist.")))
/singleton/reagent/joy/final_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD("You feel grounded in the real world again... for better or worse."))
/singleton/reagent/xuxigas
/singleton/reagent/drugs/xuxigas
name = "Xu'Xi Gas"
description = "A recreational drug hailing from Qerr'Malic that must be inhaled. It produces a mild high similar to Wulumunusha and is known to make users susceptible to persuasion. Most forms of Xu'Xi Gas found outside of the Nralakk Federation are cheap, synthetic substitutes. Only works when inhaled."
color = "#58D373"
@@ -470,21 +500,26 @@
overdose = REAGENTS_OVERDOSE
breathe_met = REM*0.2
/singleton/reagent/xuxigas/affect_breathe(var/mob/living/carbon/human/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/xuxigas/affect_breathe(mob/living/carbon/human/M, alien, removed, datum/reagents/holder)
M.druggy = max(M.druggy, M.chem_doses[type]/2)
M.add_chemical_effect(CE_PULSE, -1)
if(prob(3))
to_chat(M, SPAN_GOOD(pick("You feel soothed and at ease.", "You feel like sharing the wonderful memories and feelings you're experiencing.", "You feel like you're floating off the ground.", "You don't want this feeling to end.", "You wish to please all those around you.", "You feel particularly susceptible to persuasion.", "Everyone is so trustworthy nowadays.")))
if(prob(2) && !isskrell(M))
to_chat(M, SPAN_GOOD(pick("You can almost see the currents of air as they dance around you.", "You see the colours around you beginning to bleed together.", "You feel safe and comfortable.")))
if(prob(2) && isskrell(M))
to_chat(M, SPAN_ALIEN(pick("You can see the thoughts of those around you dancing in the air.", "You feel as if your mind has opened even further, your thought-field expanding.", "It's difficult to contain your thoughts - but why hide them anyway?")))
var/message_list = list("You feel soothed and at ease.", "You feel like sharing the wonderful memories and feelings you're experiencing.", "You feel like you're floating off the ground.", "You don't want this feeling to end.", "You wish to please all those around you.", "You feel particularly susceptible to persuasion.", "Everyone is so trustworthy nowadays.")
var/message_type = "good"
if(isskrell(M))
message_list += list("You can see the thoughts of those around you dancing in the air.", "You feel as if your mind has opened even further, your thought-field expanding.", "It's difficult to contain your thoughts - but why hide them anyway?")
message_type = "alium"
else
message_list += list("You can almost see the currents of air as they dance around you.", "You see the colours around you beginning to bleed together.", "You feel safe and comfortable.")
/singleton/reagent/xuxigas/overdose(var/mob/living/carbon/human/M, var/alien, var/removed, var/datum/reagents/holder)
if(prob(5))
to_chat(M, span(message_type, pick(message_list)))
/singleton/reagent/drugs/xuxigas/overdose(mob/living/carbon/human/M, alien, removed, scale, datum/reagents/holder)
if(prob(3))
to_chat(M, SPAN_WARNING(pick("You feel particularly vulnerable to being swayed by those around you...", "You have an urge to please those around you.", "This high cannot end... where can you get more?", "You don't want this feeling to end.")))
/singleton/reagent/skrell_nootropic
/singleton/reagent/drugs/skrell_nootropic
name = "Co'qnixq Wuxi"
description = "Co'qnixq Wuxi, or Co'qnixq Nootropic, has existed since before Glorsh, and was developed as a cognitive enhancer for Skrell with on-set dementia. When taken, one's consciousness is heightened greatly alongside receiving mild energy boost. Frequently used as a 'smart drug' by students and scientists."
color = "#E3B0E5"
@@ -496,7 +531,7 @@
var/psi_boosted = FALSE
var/initial_stamina
/singleton/reagent/skrell_nootropic/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/skrell_nootropic/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
if(M.psi && !psi_boosted)
initial_stamina = M.psi.max_stamina
M.psi.max_stamina = M.psi.max_stamina*1.25
@@ -504,14 +539,121 @@
if(prob(2))
to_chat(M, SPAN_GOOD(pick("You have a renewed sense of focus.", "You feel more determined to get things done.", "You feel more confident in your own abilities.", "Your head-space feels tidy and organised - now's the time to get to work.", "You could climb a mountain right now!")))
/singleton/reagent/skrell_nootropic/final_effect(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/skrell_nootropic/final_effect(mob/living/carbon/M, alien, removed, datum/reagents/holder)
if(M.psi && psi_boosted)
M.psi.max_stamina = initial_stamina
psi_boosted = FALSE
/singleton/reagent/skrell_nootropic/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
/singleton/reagent/drugs/skrell_nootropic/overdose(mob/living/carbon/M, alien, removed, datum/reagents/holder)
M.add_chemical_effect(CE_SPEEDBOOST, 0.5)
if(prob(25))
M.add_chemical_effect(CE_NEPHROTOXIC, 0.5)
if(prob(2))
to_chat(M, SPAN_WARNING(pick("You can't allow anyone to get between you and your tasks.", "You feel like screaming at the next person who interrupts you.", "No one can stop you!", "You can power through this...")))
/singleton/reagent/drugs/cocaine
name = "Cocaine"
description = "A recreational drug known for its sharp, but short, energy boost. Very commonly used by cytherians on Venus."
taste_description = "numbing powder"
color = "#FFFFFF"
initial_effect_message_list = list("You feel... happy...", "A numbing sensation comes over you...", "Reality feels... distant now...")
sober_message_list = list("You feel like garbage now...", "Your head aches.")
overdose = 10
ingest_met = REM * 0.25 // Stomach acid slows rate of absorption
var/painkiller_mul = 1
/singleton/reagent/drugs/cocaine/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
M.add_chemical_effect(CE_PAINKILLER, painkiller_mul * power * 40)
if(prob(7))
M.emote(pick("shiver", "sniff"))
/singleton/reagent/drugs/cocaine/overdose(mob/living/carbon/M, alien, removed, scale, datum/reagents/holder)
..()
M.add_chemical_effect(CE_HALLUCINATE, power)
M.apply_effect(1, STUTTER)
M.make_jittery(power - 6)
M.add_chemical_effect(CE_NEUROTOXIC, removed / 3)
M.add_chemical_effect(CE_CARDIOTOXIC, removed * 2)
if(prob(10))
M.add_chemical_effect(CE_NOPULSE, power)
/singleton/reagent/drugs/cocaine/contemplus
name = "Contemplus"
description = "A designer varient of cocaine originating from Venus. This is designed to enhance the brain activity to provide enhanced thinking abilities."
color = "#fff200"
sober_message_list = list("You don't feel quite so knowledgable anymore...")
painkiller_mul = 0.8 // Not as good a painkiller
/singleton/reagent/drugs/cocaine/contemplus/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
if(prob(7))
to_chat(M, SPAN_GOOD(pick("You've got an idea for something.", "You figured out that problem you were having trouble with.", "You think you know what to do now.")))
/singleton/reagent/drugs/cocaine/spotlight
name = "Spotlight"
description = "A designer varient of cocaine originating from Venus. Commonly used by the acting scene, this is designed to increase the user's confidence."
color = "#8dff64"
sober_message_list = list("Your newfound confidence is gone...", "You don't feel so sure about yourself anymore...")
painkiller_mul = 1.2 // Actors that do their own stunts will want this
/singleton/reagent/drugs/cocaine/sparkle
name = "Sparkle"
description = "A designer variant of cocaine originating from Venus. Primarily present in the nightlife scene, this is designed to decrease a user's inhibitions and increase pleasure."
color = "#f704d6"
painkiller_mul = 1.5
/singleton/reagent/drugs/cocaine/sparkle/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
if(prob(7))
to_chat(M, SPAN_GOOD(pick("You begin to notice a rhythm to all the sounds around you.", "You feel euphoric!", "You could start a party right now!", "Live in the moment!", "All your anxieties seem to fade away.")))
M.druggy = max(M.druggy, power)
if(prob(15))
M.emote(pick("laugh", "chuckle", "giggle"))
/singleton/reagent/drugs/heroin
name = "Heroin"
description = "An extremely potent but dangerous and addictive opiate refined from morphine, its use is nearly-universally banned across the Orion Spur. The possession and usage of heroin is illegal in the Republic of Biesel."
reagent_state = SOLID
color = "#ffffff"
metabolism_min = 0.5
overdose = 5
od_minimum_dose = 2
/singleton/reagent/drugs/heroin/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
if(prob(7))
to_chat(M, SPAN_GOOD(pick("You feel soothed and at ease.", "You feel content and at peace.", "You feel a pleasant emptiness.", "You feel like sharing the wonderful memories and feelings you're experiencing.", "All your anxieties fade away.", "You feel like you're floating off the ground.", "You don't want this feeling to end.")))
if(check_min_dose(M))
M.add_chemical_effect(CE_PAINKILLER, 180)
if(!M.chem_effects[CE_CLEARSIGHT])
M.eye_blurry = max(M.eye_blurry, 10)
if(!M.chem_effects[CE_STRAIGHTWALK])
M.confused = max(M.confused, 20)
var/mob/living/carbon/human/H = M
if(!istype(H))
return
var/bac = H.get_blood_alcohol()
if(bac >= 0.01)
overdose(M, alien, removed, holder) // Straight to overdose
/singleton/reagent/drugs/heroin/overdose(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
M.druggy = max(M.druggy, 20)
M.add_chemical_effect(CE_EMETIC, M.chem_doses[type])
if(M.losebreath < 15)
M.losebreath++
#undef DRUG_MESSAGE_DELAY
@@ -514,6 +514,18 @@
M.adjustToxLoss(1.5 * removed)
//Copied from tea. though i feel it should be stronger as its not diluted with water
/singleton/reagent/nutriment/cocagrounds
name = "Coca Grounds"
description = "Enjoy the great taste of tea."
reagent_state = SOLID
nutriment_factor = 1
color = "#056608"
taste_description = "potent gritty tea"
taste_mult = 0.4
condiment_name = "ground tea"
condiment_icon_state = "tea"
condiment_center_of_mass = list("x"=16, "y"=8)
/singleton/reagent/nutriment/soysauce
name = "Soy Sauce"
description = "A salty sauce made from the soy plant."
@@ -1732,6 +1744,18 @@
glass_name = "glass of tropical iced tea"
glass_desc = "For maximum enjoyment, drink while at the beach on a warm summer day."
/singleton/reagent/drink/tea/cocatea
name = "Mate de Coca"
description = "An herbal tea made of coca leaves, this tea originated in South America in the Andean countries, and is still consumed there and in Mictlan to this day."
color = "#adff2f"
taste_description = "mildly bitter, but sweet"
glass_icon_state = "bigteacup"
glass_name = "cup of mate de coca"
glass_desc = "An herbal tea made of coca leaves, this tea originated in South America in the Andean countries, and is still consumed there and in Mictlan to this day."
adj_dizzy = -1
adj_drowsy = -3
adj_sleepy = -3
//Coffee
//==========
@@ -2168,6 +2192,22 @@
glass_desc = "A glass of refreshing Comet Cola"
glass_center_of_mass = list("x"=17, "y"=6)
/singleton/reagent/drink/coca_cola
name = "Coca Cola"
description = "A very refreshing beverage, not for children."
reagent_state = LIQUID
color = "#080400"
adj_dizzy = -1
adj_drowsy = -5
adj_sleepy = -3
taste_description = "a very strong cola"
carbonated = TRUE
glass_icon_state = "spacecola"
glass_name = "glass of coca cola"
glass_desc = "A glass of very refreshing coca cola."
glass_center_of_mass = list("x"=17, "y"=6)
/singleton/reagent/drink/spacemountainwind
name = "Stellar Jolt"
description = "For those who have a stronger need for caffeine than they have sense."
@@ -345,9 +345,120 @@
if(!M.chem_effects[CE_STRAIGHTWALK])
M.confused = max(M.confused, 6)
/singleton/reagent/morphine
name = "Morphine"
description = "Morphine is a very strong medication derived from the opium plant. It is extremely effective at treating severe pain. The drug is highly addictive and sense-numbing. Unlike other painkillers, morphine can be inhaled."
reagent_state = LIQUID
color = "#5c4033"
overdose = 20
od_minimum_dose = 2
specific_heat = 1
scannable = TRUE
metabolism = REM / 3.33 // 0.06ish units per tick
ingest_met = REM / 1.5 // Should be 0.13 units per tick
breathe_met = REM * 4 // .8 units per tick
specific_heat = 1.2
/singleton/reagent/morphine/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD(pick("You lean back and begin to fall... and fall... and fall.", "A feeling of ecstasy builds within you.", "You're startled by just how amazing you suddenly feel.")))
/singleton/reagent/morphine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(prob(3))
to_chat(M, SPAN_GOOD(pick("You feel soothed and at ease.", "You feel content and at peace.", "You feel a pleasant emptiness.", "You feel like sharing the wonderful memories and feelings you're experiencing.", "All your anxieties fade away.", "You feel like you're floating off the ground.", "You don't want this feeling to end.")))
if(check_min_dose(M))
M.add_chemical_effect(CE_PAINKILLER, 120)
M.add_chemical_effect(CE_SLOWDOWN, 1)
if(!M.chem_effects[CE_CLEARSIGHT])
M.eye_blurry = max(M.eye_blurry, 5)
if(!M.chem_effects[CE_STRAIGHTWALK])
M.confused = max(M.confused, 15)
var/mob/living/carbon/human/H = M
if(!istype(H))
return
var/bac = H.get_blood_alcohol()
if(bac >= 0.02)
M.hallucination = max(M.hallucination, bac * 300)
M.druggy = max(M.druggy, bac * 100)
M.add_chemical_effect(CE_EMETIC, M.chem_doses[type]/6)
if(bac >= 0.04)
if(prob(3))
to_chat(M, SPAN_WARNING(pick("You're having trouble breathing.", "You begin to feel a bit light headed.", "Your breathing is very shallow.", "")))
if(M.losebreath < 15)
M.losebreath++
/singleton/reagent/morphine/overdose(var/mob/living/carbon/M, var/alien, var/datum/reagents/holder)
..()
M.druggy = max(M.druggy, 20)
M.add_chemical_effect(CE_EMETIC, M.chem_doses[type]/6)
if(M.losebreath < 15)
M.losebreath++
/singleton/reagent/tramarine
name = "Tramarine"
description = "Tramarine is a synthetic form of morphine developed by NanoTrasen early in its history, that can be used in its place for most medical purposes. It is known to be more dangerous however with alcohol, other opiods, or an overdose."
reagent_state = LIQUID
color = "#c4a05d"
overdose = 20
od_minimum_dose = 2
scannable = TRUE
metabolism = REM / 3.33 // 0.06ish units per tick
ingest_met = REM / 1.5 // Should be 0.13 units per tick
breathe_met = REM * 4 // .8 units per tick
/singleton/reagent/tramarine/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD(pick("You lean back and begin to fall... and fall... and fall.", "A feeling of ecstasy builds within you.", "You're startled by just how amazing you suddenly feel.")))
/singleton/reagent/tramarine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(prob(3))
to_chat(M, SPAN_GOOD(pick("You feel soothed and at ease.", "You feel content and at peace.", "You feel a pleasant emptiness.", "You feel like sharing the wonderful memories and feelings you're experiencing.", "All your anxieties fade away.", "You feel like you're floating off the ground.", "You don't want this feeling to end.")))
if(check_min_dose(M))
M.add_chemical_effect(CE_PAINKILLER, 90)
M.add_chemical_effect(CE_SLOWDOWN, 2)
if(!M.chem_effects[CE_CLEARSIGHT])
M.eye_blurry = max(M.eye_blurry, 5)
if(!M.chem_effects[CE_STRAIGHTWALK])
M.confused = max(M.confused, 15)
if(prob(7))
M.emote(pick("twitch", "drool", "moan", "gasp"))
var/mob/living/carbon/human/H = M
if(!istype(H))
return
var/bac = H.get_blood_alcohol()
if(bac >= 0.02)
M.hallucination = max(M.hallucination, bac * 300)
M.druggy = max(M.druggy, bac * 100)
M.add_chemical_effect(CE_EMETIC, M.chem_doses[type]/6)
if(bac >= 0.04)
if(prob(3))
to_chat(M, SPAN_WARNING(pick("You're having trouble breathing.", "You begin to feel a bit light headed.", "Your breathing is very shallow.", "")))
if(M.losebreath < 15)
M.losebreath++
M.bodytemperature = max(M.bodytemperature + 1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
M.add_chemical_effect(CE_PULSE, 2)
if(prob(3))
to_chat(M, SPAN_WARNING(pick("You feel so hot...", "Why is it so hot!?")))
/singleton/reagent/tramarine/overdose(mob/living/carbon/M, alien, datum/reagents/holder)
..()
M.druggy = max(M.druggy, 20)
M.add_chemical_effect(CE_EMETIC, M.chem_doses[type]/6)
if(M.losebreath < 15)
M.losebreath++
M.bodytemperature = max(M.bodytemperature + 1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
M.add_chemical_effect(CE_PULSE, 2)
if(prob(3))
to_chat(M, SPAN_WARNING(pick("You feel so hot...", "Why is it so hot!?")))
M.make_jittery(10)
M.dizziness = max(150, M.dizziness)
M.make_dizzy(10)
/singleton/reagent/oxycomorphine
name = "Oxycomorphine"
description = "Oxycomorphine is a highly advanced, powerful analgesic medication which is extremely effective at treating severe-agonising pain as a result of injuries usually incompatible with life. The drug is highly addictive and sense-numbing. Oxycomorphine is not effective when inhaled."
description = "Oxycomorphine is a highly advanced, powerful analgesic medication which is extremely effective at treating severe-agonising pain as a result of injuries usually incompatible with life. The drug is highly addictive and sense-numbing. Unlike other painkillers, oxycomorphine can be inhaled."
reagent_state = LIQUID
color = "#800080"
overdose = 10
@@ -358,7 +469,6 @@
breathe_met = REM * 4 // .8 units per tick
taste_description = "bitterness"
metabolism_min = 0.005
breathe_mul = 0
/singleton/reagent/oxycomorphine/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD(pick("You lean back and begin to fall... and fall... and fall.", "A feeling of ecstasy builds within you.", "You're startled by just how amazing you suddenly feel.")))
@@ -369,6 +479,7 @@
if(check_min_dose(M))
M.add_chemical_effect(CE_PAINKILLER, 200)
M.add_chemical_effect(CE_SLOWDOWN, 2)
if(!M.chem_effects[CE_CLEARSIGHT])
M.eye_blurry = max(M.eye_blurry, 5)
if(!M.chem_effects[CE_STRAIGHTWALK])
@@ -416,7 +527,7 @@
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
holder.remove_reagent(/singleton/reagent/mindbreaker, 5)
holder.remove_reagent(/singleton/reagent/drugs/mindbreaker, 5)
M.hallucination = max(0, M.hallucination - 10)
M.eye_blurry = max(M.eye_blurry - 5, 0)
M.confused = max(M.confused - 10, 0)
@@ -1001,7 +1112,6 @@
if(H.chem_doses[type] < overdose && H.shock_stage < 5) //Don't want feel-good messages when we're suffering an OD or particularly hurt/injured
to_chat(H, SPAN_GOOD("[pick(goodmessage)]"))
LAZYINITLIST(holder.reagent_data)
LAZYSET(holder.reagent_data[type], "last_tick_time", world.time + (messagedelay))
/singleton/reagent/mental/overdose(var/mob/living/carbon/M, var/alien, var/datum/reagents/holder)
@@ -1020,10 +1130,29 @@
goodmessage = list("You feel good.","You feel relaxed.","You feel alert and focused.")
/singleton/reagent/mental/nicotine/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/scale, var/datum/reagents/holder)
. = ..()
..()
M.adjustOxyLoss(10 * removed * scale)
M.add_chemical_effect(CE_PULSE, 0.5)
/singleton/reagent/mental/caromeg
name = "Caromeg"
description = "Caromeg is a stimulant commonly found in oracle products. It encourages sociability and pleasure, but in high doses can promote paranoia, severe fever, and brain damage."
reagent_state = LIQUID
color = "#230101"
metabolism = 0.0016 * REM
overdose = 15
od_minimum_dose = 3
taste_description = "sour staleness"
messagedelay = MEDICATION_MESSAGE_DELAY * 0.75
goodmessage = list("You feel like talking a bit more.", "You feel better than usual.", "Your anxieties disappear.")
/singleton/reagent/mental/caromeg/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/scale, var/datum/reagents/holder)
..()
M.bodytemperature = max(M.bodytemperature + 1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
M.add_chemical_effect(CE_NEUROTOXIC, 1 * removed * scale)
if (prob(3))
to_chat(M, SPAN_DANGER(pick("Everyone around you is plotting against you...", "They are laughing at you, not with you...", "They'll kill you if you're not careful...", "You can't trust anybody...")))
/singleton/reagent/mental/corophenidate
name = "Corophenidate"
description = "Corophenidate is a new generation, psychoactive stimulant used in the treatment of ADHD and ADD. It has far fewer side effects than previous generations of CNS stimulants. Withdrawal symptoms include hallucinations and disruption of focus."
@@ -1523,6 +1652,17 @@
var/obj/item/organ/internal/heart = M.internal_organs_by_name[BP_HEART]
M.add_chemical_effect(CE_CARDIOTOXIC, heart.max_damage * 0.05)
/singleton/reagent/menthol
name = "Menthol"
description = "Tastes naturally minty, and imparts a very mild numbing sensation."
taste_description = "mint"
reagent_state = LIQUID
color = "#80af9c"
metabolism = REM * 0.002
overdose = REAGENTS_OVERDOSE
scannable = TRUE
specific_heat = 1.0
//Secret Chems
/singleton/reagent/elixir
name = "Elixir of Life"
@@ -674,6 +674,33 @@
nicotine = REM * 0.1
taste_mult = 2
/singleton/reagent/toxin/oracle
name = "Oracle"
description = "Oracle originates from Vysoka, where it is often chewed, or dried and smoked or snorted. This is a common variant."
reagent_state = SOLID
color = "#ad5555"
taste_description = "tartness"
strength = 0
taste_mult = 10
var/caromeg = 0.2
/singleton/reagent/toxin/oracle/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
holder.add_reagent(/singleton/reagent/mental/caromeg, removed * caromeg)
/singleton/reagent/toxin/oracle/rich
name = "Vedamor Oracle"
color = "#ed1c1c"
description = "Vedamor is a city-state on Vysoka, renown for its high-quality soil. Their oracle is renown for being sweeter and more effective than the common variety."
taste_description = "sweetness"
caromeg = 0.5
/singleton/reagent/toxin/oracle/liquid
name = "Caromeg Solution"
description = "A diluted caromeg solution, refined from oracle."
reagent_state = LIQUID
caromeg = REM * 0.1
taste_mult = 2
/mob/living/carbon/human/proc/berserk_start()
to_chat(src, SPAN_DANGER("An uncontrollable rage courses through your body and overtakes your thoughts - your blood begins to boil with fury!"))
add_client_color(/datum/client_color/berserk)
+98 -26
View File
@@ -175,8 +175,30 @@
name = "Oxycomorphine"
id = "oxycomorphine"
result = /singleton/reagent/oxycomorphine
required_reagents = list(/singleton/reagent/alcohol = 1, /singleton/reagent/mortaphenyl = 1)
required_reagents = list(/singleton/reagent/morphine = 1, /singleton/reagent/mortaphenyl = 1)
catalysts = list(/singleton/reagent/toxin/phoron = 5)
result_amount = 2
/datum/chemical_reaction/tramarineoxycomorphine
name = "Oxycomorphine (Artificial)"
id = "oxycomorphineartificial"
result = /singleton/reagent/oxycomorphine
required_reagents = list(/singleton/reagent/tramarine = 1, /singleton/reagent/mortaphenyl = 1)
catalysts = list(/singleton/reagent/toxin/phoron = 5)
result_amount = 1
/datum/chemical_reaction/heroin
name = "Heroin"
id = "heroin"
result = /singleton/reagent/drugs/heroin
required_reagents = list(/singleton/reagent/morphine = 2, /singleton/reagent/acetone = 2)
result_amount = 1
/datum/chemical_reaction/tramarineheroin
name = "Heroin (Artificial)"
id = "heroinartificial"
result = /singleton/reagent/drugs/heroin
required_reagents = list(/singleton/reagent/tramarine = 3, /singleton/reagent/acetone = 2)
result_amount = 1
/datum/chemical_reaction/sterilizine
@@ -207,13 +229,41 @@
required_reagents = list(/singleton/reagent/aluminum = 1, /singleton/reagent/iron = 1, /singleton/reagent/acetone = 1)
result_amount = 3
/datum/chemical_reaction/space_drugs
/datum/chemical_reaction/mms
name = "Mercury Monolithium Sucrose"
id = "space_drugs"
result = /singleton/reagent/space_drugs
result = /singleton/reagent/drugs/mms
required_reagents = list(/singleton/reagent/mercury = 1, /singleton/reagent/sugar = 1, /singleton/reagent/lithium = 1)
result_amount = 3
/datum/chemical_reaction/cocaine
name = "Cocaine"
id = "cocaine"
result = /singleton/reagent/drugs/cocaine
required_reagents = list(/singleton/reagent/nutriment/cocagrounds = 1, /singleton/reagent/acid/hydrochloric = 1)
result_amount = 1
/datum/chemical_reaction/contemplus
name = "Contemplus"
id = "contemplus"
result = /singleton/reagent/drugs/cocaine/contemplus
required_reagents = list(/singleton/reagent/drugs/cocaine = 1, /singleton/reagent/synaptizine = 1, /singleton/reagent/mental/emoxanyl = 1)
result_amount = 2
/datum/chemical_reaction/spotlight
name = "Spotlight"
id = "spotlight"
result = /singleton/reagent/drugs/cocaine/spotlight
required_reagents = list(/singleton/reagent/drugs/cocaine = 1, /singleton/reagent/synaptizine = 1, /singleton/reagent/mental/parvosil = 1)
result_amount = 2
/datum/chemical_reaction/sparkle
name = "Sparkle"
id = "sparkle"
result = /singleton/reagent/drugs/cocaine/sparkle
required_reagents = list(/singleton/reagent/drugs/cocaine = 1, /singleton/reagent/synaptizine = 1, /singleton/reagent/mental/minaphobin = 1)
result_amount = 2
/datum/chemical_reaction/lube
name = "Space Lube"
id = "lube"
@@ -252,7 +302,7 @@
/datum/chemical_reaction/impedrezene
name = "Impedrezene"
id = "impedrezene"
result = /singleton/reagent/impedrezene
result = /singleton/reagent/drugs/impedrezene
required_reagents = list(/singleton/reagent/mercury = 1, /singleton/reagent/acetone = 1, /singleton/reagent/sugar = 1)
result_amount = 2
@@ -290,7 +340,7 @@
/datum/chemical_reaction/cryptobiolin
name = "Cryptobiolin"
id = "cryptobiolin"
result = /singleton/reagent/cryptobiolin
result = /singleton/reagent/drugs/cryptobiolin
required_reagents = list(/singleton/reagent/potassium = 1, /singleton/reagent/acetone = 1, /singleton/reagent/sugar = 1)
result_amount = 3
@@ -379,7 +429,7 @@
name = "Thetamycin"
id = "thetamycin"
result = /singleton/reagent/thetamycin
required_reagents = list(/singleton/reagent/cryptobiolin = 1, /singleton/reagent/dylovene = 1)
required_reagents = list(/singleton/reagent/drugs/cryptobiolin = 1, /singleton/reagent/dylovene = 1)
result_amount = 2
/datum/chemical_reaction/steramycin
@@ -407,7 +457,7 @@
name = "Cetahydramine"
id = "cetahydramine"
result = /singleton/reagent/cetahydramine
required_reagents = list(/singleton/reagent/cryptobiolin = 1, /singleton/reagent/inaprovaline = 1)
required_reagents = list(/singleton/reagent/drugs/cryptobiolin = 1, /singleton/reagent/inaprovaline = 1)
result_amount = 2
/datum/chemical_reaction/asinodryl
@@ -492,7 +542,7 @@
/datum/chemical_reaction/mindbreaker
name = "Mindbreaker Toxin"
id = "mindbreaker"
result = /singleton/reagent/mindbreaker
result = /singleton/reagent/drugs/mindbreaker
required_reagents = list(/singleton/reagent/silicon = 1, /singleton/reagent/hydrazine = 1, /singleton/reagent/dylovene = 1)
result_amount = 3
@@ -603,7 +653,7 @@
name = "Rezadone"
id = "rezadone"
result = /singleton/reagent/rezadone
required_reagents = list(/singleton/reagent/toxin/carpotoxin = 1, /singleton/reagent/cryptobiolin = 1, /singleton/reagent/copper = 1)
required_reagents = list(/singleton/reagent/toxin/carpotoxin = 1, /singleton/reagent/drugs/cryptobiolin = 1, /singleton/reagent/copper = 1)
result_amount = 3
/datum/chemical_reaction/lexorin
@@ -693,20 +743,28 @@
required_reagents = list(/singleton/reagent/dylovene = 1, /singleton/reagent/carbon = 1, /singleton/reagent/sulfur = 1)
result_amount = 2
/datum/chemical_reaction/tramarine
name = "Tramarine"
id = "tramarine"
result = /singleton/reagent/tramarine
required_reagents = list(/singleton/reagent/toxin/potassium_chloride = 1, /singleton/reagent/polysomnine = 1)
catalysts = list(/singleton/reagent/sodium = 5)
result_amount = 1
//Mental Medication
/datum/chemical_reaction/corophenidate
name = "Corophenidate"
id = "corophenidate"
result = /singleton/reagent/mental/corophenidate
required_reagents = list(/singleton/reagent/mindbreaker = 1, /singleton/reagent/hydrazine = 1)
required_reagents = list(/singleton/reagent/drugs/mindbreaker = 1, /singleton/reagent/hydrazine = 1)
result_amount = 2
/datum/chemical_reaction/minaphobin
name = "Minaphobin"
id = "minaphobin"
result = /singleton/reagent/mental/minaphobin
required_reagents = list(/singleton/reagent/mindbreaker = 1, /singleton/reagent/carbon = 1)
required_reagents = list(/singleton/reagent/drugs/mindbreaker = 1, /singleton/reagent/carbon = 1)
result_amount = 2
/datum/chemical_reaction/adrenaline
@@ -719,49 +777,49 @@
name = "Neurostabin"
id = "neurostabin"
result = /singleton/reagent/mental/neurostabin
required_reagents = list(/singleton/reagent/mindbreaker = 1, /singleton/reagent/iron = 1, /singleton/reagent/potassium = 1)
required_reagents = list(/singleton/reagent/drugs/mindbreaker = 1, /singleton/reagent/iron = 1, /singleton/reagent/potassium = 1)
result_amount = 3
/datum/chemical_reaction/parvosil
name = "Parvosil"
id = "parvosil"
result = /singleton/reagent/mental/parvosil
required_reagents = list(/singleton/reagent/mindbreaker = 1, /singleton/reagent/aluminum = 1, /singleton/reagent/potassium = 1)
required_reagents = list(/singleton/reagent/drugs/mindbreaker = 1, /singleton/reagent/aluminum = 1, /singleton/reagent/potassium = 1)
result_amount = 3
/datum/chemical_reaction/emoxanyl
name = "Emoxanyl"
id = "emoxanyl"
result = /singleton/reagent/mental/emoxanyl
required_reagents = list(/singleton/reagent/mindbreaker = 1, /singleton/reagent/silicon = 1, /singleton/reagent/alcohol = 1)
required_reagents = list(/singleton/reagent/drugs/mindbreaker = 1, /singleton/reagent/silicon = 1, /singleton/reagent/alcohol = 1)
result_amount = 3
/datum/chemical_reaction/orastabin
name = "Orastabin"
id = "orastabin"
result = /singleton/reagent/mental/orastabin
required_reagents = list(/singleton/reagent/mindbreaker = 1, /singleton/reagent/sodium = 1, /singleton/reagent/tungsten = 1)
required_reagents = list(/singleton/reagent/drugs/mindbreaker = 1, /singleton/reagent/sodium = 1, /singleton/reagent/tungsten = 1)
result_amount = 3
/datum/chemical_reaction/neurapan
name = "Neurapan"
id = "neurapan"
result = /singleton/reagent/mental/neurapan
required_reagents = list(/singleton/reagent/mindbreaker = 1, /singleton/reagent/space_drugs = 1, /singleton/reagent/alcohol = 1)
required_reagents = list(/singleton/reagent/drugs/mindbreaker = 1, /singleton/reagent/drugs/mms = 1, /singleton/reagent/alcohol = 1)
result_amount = 3
/datum/chemical_reaction/nerospectan
name = "Nerospectan"
id = "nerospectan"
result = /singleton/reagent/mental/nerospectan
required_reagents = list(/singleton/reagent/mindbreaker = 1, /singleton/reagent/space_drugs = 1, /singleton/reagent/silicon = 1)
required_reagents = list(/singleton/reagent/drugs/mindbreaker = 1, /singleton/reagent/drugs/mms = 1, /singleton/reagent/silicon = 1)
result_amount = 3
/datum/chemical_reaction/truthserum
name = "Truthserum"
id = "truthserum"
result = /singleton/reagent/mental/truthserum
required_reagents = list(/singleton/reagent/mindbreaker = 1, /singleton/reagent/synaptizine = 1, /singleton/reagent/toxin/phoron = 0.1)
required_reagents = list(/singleton/reagent/drugs/mindbreaker = 1, /singleton/reagent/synaptizine = 1, /singleton/reagent/toxin/phoron = 0.1)
result_amount = 2
/datum/chemical_reaction/pacifier
@@ -781,22 +839,22 @@
/datum/chemical_reaction/joy
name = "Joy"
id = "joy"
result = /singleton/reagent/joy
required_reagents = list(/singleton/reagent/mental/neurapan = 1, /singleton/reagent/oxycomorphine = 2)
result = /singleton/reagent/drugs/joy
required_reagents = list(/singleton/reagent/mental/neurapan = 1, /singleton/reagent/drugs/heroin = 2)
result_amount = 1
/datum/chemical_reaction/xuxigas
name = "Xu'Xi Gas"
id = "xuxigas"
result = /singleton/reagent/xuxigas
required_reagents = list(/singleton/reagent/dexalin = 2, /singleton/reagent/space_drugs = 2, /singleton/reagent/mental/truthserum = 1)
result = /singleton/reagent/drugs/xuxigas
required_reagents = list(/singleton/reagent/dexalin = 2, /singleton/reagent/drugs/mms = 2, /singleton/reagent/mental/truthserum = 1)
required_temperature_min = T0C + 134
result_amount = 5
/datum/chemical_reaction/skrell_nootropic
name = "Co'qnixq Wuxi"
id = "skrell_nootropic"
result = /singleton/reagent/skrell_nootropic
result = /singleton/reagent/drugs/skrell_nootropic
required_reagents = list(/singleton/reagent/wulumunusha = 1, /singleton/reagent/synaptizine = 1, /singleton/reagent/mental/emoxanyl = 1)
result_amount = 3
@@ -819,7 +877,7 @@
/datum/chemical_reaction/raskara_dust
name = "Raskara Dust"
id = "raskara_dust"
result = /singleton/reagent/raskara_dust
result = /singleton/reagent/drugs/raskara_dust
required_reagents = list(/singleton/reagent/toxin/fertilizer/monoammoniumphosphate = 1, /singleton/reagent/spacecleaner = 1, /singleton/reagent/sodiumchloride = 2) // extinguisher, cleaner, salt
required_temperature_min = T0C + 127 // barely over boiling point of water, 400C
result_amount = 2
@@ -827,7 +885,7 @@
/datum/chemical_reaction/nightjuice
name = "Nightlife"
id = "night_juice"
result = /singleton/reagent/night_juice
result = /singleton/reagent/drugs/night_juice
required_reagents = list(/singleton/reagent/mental/corophenidate = 1, /singleton/reagent/synaptizine = 1, /singleton/reagent/nitroglycerin = 1)
required_temperature_min = T0C + 200
result_amount = 3
@@ -1934,6 +1992,13 @@
required_reagents = list(/singleton/reagent/nutriment/teagrounds = 1, /singleton/reagent/water = 5)
result_amount = 5
/datum/chemical_reaction/drink/cocatea
name = "Mate de Coca"
id = "cocatea"
result = /singleton/reagent/drink/tea/cocatea
required_reagents = list(/singleton/reagent/nutriment/cocagrounds = 1, /singleton/reagent/water = 5)
result_amount = 5
/datum/chemical_reaction/drink/greentea
name = "Green Tea"
id = "greentea"
@@ -1962,6 +2027,13 @@
required_reagents = list(/singleton/reagent/uranium = 1, /singleton/reagent/drink/space_cola = 5)
result_amount = 5
/datum/chemical_reaction/drink/coca_cola
name = "Coca Cola"
id = "coca_cola"
result = /singleton/reagent/drink/coca_cola
required_reagents = list(/singleton/reagent/nutriment/cocagrounds = 1, /singleton/reagent/drink/space_cola = 5)
result_amount = 5
/datum/chemical_reaction/moonshine
name = "Moonshine"
id = "moonshine"
@@ -2604,7 +2676,7 @@
name = "Hippies Delight"
id = "hippiesdelight"
result = /singleton/reagent/alcohol/hippiesdelight
required_reagents = list(/singleton/reagent/psilocybin = 1, /singleton/reagent/alcohol/gargleblaster = 1)
required_reagents = list(/singleton/reagent/drugs/psilocybin = 1, /singleton/reagent/alcohol/gargleblaster = 1)
result_amount = 2
/datum/chemical_reaction/drink/bananahonk
@@ -128,6 +128,6 @@
trash = /obj/item/trash/snack_bowl
filling_color = "#42B873"
center_of_mass = list("x"=16, "y"=8)
reagents_to_add = list(/singleton/reagent/nutriment = 6, /singleton/reagent/psilocybin = 6)
reagents_to_add = list(/singleton/reagent/nutriment = 6, /singleton/reagent/drugs/psilocybin = 6)
reagent_data = list(/singleton/reagent/nutriment = list("mushroom" = 6))
bitesize = 3
@@ -203,7 +203,7 @@
icon_state = "vannameat"
item_state = "vannameat"
contained_sprite = TRUE
reagents_to_add = list(/singleton/reagent/nutriment/protein = 6, /singleton/reagent/mindbreaker = 6)
reagents_to_add = list(/singleton/reagent/nutriment/protein = 6, /singleton/reagent/drugs/mindbreaker = 6)
/obj/item/reagent_containers/food/snacks/meat/bat
name = "bat wings"
@@ -220,7 +220,7 @@
icon_state = "hugemushroomslice"
filling_color = "#E0D7C5"
reagents_to_add = list(/singleton/reagent/nutriment = 3, /singleton/reagent/psilocybin = 3)
reagents_to_add = list(/singleton/reagent/nutriment = 3, /singleton/reagent/drugs/psilocybin = 3)
reagent_data = list(/singleton/reagent/nutriment = list("raw" = 2, "mushroom" = 2))
bitesize = 6
@@ -82,7 +82,7 @@
drop_sound = /singleton/sound_category/tray_hit_sound
filling_color = "#FF00F7"
center_of_mass = list("x"=15, "y"=11)
reagents_to_add = list(/singleton/reagent/nutriment = 8, /singleton/reagent/psilocybin = 8)
reagents_to_add = list(/singleton/reagent/nutriment = 8, /singleton/reagent/drugs/psilocybin = 8)
reagent_data = list(/singleton/reagent/nutriment = list("waffle" = 7, "sweetness" = 1))
bitesize = 4
@@ -149,7 +149,7 @@
trash = /obj/item/trash/brownies
filling_color = "#301301"
center_of_mass = list("x"=15, "y"=9)
reagents_to_add = list(/singleton/reagent/nutriment = 8, /singleton/reagent/browniemix = 4, /singleton/reagent/ambrosia_extract = 4, /singleton/reagent/bicaridine = 2, /singleton/reagent/kelotane = 2, /singleton/reagent/toxin = 2)
reagents_to_add = list(/singleton/reagent/nutriment = 8, /singleton/reagent/browniemix = 4, /singleton/reagent/drugs/ambrosia_extract = 4, /singleton/reagent/bicaridine = 2, /singleton/reagent/kelotane = 2, /singleton/reagent/toxin = 2)
reagent_data = list(/singleton/reagent/nutriment = list("brownies" = 5))
bitesize = 3
@@ -164,7 +164,7 @@
center_of_mass = list("x"=16, "y"=12)
/obj/item/reagent_containers/food/snacks/cosmicbrowniesslice/filled
reagents_to_add = list(/singleton/reagent/nutriment = 1, /singleton/reagent/browniemix = 1, /singleton/reagent/ambrosia_extract = 1, /singleton/reagent/bicaridine = 1, /singleton/reagent/kelotane = 1, /singleton/reagent/toxin = 1)
reagents_to_add = list(/singleton/reagent/nutriment = 1, /singleton/reagent/browniemix = 1, /singleton/reagent/drugs/ambrosia_extract = 1, /singleton/reagent/bicaridine = 1, /singleton/reagent/kelotane = 1, /singleton/reagent/toxin = 1)
reagent_data = list(/singleton/reagent/nutriment = list("brownies" = 2))
// Cakes.
@@ -518,7 +518,7 @@
icon_state = "amanita_pie"
filling_color = "#FFCCCC"
center_of_mass = list("x"=17, "y"=9)
reagents_to_add = list(/singleton/reagent/nutriment = 5, /singleton/reagent/toxin/amatoxin = 3, /singleton/reagent/psilocybin = 1)
reagents_to_add = list(/singleton/reagent/nutriment = 5, /singleton/reagent/toxin/amatoxin = 3, /singleton/reagent/drugs/psilocybin = 1)
reagent_data = list(/singleton/reagent/nutriment = list("sweetness" = 3, "mushroom" = 3, "pie" = 2))
bitesize = 3
@@ -617,7 +617,7 @@
trash = /obj/item/trash/snack_bowl
filling_color = "#ED0758"
center_of_mass = list("x"=16, "y"=5)
reagents_to_add = list(/singleton/reagent/nutriment = 6, /singleton/reagent/toxin/amatoxin = 6, /singleton/reagent/psilocybin = 3)
reagents_to_add = list(/singleton/reagent/nutriment = 6, /singleton/reagent/toxin/amatoxin = 6, /singleton/reagent/drugs/psilocybin = 3)
reagent_data = list(/singleton/reagent/nutriment = list("jelly" = 3, "mushroom" = 3))
bitesize = 3
@@ -193,7 +193,7 @@
/obj/item/reagent_containers/inhaler/xuxigas/Initialize()
. =..()
reagents.add_reagent(/singleton/reagent/xuxigas, volume)
reagents.add_reagent(/singleton/reagent/drugs/xuxigas, volume)
update_icon()
return
@@ -241,7 +241,7 @@
/obj/item/reagent_containers/inhaler/space_drugs/Initialize()
. =..()
reagents.add_reagent(/singleton/reagent/space_drugs, volume)
reagents.add_reagent(/singleton/reagent/drugs/mms, volume)
update_icon()
return
@@ -286,6 +286,6 @@
/obj/item/reagent_containers/inhaler/raskara_dust/Initialize()
. =..()
reagents.add_reagent(/singleton/reagent/raskara_dust, volume)
reagents.add_reagent(/singleton/reagent/drugs/raskara_dust, volume)
update_icon()
return
@@ -243,19 +243,49 @@
name = "Happy Pill"
desc = "Happy happy joy joy!"
icon_state = "pill_happy"
reagents_to_add = list(/singleton/reagent/space_drugs = 15, /singleton/reagent/sugar = 15)
reagents_to_add = list(/singleton/reagent/drugs/mms = 15, /singleton/reagent/sugar = 15)
/obj/item/reagent_containers/pill/zoom
name = "Zoom Pill"
desc = "Zoooom!"
icon_state = "pill18"
reagents_to_add = list(/singleton/reagent/impedrezene = 5, /singleton/reagent/synaptizine = 5, /singleton/reagent/hyperzine = 5)
reagents_to_add = list(/singleton/reagent/drugs/impedrezene = 5, /singleton/reagent/synaptizine = 5, /singleton/reagent/hyperzine = 5)
/obj/item/reagent_containers/pill/joy
name = "Joy Pill"
desc = "Peace, at last."
icon_state = "pill8"
reagents_to_add = list(/singleton/reagent/joy = 5)
reagents_to_add = list(/singleton/reagent/drugs/joy = 5)
/obj/item/reagent_containers/pill/heroin
name = "heroin pill"
desc = "The pain will pass..."
icon_state = "pill7"
reagents_to_add = list(/singleton/reagent/drugs/heroin = 5)
/obj/item/reagent_containers/pill/cocaine
name = "cocaine tablet"
desc = "For those long nights out."
icon_state = "pill18"
reagents_to_add = list(/singleton/reagent/drugs/cocaine = 10)
/obj/item/reagent_containers/pill/contemplus
name = "\improper Contemplus tablet"
desc = "For that essay that is due tomorrow."
icon_state = "pill19"
reagents_to_add = list(/singleton/reagent/drugs/cocaine/contemplus = 10)
/obj/item/reagent_containers/pill/spotlight
name = "\improper Spotlight tablet"
desc = "For that acting audition today."
icon_state = "pill2"
reagents_to_add = list(/singleton/reagent/drugs/cocaine/spotlight = 10)
/obj/item/reagent_containers/pill/sparkle
name = "\improper Sparkle tablet"
desc = "For those long nights out at the club."
icon_state = "pill20"
reagents_to_add = list(/singleton/reagent/drugs/cocaine/sparkle = 10)
/obj/item/reagent_containers/pill/thetamycin
name = "15u Thetamycin Pill"
@@ -290,7 +320,7 @@
name = "5u Co'qnixq Wuxi Pill"
desc = "Used to treat dementia."
icon_state = "pill8"
reagents_to_add = list(/singleton/reagent/skrell_nootropic = 5)
reagents_to_add = list(/singleton/reagent/drugs/skrell_nootropic = 5)
/obj/item/reagent_containers/pill/hyronalin
name = "7u Hyronalin"
@@ -414,7 +414,7 @@
/obj/item/reagent_containers/syringe/drugs
name = "Syringe (drugs)"
desc = "Contains aggressive drugs meant for torture."
reagents_to_add = list(/singleton/reagent/toxin/panotoxin = 5, /singleton/reagent/mindbreaker = 10)
reagents_to_add = list(/singleton/reagent/toxin/panotoxin = 5, /singleton/reagent/drugs/mindbreaker = 10)
/obj/item/reagent_containers/syringe/drugs/Initialize()
. = ..()
@@ -207,7 +207,7 @@
my_effect.ToggleActivate()
if(secondary_effect?.trigger == TRIGGER_VOLATILE)
secondary_effect.ToggleActivate()
else if(W.reagents.has_reagent(/singleton/reagent/toxin, 1) || W.reagents.has_reagent(/singleton/reagent/toxin/cyanide, 1) || W.reagents.has_reagent(/singleton/reagent/cryptobiolin, 1) || W.reagents.has_reagent(/singleton/reagent/impedrezene, 1) || W.reagents.has_reagent(/singleton/reagent/toxin/amatoxin, 1) || W.reagents.has_reagent(/singleton/reagent/alcohol/neurotoxin, 1))
else if(W.reagents.has_reagent(/singleton/reagent/toxin, 1) || W.reagents.has_reagent(/singleton/reagent/toxin/cyanide, 1) || W.reagents.has_reagent(/singleton/reagent/drugs/cryptobiolin, 1) || W.reagents.has_reagent(/singleton/reagent/drugs/impedrezene, 1) || W.reagents.has_reagent(/singleton/reagent/toxin/amatoxin, 1) || W.reagents.has_reagent(/singleton/reagent/alcohol/neurotoxin, 1))
if(my_effect.trigger == TRIGGER_TOXIN)
my_effect.ToggleActivate()
if(secondary_effect?.trigger == TRIGGER_TOXIN)