diff --git a/code/game/objects/items/contraband.dm b/code/game/objects/items/contraband.dm
index 764d60651..3e6d036dd 100644
--- a/code/game/objects/items/contraband.dm
+++ b/code/game/objects/items/contraband.dm
@@ -49,7 +49,7 @@ Co-ca-i-na
split = 1
/obj/item/cocaine/proc/Gather() //Returns coke to a pile.
- name = "\improper cocaine"
+ name = "\improper pile of cocaine"
desc = "Cocaine, blow, powder, co-ca-in-a."
icon_state = "cokepile"
split = 0
@@ -75,7 +75,7 @@ Co-ca-i-na
user.visible_message("[user] forms the line into a pile with the [W]", \
"You scoop up the line into a pile with the [W]")
else
- user << "You need to seperate this pile into lines first, use an ID card"
+ user << "You need to seperate this pile into lines first, use something sharp."
/obj/item/cocaine/attack_hand(mob/user as mob)
if(split==0) //If a pile
diff --git a/code/game/objects/items/reagent_containers/pill.dm b/code/game/objects/items/reagent_containers/pill.dm
index 52c895f85..589de4a2e 100644
--- a/code/game/objects/items/reagent_containers/pill.dm
+++ b/code/game/objects/items/reagent_containers/pill.dm
@@ -15,6 +15,8 @@ var/global/list/randomized_pill_icons
w_class = 1
volume = 60
var/pill_desc = "An unknown pill." //the real description of the pill, shown when examined by a medically trained person
+ var/crushed = 0
+ var/split = null
New()
..()
@@ -87,6 +89,7 @@ var/global/list/randomized_pill_icons
return 1
return 0
+
afterattack(obj/target, mob/user, proximity)
if(!proximity) return
@@ -111,6 +114,105 @@ var/global/list/randomized_pill_icons
return
+/*
+Pill crushing & snorting, coca-ina style.
+*/
+
+/obj/item/reagent_container/pill/proc/Crush() //Crushes the pill, limits volume to 15u.
+ name = "powder"
+ desc = "An unknown fine powder."
+ icon_state = "cokepile"
+ crushed = 1
+ split = 0
+ volume = 15
+ var/negx
+ for(var/datum/reagent/X in src.reagents.reagent_list)//For each chemical contained by pill
+ negx = 15 - X.volume
+ X.volume += negx //Set volume to 15
+ X.volume = X.volume/src.reagents.reagent_list.len //Divide by total number of chems in list, to not go above 15
+
+
+/obj/item/reagent_container/pill/proc/Split() //Splits the pile to allow for use
+ name = "line of powder"
+ desc = "An unknown fine powder arranged into a line"
+ icon_state = "cokeline"
+ split = 1
+
+/obj/item/reagent_container/pill/proc/Gather() //Gathers the pile to allow for carrying
+ name = "powder"
+ desc = "An unknown fine powder."
+ icon_state = "cokepile"
+ split = 0
+
+/obj/item/reagent_container/pill/proc/Mix(obj/item/reagent_container/pill/W as obj) //Mixes two powder piles together.
+ if(istype(W, /obj/item/reagent_container/pill) && W.crushed) //Making sure that only crushed pills can be mixed
+ src.reagents.reagent_list += W.reagents.reagent_list //Combines the reagent lists of both piles
+ var/negx
+ for(var/datum/reagent/X in src.reagents.reagent_list) //For each chemical in the pile's reagent list
+ negx = 15 - X.volume
+ X.volume += negx //Set volume of X to 15
+ X.volume = X.volume/src.reagents.reagent_list.len //Divide X by total number of reagents to prevent > 15u total
+ W.Dispose() //Deletes one of the piles.
+ usr << " You mix the two powders together in equal parts."
+ else
+ usr << "How do you plan to mix those together, exactly?"
+
+
+/obj/item/reagent_container/pill/attackby(obj/item/W as obj, mob/user as mob) //Handles crushing, dividing and gathering.
+ if(crushed == 0) //Making sure it's not a pill
+ if(istype(W, /obj/item/weapon/combat_knife) || istype(W, /obj/item/weapon/throwing_knife)) //Sharp objects required to crush the pills.
+ Crush()
+ user.visible_message("[user] crushes up the pill with [W]", \
+ "You crush up the pill with [W]")
+ return
+ else
+ usr << "You're going to need something sharper to crush that pill."
+ if(crushed == 1) //Making sure it's a pill
+ if(istype(W, /obj/item/card/id) || istype(W, /obj/item/weapon/combat_knife/) || istype(W, /obj/item/weapon/throwing_knife/) || istype(W,/obj/item/spacecash/)) //Only items able of making lines.
+ if(split == 0) //If pile
+ Split()
+ user.visible_message("[user] forms the pile into a neat line with the [W]", \
+ "You carefully turn the pile into a line with the [W]")
+ else //If line
+ Gather()
+ user.visible_message("[user] forms the line into a pile with the [W]", \
+ "You scoop up the line into a pile with the [W]")
+
+ if(istype(W, /obj/item/reagent_container/pill)) //For mixing, proc contains the crushed check
+ Mix(W)
+
+ else
+ user << "You need to seperate this pile into lines first, use something sharp."
+
+/obj/item/reagent_container/pill/attack_hand(mob/user as mob)
+ if(crushed == 0) //If just a normal pill, act as normal.
+ ..()
+ else if(split == 0) //If a pile, act as an item slash pill.
+ ..()
+ else //If a line
+ var/turf/T = get_turf(src)
+ var/snortloc = T
+ if(T.contents) //If the turf the coke is on has any other objects on it.
+ for(var/contained in T.contents) //For every item in the turf's contents list
+ if(istype(contained, /mob/living/carbon/) || istype(contained, /obj/structure/table/)) //Allows you to snort off of mobs & tables
+ snortloc = contained //If a mob or table is on the tile the powder is on, that becomes what is snorted off of
+ user.visible_message("[user] just railed [src] off of [snortloc], holy shit!", \
+ "You rail [src] off of [snortloc]! Holy shit!")
+ playsound(usr.loc, 'sound/effects/sniff1.ogg', 5, 1)//SNIFF EYUP
+ src.reagents.trans_to(usr, volume)//Transfers reagents from the container stored inside the powder to the usr
+ src.reagents.reaction(usr, INGEST)
+ Dispose() //Deletes coke post snort
+
+/obj/item/reagent_container/pill/Dispose()
+ . = ..()
+
+
+
+
+
+
+
+
////////////////////////////////////////////////////////////////////////////////
/// Pills. END
////////////////////////////////////////////////////////////////////////////////
diff --git a/code/modules/reagents/chemistry_reagents/medical.dm b/code/modules/reagents/chemistry_reagents/medical.dm
index 7e5fe91e6..4548ca9ed 100644
--- a/code/modules/reagents/chemistry_reagents/medical.dm
+++ b/code/modules/reagents/chemistry_reagents/medical.dm
@@ -991,9 +991,9 @@
description = "Cocaine is an illicit stimulant normally used for recreational purposes."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
- custom_metabolism = 0.5
- overdose = REAGENTS_OVERDOSE/10
- overdose_critical = REAGENTS_OVERDOSE_CRITICAL/15
+ custom_metabolism = 0.2
+ overdose = 15
+ overdose_critical = 25
on_mob_life(mob/living/M)
. = ..()