mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-17 13:42:44 +00:00
Drug Expansion (#8575)
* adds drugs and means to make them * nutmeg sprite and hallucination changes * adjustments + sounds courtesy of serithi * nit nack paddy wack
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/obj/machinery/chem_master
|
||||
name = "ChemMaster 3000"
|
||||
desc = "Used to seperate and package chemicals in to patches, pills, or bottles. Warranty void if used to create Space Drugs."
|
||||
desc = "Used to seperate and package chemicals in to patches, pills, or bottles. Warranty void if used to create illicit drugs."
|
||||
density = 1
|
||||
anchored = 1
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
|
||||
@@ -1263,3 +1263,10 @@
|
||||
result = "fusionnaire"
|
||||
required_reagents = list("lemonjuice" = 3, "vodka" = 2, "schnapps_pep" = 1, "schnapps_lem" = 1, "rum" = 1, "ice" = 1)
|
||||
result_amount = 9
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/ayahuasca
|
||||
name = "Ayahuasca"
|
||||
id = "ayahuasca"
|
||||
result = "ayahuasca"
|
||||
required_reagents = list("water" = 1, "dmt" = 2, "honey" = 1)
|
||||
result_amount = 3
|
||||
@@ -266,11 +266,18 @@
|
||||
required_reagents = list("bicaridine" = 1, "iron" = 2, "spidertoxin" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/decl/chemical_reaction/instant/royale
|
||||
name = "Royale"
|
||||
id = "royale"
|
||||
result = "royale"
|
||||
required_reagents = list("copper" = 1, "phosphorus" = 1, "sulfur" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/hyperzine
|
||||
name = "Hyperzine"
|
||||
id = "hyperzine"
|
||||
result = "hyperzine"
|
||||
required_reagents = list("sugar" = 1, "phosphorus" = 1, "sulfur" = 1)
|
||||
required_reagents = list("royale" = 1, "sugar" = 1, "phosphorus" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/decl/chemical_reaction/instant/stimm
|
||||
@@ -550,6 +557,34 @@
|
||||
required_reagents = list("hydrogen" = 2, "carbon" = 2, "ammonia" = 2)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/snowflake
|
||||
name = "Snowflake"
|
||||
id = "snowflake"
|
||||
result = "snowflake"
|
||||
required_reagents = list("frostoil" = 1, "fuel" = 1, "sulfur" = 1)
|
||||
result_amount = 1
|
||||
|
||||
/decl/chemical_reaction/instant/sinkhole
|
||||
name = "Sinkhole"
|
||||
id = "sinkhole"
|
||||
result = "sinkhole"
|
||||
required_reagents = list("enzyme" = 1, "bicaridine" = 1, "tramadol" = 1)
|
||||
result_amount = 1
|
||||
|
||||
/decl/chemical_reaction/instant/schnappi
|
||||
name = "Schnappi"
|
||||
id = "schnappi"
|
||||
result = "schnappi"
|
||||
required_reagents = list("ammonia" = 1, "tramadol" = 1, "cleaner" = 1, "potassium" = 1, "phosphorus" = 1, "fuel" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/decl/chemical_reaction/instant/colorspace
|
||||
name = "Colorspace"
|
||||
id = "colorspace"
|
||||
result = "colorspace"
|
||||
required_reagents = list("hydrogen" = 1, "ethanol" = 1, "silicon" = 1)
|
||||
result_amount = 1
|
||||
|
||||
/* Solidification */
|
||||
|
||||
/decl/chemical_reaction/instant/solidification
|
||||
|
||||
@@ -328,9 +328,8 @@
|
||||
|
||||
/obj/item/reagent_containers/pill/zoom/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("impedrezene", 10)
|
||||
reagents.add_reagent("royale", 10)
|
||||
reagents.add_reagent("synaptizine", 5)
|
||||
reagents.add_reagent("hyperzine", 5)
|
||||
color = reagents.get_color()
|
||||
|
||||
/obj/item/reagent_containers/pill/diet
|
||||
@@ -342,3 +341,39 @@
|
||||
. = ..()
|
||||
reagents.add_reagent("lipozine", 2)
|
||||
color = reagents.get_color()
|
||||
|
||||
//// Recreational drugs for loadout
|
||||
/obj/item/reagent_containers/pill/unidentified
|
||||
name = "mysterious pill"
|
||||
desc = "You're not quite sure what's in this..."
|
||||
icon_state = "pill1"
|
||||
|
||||
/obj/item/reagent_containers/pill/unidentified/bliss/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("bliss", 10)
|
||||
color = reagents.get_color()
|
||||
|
||||
/obj/item/reagent_containers/pill/unidentified/snowflake/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("snowflake", 10)
|
||||
color = reagents.get_color()
|
||||
|
||||
/obj/item/reagent_containers/pill/unidentified/royale/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("royale", 5)
|
||||
color = reagents.get_color()
|
||||
|
||||
/obj/item/reagent_containers/pill/unidentified/sinkhole/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("sinkhole", 5)
|
||||
color = reagents.get_color()
|
||||
|
||||
/obj/item/reagent_containers/pill/unidentified/colorspace/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("colorspace", 10)
|
||||
color = reagents.get_color()
|
||||
|
||||
/obj/item/reagent_containers/pill/unidentified/schnappi/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("schnappi", 5)
|
||||
color = reagents.get_color()
|
||||
@@ -109,7 +109,6 @@
|
||||
|
||||
M.adjustToxLoss(-2)
|
||||
M.druggy = max(M.druggy, drug_strength)
|
||||
M.heal_organ_damage(6)
|
||||
M.adjustOxyLoss(-3)
|
||||
M.AdjustStunned(-1)
|
||||
if(prob(5) && prob_proc == TRUE)
|
||||
@@ -144,7 +143,8 @@
|
||||
M.druggy = max(M.druggy, 30)
|
||||
|
||||
var/effective_dose = dose
|
||||
if(issmall(M)) effective_dose *= 2
|
||||
if(issmall(M))
|
||||
effective_dose *= 2
|
||||
if(effective_dose < 1 * threshold)
|
||||
M.apply_effect(3, STUTTER)
|
||||
M.make_dizzy(5)
|
||||
@@ -206,6 +206,240 @@
|
||||
color = "#181818"
|
||||
high_messages = FALSE
|
||||
|
||||
/datum/reagent/drugs/snowflake
|
||||
name = "Snowflake"
|
||||
id = "snowflake"
|
||||
description = "A recreational stimulant refined from frostoil found in certain plants."
|
||||
taste_description = "metallic and bitter"
|
||||
overdose = 15
|
||||
color = "#bbd7eb"
|
||||
high_message_list = list("You feel euphoric!",
|
||||
"You feel unstoppable.",
|
||||
"You just can't seem to stop sniffling...",
|
||||
"You feel impatient...",
|
||||
"Your eyes feel a bit dry.")
|
||||
sober_message_list = list("You feel a bit more sluggish.",
|
||||
"You feel terrible...",
|
||||
"You feel pretty dehydrated.")
|
||||
|
||||
/datum/reagent/drugs/snowflake/affect_blood(mob/living/carbon/M, alien, removed)
|
||||
..()
|
||||
|
||||
M.add_chemical_effect(CE_PAINKILLER,3)
|
||||
if(prob(12) && prob_proc == TRUE)
|
||||
M.emote(pick("shiver", "sniff"))
|
||||
prob_proc = FALSE
|
||||
|
||||
/datum/reagent/drugs/snowflake/overdose(mob/living/carbon/M, alien, removed)
|
||||
if(prob(35) && prob_proc == TRUE)
|
||||
M.vomit()
|
||||
M.adjustToxLoss(5)
|
||||
M.adjustBrainLoss(1)
|
||||
..()
|
||||
|
||||
/datum/reagent/drugs/royale
|
||||
name = "Royale"
|
||||
id = "royale"
|
||||
description = "A drug used in the process of making Hyperzine. A powerful stimulant on its own, it comes with significant drawbacks and potential for misuse."
|
||||
taste_description = "something faint and odious"
|
||||
color = "#dbd4ba"
|
||||
overdose = 10
|
||||
high_message_list = list("You feel energized!",
|
||||
"You're just not going fast enough. Faster!",
|
||||
"You could out-run the world if you tried.",
|
||||
"It's almost painful to sit still...",
|
||||
"Is everything going in slow motion?")
|
||||
sober_message_list = list("Everything is suddenly... sluggish.",
|
||||
"You feel like trash, but you can finally sit still...")
|
||||
|
||||
/datum/reagent/drugs/royale/affect_blood(mob/living/carbon/M, alien, removed)
|
||||
..()
|
||||
if(alien == IS_TAJARA) /// Similar to hyperzine...
|
||||
removed *= 1.25
|
||||
if(alien == IS_SLIME)
|
||||
M.make_jittery(4)
|
||||
if(dose >= 5)
|
||||
M.adjust_nutrition(-removed * 2)
|
||||
if(prob(5) && prob_proc == TRUE)
|
||||
M.emote(pick("twitch", "blink_r", "shiver"))
|
||||
M.add_chemical_effect(CE_PAINKILLER, 20) /// With chance of pain numbing...
|
||||
prob_proc = FALSE
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 1) /// And less speed boost.
|
||||
|
||||
/datum/reagent/drugs/royale/overdose(mob/living/carbon/M, alien, removed)
|
||||
if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
|
||||
for(var/i = 0, i < 4, i++)
|
||||
step(M, pick(cardinal))
|
||||
if(prob(5))
|
||||
M.emote("laugh")
|
||||
if(prob(5))
|
||||
M.visible_message("<span class = 'danger'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
var/obj/item/I = M.get_active_hand()
|
||||
if(I)
|
||||
M.drop_item()
|
||||
M.adjustToxLoss(1)
|
||||
M.adjustBrainLoss(pick(0.5, 0.6, 0.7, 0.8, 0.9, 1))
|
||||
..()
|
||||
|
||||
/datum/reagent/drugs/sinkhole
|
||||
name = "Sinkhole"
|
||||
id = "sinkhole"
|
||||
description = "A painkiller and recreational drug that hampers brain function."
|
||||
taste_description = "a grainy paste"
|
||||
color = "#462d35"
|
||||
high_message_list = list("You feel euphoric!",
|
||||
"You have a strange sense of calm and excitement all at once.",
|
||||
"You feel... sleepy.",
|
||||
"You feel dizzy.")
|
||||
sober_message_list = list("Your thoughts are in a fog...", "You just need to lay down and rest.")
|
||||
|
||||
/datum/reagent/drugs/sinkhole/affect_blood(mob/living/carbon/M, alien, removed)
|
||||
..()
|
||||
|
||||
M.add_chemical_effect(CE_PAINKILLER, 40)
|
||||
M.adjustBrainLoss(0.25)
|
||||
if(prob(5) && prob_proc == TRUE)
|
||||
M.emote(pick("shiver", "twitch"))
|
||||
prob_proc = FALSE
|
||||
|
||||
/datum/reagent/drugs/sinkhole/overdose(mob/living/carbon/M, alien, removed)
|
||||
if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
|
||||
for(var/i = 0, i < 4, i++)
|
||||
step(M, pick(cardinal))
|
||||
M.adjustToxLoss(2)
|
||||
M.drowsyness = max(M.drowsyness, 10)
|
||||
M.adjustBrainLoss(pick(0.5, 0.6, 0.7, 0.8, 0.9, 1))
|
||||
..()
|
||||
|
||||
/datum/reagent/drugs/dmt
|
||||
name = "Dimethyltryptamine"
|
||||
id = "dmt"
|
||||
description = "A psychedelic compound found naturally in certain plants."
|
||||
taste_description = "plastic"
|
||||
taste_mult = 1.8
|
||||
color = "#d4bc8e"
|
||||
high_message_list = list("You feel a sense of belonging.",
|
||||
"Are you being watched...?",
|
||||
"The boundaries of the universe feel limitless...")
|
||||
sober_message_list = list("You feel painfully grounded again.")
|
||||
|
||||
/datum/reagent/drugs/dmt/affect_blood(mob/living/carbon/M, alien, removed)
|
||||
..()
|
||||
|
||||
if(alien == IS_TAJARA)
|
||||
removed *= 1.25
|
||||
if(prob(15) && prob_proc == TRUE)
|
||||
M.emote(pick("deathgasp", "sigh", "smile"))
|
||||
prob_proc = FALSE
|
||||
|
||||
var/drug_strength = 30
|
||||
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength *= 0.8
|
||||
if(alien == IS_SLIME)
|
||||
drug_strength *= 1.2
|
||||
M.druggy = max(M.druggy, 5)
|
||||
M.hallucination = max(M.hallucination, drug_strength)
|
||||
|
||||
/datum/reagent/drugs/ayahuasca
|
||||
name = "Ayahuasca"
|
||||
id = "ayahuasca"
|
||||
description = "A brew of herbs known for religious use and spiritual experience."
|
||||
taste_description = "strong and bitter herbs"
|
||||
color = "#5b5f46"
|
||||
high_message_list = list("You feel at one with the universe.",
|
||||
"You feel in tune with the vibrations of the cosmos.",
|
||||
"The spirits are with you...",
|
||||
"Everything has a harmony, and you are part of it.")
|
||||
sober_message_list = list("The presence of the spirits fades.",
|
||||
"You feel grounded once again.")
|
||||
|
||||
/datum/reagent/drugs/ayahuasca/affect_blood(mob/living/carbon/M, alien, removed)
|
||||
if(alien == IS_TAJARA)
|
||||
removed *= 1.25
|
||||
..()
|
||||
if(prob(15) && prob_proc == TRUE)
|
||||
M.emote(pick("deathgasp", "moan", "smile", "groan"))
|
||||
prob_proc = FALSE
|
||||
var/drug_strength = 60
|
||||
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength *= 0.8
|
||||
|
||||
if(alien == IS_SLIME)
|
||||
drug_strength *= 1.2
|
||||
M.druggy = max(M.druggy, 10)
|
||||
M.hallucination = max(M.hallucination, drug_strength)
|
||||
|
||||
/datum/reagent/drugs/colorspace
|
||||
name = "Colorspace"
|
||||
id = "colorspace"
|
||||
description = "A psychedelic drug that alters thought and perception."
|
||||
taste_description = "flavorless paste"
|
||||
color = "#a7a6a4"
|
||||
high_message_list = list("The floor is melting...",
|
||||
"Everything is so much brighter! Wow!",
|
||||
"Everything is shifting around you.",
|
||||
"Your skin tickles.")
|
||||
sober_message_list = list("The world grows still again.", "Colors seem duller.")
|
||||
|
||||
/datum/reagent/drugs/colorspace/affect_blood(mob/living/carbon/M, alien, removed)
|
||||
..()
|
||||
|
||||
var/drug_strength = 80
|
||||
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength *= 0.8
|
||||
|
||||
if(alien == IS_SLIME)
|
||||
drug_strength *= 1.2
|
||||
|
||||
M.druggy = max(M.druggy, 15)
|
||||
M.hallucination = max(M.hallucination, drug_strength)
|
||||
|
||||
/datum/reagent/drugs/schnappi
|
||||
name = "Schnappi"
|
||||
id = "schnappi"
|
||||
description = "A dangerous and impure opiate that can cause necrosis in prolonged use."
|
||||
color = "#0264B4"
|
||||
taste_description = "a little crocodile" /// Schnee Schnii Schnappi, das kleiner krokodil...
|
||||
overdose = 15
|
||||
high_message_list = list("You feel pretty chill.",
|
||||
"Your skin feels all rough and dry.",
|
||||
"You feel too chill...!")
|
||||
sober_message_list = list("You're full of regret...", "Is it finally over?")
|
||||
|
||||
/datum/reagent/drugs/schnappi/affect_blood(mob/living/carbon/M, alien, removed)
|
||||
..()
|
||||
M.drowsyness = max(M.drowsyness, 5)
|
||||
M.add_chemical_effect(CE_PAINKILLER, 1)
|
||||
if(prob(15) && prob_proc == TRUE)
|
||||
M.adjustToxLoss(2)
|
||||
prob_proc = FALSE
|
||||
if(prob(10) && prob_proc == TRUE)
|
||||
M.visible_message("<span class='warning'>[M] looks dazed!</span>")
|
||||
M.Stun(5)
|
||||
M.emote("drool")
|
||||
prob_proc = FALSE
|
||||
|
||||
/datum/reagent/drugs/schnappi/overdose(mob/living/carbon/M, alien, removed)
|
||||
M.drowsyness = max(M.drowsyness, 10)
|
||||
if(prob(10))
|
||||
M.visible_message("<span class='warning'>[M] looks dazed!</span>")
|
||||
M.Stun(3)
|
||||
M.emote("drool")
|
||||
else if(prob(10))
|
||||
to_chat(M, "<span class ='warning'>Your skin is cracking and bleeding!</span>")
|
||||
M.adjustBruteLoss(5)
|
||||
M.adjustToxLoss(1)
|
||||
M.emote("cry")
|
||||
else if(prob(10))
|
||||
M.visible_message("<span class ='warning'>[M] sways and falls over!</span>")
|
||||
M.adjustToxLoss(10)
|
||||
M.Weaken(8)
|
||||
M.emote("faint")
|
||||
..()
|
||||
|
||||
/*///////////////////////////////////////////////////////////////////////////
|
||||
/// PSYCHIATRIC DRUGS /////
|
||||
/// /////
|
||||
|
||||
@@ -608,7 +608,7 @@
|
||||
..()
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch", "blink_r", "shiver"))
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 1)
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 3)
|
||||
|
||||
/datum/reagent/hyperzine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user