mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 02:34:00 +00:00
Big Pharma's Blessing: Snorting Mechanics
This commit is contained in:
@@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
// Chemistry lists.
|
// Chemistry lists.
|
||||||
var/list/tachycardics = list("coffee", "inaprovaline", "hyperzine", "nitroglycerin", "thirteenloko", "nicotine") // Increase heart rate.
|
var/list/tachycardics = list("coffee", "inaprovaline", "hyperzine", "nitroglycerin", "thirteenloko", "nicotine") // Increase heart rate.
|
||||||
var/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "space_drugs", "stoxin") // Decrease heart rate.
|
var/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "bliss", "stoxin", "ambrosia_extract") // Decrease heart rate.
|
||||||
var/list/heartstopper = list("potassium_chlorophoride", "zombie_powder") // This stops the heart.
|
var/list/heartstopper = list("potassium_chlorophoride", "zombie_powder") // This stops the heart.
|
||||||
var/list/cheartstopper = list("potassium_chloride") // This stops the heart when overdose is met. -- c = conditional
|
var/list/cheartstopper = list("potassium_chloride") // This stops the heart when overdose is met. -- c = conditional
|
||||||
|
|
||||||
|
|||||||
@@ -1081,8 +1081,8 @@ datum
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
drugs
|
drugs
|
||||||
steal_target = /datum/reagent/space_drugs
|
steal_target = /datum/reagent/drugs/bliss
|
||||||
explanation_text = "Steal some space drugs."
|
explanation_text = "Steal some bliss."
|
||||||
weight = 40
|
weight = 40
|
||||||
|
|
||||||
get_points(var/job)
|
get_points(var/job)
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
//Let's get some REAL contraband stuff in here. Because come on, getting brigged for LIPSTICK is no fun.
|
// Let's get some REAL contraband stuff in here. Because come on, getting brigged for LIPSTICK is no fun.
|
||||||
|
//
|
||||||
//Illicit drugs~
|
// Includes drug powder.
|
||||||
|
//
|
||||||
|
// Illicit drugs~
|
||||||
/obj/item/weapon/storage/pill_bottle/happy
|
/obj/item/weapon/storage/pill_bottle/happy
|
||||||
name = "bottle of Happy pills"
|
name = "bottle of Happy pills"
|
||||||
desc = "Highly illegal drug. When you want to see the rainbow."
|
desc = "Highly illegal drug. When you want to see the rainbow."
|
||||||
@@ -19,7 +21,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin
|
/obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin
|
||||||
random_reagent_list = list(
|
random_reagent_list = list(
|
||||||
list("mindbreaker" = 10, "space_drugs" = 20) = 3,
|
list("mindbreaker" = 10, "bliss" = 20) = 3,
|
||||||
list("carpotoxin" = 15) = 2,
|
list("carpotoxin" = 15) = 2,
|
||||||
list("impedrezene" = 15) = 2,
|
list("impedrezene" = 15) = 2,
|
||||||
list("zombiepowder" = 10) = 1)
|
list("zombiepowder" = 10) = 1)
|
||||||
@@ -39,3 +41,56 @@
|
|||||||
|
|
||||||
desc = "Contains [english_list(names)]."
|
desc = "Contains [english_list(names)]."
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
//
|
||||||
|
// Drug Powder
|
||||||
|
//
|
||||||
|
/obj/item/weapon/reagent_containers/powder
|
||||||
|
name = "powder"
|
||||||
|
desc = "A powdered form of... something."
|
||||||
|
icon = 'icons/obj/chemical.dmi'
|
||||||
|
icon_state = "powder"
|
||||||
|
item_state = "powder"
|
||||||
|
amount_per_transfer_from_this = 2
|
||||||
|
possible_transfer_amounts = 2
|
||||||
|
w_class = ITEMSIZE_TINY
|
||||||
|
volume = 50
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/powder/examine(mob/user)
|
||||||
|
if(reagents)
|
||||||
|
var/datum/reagent/R = reagents.get_master_reagent()
|
||||||
|
desc = "A powdered form of what appears to be [R.name]. There's about [reagents.total_volume] units here."
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/powder/Initialize()
|
||||||
|
..()
|
||||||
|
get_appearance()
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/powder/proc/get_appearance()
|
||||||
|
/// Names and colors based on dominant reagent.
|
||||||
|
if (reagents.reagent_list.len > 0)
|
||||||
|
color = reagents.get_color()
|
||||||
|
var/datum/reagent/R = reagents.get_master_reagent()
|
||||||
|
var/new_name = lowertext(R)
|
||||||
|
name = "powdered [new_name]"
|
||||||
|
|
||||||
|
/// Snorting.
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/powder/attackby(var/obj/item/weapon/W, var/mob/living/user)
|
||||||
|
|
||||||
|
if(!ishuman(user)) /// You gotta be fleshy to snort the naughty drugs.
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
if(!istype(W, /obj/item/weapon/glass_extra/straw) && !istype(W, /obj/item/weapon/reagent_containers/rollingpaper))
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
user.visible_message("<span class='warning'>[user] snorts [src] with [W]!</span>")
|
||||||
|
playsound(loc, 'sound/effects/snort.ogg', 50, 1)
|
||||||
|
|
||||||
|
if(reagents)
|
||||||
|
reagents.trans_to_mob(user, amount_per_transfer_from_this, CHEM_BLOOD)
|
||||||
|
|
||||||
|
if(!reagents.total_volume) /// Did we use all of it?
|
||||||
|
qdel(src)
|
||||||
|
|
||||||
|
////// End powder. /////////
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
to_chat(user, "<span class='notice'>There's visible lag between left and right pupils' reactions.</span>")
|
to_chat(user, "<span class='notice'>There's visible lag between left and right pupils' reactions.</span>")
|
||||||
|
|
||||||
var/list/pinpoint = list("oxycodone"=1,"tramadol"=5)
|
var/list/pinpoint = list("oxycodone"=1,"tramadol"=5)
|
||||||
var/list/dilating = list("space_drugs"=5,"mindbreaker"=1)
|
var/list/dilating = list("bliss"=5,"ambrosia_extract"=5,"mindbreaker"=1)
|
||||||
if(M.reagents.has_any_reagent(pinpoint) || H.ingested.has_any_reagent(pinpoint))
|
if(M.reagents.has_any_reagent(pinpoint) || H.ingested.has_any_reagent(pinpoint))
|
||||||
to_chat(user, "<span class='notice'>\The [M]'s pupils are already pinpoint and cannot narrow any more.</span>")
|
to_chat(user, "<span class='notice'>\The [M]'s pupils are already pinpoint and cannot narrow any more.</span>")
|
||||||
else if(M.reagents.has_any_reagent(dilating) || H.ingested.has_any_reagent(dilating))
|
else if(M.reagents.has_any_reagent(dilating) || H.ingested.has_any_reagent(dilating))
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
if(ishuman(loc))
|
if(ishuman(loc))
|
||||||
var/mob/living/carbon/human/C = loc
|
var/mob/living/carbon/human/C = loc
|
||||||
if (src == C.wear_mask && C.check_has_mouth()) // if it's in the human/monkey mouth, transfer reagents to the mob
|
if (src == C.wear_mask && C.check_has_mouth()) // if it's in the human/monkey mouth, transfer reagents to the mob
|
||||||
reagents.trans_to_mob(C, REM, CHEM_INGEST, 0.2) // Most of it is not inhaled... balance reasons.
|
reagents.trans_to_mob(C, amount, CHEM_INGEST, 1.5) // I don't predict significant balance issues by letting blunts actually WORK.
|
||||||
else // else just remove some of the reagents
|
else // else just remove some of the reagents
|
||||||
reagents.remove_any(REM)
|
reagents.remove_any(REM)
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ much more likely to show up. This is done for several purposes;
|
|||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified,
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified,
|
||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/healing_nanites/unidentified,
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/healing_nanites/unidentified,
|
||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/stimm/unidentified,
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/stimm/unidentified,
|
||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/space_drugs/unidentified,
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bliss/unidentified,
|
||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/expired/unidentified,
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/expired/unidentified,
|
||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/serotrotium/unidentified,
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/serotrotium/unidentified,
|
||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cryptobiolin/unidentified,
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cryptobiolin/unidentified,
|
||||||
@@ -108,7 +108,7 @@ much more likely to show up. This is done for several purposes;
|
|||||||
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified,
|
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified,
|
||||||
prob(40);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified,
|
prob(40);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified,
|
||||||
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/stimm/unidentified,
|
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/stimm/unidentified,
|
||||||
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/space_drugs/unidentified,
|
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bliss/unidentified,
|
||||||
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/serotrotium/unidentified,
|
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/serotrotium/unidentified,
|
||||||
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cryptobiolin/unidentified,
|
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cryptobiolin/unidentified,
|
||||||
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/mindbreaker/unidentified,
|
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/mindbreaker/unidentified,
|
||||||
|
|||||||
@@ -90,4 +90,13 @@
|
|||||||
/datum/gear/textmug
|
/datum/gear/textmug
|
||||||
display_name = "mug with text"
|
display_name = "mug with text"
|
||||||
description = "A mug with something written on it."
|
description = "A mug with something written on it."
|
||||||
path = /obj/item/weapon/reagent_containers/food/drinks/textmug
|
<<<<<<< HEAD
|
||||||
|
path = /obj/item/weapon/reagent_containers/food/drinks/textmug
|
||||||
|
=======
|
||||||
|
path = /obj/item/weapon/reagent_containers/food/drinks/textmug
|
||||||
|
|
||||||
|
/datum/gear/schnapsen
|
||||||
|
display_name = "schnapsen playing cards"
|
||||||
|
description = "French-suit playing cards! Pre-picked for 2-player mode."
|
||||||
|
path = /obj/item/weapon/deck/schnapsen
|
||||||
|
>>>>>>> b042467fe4... Merge pull request #12767 from GhostActual/powder_drugs
|
||||||
|
|||||||
@@ -1089,7 +1089,7 @@
|
|||||||
icon_state = "dankpocket"
|
icon_state = "dankpocket"
|
||||||
nutriment_amt = 2
|
nutriment_amt = 2
|
||||||
nutriment_desc = list("heartiness" = 1, "dough" = 2)
|
nutriment_desc = list("heartiness" = 1, "dough" = 2)
|
||||||
heated_reagents = list("space_drugs" = 5)
|
heated_reagents = list("bliss" = 5)
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket
|
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket
|
||||||
name = "\improper Sin-pocket"
|
name = "\improper Sin-pocket"
|
||||||
@@ -3289,7 +3289,7 @@
|
|||||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cosmicbrownies/Initialize()
|
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cosmicbrownies/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
reagents.add_reagent("protein", 2)
|
reagents.add_reagent("protein", 2)
|
||||||
reagents.add_reagent("space_drugs", 2)
|
reagents.add_reagent("ambrosia_extract", 2)
|
||||||
reagents.add_reagent("bicaridine", 1)
|
reagents.add_reagent("bicaridine", 1)
|
||||||
reagents.add_reagent("kelotane", 1)
|
reagents.add_reagent("kelotane", 1)
|
||||||
reagents.add_reagent("toxin", 1)
|
reagents.add_reagent("toxin", 1)
|
||||||
@@ -4092,7 +4092,7 @@
|
|||||||
|
|
||||||
reagents.add_reagent("oxycodone", 1)
|
reagents.add_reagent("oxycodone", 1)
|
||||||
reagents.add_reagent("sifsap", 5)
|
reagents.add_reagent("sifsap", 5)
|
||||||
reagents.add_reagent("space_drugs", 5)
|
reagents.add_reagent("bliss", 5)
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/bellefritter
|
/obj/item/weapon/reagent_containers/food/snacks/bellefritter
|
||||||
name = "frostbelle fritters"
|
name = "frostbelle fritters"
|
||||||
|
|||||||
@@ -202,7 +202,7 @@
|
|||||||
desc = "A mysterious slice, coated in purple frosting that smells like grapes."
|
desc = "A mysterious slice, coated in purple frosting that smells like grapes."
|
||||||
nutriment_desc = list("The desire to show off an party" = 10)
|
nutriment_desc = list("The desire to show off an party" = 10)
|
||||||
reagents.add_reagent("stoxin", 2)
|
reagents.add_reagent("stoxin", 2)
|
||||||
reagents.add_reagent("space_drugs", 10)
|
reagents.add_reagent("bliss", 10)
|
||||||
reagents.add_reagent("serotrotium", 4)
|
reagents.add_reagent("serotrotium", 4)
|
||||||
reagents.add_reagent("cryptobiolin", 8)
|
reagents.add_reagent("cryptobiolin", 8)
|
||||||
reagents.add_reagent("mindbreaker", 10)
|
reagents.add_reagent("mindbreaker", 10)
|
||||||
|
|||||||
@@ -88,7 +88,7 @@
|
|||||||
descriptors |= "radioactive"
|
descriptors |= "radioactive"
|
||||||
if(reagents.has_reagent("amatoxin") || reagents.has_reagent("toxin"))
|
if(reagents.has_reagent("amatoxin") || reagents.has_reagent("toxin"))
|
||||||
descriptors |= "poisonous"
|
descriptors |= "poisonous"
|
||||||
if(reagents.has_reagent("psilocybin") || reagents.has_reagent("space_drugs") || reagents.has_reagent("earthsblood"))
|
if(reagents.has_reagent("psilocybin") || reagents.has_reagent("bliss") || reagents.has_reagent("earthsblood"))
|
||||||
descriptors |= "hallucinogenic"
|
descriptors |= "hallucinogenic"
|
||||||
if(reagents.has_reagent("bicaridine") || reagents.has_reagent("earthsblood"))
|
if(reagents.has_reagent("bicaridine") || reagents.has_reagent("earthsblood"))
|
||||||
descriptors |= "medicinal"
|
descriptors |= "medicinal"
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
pocell.charge = pocell.maxcharge
|
pocell.charge = pocell.maxcharge
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(W.sharp)
|
if(W.sharp)
|
||||||
|
|
||||||
if(seed.kitchen_tag == "pumpkin") // Ugggh these checks are awful.
|
if(seed.kitchen_tag == "pumpkin") // Ugggh these checks are awful.
|
||||||
@@ -213,7 +213,7 @@
|
|||||||
to_chat(user, "You add the newly-formed wood to the stack. It now contains [NG.get_amount()] planks.")
|
to_chat(user, "You add the newly-formed wood to the stack. It now contains [NG.get_amount()] planks.")
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(seed.kitchen_tag == "sunflower")
|
if(seed.kitchen_tag == "sunflower")
|
||||||
new /obj/item/weapon/reagent_containers/food/snacks/rawsunflower(get_turf(src))
|
new /obj/item/weapon/reagent_containers/food/snacks/rawsunflower(get_turf(src))
|
||||||
to_chat(user, SPAN_NOTICE("You remove the seeds from the flower, slightly damaging them."))
|
to_chat(user, SPAN_NOTICE("You remove the seeds from the flower, slightly damaging them."))
|
||||||
@@ -225,25 +225,25 @@
|
|||||||
new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(get_turf(src))
|
new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(get_turf(src))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!isnull(seed.chems["carrotjuice"]))
|
if(!isnull(seed.chems["carrotjuice"]))
|
||||||
to_chat(user, "You slice \the [src] into sticks.")
|
to_chat(user, "You slice \the [src] into sticks.")
|
||||||
new /obj/item/weapon/reagent_containers/food/snacks/carrotfries(get_turf(src))
|
new /obj/item/weapon/reagent_containers/food/snacks/carrotfries(get_turf(src))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!isnull(seed.chems["pineapplejuice"]))
|
if(!isnull(seed.chems["pineapplejuice"]))
|
||||||
to_chat(user, "You slice \the [src] into rings.")
|
to_chat(user, "You slice \the [src] into rings.")
|
||||||
new /obj/item/weapon/reagent_containers/food/snacks/pineapple_ring(get_turf(src))
|
new /obj/item/weapon/reagent_containers/food/snacks/pineapple_ring(get_turf(src))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!isnull(seed.chems["soymilk"]))
|
if(!isnull(seed.chems["soymilk"]))
|
||||||
to_chat(user, "You roughly chop up \the [src].")
|
to_chat(user, "You roughly chop up \the [src].")
|
||||||
new /obj/item/weapon/reagent_containers/food/snacks/soydope(get_turf(src))
|
new /obj/item/weapon/reagent_containers/food/snacks/soydope(get_turf(src))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(seed.get_trait(TRAIT_FLESH_COLOUR))
|
if(seed.get_trait(TRAIT_FLESH_COLOUR))
|
||||||
to_chat(user, "You slice up \the [src].")
|
to_chat(user, "You slice up \the [src].")
|
||||||
var/slices = rand(3,5)
|
var/slices = rand(3,5)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
display_name = "ambrosia vulgaris"
|
display_name = "ambrosia vulgaris"
|
||||||
kitchen_tag = "ambrosia"
|
kitchen_tag = "ambrosia"
|
||||||
mutants = list("ambrosiadeus")
|
mutants = list("ambrosiadeus")
|
||||||
chems = list("nutriment" = list(1), "space_drugs" = list(1,8), "kelotane" = list(1,8,1), "bicaridine" = list(1,10,1), "toxin" = list(1,10))
|
chems = list("nutriment" = list(1), "ambrosia_extract" = list(1,8), "kelotane" = list(1,8,1), "bicaridine" = list(1,10,1))
|
||||||
|
|
||||||
/datum/seed/ambrosia/New()
|
/datum/seed/ambrosia/New()
|
||||||
..()
|
..()
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
display_name = "ambrosia deus"
|
display_name = "ambrosia deus"
|
||||||
kitchen_tag = "ambrosiadeus"
|
kitchen_tag = "ambrosiadeus"
|
||||||
mutants = list("ambrosiainfernus", "ambrosiagaia")
|
mutants = list("ambrosiainfernus", "ambrosiagaia")
|
||||||
chems = list("nutriment" = list(1), "bicaridine" = list(1,8), "synaptizine" = list(1,8,1), "hyperzine" = list(1,10,1), "space_drugs" = list(1,10))
|
chems = list("nutriment" = list(1), "bicaridine" = list(1,8), "synaptizine" = list(1,8,1), "hyperzine" = list(1,10,1), "ambrosia_extract" = list(1,10))
|
||||||
|
|
||||||
/datum/seed/ambrosia/deus/New()
|
/datum/seed/ambrosia/deus/New()
|
||||||
..()
|
..()
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
display_name = "ambrosia infernus"
|
display_name = "ambrosia infernus"
|
||||||
kitchen_tag = "ambrosiainfernus"
|
kitchen_tag = "ambrosiainfernus"
|
||||||
mutants = null
|
mutants = null
|
||||||
chems = list("nutriment" = list(1,3), "oxycodone" = list(1,8), "impedrezene" = list(1,10), "mindbreaker" = list(1,10))
|
chems = list("nutriment" = list(1,3), "oxycodone" = list(1,8), "impedrezene" = list(1,10), "mindbreaker" = list(1,10), "ambrosia_extract" = list(1,10))
|
||||||
|
|
||||||
/datum/seed/ambrosia/infernus/New()
|
/datum/seed/ambrosia/infernus/New()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
seed_name = "liberty cap"
|
seed_name = "liberty cap"
|
||||||
display_name = "liberty cap mushrooms"
|
display_name = "liberty cap mushrooms"
|
||||||
mutants = null
|
mutants = null
|
||||||
chems = list("nutriment" = list(1), "stoxin" = list(3,3), "space_drugs" = list(1,25))
|
chems = list("nutriment" = list(1), "stoxin" = list(3,3), "bliss" = list(1,25))
|
||||||
|
|
||||||
/datum/seed/mushroom/hallucinogenic/strong/New()
|
/datum/seed/mushroom/hallucinogenic/strong/New()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -134,7 +134,7 @@
|
|||||||
// ====
|
// ====
|
||||||
/datum/medical_effect/itch
|
/datum/medical_effect/itch
|
||||||
name = "Itch"
|
name = "Itch"
|
||||||
triggers = list("space_drugs" = 10)
|
triggers = list("bliss" = 10)
|
||||||
cures = list("inaprovaline")
|
cures = list("inaprovaline")
|
||||||
cure_message = "The itching stops..."
|
cure_message = "The itching stops..."
|
||||||
|
|
||||||
|
|||||||
@@ -82,10 +82,10 @@
|
|||||||
required_reagents = list("aluminum" = 1, "iron" = 1, "oxygen" = 1)
|
required_reagents = list("aluminum" = 1, "iron" = 1, "oxygen" = 1)
|
||||||
result_amount = 3
|
result_amount = 3
|
||||||
|
|
||||||
/decl/chemical_reaction/instant/space_drugs
|
/decl/chemical_reaction/instant/bliss
|
||||||
name = "Space Drugs"
|
name = "Bliss"
|
||||||
id = "space_drugs"
|
id = "bliss"
|
||||||
result = "space_drugs"
|
result = "bliss"
|
||||||
required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1)
|
required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1)
|
||||||
result_amount = 3
|
result_amount = 3
|
||||||
|
|
||||||
@@ -1185,7 +1185,7 @@
|
|||||||
name = "Talum-quem"
|
name = "Talum-quem"
|
||||||
id = "talum_quem"
|
id = "talum_quem"
|
||||||
result = "talum_quem"
|
result = "talum_quem"
|
||||||
required_reagents = list("space_drugs" = 2, "sugar" = 1, "amatoxin" = 1)
|
required_reagents = list("bliss" = 2, "sugar" = 1, "amatoxin" = 1)
|
||||||
result_amount = 4
|
result_amount = 4
|
||||||
|
|
||||||
/decl/chemical_reaction/instant/qerr_quem
|
/decl/chemical_reaction/instant/qerr_quem
|
||||||
|
|||||||
@@ -308,11 +308,11 @@
|
|||||||
This one is filled with serotrotium, which causes concentrated production of the serotonin neurotransmitter in humans."
|
This one is filled with serotrotium, which causes concentrated production of the serotonin neurotransmitter in humans."
|
||||||
filled_reagents = list("serotrotium" = 15)
|
filled_reagents = list("serotrotium" = 15)
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/space_drugs
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bliss
|
||||||
name = "illicit injector"
|
name = "illicit injector"
|
||||||
desc = "A refined version of the standard autoinjector, allowing greater capacity. \
|
desc = "A refined version of the standard autoinjector, allowing greater capacity. \
|
||||||
This one contains various illicit drugs, held inside a hypospray to make smuggling easier."
|
This one contains various illicit drugs, held inside a hypospray to make smuggling easier."
|
||||||
filled_reagents = list("space_drugs" = 15)
|
filled_reagents = list("bliss" = 15)
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cryptobiolin
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cryptobiolin
|
||||||
name = "cryptobiolin injector"
|
name = "cryptobiolin injector"
|
||||||
|
|||||||
@@ -91,6 +91,29 @@
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/pill/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
|
if(is_sharp(W))
|
||||||
|
var/obj/item/weapon/reagent_containers/powder/J = new /obj/item/weapon/reagent_containers/powder(src.loc)
|
||||||
|
user.visible_message("<span class='warning'>[user] gently cuts up [src] with [W]!</span>")
|
||||||
|
playsound(src.loc, 'sound/effects/chop.ogg', 50, 1)
|
||||||
|
|
||||||
|
if(reagents)
|
||||||
|
reagents.trans_to_obj(J, reagents.total_volume)
|
||||||
|
J.get_appearance()
|
||||||
|
qdel(src)
|
||||||
|
|
||||||
|
if(istype(W, /obj/item/weapon/card/id))
|
||||||
|
var/obj/item/weapon/reagent_containers/powder/J = new /obj/item/weapon/reagent_containers/powder(src.loc)
|
||||||
|
user.visible_message("<span class='warning'>[user] clumsily chops up [src] with [W]!</span>")
|
||||||
|
playsound(src.loc, 'sound/effects/chop.ogg', 50, 1)
|
||||||
|
|
||||||
|
if(reagents)
|
||||||
|
reagents.trans_to_obj(J, reagents.total_volume)
|
||||||
|
J.get_appearance()
|
||||||
|
qdel(src)
|
||||||
|
|
||||||
|
return ..()
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// Pills. END
|
/// Pills. END
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -294,7 +317,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/reagent_containers/pill/happy/Initialize()
|
/obj/item/weapon/reagent_containers/pill/happy/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
reagents.add_reagent("space_drugs", 15)
|
reagents.add_reagent("bliss", 15)
|
||||||
reagents.add_reagent("sugar", 15)
|
reagents.add_reagent("sugar", 15)
|
||||||
color = reagents.get_color()
|
color = reagents.get_color()
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
init_hide_identity = TRUE
|
init_hide_identity = TRUE
|
||||||
flags = 0
|
flags = 0
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/space_drugs/unidentified
|
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bliss/unidentified
|
||||||
init_hide_identity = TRUE
|
init_hide_identity = TRUE
|
||||||
flags = 0
|
flags = 0
|
||||||
|
|
||||||
|
|||||||
255
code/modules/reagents/reagents/drugs.dm
Normal file
255
code/modules/reagents/reagents/drugs.dm
Normal file
@@ -0,0 +1,255 @@
|
|||||||
|
/*
|
||||||
|
/// Recreational and psychiatric drugs go here! Please keep them separated in the file.
|
||||||
|
/// Due to concerns and safety for our repo, illegal real-world drug names should generally be avoided.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/datum/reagent/drugs
|
||||||
|
name = "generic drugs"
|
||||||
|
id = "drugs"
|
||||||
|
description = "Some generic drugs."
|
||||||
|
taste_description = "a bad investment"
|
||||||
|
taste_mult = 1.2 /// The overwhelming flavor of a good(?) time!
|
||||||
|
color = "#f2f2f2"
|
||||||
|
var/high_messages = TRUE
|
||||||
|
var/list/high_message_list = list("You feel great! For now...", "You feel a wave of happiness!")
|
||||||
|
var/list/sober_message_list = list("You feel like garbage...", "Your head aches.")
|
||||||
|
data = 0
|
||||||
|
|
||||||
|
var/prob_proc = FALSE /// ANY probabilities in specific drugs should check for this to be TRUE + the desired probability AND set this back to false.
|
||||||
|
|
||||||
|
reagent_state = LIQUID
|
||||||
|
metabolism = REM * 0.5
|
||||||
|
ingest_met = REM * 1.5 /// Be very careful with this, ingestion is weird and will spam high/sober messages horribly!
|
||||||
|
mrate_static = TRUE
|
||||||
|
overdose = REAGENTS_OVERDOSE
|
||||||
|
|
||||||
|
/datum/reagent/drugs/affect_blood(mob/living/carbon/M, var/alien, var/removed)
|
||||||
|
if(alien == IS_DIONA)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(high_messages == TRUE)
|
||||||
|
if(world.time > data + 90 SECONDS && volume > 0.5) /// Spam prevention.
|
||||||
|
data = world.time
|
||||||
|
var/msg = pick(high_message_list)
|
||||||
|
to_chat(M, "<span class='warning'>[msg]</span>")
|
||||||
|
else if(volume <= 0.2 && data != -1)
|
||||||
|
data = -1
|
||||||
|
var/msg = pick(sober_message_list)
|
||||||
|
to_chat(M, "<span class='warning'>[msg]</span>")
|
||||||
|
if(prob(5) && prob_proc == FALSE) /// Enables procs to activate, remains true until THAT PROC sets it to false again.
|
||||||
|
prob_proc = TRUE
|
||||||
|
|
||||||
|
/datum/reagent/drugs/bliss /// Replaces Space Drugs.
|
||||||
|
name = "Bliss"
|
||||||
|
id = "bliss"
|
||||||
|
description = "Known for providing a euphoric high, this psychoactive drug is often used recreationally."
|
||||||
|
taste_description = "unpleasant bitterness"
|
||||||
|
taste_mult = 0.4
|
||||||
|
high_message_list = list("You don't quite know what up or down is anymore...",
|
||||||
|
"Colors just seem much more amazing.",
|
||||||
|
"You feel incredibly confident. No one can stop you.",
|
||||||
|
"You clench your jaw involuntarily.",
|
||||||
|
"You feel... unsteady.",
|
||||||
|
"You really feel like talking about your feelings!")
|
||||||
|
sober_message_list = list("Everything feels a little more grounded.",
|
||||||
|
"Colors seem... flatter.",
|
||||||
|
"Everything feels a little dull, now.")
|
||||||
|
|
||||||
|
/datum/reagent/drugs/bliss/affect_blood(mob/living/carbon/M, var/alien, var/removed)
|
||||||
|
..()
|
||||||
|
var/drug_strength = 15
|
||||||
|
if(alien == IS_SKRELL)
|
||||||
|
drug_strength = drug_strength * 0.8
|
||||||
|
if(alien == IS_SLIME)
|
||||||
|
drug_strength = drug_strength * 1.2
|
||||||
|
|
||||||
|
M.druggy = max(M.druggy, drug_strength)
|
||||||
|
if(prob_proc == TRUE && prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
|
||||||
|
step(M, pick(cardinal))
|
||||||
|
prob_proc = FALSE
|
||||||
|
if(prob_proc == TRUE && prob(7))
|
||||||
|
M.emote(pick("twitch", "drool", "moan", "giggle"))
|
||||||
|
prob_proc = FALSE
|
||||||
|
|
||||||
|
/datum/reagent/drugs/bliss/overdose(var/mob/living/M as mob)
|
||||||
|
if(prob_proc == TRUE && prob(20))
|
||||||
|
M.hallucination = max(M.hallucination, 5)
|
||||||
|
prob_proc = FALSE
|
||||||
|
M.adjustBrainLoss(0.25*REM)
|
||||||
|
M.adjustToxLoss(0.25*REM)
|
||||||
|
..()
|
||||||
|
|
||||||
|
/datum/reagent/drugs/ambrosia_extract
|
||||||
|
name = "Ambrosia extract"
|
||||||
|
id = "ambrosia_extract"
|
||||||
|
description = "The extract from the plant family ambrosia, responsible for the more \"recreational\" effects."
|
||||||
|
taste_description = "a strong-tasting plant"
|
||||||
|
color = "#358f49"
|
||||||
|
high_message_list = list("You feel so much more relaxed.",
|
||||||
|
"You can't quite focus on anything.",
|
||||||
|
"Colors around you seem much more intense.",
|
||||||
|
"You could snack on something right now...",
|
||||||
|
"You feel lightheaded and giggly.",
|
||||||
|
"Everything seems so hilarious.",
|
||||||
|
"You really could go for some takeout right now.",
|
||||||
|
"You momentarily forget where you are.",
|
||||||
|
"You have a mild urge to look over your shoulder.")
|
||||||
|
sober_message_list = list("You feel the urge to just sit there and do nothing.",
|
||||||
|
"Reality seems like a real pain in the ass to deal with right now.",
|
||||||
|
"Things feel really colourless to you all of a sudden.",
|
||||||
|
"You feel the urge to lie down and nap.")
|
||||||
|
|
||||||
|
/datum/reagent/drugs/ambrosia_extract/affect_blood(mob/living/carbon/M, var/alien, var/removed)
|
||||||
|
..()
|
||||||
|
var/drug_strength = 3
|
||||||
|
if(alien == IS_SKRELL)
|
||||||
|
drug_strength = drug_strength * 0.8
|
||||||
|
if(alien == IS_SLIME)
|
||||||
|
drug_strength = drug_strength * 1.2
|
||||||
|
|
||||||
|
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)
|
||||||
|
M.emote("giggle")
|
||||||
|
prob_proc = FALSE
|
||||||
|
if(prob(10) && prob_proc == TRUE)
|
||||||
|
M.adjust_nutrition(-10)
|
||||||
|
prob_proc = FALSE
|
||||||
|
|
||||||
|
/datum/reagent/drugs/psilocybin
|
||||||
|
name = "Psilocybin"
|
||||||
|
id = "psilocybin"
|
||||||
|
description = "A strong psycotropic derived from certain species of mushroom."
|
||||||
|
taste_description = "mushroom"
|
||||||
|
color = "#E700E7"
|
||||||
|
high_message_list = list("The world distorts around you...!",
|
||||||
|
"The walls look like they're moving...",
|
||||||
|
"Nothing really makes sense right now.",
|
||||||
|
"It feels like you've melded with the world around you...")
|
||||||
|
sober_message_list = list("Everything feels... flat.", "You feel almost TOO grounded in your surroundings.")
|
||||||
|
|
||||||
|
/datum/reagent/drugs/psilocybin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||||
|
..()
|
||||||
|
|
||||||
|
var/threshold = 1 * M.species.chem_strength_tox
|
||||||
|
if(alien == IS_SKRELL)
|
||||||
|
threshold = 1.2
|
||||||
|
|
||||||
|
if(alien == IS_SLIME)
|
||||||
|
threshold = 0.8
|
||||||
|
|
||||||
|
M.druggy = max(M.druggy, 30)
|
||||||
|
|
||||||
|
var/effective_dose = dose
|
||||||
|
if(issmall(M)) effective_dose *= 2
|
||||||
|
if(effective_dose < 1 * threshold)
|
||||||
|
M.apply_effect(3, STUTTER)
|
||||||
|
M.make_dizzy(5)
|
||||||
|
if(prob(3) && prob_proc == TRUE)
|
||||||
|
M.emote(pick("twitch", "giggle"))
|
||||||
|
prob_proc = FALSE
|
||||||
|
else if(effective_dose < 2 * threshold)
|
||||||
|
M.apply_effect(3, STUTTER)
|
||||||
|
M.make_jittery(5)
|
||||||
|
M.make_dizzy(5)
|
||||||
|
M.druggy = max(M.druggy, 35)
|
||||||
|
if(prob(5) && prob_proc == TRUE)
|
||||||
|
M.emote(pick("twitch", "giggle"))
|
||||||
|
prob_proc = FALSE
|
||||||
|
else
|
||||||
|
M.apply_effect(3, STUTTER)
|
||||||
|
M.make_jittery(10)
|
||||||
|
M.make_dizzy(10)
|
||||||
|
M.druggy = max(M.druggy, 40)
|
||||||
|
if(prob(10) && prob_proc == TRUE)
|
||||||
|
M.emote(pick("twitch", "giggle"))
|
||||||
|
prob_proc = FALSE
|
||||||
|
|
||||||
|
/datum/reagent/drugs/talum_quem
|
||||||
|
name = "Talum-quem"
|
||||||
|
id = "talum_quem"
|
||||||
|
description = " A very carefully tailored hallucinogen, for use of the Talum-Katish."
|
||||||
|
taste_description = "bubblegum"
|
||||||
|
taste_mult = 1.6
|
||||||
|
color = "#db2ed8"
|
||||||
|
high_message_list = list("The world distorts around you...!",
|
||||||
|
"The walls look like they're moving...",
|
||||||
|
"Nothing really makes sense right now.",
|
||||||
|
"It feels like you've melded with the world around you...")
|
||||||
|
sober_message_list = list("Everything feels... flat.", "You feel almost TOO grounded in your surroundings.")
|
||||||
|
|
||||||
|
/datum/reagent/drugs/talum_quem/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||||
|
..()
|
||||||
|
|
||||||
|
var/drug_strength = 29 * M.species.chem_strength_tox
|
||||||
|
if(alien == IS_SKRELL)
|
||||||
|
drug_strength = drug_strength * 0.8
|
||||||
|
else
|
||||||
|
M.adjustToxLoss(10 * removed) //Given incorporations of other toxins with similiar damage, this seems right.
|
||||||
|
|
||||||
|
M.druggy = max(M.druggy, drug_strength)
|
||||||
|
if(prob(10) && prob_proc == TRUE && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
|
||||||
|
step(M, pick(cardinal))
|
||||||
|
prob_proc = FALSE
|
||||||
|
if(prob(7) && prob_proc == TRUE)
|
||||||
|
M.emote(pick("twitch", "drool", "moan", "giggle"))
|
||||||
|
prob_proc = FALSE
|
||||||
|
|
||||||
|
/datum/reagent/drugs/nicotine
|
||||||
|
name = "Nicotine"
|
||||||
|
id = "nicotine"
|
||||||
|
description = "A highly addictive stimulant extracted from the tobacco plant."
|
||||||
|
taste_description = "sour staleness"
|
||||||
|
color = "#181818"
|
||||||
|
high_messages = FALSE
|
||||||
|
|
||||||
|
/*///////////////////////////////////////////////////////////////////////////
|
||||||
|
/// PSYCHIATRIC DRUGS /////
|
||||||
|
/// /////
|
||||||
|
/// Psychiatric drugs use similar mechanics and will go under "drugs". /////
|
||||||
|
*////////////////////////////////////////////////////////////////////////////
|
||||||
|
/datum/reagent/drugs/methylphenidate
|
||||||
|
name = "Methylphenidate"
|
||||||
|
id = "methylphenidate"
|
||||||
|
description = "Improves the ability to concentrate."
|
||||||
|
taste_description = "mild grape" ///Referencing real life oral solutions for these meds.
|
||||||
|
color = "#BF80BF"
|
||||||
|
high_message_list = list("You feel focused.", "Your attention is undivided.")
|
||||||
|
sober_message_list = list("It becomes harder to focus...", "You feel distractible.")
|
||||||
|
|
||||||
|
/datum/reagent/drugs/citalopram
|
||||||
|
name = "Citalopram"
|
||||||
|
id = "citalopram"
|
||||||
|
description = "Stabilizes the mind a little."
|
||||||
|
taste_description = "mild peppermint"
|
||||||
|
color = "#FF80FF"
|
||||||
|
high_message_list = list("Everything feels a bit more steady.", "Your mind feels stable.")
|
||||||
|
sober_message_list = list("You feel a little tired.", "You feel a little more listless...")
|
||||||
|
|
||||||
|
/datum/reagent/drugs/paroxetine
|
||||||
|
name = "Paroxetine"
|
||||||
|
id = "paroxetine"
|
||||||
|
description = "Stabilizes the mind greatly, but has a chance of adverse effects."
|
||||||
|
taste_description = "mild oranges"
|
||||||
|
color = "#FF80BF"
|
||||||
|
high_message_list = list("Everything feels good, stable.", "You feel grounded.")
|
||||||
|
sober_message_list = list("The stability is gone...", "Everything is much less stable.")
|
||||||
|
|
||||||
|
/datum/reagent/drugs/paroxetine/affect_blood(mob/living/carbon/M, var/alien, var/removed)
|
||||||
|
..()
|
||||||
|
if(prob(5) && prob_proc == TRUE)
|
||||||
|
to_chat(M, "<span class='warning'>Everything feels out of control...</span>")
|
||||||
|
M.hallucination += 200
|
||||||
|
prob_proc = FALSE
|
||||||
|
|
||||||
|
/datum/reagent/drugs/qerr_quem
|
||||||
|
name = "Qerr-quem"
|
||||||
|
id = "qerr_quem"
|
||||||
|
description = "A potent sedative and anti-anxiety medication, made for the Qerr-Katish."
|
||||||
|
taste_description = "mint"
|
||||||
|
color = "#e6efe3"
|
||||||
|
high_message_list = list("You feel sluggish...", "You feel calm and collected.")
|
||||||
|
sober_message_list = list("You feel so much more antsy...", "Your concentration wavers.")
|
||||||
@@ -1334,8 +1334,8 @@
|
|||||||
//VOREstation edit. Floor polishing.
|
//VOREstation edit. Floor polishing.
|
||||||
if(istype(T, /turf/simulated))
|
if(istype(T, /turf/simulated))
|
||||||
var/turf/simulated/S = T
|
var/turf/simulated/S = T
|
||||||
S.dirt = -50
|
S.dirt = -50
|
||||||
//VOREstation edit end
|
//VOREstation edit end
|
||||||
|
|
||||||
/datum/reagent/sterilizine/touch_mob(var/mob/living/L, var/amount)
|
/datum/reagent/sterilizine/touch_mob(var/mob/living/L, var/amount)
|
||||||
..()
|
..()
|
||||||
@@ -1411,106 +1411,6 @@
|
|||||||
M.make_dizzy(5)
|
M.make_dizzy(5)
|
||||||
M.make_jittery(5)
|
M.make_jittery(5)
|
||||||
|
|
||||||
/* Antidepressants */
|
|
||||||
|
|
||||||
#define ANTIDEPRESSANT_MESSAGE_DELAY 5*60*10
|
|
||||||
|
|
||||||
/datum/reagent/methylphenidate
|
|
||||||
name = "Methylphenidate"
|
|
||||||
id = "methylphenidate"
|
|
||||||
description = "Improves the ability to concentrate."
|
|
||||||
taste_description = "bitterness"
|
|
||||||
reagent_state = LIQUID
|
|
||||||
color = "#BF80BF"
|
|
||||||
metabolism = 0.01
|
|
||||||
ingest_met = 0.25
|
|
||||||
mrate_static = TRUE
|
|
||||||
data = 0
|
|
||||||
|
|
||||||
/datum/reagent/methylphenidate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
|
||||||
if(alien == IS_DIONA)
|
|
||||||
return
|
|
||||||
if(volume <= 0.1 && data != -1)
|
|
||||||
data = -1
|
|
||||||
to_chat(M, "<span class='warning'>You lose focus...</span>")
|
|
||||||
else
|
|
||||||
if(world.time > data + ANTIDEPRESSANT_MESSAGE_DELAY)
|
|
||||||
data = world.time
|
|
||||||
to_chat(M, "<span class='notice'>Your mind feels focused and undivided.</span>")
|
|
||||||
|
|
||||||
/datum/reagent/citalopram
|
|
||||||
name = "Citalopram"
|
|
||||||
id = "citalopram"
|
|
||||||
description = "Stabilizes the mind a little."
|
|
||||||
taste_description = "bitterness"
|
|
||||||
reagent_state = LIQUID
|
|
||||||
color = "#FF80FF"
|
|
||||||
metabolism = 0.01
|
|
||||||
ingest_met = 0.25
|
|
||||||
mrate_static = TRUE
|
|
||||||
data = 0
|
|
||||||
|
|
||||||
/datum/reagent/citalopram/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
|
||||||
if(alien == IS_DIONA)
|
|
||||||
return
|
|
||||||
if(volume <= 0.1 && data != -1)
|
|
||||||
data = -1
|
|
||||||
to_chat(M, "<span class='warning'>Your mind feels a little less stable...</span>")
|
|
||||||
else
|
|
||||||
if(world.time > data + ANTIDEPRESSANT_MESSAGE_DELAY)
|
|
||||||
data = world.time
|
|
||||||
to_chat(M, "<span class='notice'>Your mind feels stable... a little stable.</span>")
|
|
||||||
|
|
||||||
/datum/reagent/paroxetine
|
|
||||||
name = "Paroxetine"
|
|
||||||
id = "paroxetine"
|
|
||||||
description = "Stabilizes the mind greatly, but has a chance of adverse effects."
|
|
||||||
taste_description = "bitterness"
|
|
||||||
reagent_state = LIQUID
|
|
||||||
color = "#FF80BF"
|
|
||||||
metabolism = 0.01
|
|
||||||
ingest_met = 0.25
|
|
||||||
mrate_static = TRUE
|
|
||||||
data = 0
|
|
||||||
|
|
||||||
/datum/reagent/paroxetine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
|
||||||
if(alien == IS_DIONA)
|
|
||||||
return
|
|
||||||
if(volume <= 0.1 && data != -1)
|
|
||||||
data = -1
|
|
||||||
to_chat(M, "<span class='warning'>Your mind feels much less stable...</span>")
|
|
||||||
else
|
|
||||||
if(world.time > data + ANTIDEPRESSANT_MESSAGE_DELAY)
|
|
||||||
data = world.time
|
|
||||||
if(prob(90))
|
|
||||||
to_chat(M, "<span class='notice'>Your mind feels much more stable.</span>")
|
|
||||||
else
|
|
||||||
to_chat(M, "<span class='warning'>Your mind breaks apart...</span>")
|
|
||||||
M.hallucination += 200
|
|
||||||
|
|
||||||
/datum/reagent/qerr_quem
|
|
||||||
name = "Qerr-quem"
|
|
||||||
id = "qerr_quem"
|
|
||||||
description = "A potent stimulant and anti-anxiety medication, made for the Qerr-Katish."
|
|
||||||
taste_description = "mint"
|
|
||||||
reagent_state = LIQUID
|
|
||||||
color = "#e6efe3"
|
|
||||||
metabolism = 0.01
|
|
||||||
ingest_met = 0.25
|
|
||||||
mrate_static = TRUE
|
|
||||||
data = 0
|
|
||||||
|
|
||||||
/datum/reagent/qerr_quem/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
|
||||||
if(alien == IS_DIONA)
|
|
||||||
return
|
|
||||||
if(volume <= 0.1 && data != -1)
|
|
||||||
data = -1
|
|
||||||
to_chat(M, "<span class='warning'>You feel antsy, your concentration wavers...</span>")
|
|
||||||
else
|
|
||||||
if(world.time > data + ANTIDEPRESSANT_MESSAGE_DELAY)
|
|
||||||
data = world.time
|
|
||||||
to_chat(M, "<span class='notice'>You feel invigorated and calm.</span>")
|
|
||||||
|
|
||||||
// This exists to cut the number of chemicals a merc borg has to juggle on their hypo.
|
// This exists to cut the number of chemicals a merc borg has to juggle on their hypo.
|
||||||
/datum/reagent/healing_nanites
|
/datum/reagent/healing_nanites
|
||||||
name = "Restorative Nanites"
|
name = "Restorative Nanites"
|
||||||
@@ -1548,7 +1448,7 @@
|
|||||||
reagent_state = LIQUID
|
reagent_state = LIQUID
|
||||||
color = "#ffb500"
|
color = "#ffb500"
|
||||||
overdose = REAGENTS_OVERDOSE * 0.50
|
overdose = REAGENTS_OVERDOSE * 0.50
|
||||||
|
|
||||||
|
|
||||||
/datum/reagent/earthsblood/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
/datum/reagent/earthsblood/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||||
M.heal_organ_damage (4 * removed, 4 * removed)
|
M.heal_organ_damage (4 * removed, 4 * removed)
|
||||||
|
|||||||
@@ -762,34 +762,6 @@
|
|||||||
|
|
||||||
/* Drugs */
|
/* Drugs */
|
||||||
|
|
||||||
/datum/reagent/space_drugs
|
|
||||||
name = "Space drugs"
|
|
||||||
id = "space_drugs"
|
|
||||||
description = "An illegal chemical compound used as drug."
|
|
||||||
taste_description = "bitterness"
|
|
||||||
taste_mult = 0.4
|
|
||||||
reagent_state = LIQUID
|
|
||||||
color = "#60A584"
|
|
||||||
metabolism = REM * 0.5
|
|
||||||
overdose = REAGENTS_OVERDOSE
|
|
||||||
|
|
||||||
/datum/reagent/space_drugs/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
|
||||||
if(alien == IS_DIONA)
|
|
||||||
return
|
|
||||||
|
|
||||||
var/drug_strength = 15 * M.species.chem_strength_tox
|
|
||||||
if(alien == IS_SKRELL)
|
|
||||||
drug_strength = drug_strength * 0.8
|
|
||||||
|
|
||||||
if(alien == IS_SLIME)
|
|
||||||
drug_strength = drug_strength * 1.2
|
|
||||||
|
|
||||||
M.druggy = max(M.druggy, drug_strength)
|
|
||||||
if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
|
|
||||||
step(M, pick(cardinal))
|
|
||||||
if(prob(7))
|
|
||||||
M.emote(pick("twitch", "drool", "moan", "giggle"))
|
|
||||||
|
|
||||||
/datum/reagent/serotrotium
|
/datum/reagent/serotrotium
|
||||||
name = "Serotrotium"
|
name = "Serotrotium"
|
||||||
id = "serotrotium"
|
id = "serotrotium"
|
||||||
@@ -892,85 +864,6 @@
|
|||||||
|
|
||||||
M.hallucination = max(M.hallucination, drug_strength)
|
M.hallucination = max(M.hallucination, drug_strength)
|
||||||
|
|
||||||
/datum/reagent/psilocybin
|
|
||||||
name = "Psilocybin"
|
|
||||||
id = "psilocybin"
|
|
||||||
description = "A strong psycotropic derived from certain species of mushroom."
|
|
||||||
taste_description = "mushroom"
|
|
||||||
color = "#E700E7"
|
|
||||||
overdose = REAGENTS_OVERDOSE
|
|
||||||
metabolism = REM * 0.5
|
|
||||||
|
|
||||||
/datum/reagent/psilocybin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
|
||||||
if(alien == IS_DIONA)
|
|
||||||
return
|
|
||||||
|
|
||||||
var/threshold = 1 * M.species.chem_strength_tox
|
|
||||||
if(alien == IS_SKRELL)
|
|
||||||
threshold = 1.2
|
|
||||||
|
|
||||||
if(alien == IS_SLIME)
|
|
||||||
threshold = 0.8
|
|
||||||
|
|
||||||
M.druggy = max(M.druggy, 30)
|
|
||||||
|
|
||||||
var/effective_dose = dose
|
|
||||||
if(issmall(M)) effective_dose *= 2
|
|
||||||
if(effective_dose < 1 * threshold)
|
|
||||||
M.apply_effect(3, STUTTER)
|
|
||||||
M.make_dizzy(5)
|
|
||||||
if(prob(5))
|
|
||||||
M.emote(pick("twitch", "giggle"))
|
|
||||||
else if(effective_dose < 2 * threshold)
|
|
||||||
M.apply_effect(3, STUTTER)
|
|
||||||
M.make_jittery(5)
|
|
||||||
M.make_dizzy(5)
|
|
||||||
M.druggy = max(M.druggy, 35)
|
|
||||||
if(prob(10))
|
|
||||||
M.emote(pick("twitch", "giggle"))
|
|
||||||
else
|
|
||||||
M.apply_effect(3, STUTTER)
|
|
||||||
M.make_jittery(10)
|
|
||||||
M.make_dizzy(10)
|
|
||||||
M.druggy = max(M.druggy, 40)
|
|
||||||
if(prob(15))
|
|
||||||
M.emote(pick("twitch", "giggle"))
|
|
||||||
|
|
||||||
/datum/reagent/nicotine
|
|
||||||
name = "Nicotine"
|
|
||||||
id = "nicotine"
|
|
||||||
description = "A highly addictive stimulant extracted from the tobacco plant."
|
|
||||||
taste_description = "bitterness"
|
|
||||||
reagent_state = LIQUID
|
|
||||||
color = "#181818"
|
|
||||||
|
|
||||||
/datum/reagent/talum_quem
|
|
||||||
name = "Talum-quem"
|
|
||||||
id = "talum_quem"
|
|
||||||
description = " A very carefully tailored hallucinogen, for use of the Talum-Katish."
|
|
||||||
taste_description = "bubblegum"
|
|
||||||
taste_mult = 1.6
|
|
||||||
reagent_state = LIQUID
|
|
||||||
color = "#db2ed8"
|
|
||||||
metabolism = REM * 0.5
|
|
||||||
overdose = REAGENTS_OVERDOSE
|
|
||||||
|
|
||||||
/datum/reagent/talum_quem/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
|
||||||
if(alien == IS_DIONA)
|
|
||||||
return
|
|
||||||
|
|
||||||
var/drug_strength = 29 * M.species.chem_strength_tox
|
|
||||||
if(alien == IS_SKRELL)
|
|
||||||
drug_strength = drug_strength * 0.8
|
|
||||||
else
|
|
||||||
M.adjustToxLoss(10 * removed) //Given incorporations of other toxins with similiar damage, this seems right.
|
|
||||||
|
|
||||||
M.druggy = max(M.druggy, drug_strength)
|
|
||||||
if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
|
|
||||||
step(M, pick(cardinal))
|
|
||||||
if(prob(7))
|
|
||||||
M.emote(pick("twitch", "drool", "moan", "giggle"))
|
|
||||||
|
|
||||||
/* Transformations */
|
/* Transformations */
|
||||||
|
|
||||||
/datum/reagent/slimetoxin
|
/datum/reagent/slimetoxin
|
||||||
|
|||||||
@@ -337,7 +337,7 @@
|
|||||||
if(c_data)
|
if(c_data)
|
||||||
data = c_data
|
data = c_data
|
||||||
else
|
else
|
||||||
data = pick("bicaridine", "kelotane", "anti_toxin", "inaprovaline", "space_drugs", "sugar",
|
data = pick("bicaridine", "kelotane", "anti_toxin", "inaprovaline", "bliss", "sugar",
|
||||||
"tramadol", "dexalin", "cryptobiolin", "impedrezene", "hyperzine", "ethylredoxrazine",
|
"tramadol", "dexalin", "cryptobiolin", "impedrezene", "hyperzine", "ethylredoxrazine",
|
||||||
"mindbreaker", "glucose")
|
"mindbreaker", "glucose")
|
||||||
var/datum/reagent/R = SSchemistry.chemical_reagents[data]
|
var/datum/reagent/R = SSchemistry.chemical_reagents[data]
|
||||||
|
|||||||
@@ -48,57 +48,57 @@
|
|||||||
#define MINOR_MALEABLE 1
|
#define MINOR_MALEABLE 1
|
||||||
#define MIN_MALEABLE 0
|
#define MIN_MALEABLE 0
|
||||||
|
|
||||||
var/global/list/xenoChemList = list("mutationtoxin",
|
var/global/list/xenoChemList = list("mutationtoxin",
|
||||||
"psilocybin",
|
"psilocybin",
|
||||||
"mindbreaker",
|
"mindbreaker",
|
||||||
"impedrezene",
|
"impedrezene",
|
||||||
"cryptobiolin",
|
"cryptobiolin",
|
||||||
"space_drugs",
|
"bliss",
|
||||||
"chloralhydrate",
|
"chloralhydrate",
|
||||||
"stoxin",
|
"stoxin",
|
||||||
"mutagen",
|
"mutagen",
|
||||||
"lexorin",
|
"lexorin",
|
||||||
"pacid",
|
"pacid",
|
||||||
"cyanide",
|
"cyanide",
|
||||||
"phoron",
|
"phoron",
|
||||||
"plasticide",
|
"plasticide",
|
||||||
"amatoxin",
|
"amatoxin",
|
||||||
"carbon",
|
"carbon",
|
||||||
"radium",
|
"radium",
|
||||||
"sacid",
|
"sacid",
|
||||||
"sugar",
|
"sugar",
|
||||||
"kelotane",
|
"kelotane",
|
||||||
"dermaline",
|
"dermaline",
|
||||||
"anti_toxin",
|
"anti_toxin",
|
||||||
"dexalin",
|
"dexalin",
|
||||||
"synaptizine",
|
"synaptizine",
|
||||||
"alkysine",
|
"alkysine",
|
||||||
"imidazoline",
|
"imidazoline",
|
||||||
"peridaxon",
|
"peridaxon",
|
||||||
"rezadone",
|
"rezadone",
|
||||||
"mutationtoxin",
|
"mutationtoxin",
|
||||||
"docilitytoxin")
|
"docilitytoxin")
|
||||||
|
|
||||||
/datum/xeno/traits
|
/datum/xeno/traits
|
||||||
var/list/traits = list()
|
var/list/traits = list()
|
||||||
var/list/chemlist = list()
|
var/list/chemlist = list()
|
||||||
var/list/chems = list()
|
var/list/chems = list()
|
||||||
var/source = "unknown"
|
var/source = "unknown"
|
||||||
|
|
||||||
/datum/xeno/traits/proc/set_trait(var/trait, var/newval)
|
/datum/xeno/traits/proc/set_trait(var/trait, var/newval)
|
||||||
traits["[trait]"] = newval
|
traits["[trait]"] = newval
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/xeno/traits/proc/get_trait(var/trait)
|
/datum/xeno/traits/proc/get_trait(var/trait)
|
||||||
var/val = traits["[trait]"]
|
var/val = traits["[trait]"]
|
||||||
return val
|
return val
|
||||||
|
|
||||||
/datum/xeno/traits/proc/copy_traits(var/datum/xeno/traits/target)
|
/datum/xeno/traits/proc/copy_traits(var/datum/xeno/traits/target)
|
||||||
target.traits = traits
|
target.traits = traits
|
||||||
target.chemlist = chemlist
|
target.chemlist = chemlist
|
||||||
target.chems = chems
|
target.chems = chems
|
||||||
target.source = source
|
target.source = source
|
||||||
|
|
||||||
/datum/xeno/traits/New()
|
/datum/xeno/traits/New()
|
||||||
..()
|
..()
|
||||||
set_trait(TRAIT_XENO_COLOR, "#CACACA")
|
set_trait(TRAIT_XENO_COLOR, "#CACACA")
|
||||||
@@ -122,15 +122,15 @@ var/global/list/xenoChemList = list("mutationtoxin",
|
|||||||
set_trait(TRAIT_XENO_CANSPEAK, 1)
|
set_trait(TRAIT_XENO_CANSPEAK, 1)
|
||||||
set_trait(TRAIT_XENO_STRENGTH, 0)
|
set_trait(TRAIT_XENO_STRENGTH, 0)
|
||||||
set_trait(TRAIT_XENO_STR_RANGE, 0)
|
set_trait(TRAIT_XENO_STR_RANGE, 0)
|
||||||
|
|
||||||
/datum/xeno/traits/proc/get_gene(var/genetype)
|
/datum/xeno/traits/proc/get_gene(var/genetype)
|
||||||
|
|
||||||
if(!genetype) return 0
|
if(!genetype) return 0
|
||||||
|
|
||||||
var/datum/xeno/genes/G = new()
|
var/datum/xeno/genes/G = new()
|
||||||
G.genetype = genetype
|
G.genetype = genetype
|
||||||
G.values = list()
|
G.values = list()
|
||||||
|
|
||||||
switch(genetype)
|
switch(genetype)
|
||||||
if(GENE_XENO_BIOCHEMISTRY)
|
if(GENE_XENO_BIOCHEMISTRY)
|
||||||
G.values["[TRAIT_XENO_CHEMVOL]"] = get_trait(TRAIT_XENO_CHEMVOL)
|
G.values["[TRAIT_XENO_CHEMVOL]"] = get_trait(TRAIT_XENO_CHEMVOL)
|
||||||
@@ -165,18 +165,18 @@ var/global/list/xenoChemList = list("mutationtoxin",
|
|||||||
if(GENE_XENO_SPECIAL)
|
if(GENE_XENO_SPECIAL)
|
||||||
G.values["[TRAIT_XENO_HOSTILE]"] = get_trait(TRAIT_XENO_HOSTILE)
|
G.values["[TRAIT_XENO_HOSTILE]"] = get_trait(TRAIT_XENO_HOSTILE)
|
||||||
G.values["[TRAIT_XENO_CHROMATIC]"] = get_trait(TRAIT_XENO_CHROMATIC)
|
G.values["[TRAIT_XENO_CHROMATIC]"] = get_trait(TRAIT_XENO_CHROMATIC)
|
||||||
|
|
||||||
return G
|
return G
|
||||||
|
|
||||||
/datum/xeno/traits/proc/apply_gene(var/datum/xeno/genes/genes)
|
/datum/xeno/traits/proc/apply_gene(var/datum/xeno/genes/genes)
|
||||||
if(!genes.genetype) return 0
|
if(!genes.genetype) return 0
|
||||||
|
|
||||||
switch(genes.genetype)
|
switch(genes.genetype)
|
||||||
if(GENE_XENO_BIOCHEMISTRY)
|
if(GENE_XENO_BIOCHEMISTRY)
|
||||||
set_trait(TRAIT_XENO_CHEMVOL, genes.values["[TRAIT_XENO_CHEMVOL]"])
|
set_trait(TRAIT_XENO_CHEMVOL, genes.values["[TRAIT_XENO_CHEMVOL]"])
|
||||||
for(var/reagent in genes.chems)
|
for(var/reagent in genes.chems)
|
||||||
chems[reagent] = genes[reagent]
|
chems[reagent] = genes[reagent]
|
||||||
|
|
||||||
if(GENE_XENO_HEALTH)
|
if(GENE_XENO_HEALTH)
|
||||||
set_trait(TRAIT_XENO_HEALTH, genes.values["[TRAIT_XENO_HEALTH]"])
|
set_trait(TRAIT_XENO_HEALTH, genes.values["[TRAIT_XENO_HEALTH]"])
|
||||||
set_trait(TRAIT_XENO_STRENGTH, genes.values["[TRAIT_XENO_STRENGTH]"])
|
set_trait(TRAIT_XENO_STRENGTH, genes.values["[TRAIT_XENO_STRENGTH]"])
|
||||||
@@ -207,11 +207,10 @@ var/global/list/xenoChemList = list("mutationtoxin",
|
|||||||
if(GENE_XENO_SPECIAL)
|
if(GENE_XENO_SPECIAL)
|
||||||
set_trait(TRAIT_XENO_HOSTILE, genes.values["[TRAIT_XENO_HOSTILE]"])
|
set_trait(TRAIT_XENO_HOSTILE, genes.values["[TRAIT_XENO_HOSTILE]"])
|
||||||
set_trait(TRAIT_XENO_CHROMATIC, genes.values["[TRAIT_XENO_CHROMATIC]"])
|
set_trait(TRAIT_XENO_CHROMATIC, genes.values["[TRAIT_XENO_CHROMATIC]"])
|
||||||
|
|
||||||
/datum/xeno/genes
|
/datum/xeno/genes
|
||||||
var/genetype //Label for specifying what gene is used.
|
var/genetype //Label for specifying what gene is used.
|
||||||
var/list/values //What's going to be put into specific traits
|
var/list/values //What's going to be put into specific traits
|
||||||
var/list/chems
|
var/list/chems
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
BIN
sound/effects/chop.ogg
Normal file
BIN
sound/effects/chop.ogg
Normal file
Binary file not shown.
BIN
sound/effects/snort.ogg
Normal file
BIN
sound/effects/snort.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user