More Reagent Refactoring

This commit is contained in:
Fox-McCloud
2016-07-19 14:06:41 -04:00
parent a28ae804b9
commit a58c85941b
31 changed files with 1298 additions and 1746 deletions
+1 -1
View File
@@ -280,7 +280,7 @@
energy = 100
max_energy = 100
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one."
dispensable_reagents = list("ice", "cream", "cider", "beer", "kahlua", "whiskey", "wine", "vodka", "gin", "rum", "tequilla", "vermouth", "cognac", "ale", "mead", "synthanol")
dispensable_reagents = list("ice", "cream", "cider", "beer", "kahlua", "whiskey", "wine", "vodka", "gin", "rum", "tequila", "vermouth", "cognac", "ale", "mead", "synthanol")
hack_message = "You disable the 'nanotrasen-are-cheap-bastards' lock, enabling hidden and very expensive boozes."
unhack_message = "You re-enable the 'nanotrasen-are-cheap-bastards' lock, disabling hidden and very expensive boozes."
hacked_reagents = list("goldschlager", "patron", "absinthe", "ethanol", "nothing")
+1 -1
View File
@@ -201,7 +201,7 @@
name = "Uplink"
id = "uplink"
result = "uplink"
required_reagents = list("rum" = 1, "vodka" = 1, "tequilla" = 1, "whiskey" = 1, "synthanol" = 1)
required_reagents = list("rum" = 1, "vodka" = 1, "tequila" = 1, "whiskey" = 1, "synthanol" = 1)
result_amount = 5
/datum/reagent/ethanol/synthanol/synthnsoda
+4 -16
View File
@@ -18,35 +18,23 @@
desc = "Helps with brute injuries."
icon_state = "bandaid_brute"
instant_application = 1
/obj/item/weapon/reagent_containers/food/pill/patch/styptic/New()
..()
reagents.add_reagent("styptic_powder", 40)
list_reagents = list("styptic_powder" = 40)
/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf
name = "burn patch"
desc = "Helps with burn injuries."
icon_state = "bandaid_burn"
instant_application = 1
/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf/New()
..()
reagents.add_reagent("silver_sulfadiazine", 40)
list_reagents = list("silver_sulfadiazine" = 40)
/obj/item/weapon/reagent_containers/food/pill/patch/synthflesh
name = "syntheflesh patch"
desc = "Helps with burn injuries."
icon_state = "bandaid_med"
instant_application = 1
/obj/item/weapon/reagent_containers/food/pill/patch/synthflesh/New()
..()
reagents.add_reagent("synthflesh", 20)
list_reagents = list("synthflesh" = 20)
/obj/item/weapon/reagent_containers/food/pill/patch/nicotine
name = "nicotine patch"
desc = "Helps temporarily curb the cravings of nicotine dependency."
/obj/item/weapon/reagent_containers/food/pill/patch/nicotine/New()
..()
reagents.add_reagent("nicotine", 20)
list_reagents = list("nicotine" = 20)
@@ -44,7 +44,7 @@
name = "Patron"
id = "patron"
result = "patron"
required_reagents = list("tequilla" = 10, "silver" = 1)
required_reagents = list("tequila" = 10, "silver" = 1)
result_amount = 10
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
@@ -228,15 +228,15 @@
name = "Brave Bull"
id = "bravebull"
result = "bravebull"
required_reagents = list("tequilla" = 2, "kahlua" = 1)
required_reagents = list("tequila" = 2, "kahlua" = 1)
result_amount = 3
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
/datum/chemical_reaction/tequilla_sunrise
name = "Tequilla Sunrise"
id = "tequillasunrise"
result = "tequillasunrise"
required_reagents = list("tequilla" = 2, "orangejuice" = 1)
/datum/chemical_reaction/tequila_sunrise
name = "Tequila Sunrise"
id = "tequilasunrise"
result = "tequilasunrise"
required_reagents = list("tequila" = 2, "orangejuice" = 1)
result_amount = 3
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
@@ -317,7 +317,7 @@
name = "Margarita"
id = "margarita"
result = "margarita"
required_reagents = list("tequilla" = 2, "limejuice" = 1)
required_reagents = list("tequila" = 2, "limejuice" = 1)
result_amount = 3
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
@@ -325,7 +325,7 @@
name = "Long Island Iced Tea"
id = "longislandicedtea"
result = "longislandicedtea"
required_reagents = list("vodka" = 1, "gin" = 1, "tequilla" = 1, "cubalibre" = 1)
required_reagents = list("vodka" = 1, "gin" = 1, "tequila" = 1, "cubalibre" = 1)
result_amount = 4
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
@@ -130,9 +130,9 @@
color = "#664300" // rgb: 102, 67, 0
alcohol_perc = 0.2
/datum/reagent/ethanol/tequilla
/datum/reagent/ethanol/tequila
name = "Tequila"
id = "tequilla"
id = "tequila"
description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
color = "#A8B0B7" // rgb: 168, 176, 183
alcohol_perc = 0.4
@@ -323,9 +323,9 @@
color = "#664300" // rgb: 102, 67, 0
alcohol_perc = 0.3
/datum/reagent/ethanol/tequilla_sunrise
/datum/reagent/ethanol/tequila_sunrise
name = "Tequila Sunrise"
id = "tequillasunrise"
id = "tequilasunrise"
description = "Tequila and orange juice. Much like a Screwdriver, only Mexican~"
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
@@ -1,363 +1,349 @@
//Not to be confused with /obj/item/weapon/reagent_containers/food/drinks/bottle
/obj/item/weapon/reagent_containers/glass/bottle
name = "bottle"
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = null
item_state = "atoxinbottle"
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25,30)
flags = OPENCONTAINER
volume = 30
/obj/item/weapon/reagent_containers/glass/bottle/New()
..()
if(!icon_state)
icon_state = "bottle[rand(1,20)]"
//Copypasta from /obj/item/weapon/reagent_containers/glass/beaker
/obj/item/weapon/reagent_containers/glass/bottle/on_reagent_change()
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/pickup(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/dropped(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/attack_hand()
..()
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/update_icon()
overlays.Cut()
if(reagents.total_volume)
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10")
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
if(0 to 24)
filling.icon_state = "[icon_state]10"
if(25 to 49)
filling.icon_state = "[icon_state]25"
if(50 to 74)
filling.icon_state = "[icon_state]50"
if(75 to 90)
filling.icon_state = "[icon_state]75"
if(91 to INFINITY)
filling.icon_state = "[icon_state]100"
filling.icon += mix_color_from_reagents(reagents.reagent_list)
overlays += filling
if(!is_open_container())
var/image/lid = image(icon, src, "lid_bottle")
overlays += lid
/obj/item/weapon/reagent_containers/glass/bottle/toxin
name = "toxin bottle"
desc = "A small bottle of toxins. Do not drink, it is poisonous."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle12"
list_reagents = list("toxin" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/cyanide
name = "cyanide bottle"
desc = "A small bottle of cyanide. Bitter almonds?"
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle12"
list_reagents = list("cyanide" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/mutagen
name = "unstable mutagen bottle"
desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle20"
list_reagents = list("mutagen" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/ammonia
name = "ammonia bottle"
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle20"
list_reagents = list("ammonia" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/diethylamine
name = "diethylamine bottle"
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("diethylamine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/facid
name = "Fluorosulfuric Acid Bottle"
desc = "A small bottle. Contains a small amount of Fluorosulfuric Acid"
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("facid" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/adminordrazine
name = "Adminordrazine Bottle"
desc = "A small bottle. Contains the liquid essence of the gods."
icon = 'icons/obj/drinks.dmi'
icon_state = "holyflask"
list_reagents = list("adminordrazine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/capsaicin
name = "Capsaicin Bottle"
desc = "A small bottle. Contains hot sauce."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle3"
list_reagents = list("capsaicin" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/frostoil
name = "Frost Oil Bottle"
desc = "A small bottle. Contains cold sauce."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("frostoil" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/morphine
name = "Morphine Bottle"
desc = "A small bottle. Contains morphine."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("morphine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/ether
name = "Ether Bottle"
desc = "A small bottle. Contains ether."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("ether" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/charcoal
name = "Charcoal Bottle"
desc = "A small bottle. Contains charcoal."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("charcoal" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/epinephrine
name = "Epinephrine Bottle"
desc = "A small bottle. Contains epinephrine."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("epinephrine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/pancuronium
name = "Pancuronium Bottle"
desc = "A small bottle of pancuronium."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle14"
list_reagents = list("pancuronium" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/sulfonal
name = "Sulfonal Bottle"
desc = "A small bottle of Sulfonal."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle19"
list_reagents = list("sulfonal" = 30)
//Reagent bottles
/obj/item/weapon/reagent_containers/glass/bottle/reagent
name = "Reagent Bottle"
desc = "A bottle for storing reagents"
icon_state = "rbottle"
volume = 50
/obj/item/weapon/reagent_containers/glass/bottle/reagent/oil
name = "Oil Bottle"
desc = "A reagent bottle. Contains oil."
icon_state = "rbottle1"
list_reagents = list("oil" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/phenol
name = "Phenol Bottle"
desc = "A reagent bottle. Contains phenol."
icon_state = "rbottle2"
list_reagents = list("phenol" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/acetone
name = "Acetone Bottle"
desc = "A reagent bottle. Contains acetone."
icon_state = "rbottle3"
list_reagents = list("acetone" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/ammonia
name = "Ammonia Bottle"
desc = "A reagent bottle. Contains ammonia."
icon_state = "rbottle4"
list_reagents = list("ammonia" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/diethylamine
name = "Diethylamine Bottle"
desc = "A reagent bottle. Contains diethylamine."
icon_state = "rbottle5"
list_reagents = list("diethylamine" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/acid
name = "Acid Bottle"
desc = "A reagent bottle. Contains sulfuric acid."
icon_state = "rbottle6"
list_reagents = list("sacid" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/formaldehyde
name = "Formaldehyde Bottle"
desc = "A reagent bottle. Contains formaldehyde."
icon_state = "rbottle"
list_reagents = list("formaldehyde" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/morphine
name = "Morphine Bottle"
desc = "A reagent bottle. Contains morphine."
list_reagents = list("morphine" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/insulin
name = "Insulin Bottle"
desc = "A reagent bottle. Contains insulin."
list_reagents = list("insulin" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/hairgrownium
name = "Hair Grow Gel"
desc = "A bottle full of a stimulative hair growth formula"
list_reagents = list("hairgrownium" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/hair_dye
name = "Quantum Hair Dye Bottle"
desc = "A bottle of the ever-changing quantum hair dye."
list_reagents = list("hair_dye" = 50)
////////////////////Traitor Poison Bottle//////////////////////////////
/obj/item/weapon/reagent_containers/glass/bottle/traitor
desc = "It has a small skull and crossbones on it. Uh-oh!"
possible_transfer_amounts = list(5,10,15,25,30,40)
volume = 40
/obj/item/weapon/reagent_containers/glass/bottle/traitor/New()
..()
reagents.add_reagent(pick_list("chemistry_tools.json", "traitor_poison_bottle"), 40)
/obj/item/weapon/reagent_containers/glass/bottle/plasma
name = "plasma dust bottle"
desc = "A small bottle of plasma in dust form. Extremely toxic and reacts with micro-organisms inside blood."
icon_state = "bottle8"
list_reagents = list("plasma_dust" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/diphenhydramine
name = "diphenhydramine bottle"
desc = "A small bottle of diphenhydramine."
icon_state = "bottle20"
list_reagents = list("diphenhydramine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/flu_virion
name = "Flu virion culture bottle"
desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/flu
/obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion
name = "Epiglottis virion culture bottle"
desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/voice_change
/obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion
name = "Liver enhancement virion culture bottle"
desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/heal
/obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion
name = "Hullucigen virion culture bottle"
desc = "A small bottle. Contains hullucigen virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/hullucigen
/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat
name = "Pierrot's Throat culture bottle"
desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/pierrot_throat
/obj/item/weapon/reagent_containers/glass/bottle/cold
name = "Rhinovirus culture bottle"
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/cold
/obj/item/weapon/reagent_containers/glass/bottle/retrovirus
name = "Retrovirus culture bottle"
desc = "A small bottle. Contains a retrovirus culture in a synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/dna_retrovirus
/obj/item/weapon/reagent_containers/glass/bottle/gbs
name = "GBS culture bottle"
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit
icon_state = "bottle3"
amount_per_transfer_from_this = 5
spawned_disease = /datum/disease/gbs
/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs
name = "GBS culture bottle"
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit
icon_state = "bottle3"
spawned_disease = /datum/disease/fake_gbs
/obj/item/weapon/reagent_containers/glass/bottle/brainrot
name = "Brainrot culture bottle"
desc = "A small bottle. Contains Cryptococcus Cosmosis culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/brainrot
/obj/item/weapon/reagent_containers/glass/bottle/magnitis
name = "Magnitis culture bottle"
desc = "A small bottle. Contains a small dosage of Fukkos Miracos."
icon_state = "bottle3"
spawned_disease = /datum/disease/magnitis
/obj/item/weapon/reagent_containers/glass/bottle/wizarditis
name = "Wizarditis culture bottle"
desc = "A small bottle. Contains a sample of Rincewindus Vulgaris."
icon_state = "bottle3"
spawned_disease = /datum/disease/wizarditis
/obj/item/weapon/reagent_containers/glass/bottle/anxiety
name = "Severe Anxiety culture bottle"
desc = "A small bottle. Contains a sample of Lepidopticides."
icon_state = "bottle3"
spawned_disease = /datum/disease/anxiety
/obj/item/weapon/reagent_containers/glass/bottle/beesease
name = "Beesease culture bottle"
desc = "A small bottle. Contains a sample of invasive Apidae."
icon_state = "bottle3"
spawned_disease = /datum/disease/beesease
/obj/item/weapon/reagent_containers/glass/bottle/fluspanish
name = "Spanish flu culture bottle"
desc = "A small bottle. Contains a sample of Inquisitius."
icon_state = "bottle3"
spawned_disease = /datum/disease/fluspanish
/obj/item/weapon/reagent_containers/glass/bottle/tuberculosis
name = "Fungal Tuberculosis culture bottle"
desc = "A small bottle. Contains a sample of Fungal Tubercle bacillus."
icon_state = "bottle3"
spawned_disease = /datum/disease/tuberculosis
/obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure
name = "BVAK bottle"
desc = "A small bottle containing Bio Virus Antidote Kit."
icon_state = "bottle5"
list_reagents = list("atropine" = 5, "epinephrine" = 5, "salbutamol" = 10, "spaceacillin" = 10)
//Not to be confused with /obj/item/weapon/reagent_containers/food/drinks/bottle
/obj/item/weapon/reagent_containers/glass/bottle
name = "bottle"
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = null
item_state = "atoxinbottle"
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25,30)
flags = OPENCONTAINER
volume = 30
/obj/item/weapon/reagent_containers/glass/bottle/New()
..()
if(!icon_state)
icon_state = "bottle[rand(1,20)]"
/obj/item/weapon/reagent_containers/glass/bottle/on_reagent_change()
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/update_icon()
overlays.Cut()
if(reagents.total_volume)
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10")
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
if(0 to 24)
filling.icon_state = "[icon_state]10"
if(25 to 49)
filling.icon_state = "[icon_state]25"
if(50 to 74)
filling.icon_state = "[icon_state]50"
if(75 to 90)
filling.icon_state = "[icon_state]75"
if(91 to INFINITY)
filling.icon_state = "[icon_state]100"
filling.icon += mix_color_from_reagents(reagents.reagent_list)
overlays += filling
if(!is_open_container())
var/image/lid = image(icon, src, "lid_bottle")
overlays += lid
/obj/item/weapon/reagent_containers/glass/bottle/toxin
name = "toxin bottle"
desc = "A small bottle of toxins. Do not drink, it is poisonous."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle12"
list_reagents = list("toxin" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/cyanide
name = "cyanide bottle"
desc = "A small bottle of cyanide. Bitter almonds?"
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle12"
list_reagents = list("cyanide" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/mutagen
name = "unstable mutagen bottle"
desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle20"
list_reagents = list("mutagen" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/ammonia
name = "ammonia bottle"
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle20"
list_reagents = list("ammonia" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/diethylamine
name = "diethylamine bottle"
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("diethylamine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/facid
name = "Fluorosulfuric Acid Bottle"
desc = "A small bottle. Contains a small amount of Fluorosulfuric Acid"
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("facid" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/adminordrazine
name = "Adminordrazine Bottle"
desc = "A small bottle. Contains the liquid essence of the gods."
icon = 'icons/obj/drinks.dmi'
icon_state = "holyflask"
list_reagents = list("adminordrazine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/capsaicin
name = "Capsaicin Bottle"
desc = "A small bottle. Contains hot sauce."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle3"
list_reagents = list("capsaicin" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/frostoil
name = "Frost Oil Bottle"
desc = "A small bottle. Contains cold sauce."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("frostoil" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/morphine
name = "Morphine Bottle"
desc = "A small bottle. Contains morphine."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("morphine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/ether
name = "Ether Bottle"
desc = "A small bottle. Contains ether."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("ether" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/charcoal
name = "Charcoal Bottle"
desc = "A small bottle. Contains charcoal."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("charcoal" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/epinephrine
name = "Epinephrine Bottle"
desc = "A small bottle. Contains epinephrine."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
list_reagents = list("epinephrine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/pancuronium
name = "Pancuronium Bottle"
desc = "A small bottle of pancuronium."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle14"
list_reagents = list("pancuronium" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/sulfonal
name = "Sulfonal Bottle"
desc = "A small bottle of Sulfonal."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle19"
list_reagents = list("sulfonal" = 30)
//Reagent bottles
/obj/item/weapon/reagent_containers/glass/bottle/reagent
name = "Reagent Bottle"
desc = "A bottle for storing reagents"
icon_state = "rbottle"
volume = 50
/obj/item/weapon/reagent_containers/glass/bottle/reagent/oil
name = "Oil Bottle"
desc = "A reagent bottle. Contains oil."
icon_state = "rbottle1"
list_reagents = list("oil" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/phenol
name = "Phenol Bottle"
desc = "A reagent bottle. Contains phenol."
icon_state = "rbottle2"
list_reagents = list("phenol" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/acetone
name = "Acetone Bottle"
desc = "A reagent bottle. Contains acetone."
icon_state = "rbottle3"
list_reagents = list("acetone" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/ammonia
name = "Ammonia Bottle"
desc = "A reagent bottle. Contains ammonia."
icon_state = "rbottle4"
list_reagents = list("ammonia" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/diethylamine
name = "Diethylamine Bottle"
desc = "A reagent bottle. Contains diethylamine."
icon_state = "rbottle5"
list_reagents = list("diethylamine" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/acid
name = "Acid Bottle"
desc = "A reagent bottle. Contains sulfuric acid."
icon_state = "rbottle6"
list_reagents = list("sacid" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/formaldehyde
name = "Formaldehyde Bottle"
desc = "A reagent bottle. Contains formaldehyde."
icon_state = "rbottle"
list_reagents = list("formaldehyde" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/morphine
name = "Morphine Bottle"
desc = "A reagent bottle. Contains morphine."
list_reagents = list("morphine" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/insulin
name = "Insulin Bottle"
desc = "A reagent bottle. Contains insulin."
list_reagents = list("insulin" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/hairgrownium
name = "Hair Grow Gel"
desc = "A bottle full of a stimulative hair growth formula"
list_reagents = list("hairgrownium" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/hair_dye
name = "Quantum Hair Dye Bottle"
desc = "A bottle of the ever-changing quantum hair dye."
list_reagents = list("hair_dye" = 50)
////////////////////Traitor Poison Bottle//////////////////////////////
/obj/item/weapon/reagent_containers/glass/bottle/traitor
desc = "It has a small skull and crossbones on it. Uh-oh!"
possible_transfer_amounts = list(5,10,15,25,30,40)
volume = 40
/obj/item/weapon/reagent_containers/glass/bottle/traitor/New()
..()
reagents.add_reagent(pick_list("chemistry_tools.json", "traitor_poison_bottle"), 40)
/obj/item/weapon/reagent_containers/glass/bottle/plasma
name = "plasma dust bottle"
desc = "A small bottle of plasma in dust form. Extremely toxic and reacts with micro-organisms inside blood."
icon_state = "bottle8"
list_reagents = list("plasma_dust" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/diphenhydramine
name = "diphenhydramine bottle"
desc = "A small bottle of diphenhydramine."
icon_state = "bottle20"
list_reagents = list("diphenhydramine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/flu_virion
name = "Flu virion culture bottle"
desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/flu
/obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion
name = "Epiglottis virion culture bottle"
desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/voice_change
/obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion
name = "Liver enhancement virion culture bottle"
desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/heal
/obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion
name = "Hullucigen virion culture bottle"
desc = "A small bottle. Contains hullucigen virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/hullucigen
/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat
name = "Pierrot's Throat culture bottle"
desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/pierrot_throat
/obj/item/weapon/reagent_containers/glass/bottle/cold
name = "Rhinovirus culture bottle"
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/advance/cold
/obj/item/weapon/reagent_containers/glass/bottle/retrovirus
name = "Retrovirus culture bottle"
desc = "A small bottle. Contains a retrovirus culture in a synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/dna_retrovirus
/obj/item/weapon/reagent_containers/glass/bottle/gbs
name = "GBS culture bottle"
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit
icon_state = "bottle3"
amount_per_transfer_from_this = 5
spawned_disease = /datum/disease/gbs
/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs
name = "GBS culture bottle"
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit
icon_state = "bottle3"
spawned_disease = /datum/disease/fake_gbs
/obj/item/weapon/reagent_containers/glass/bottle/brainrot
name = "Brainrot culture bottle"
desc = "A small bottle. Contains Cryptococcus Cosmosis culture in synthblood medium."
icon_state = "bottle3"
spawned_disease = /datum/disease/brainrot
/obj/item/weapon/reagent_containers/glass/bottle/magnitis
name = "Magnitis culture bottle"
desc = "A small bottle. Contains a small dosage of Fukkos Miracos."
icon_state = "bottle3"
spawned_disease = /datum/disease/magnitis
/obj/item/weapon/reagent_containers/glass/bottle/wizarditis
name = "Wizarditis culture bottle"
desc = "A small bottle. Contains a sample of Rincewindus Vulgaris."
icon_state = "bottle3"
spawned_disease = /datum/disease/wizarditis
/obj/item/weapon/reagent_containers/glass/bottle/anxiety
name = "Severe Anxiety culture bottle"
desc = "A small bottle. Contains a sample of Lepidopticides."
icon_state = "bottle3"
spawned_disease = /datum/disease/anxiety
/obj/item/weapon/reagent_containers/glass/bottle/beesease
name = "Beesease culture bottle"
desc = "A small bottle. Contains a sample of invasive Apidae."
icon_state = "bottle3"
spawned_disease = /datum/disease/beesease
/obj/item/weapon/reagent_containers/glass/bottle/fluspanish
name = "Spanish flu culture bottle"
desc = "A small bottle. Contains a sample of Inquisitius."
icon_state = "bottle3"
spawned_disease = /datum/disease/fluspanish
/obj/item/weapon/reagent_containers/glass/bottle/tuberculosis
name = "Fungal Tuberculosis culture bottle"
desc = "A small bottle. Contains a sample of Fungal Tubercle bacillus."
icon_state = "bottle3"
spawned_disease = /datum/disease/tuberculosis
/obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure
name = "BVAK bottle"
desc = "A small bottle containing Bio Virus Antidote Kit."
icon_state = "bottle5"
list_reagents = list("atropine" = 5, "epinephrine" = 5, "salbutamol" = 10, "spaceacillin" = 10)
@@ -1,136 +0,0 @@
/obj/item/weapon/reagent_containers/drugs
name = " "
var/base_name = " "
desc = " "
icon = 'icons/obj/chemical.dmi'
icon_state = "baggie"
item_state = "beaker"
amount_per_transfer_from_this = 2
possible_transfer_amounts = 2
volume = 10
flags = OPENCONTAINER
var/label_text = ""
/obj/item/weapon/reagent_containers/drugs/New()
..()
src.pixel_x = rand(-10.0, 10) //Randomizes postion
src.pixel_y = rand(-10.0, 10)
base_name = name
/obj/item/weapon/reagent_containers/drugs/afterattack(obj/target, mob/user, proximity)
if(!proximity)
return
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume && target.reagents)
to_chat(user, "\red [target] is empty.")
return
if(reagents.total_volume >= reagents.maximum_volume)
to_chat(user, "\red [src] is full.")
return
for(var/datum/reagent/A in target.reagents.reagent_list)
if(A.reagent_state != 1)
to_chat(user, "\red You can only put powders in [src].")
return
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
to_chat(user, "\blue You fill [src] with [trans] units of the contents of [target].")
else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it.
if(!reagents.total_volume)
to_chat(user, "\red [src] is empty.")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
to_chat(user, "\red [target] is full.")
return
// /vg/: Logging transfers of bad things
if(target.reagents_to_log.len)
var/list/badshit=list()
for(var/bad_reagent in target.reagents_to_log)
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
message_admins("[key_name_admin(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl]")
log_game("[key_name(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
to_chat(user, "\blue You transfer [trans] units of the solution to [target].")
//Safety for dumping stuff into a ninja suit. It handles everything through attackby() and this is unnecessary.
/*else if(istype(target, /obj/machinery/bunsen_burner))
return
else if(istype(target, /obj/machinery/radiocarbon_spectrometer))
return*/
/obj/item/weapon/reagent_containers/drugs/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen))
var/tmp_label = sanitize(input(user, "Enter a label for [src.name]","Label",src.label_text))
if(length(tmp_label) > 10)
to_chat(user, "\red The label can be at most 10 characters long.")
else
to_chat(user, "\blue You set the label to \"[tmp_label]\".")
src.label_text = tmp_label
src.update_name_label()
/obj/item/weapon/reagent_containers/drugs/proc/update_name_label()
if(src.label_text == "")
src.name = src.base_name
else
src.name = "[src.base_name] ([src.label_text])"
/obj/item/weapon/reagent_containers/drugs/baggie
name = "baggie"
desc = "A baggie. Can hold up to 10 units."
icon = 'icons/obj/chemical.dmi'
icon_state = "baggie"
item_state = "beaker"
/obj/item/weapon/reagent_containers/drugs/on_reagent_change()
update_icon()
/obj/item/weapon/reagent_containers/drugs/pickup(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/drugs/dropped(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/drugs/attack_hand()
..()
update_icon()
/obj/item/weapon/reagent_containers/drugs/update_icon()
overlays.Cut()
if(reagents.total_volume)
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]2")
switch(reagents.total_volume)
if(0 to 2)
filling.icon_state = "[icon_state]2"
if(3 to 4)
filling.icon_state = "[icon_state]4"
if(5 to 6)
filling.icon_state = "[icon_state]6"
if(7 to 8)
filling.icon_state = "[icon_state]8"
if(9 to 10)
filling.icon_state = "[icon_state]10"
filling.icon += mix_color_from_reagents(reagents.reagent_list)
overlays += filling
/obj/item/weapon/reagent_containers/drugs/baggie/meth
list_reagents = list("methamphetamine" = 10)
@@ -7,7 +7,7 @@
..()
flags &= ~OPENCONTAINER
/obj/item/weapon/reagent_containers/food/drinks/cans/attack_self(mob/user as mob)
/obj/item/weapon/reagent_containers/food/drinks/cans/attack_self(mob/user)
if(canopened == 0)
playsound(src.loc,'sound/effects/canopen.ogg', rand(10,50), 1)
to_chat(user, "<span class='notice'>You open the drink with an audible pop!</span>")
@@ -28,7 +28,7 @@
qdel(src)
return crushed_can
/obj/item/weapon/reagent_containers/food/drinks/cans/attack(mob/M as mob, mob/user as mob, proximity)
/obj/item/weapon/reagent_containers/food/drinks/cans/attack(mob/M, mob/user, proximity)
if(canopened == 0)
to_chat(user, "<span class='notice'>You need to open the drink!</span>")
return
@@ -58,94 +58,46 @@
else
return ..(target, user, proximity)
/* examine(mob/user)
if(!..(user, 1))
return
if(!reagents || reagents.total_volume==0)
to_chat(user, "\blue \The [src] is empty!")
else if(reagents.total_volume<=src.volume/4)
to_chat(user, "\blue \The [src] is almost empty!")
else if(reagents.total_volume<=src.volume*0.66)
to_chat(user, "\blue \The [src] is half full!")
else if(reagents.total_volume<=src.volume*0.90)
to_chat(user, "\blue \The [src] is almost full!")
else
to_chat(user, "\blue \The [src] is full!")*/
//DRINKS
/obj/item/weapon/reagent_containers/food/drinks/cans/cola
name = "Space Cola"
desc = "Cola. in space."
icon_state = "cola"
New()
..()
reagents.add_reagent("cola", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("cola" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle
name = "Bottled Water"
desc = "Introduced to the vending machines by Skrellian request, this water comes straight from the Martian poles."
icon_state = "waterbottle"
is_plastic = 1
New()
..()
reagents.add_reagent("water", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("water" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/beer
name = "Space Beer"
desc = "Contains only water, malt and hops."
icon_state = "beer"
is_glass = 1
New()
..()
reagents.add_reagent("beer", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("beer" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/adminbooze
name = "Admin Booze"
desc = "Bottled Griffon tears. Drink with caution."
icon_state = "adminbooze"
is_glass = 1
New()
..()
reagents.add_reagent("adminordrazine", 5)
reagents.add_reagent("capsaicin", 5)
reagents.add_reagent("methamphetamine", 20)
reagents.add_reagent("thirteenloko", 20)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("adminordrazine" = 5, "capsaicin" = 5, "methamphetamine"= 20, "thirteenloko" = 20)
/obj/item/weapon/reagent_containers/food/drinks/cans/madminmalt
name = "Madmin Malt"
desc = "Bottled essence of angry admins. Drink with <i>EXTREME</i> caution."
icon_state = "madminmalt"
is_glass = 1
New()
..()
reagents.add_reagent("hell_water", 20)
reagents.add_reagent("neurotoxin", 15)
reagents.add_reagent("thirteenloko", 15)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("hell_water" = 20, "neurotoxin" = 15, "thirteenloko" = 15)
/obj/item/weapon/reagent_containers/food/drinks/cans/badminbrew
name = "Badmin Brew"
desc = "Bottled trickery and terrible admin work. Probably shouldn't drink this one at all."
icon_state = "badminbrew"
is_glass = 1
New()
..()
reagents.add_reagent("mutagen", 25)
reagents.add_reagent("charcoal", 10)
reagents.add_reagent("thirteenloko", 15)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("mutagen" = 25, "charcoal" = 10, "thirteenloko" = 15)
/obj/item/weapon/reagent_containers/food/drinks/cans/ale
name = "Magm-Ale"
@@ -153,117 +105,74 @@
icon_state = "alebottle"
item_state = "beer"
is_glass = 1
New()
..()
reagents.add_reagent("ale", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("ale" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind
name = "Space Mountain Wind"
desc = "Blows right through you like a space wind."
icon_state = "space_mountain_wind"
New()
..()
reagents.add_reagent("spacemountainwind", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("spacemountainwind" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/thirteenloko
name = "Thirteen Loko"
desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsibly."
icon_state = "thirteen_loko"
New()
..()
reagents.add_reagent("thirteenloko", 25)
reagents.add_reagent("psilocybin", 5)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("thirteenloko" = 25, "psilocybin" = 5)
/obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb
name = "Dr. Gibb"
desc = "A delicious mixture of 42 different flavors."
icon_state = "dr_gibb"
New()
..()
reagents.add_reagent("dr_gibb", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("dr_gibb" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/starkist
name = "Star-kist"
desc = "The taste of a star in liquid form. And, a bit of tuna...?"
icon_state = "starkist"
New()
..()
reagents.add_reagent("brownstar", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("brownstar" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/space_up
name = "Space-Up"
desc = "Tastes like a hull breach in your mouth."
icon_state = "space-up"
New()
..()
reagents.add_reagent("space_up", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("space_up" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/lemon_lime
name = "Lemon-Lime"
desc = "You wanted ORANGE. It gave you Lemon Lime."
icon_state = "lemon-lime"
New()
..()
reagents.add_reagent("lemon_lime", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("lemon_lime" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea
name = "Vrisk Serket Iced Tea"
desc = "That sweet, refreshing southern earthy flavor. That's where it's from, right? South Earth?"
icon_state = "ice_tea_can"
New()
..()
reagents.add_reagent("icetea", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("icetea" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice
name = "Grapel Juice"
desc = "500 pages of rules of how to appropriately enter into a combat with this juice!"
icon_state = "purple_can"
New()
..()
reagents.add_reagent("grapejuice", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("grapejuice" = 30)
/obj/item/weapon/reagent_containers/food/drinks/cans/tonic
name = "T-Borg's Tonic Water"
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
icon_state = "tonic"
New()
..()
reagents.add_reagent("tonic", 50)
list_reagents = list("tonic" = 50)
/obj/item/weapon/reagent_containers/food/drinks/cans/sodawater
name = "Soda Water"
desc = "A can of soda water. Still water's more refreshing cousin."
icon_state = "sodawater"
New()
..()
reagents.add_reagent("sodawater", 50)
list_reagents = list("sodawater" = 50)
/obj/item/weapon/reagent_containers/food/drinks/cans/synthanol
name = "Beep's Classic Synthanol"
desc = "A can of IPC booze, however that works."
icon_state = "synthanolcan"
New()
..()
reagents.add_reagent("synthanol", 50)
list_reagents = list("synthanol" = 50)
/obj/item/weapon/reagent_containers/food/drinks/cans/bottler
name = "generic beverage container"
@@ -273,18 +182,6 @@
/obj/item/weapon/reagent_containers/food/drinks/cans/bottler/on_reagent_change()
update_icon()
/obj/item/weapon/reagent_containers/food/drinks/cans/bottler/pickup(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/food/drinks/cans/bottler/dropped(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/food/drinks/cans/bottler/attack_hand()
..()
update_icon()
/obj/item/weapon/reagent_containers/food/drinks/cans/bottler/update_icon()
overlays.Cut()
@@ -313,6 +210,7 @@
desc = "A glass bottle suitable for beverages."
icon_state = "glass_bottle"
is_glass = 1
/obj/item/weapon/reagent_containers/food/drinks/cans/bottler/plastic_bottle
name = "plastic bottle"
desc = "A plastic bottle suitable for beverages."
@@ -8,10 +8,10 @@
/obj/item/weapon/reagent_containers/food/condiment
name = "condiment container"
desc = "Just your average condiment container."
icon = 'icons/obj/food/food.dmi'
icon = 'icons/obj/food/containers.dmi'
icon_state = "emptycondiment"
flags = OPENCONTAINER
possible_transfer_amounts = list(1,5,10)
possible_transfer_amounts = list(1, 5, 10, 15, 20, 25, 30, 50)
volume = 50
//Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change() to change names, descs and sprites.
var/list/possible_states = list(
@@ -21,90 +21,69 @@
"soysauce" = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"),
"frostoil" = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in it's passage"),
"sodiumchloride" = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"),
"blackpepper" = list("pepermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"),
"blackpepper" = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"),
"cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"),
"sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"),
"flour" =list("flour", "flour sack", "A big bag of flour. Good for baking!"),
"rice" =list("rice", "rice sack", "A big bag of rice. Good for cooking!"))
"sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"))
var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters.
/obj/item/weapon/reagent_containers/food/condiment/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
/obj/item/weapon/reagent_containers/food/condiment/attackby(obj/item/weapon/W, mob/user, params)
return
/obj/item/weapon/reagent_containers/food/condiment/attack_self(mob/user as mob)
/obj/item/weapon/reagent_containers/food/condiment/attack_self(mob/user)
return
/obj/item/weapon/reagent_containers/food/condiment/attack(mob/M as mob, mob/user as mob, def_zone)
var/datum/reagents/R = src.reagents
/obj/item/weapon/reagent_containers/food/condiment/attack(mob/M, mob/user, def_zone)
if(!R || !R.total_volume)
to_chat(user, "\red None of [src] left, oh no!")
if(!reagents || !reagents.total_volume)
to_chat(user, "<span class='warning'>None of [src] left, oh no!</span>")
return 0
if(M == user)
to_chat(M, "\blue You swallow some of contents of the [src].")
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(0)
reagents.trans_to(M, 10)
to_chat(M, "<span class='notice'>You swallow some of contents of \the [src].</span>")
else
user.visible_message("<span class='warning'>[user] attempts to feed [M] from [src].</span>")
if(!do_mob(user, M))
return
if(!reagents || !reagents.total_volume)
return // The condiment might be empty after the delay.
user.visible_message("<span class='warning'>[user] feeds [M] from [src].</span>")
add_logs(M, user, "fed", reagentlist(src))
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
else if( istype(M, /mob/living/carbon/human) )
var/fraction = min(10/reagents.total_volume, 1)
reagents.reaction(M, INGEST, fraction)
reagents.trans_to(M, 10)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
for(var/mob/O in viewers(world.view, user))
O.show_message("\red [user] attempts to feed [M] [src].", 1)
if(!do_mob(user, M)) return
for(var/mob/O in viewers(world.view, user))
O.show_message("\red [user] feeds [M] [src].", 1)
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [key_name(user)] Reagents: [reagentlist(src)]</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [src.name] by [key_name(M)] Reagents: [reagentlist(src)]</font>")
if(M.ckey)
msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [src.name] (INTENT: [uppertext(user.a_intent)])")
if(!iscarbon(user))
M.LAssailant = null
else
M.LAssailant = user
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(0)
reagents.trans_to(M, 10)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
return 0
/obj/item/weapon/reagent_containers/food/condiment/attackby(obj/item/I as obj, mob/user as mob, params)
/obj/item/weapon/reagent_containers/food/condiment/attackby(obj/item/I, mob/user, params)
return
/obj/item/weapon/reagent_containers/food/condiment/afterattack(obj/target, mob/user , proximity)
if(!proximity) return
if(!proximity)
return
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
to_chat(user, "\red [target] is empty.")
to_chat(user, "<span class='warning'>[target] is empty!</span>")
return
if(reagents.total_volume >= reagents.maximum_volume)
to_chat(user, "\red [src] is full.")
to_chat(user, "<span class='warning'>[src] is full!</span>")
return
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
to_chat(user, "\blue You fill [src] with [trans] units of the contents of [target].")
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
to_chat(user, "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>")
//Something like a glass or a food item. Player probably wants to transfer TO it.
else if(target.is_open_container() || istype(target, /obj/item/weapon/reagent_containers/food/snacks))
if(!reagents.total_volume)
to_chat(user, "\red [src] is empty.")
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
to_chat(user, "\red you can't add anymore to [target].")
to_chat(user, "<span class='warning'>you can't add anymore to [target]!</span>")
return
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
to_chat(user, "\blue You transfer [trans] units of the condiment to [target].")
to_chat(user, "<span class='notice'>You transfer [trans] units of the condiment to [target].</span>")
/obj/item/weapon/reagent_containers/food/condiment/on_reagent_change()
if(!possible_states.len)
@@ -118,7 +97,7 @@
desc = temp_list[3]
else
name = "condiment bottle"
name = "[originalname] bottle"
main_reagent = reagents.get_master_reagent_name()
if(reagents.reagent_list.len==1)
desc = "Looks like it is [lowertext(main_reagent)], but you are not sure."
@@ -129,46 +108,17 @@
icon_state = "emptycondiment"
name = "condiment bottle"
desc = "An empty condiment bottle."
return
/obj/item/weapon/reagent_containers/food/condiment/enzyme
name = "universal enzyme"
desc = "Used in cooking various dishes."
icon_state = "enzyme"
New()
..()
reagents.add_reagent("enzyme", 50)
list_reagents = list("enzyme" = 50)
/obj/item/weapon/reagent_containers/food/condiment/sugar
name = "sugar bottle"
desc = "Tasty spacey sugar!"
New()
..()
reagents.add_reagent("sugar", 50)
/obj/item/weapon/reagent_containers/food/condiment/flour
name = "flour sack"
desc = "A big bag of flour. Good for baking!"
icon_state = "flour"
item_state = "flour"
possible_states = list()
New()
..()
reagents.add_reagent("flour", 30)
/obj/item/weapon/reagent_containers/food/condiment/rice
name = "rice sack"
desc = "A big bag of rice. Good for cooking!"
icon_state = "rice"
item_state = "flour"
possible_states = list()
New()
..()
reagents.add_reagent("rice", 30)
list_reagents = list("sugar" = 50)
/obj/item/weapon/reagent_containers/food/condiment/saltshaker //Seperate from above since it's a small shaker rather then
name = "salt shaker" // a large one.
@@ -177,12 +127,9 @@
possible_transfer_amounts = list(1,20) //for clown turning the lid off
amount_per_transfer_from_this = 1
volume = 20
list_reagents = list("sodiumchloride" = 20)
possible_states = list()
New()
..()
reagents.add_reagent("sodiumchloride", 20)
/obj/item/weapon/reagent_containers/food/condiment/saltshaker/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] begins to swap forms with the salt shaker! It looks like \he's trying to commit suicide.</span>")
var/newname = "[name]"
@@ -190,7 +137,7 @@
user.name = newname
user.real_name = newname
desc = "Salt. From dead crew, presumably."
return TOXLOSS
return (TOXLOSS)
/obj/item/weapon/reagent_containers/food/condiment/peppermill
name = "pepper mill"
@@ -199,36 +146,64 @@
possible_transfer_amounts = list(1,20) //for clown turning the lid off
amount_per_transfer_from_this = 1
volume = 20
list_reagents = list("blackpepper" = 20)
possible_states = list()
New()
..()
reagents.add_reagent("blackpepper", 20)
/obj/item/weapon/reagent_containers/food/condiment/milk
name = "space milk"
desc = "It's milk. White and nutritious goodness!"
icon_state = "milk"
item_state = "carton"
list_reagents = list("milk" = 50)
possible_states = list()
/obj/item/weapon/reagent_containers/food/condiment/flour
name = "flour sack"
desc = "A big bag of flour. Good for baking!"
icon_state = "flour"
item_state = "flour"
list_reagents = list("flour" = 30)
possible_states = list()
/obj/item/weapon/reagent_containers/food/condiment/soymilk
name = "soy milk"
desc = "It's soy milk. White and nutritious goodness!"
icon_state = "soymilk"
item_state = "carton"
list_reagents = list("soymilk" = 50)
possible_states = list()
/obj/item/weapon/reagent_containers/food/condiment/rice
name = "rice sack"
desc = "A big bag of rice. Good for cooking!"
icon_state = "rice"
item_state = "flour"
list_reagents = list("rice" = 30)
possible_states = list()
/obj/item/weapon/reagent_containers/food/condiment/soysauce
name = "soy sauce"
desc = "A salty soy-based flavoring."
icon_state = "soysauce"
list_reagents = list("soysauce" = 50)
possible_states = list()
/obj/item/weapon/reagent_containers/food/condiment/syndisauce
name = "\improper Chef Excellence's Special Sauce"
desc = "A potent sauce extracted from the potent amanita mushrooms. Death never tasted quite so delicious."
amount_per_transfer_from_this = 5
volume = 50
New()
..()
reagents.add_reagent("amanitin", 50)
list_reagents = list("amanitin" = 50)
possible_states = list()
//Food packs. To easily apply deadly toxi... delicious sauces to your food!
/obj/item/weapon/reagent_containers/food/condiment/pack
name = "condiment pack"
desc = "A small plastic pack with condiments to put on your food"
icon_state = "condi_empty"
volume = 10
amount_per_transfer_from_this = 10
possible_transfer_amounts = 10
possible_transfer_amounts = list()
possible_states = list("ketchup" = list("condi_ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "soysauce" = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("condi_sugar", "Sugar", "Tasty spacey sugar!"))
var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters.
/obj/item/weapon/reagent_containers/food/condiment/pack/New()
..()
pixel_x = rand(-7, 7)
pixel_y = rand(-7, 7)
/obj/item/weapon/reagent_containers/food/condiment/pack/attack(mob/M as mob, mob/user as mob, def_zone) //Can't feed these to people directly.
return
@@ -243,8 +218,7 @@
qdel(src)
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
to_chat(user, "<span class='warning'>You tear open [src], but [target] is stacked so high that it just drips off!</span>")//Not sure if food can ever be full, but better safe than sorry.
to_chat(user, "<span class='warning'>You tear open [src], but [target] is stacked so high that it just drips off!</span>") //Not sure if food can ever be full, but better safe than sorry.
qdel(src)
return
else
@@ -268,18 +242,12 @@
//Ketchup
/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup
name = "Ketchup pack"
originalname = "Ketchup"
/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup/New()
..()
reagents.add_reagent("ketchup", 10)
name = "ketchup pack"
originalname = "ketchup"
list_reagents = list("ketchup" = 10)
//Hot sauce
/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce
name = "Hotsauce pack"
originalname = "Hotsauce"
/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce/New()
..()
reagents.add_reagent("capsaicin", 10)
name = "hotsauce pack"
originalname = "hotsauce"
list_reagents = list("capsaicin" = 10)
@@ -8,19 +8,21 @@
icon_state = null
flags = OPENCONTAINER
consume_sound = 'sound/items/drink.ogg'
possible_transfer_amounts = list(5,10,25)
possible_transfer_amounts = list(5,10,15,20,25,30,50)
volume = 50
/obj/item/weapon/reagent_containers/food/drinks/New()
..()
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
bitesize = amount_per_transfer_from_this
if(bitesize < 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/drinks/attack_self(mob/user as mob)
/obj/item/weapon/reagent_containers/food/drinks/attack_self(mob/user)
return
/obj/item/weapon/reagent_containers/food/drinks/attack(mob/M as mob, mob/user as mob, def_zone)
/obj/item/weapon/reagent_containers/food/drinks/attack(mob/M, mob/user, def_zone)
if(!reagents || !reagents.total_volume)
to_chat(user, "<span class='warning'> None of [src] left, oh no!</span>")
return 0
@@ -95,7 +97,7 @@
return
/obj/item/weapon/reagent_containers/food/drinks/attackby(var/obj/item/I, mob/user as mob, params)
/obj/item/weapon/reagent_containers/food/drinks/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird
return
if(is_hot(I))
@@ -123,22 +125,51 @@
/// Drinks. END
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/drinks/golden_cup
desc = "A golden cup"
name = "golden cup"
/obj/item/weapon/reagent_containers/food/drinks/trophy
name = "pewter cup"
desc = "Everyone gets a trophy."
icon_state = "pewter_cup"
w_class = 1
force = 1
throwforce = 1
amount_per_transfer_from_this = 5
materials = list(MAT_METAL=100)
possible_transfer_amounts = list()
volume = 5
flags = CONDUCT | OPENCONTAINER
/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup
name = "gold cup"
desc = "You're winner!"
icon_state = "golden_cup"
item_state = "golden_cup" //yup :)
w_class = 4
force = 14
throwforce = 10
amount_per_transfer_from_this = 20
materials = list(MAT_GOLD=1000)
possible_transfer_amounts = null
volume = 150
flags = CONDUCT | OPENCONTAINER
/obj/item/weapon/reagent_containers/food/drinks/golden_cup/tournament_26_06_2011
desc = "A golden cup. It will be presented to a winner of tournament 26 june and name of the winner will be graved on it."
/obj/item/weapon/reagent_containers/food/drinks/trophy/silver_cup
name = "silver cup"
desc = "Best loser!"
icon_state = "silver_cup"
w_class = 3
force = 10
throwforce = 8
amount_per_transfer_from_this = 15
materials = list(MAT_SILVER=800)
volume = 100
/obj/item/weapon/reagent_containers/food/drinks/trophy/bronze_cup
name = "bronze cup"
desc = "At least you ranked!"
icon_state = "bronze_cup"
w_class = 2
force = 5
throwforce = 4
amount_per_transfer_from_this = 10
materials = list(MAT_METAL=400)
volume = 25
///////////////////////////////////////////////Drinks
@@ -146,158 +177,84 @@
// rather then having to add it to something else first. They should only contain liquids. They have a default container size of 50.
// Formatting is the same as food.
/obj/item/weapon/reagent_containers/food/drinks/milk
name = "\improper Space Milk"
desc = "It's milk. White and nutritious goodness!"
icon_state = "milk"
item_state = "carton"
New()
..()
reagents.add_reagent("milk", 50)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/* Flour is no longer a reagent
/obj/item/weapon/reagent_containers/food/drinks/flour
name = "flour sack"
desc = "A big bag of flour. Good for baking!"
icon = 'icons/obj/food/food.dmi'
icon_state = "flour"
item_state = "flour"
New()
..()
reagents.add_reagent("flour", 50)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
*/
/obj/item/weapon/reagent_containers/food/drinks/soymilk
name = "\improper SoyMilk"
desc = "It's soy milk. White and nutritious goodness!"
icon_state = "soymilk"
item_state = "carton"
New()
..()
reagents.add_reagent("soymilk", 50)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/coffee
name = "\improper Robust Coffee"
name = "Robust Coffee"
desc = "Careful, the beverage you're about to enjoy is extremely hot."
icon_state = "coffee"
New()
..()
reagents.add_reagent("coffee", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("coffee" = 30)
/obj/item/weapon/reagent_containers/food/drinks/ice
name = "Ice Cup"
desc = "Careful, cold ice, do not chew."
icon_state = "coffee"
list_reagents = list("ice" = 30)
/obj/item/weapon/reagent_containers/food/drinks/tea
name = "\improper Duke Purple Tea"
name = "Duke Purple Tea"
desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea."
icon_state = "teacup"
item_state = "coffee"
New()
..()
reagents.add_reagent("tea", 30)
if(prob(20))
reagents.add_reagent("mugwort", 3)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("tea" = 30)
/obj/item/weapon/reagent_containers/food/drinks/tea/New()
..()
if(prob(20))
reagents.add_reagent("mugwort", 3)
/obj/item/weapon/reagent_containers/food/drinks/mugwort
name = "\improper Mugwort Tea"
name = "Mugwort Tea"
desc = "A bitter herbal tea."
icon_state = "manlydorfglass"
item_state = "coffee"
New()
..()
reagents.add_reagent("mugwort", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/ice
name = "\improper Ice Cup"
desc = "Careful, cold ice, do not chew."
icon_state = "coffee"
New()
..()
reagents.add_reagent("ice", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("mugwort" = 30)
/obj/item/weapon/reagent_containers/food/drinks/h_chocolate
name = "\improper Dutch Hot Coco"
name = "Dutch Hot Coco"
desc = "Made in Space South America."
icon_state = "hot_coco"
item_state = "coffee"
New()
..()
reagents.add_reagent("hot_coco", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("hot_coco" = 30, "sugar" = 5)
/obj/item/weapon/reagent_containers/food/drinks/chocolate
name = "\improper Hot Chocolate"
name = "Hot Chocolate"
desc = "Made in Space Switzerland."
icon_state = "hot_coco"
item_state = "coffee"
New()
..()
reagents.add_reagent("chocolate", 45)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("chocolate" = 30)
/obj/item/weapon/reagent_containers/food/drinks/weightloss
name = "\improper Weight-Loss Shake"
name = "Weight-Loss Shake"
desc = "A shake designed to cause weight loss. The package proudly proclaims that it is 'tapeworm free.'"
icon_state = "coffee"
item_state = "coffee"
New()
..()
reagents.add_reagent("lipolicide", 30)
reagents.add_reagent("chocolate", 5)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("lipolicide" = 30, "chocolate" = 5)
/obj/item/weapon/reagent_containers/food/drinks/dry_ramen
name = "\improper Cup Ramen"
desc = "Just add 10ml water, self heats! A taste that reminds you of your school years."
name = "Cup Ramen"
desc = "Just add 10ml of water, self heats! A taste that reminds you of your school years."
icon_state = "ramen"
New()
..()
reagents.add_reagent("dry_ramen", 30)
if(prob(20))
reagents.add_reagent("enzyme", 3)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("dry_ramen" = 30)
/obj/item/weapon/reagent_containers/food/drinks/dry_ramen/New()
..()
if(prob(20))
reagents.add_reagent("enzyme", 3)
/obj/item/weapon/reagent_containers/food/drinks/chicken_soup
name = "\improper Cup Chicken Soup"
name = "Cup Chicken Soup"
desc = "A delicious and soothing cup of chicken noodle soup; just like spessmom used to make it."
icon_state = "ramen"
New()
..()
reagents.add_reagent("chicken_soup", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
list_reagents = list("chicken_soup" = 30)
/obj/item/weapon/reagent_containers/food/drinks/sillycup
name = "paper cup"
desc = "A paper water cup."
icon_state = "water_cup_e"
possible_transfer_amounts = null
possible_transfer_amounts = list()
volume = 10
New()
..()
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
on_reagent_change()
if(reagents.total_volume)
icon_state = "water_cup"
else
icon_state = "water_cup_e"
/obj/item/weapon/reagent_containers/food/drinks/sillycup/on_reagent_change()
if(reagents.total_volume)
icon_state = "water_cup"
else
icon_state = "water_cup_e"
//////////////////////////drinkingglass and shaker//
//Note by Darem: This code handles the mixing of drinks. New drinks go in three places: In Chemistry-Reagents.dm (for the drink
@@ -308,20 +265,14 @@
name = "shaker"
desc = "A metal shaker to mix drinks in."
icon_state = "shaker"
materials = list(MAT_METAL=1500)
amount_per_transfer_from_this = 10
volume = 100
/obj/item/weapon/reagent_containers/food/drinks/flask
name = "Captain's Flask"
desc = "A metal flask belonging to the captain"
name = "flask"
desc = "Every good spaceman knows it's a good idea to bring along a couple of pints of whiskey wherever they go."
icon_state = "flask"
materials = list(MAT_SILVER=500)
volume = 60
/obj/item/weapon/reagent_containers/food/drinks/flask/detflask
name = "Detective's Flask"
desc = "A metal flask with a leather band and golden badge belonging to the detective."
icon_state = "detflask"
materials = list(MAT_METAL=250)
volume = 60
@@ -331,17 +282,30 @@
icon_state = "barflask"
volume = 60
/obj/item/weapon/reagent_containers/food/drinks/britcup
name = "cup"
desc = "A cup with the british flag emblazoned on it."
icon_state = "britcup"
volume = 30
/obj/item/weapon/reagent_containers/food/drinks/flask/detflask
name = "Detective's Flask"
desc = "A metal flask with a leather band and golden badge belonging to the detective."
icon_state = "detflask"
volume = 60
/obj/item/weapon/reagent_containers/food/drinks/flask/gold
name = "captain's flask"
desc = "A gold flask belonging to the captain."
icon_state = "flask_gold"
materials = list(MAT_GOLD=500)
/obj/item/weapon/reagent_containers/food/drinks/flask/det
name = "detective's flask"
desc = "The detective's only true friend."
icon_state = "detflask"
list_reagents = list("whiskey" = 30)
/obj/item/weapon/reagent_containers/food/drinks/flask/hand_made
name = "handmade flask"
desc = "A wooden flask with a silver lid and bottom. It has a matte, dark blue paint on it with the initials \"W.H.\" etched in black."
icon = 'icons/obj/custom_items.dmi'
icon_state = "williamhackett"
materials = list()
/obj/item/weapon/reagent_containers/food/drinks/flask/thermos
name = "vintage thermos"
@@ -361,3 +325,10 @@
icon = 'icons/obj/custom_items.dmi'
icon_state = "lithiumflask"
volume = 50
/obj/item/weapon/reagent_containers/food/drinks/britcup
name = "cup"
desc = "A cup with the british flag emblazoned on it."
icon_state = "britcup"
volume = 30
@@ -7,18 +7,21 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle
amount_per_transfer_from_this = 10
volume = 100
throwforce = 15
item_state = "broken_beer" //Generic held-item sprite until unique ones are made.
var/const/duration = 13 //Directly relates to the 'weaken' duration. Lowered by armor (i.e. helmets)
var/isGlass = 1 //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash(mob/living/target as mob, mob/living/user as mob)
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash(mob/living/target, mob/living/user, ranged = 0)
//Creates a shattering noise and replaces the bottle with a broken_bottle
user.drop_item()
var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(user.loc)
user.put_in_active_hand(B)
if(prob(33))
new /obj/item/weapon/shard(target.loc) // Create a glass shard at the target's location!
var/new_location = get_turf(loc)
var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(new_location)
if(ranged)
B.loc = new_location
else
user.drop_item()
user.put_in_active_hand(B)
B.icon_state = src.icon_state
var/icon/I = new('icons/obj/drinks.dmi', src.icon_state)
@@ -26,13 +29,20 @@
I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
B.icon = I
playsound(src, "shatter", 70, 1)
user.put_in_active_hand(B)
src.transfer_fingerprints_to(B)
if(isGlass)
if(prob(33))
new/obj/item/weapon/shard(new_location)
playsound(src, "shatter", 70, 1)
else
B.name = "broken carton"
B.force = 0
B.throwforce = 0
B.desc = "A carton with the bottom half burst open. Might give you a papercut."
transfer_fingerprints_to(B)
qdel(src)
/obj/item/weapon/reagent_containers/food/drinks/bottle/attack(mob/living/target as mob, mob/living/user as mob)
/obj/item/weapon/reagent_containers/food/drinks/bottle/attack(mob/living/target, mob/living/user)
if(!target)
return
@@ -40,25 +50,24 @@
if(user.a_intent != I_HARM || !isGlass)
return ..()
force = 15 //Smashing bottles over someoen's head hurts.
var/obj/item/organ/external/affecting = user.zone_sel.selecting //Find what the player is aiming at
var/armor_block = 0 //Get the target's armour values for normal attack damage.
var/armor_block = 0 //Get the target's armor values for normal attack damage.
var/armor_duration = 0 //The more force the bottle has, the longer the duration.
//Calculating duration and calculating damage.
if(ishuman(target))
var/mob/living/carbon/human/H = target
var/headarmor = 0 // Target's head armour
armor_block = H.run_armor_check(affecting, "melee", armour_penetration = armour_penetration) // For normal attack damage
var/headarmor = 0 // Target's head armor
armor_block = H.run_armor_check(affecting, "melee","","",armour_penetration) // For normal attack damage
//If they have a hat/helmet and the user is targeting their head.
if(istype(H.head, /obj/item/clothing/head) && affecting == "head")
// If their head has an armour value, assign headarmor to it, else give it 0.
// If their head has an armor value, assign headarmor to it, else give it 0.
if(H.head.armor["melee"])
headarmor = H.head.armor["melee"]
else
@@ -70,221 +79,201 @@
armor_duration = (duration - headarmor) + force
else
//Only humans can have armour, right?
//Only humans can have armor, right?
armor_block = target.run_armor_check(affecting, "melee")
if(affecting == "head")
armor_duration = duration + force
armor_duration /= 10
//Apply the damage!
target.apply_damage(force, BRUTE, affecting, armor_block, sharp=0)
armor_block = min(90, armor_block)
target.apply_damage(force, BRUTE, affecting, armor_block)
// You are going to knock someone out for longer if they are not wearing a helmet.
if(affecting == "head" && istype(target, /mob/living/carbon/))
//Display an attack message.
for(var/mob/O in viewers(user, null))
if(target != user) O.show_message(text("\red <B>[target] has been hit over the head with a bottle of [src.name], by [user]!</B>"), 1)
else O.show_message(text("\red <B>[target] hit himself with a bottle of [src.name] on the head!</B>"), 1)
var/head_attack_message = ""
if(affecting == "head" && iscarbon(target))
head_attack_message = " on the head"
//Weaken the target for the duration that we calculated and divide it by 5.
if(armor_duration)
target.apply_effect(min(armor_duration, 10) , WEAKEN) // Never weaken more than a flash!
//Display an attack message.
if(target != user)
target.visible_message("<span class='danger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>", \
"<span class='userdanger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>")
else
//Default attack message and don't weaken the target.
for(var/mob/O in viewers(user, null))
if(target != user) O.show_message(text("\red <B>[target] has been attacked with a bottle of [src.name], by [user]!</B>"), 1)
else O.show_message(text("\red <B>[target] has attacked himself with a bottle of [src.name]!</B>"), 1)
user.visible_message("<span class='danger'>[target] hits \himself with a bottle of [src.name][head_attack_message]!</span>", \
"<span class='userdanger'>[target] hits \himself with a bottle of [src.name][head_attack_message]!</span>")
//Attack logs
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Has attacked [key_name(target)] with a bottle!</font>")
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been smashed with a bottle by [key_name(user)]</font>")
if(target.ckey)
msg_admin_attack("[key_name_admin(user)] attacked [key_name_admin(target)] with a bottle. (INTENT: [uppertext(user.a_intent)])")
if(!iscarbon(user))
target.LAssailant = null
else
target.LAssailant = user
add_logs(target, user, "attacked", src)
//The reagents in the bottle splash all over the target, thanks for the idea Nodrak
if(src.reagents)
for(var/mob/O in viewers(user, null))
O.show_message(text("\blue <B>The contents of the [src] splashes all over [target]!</B>"), 1)
src.reagents.reaction(target, TOUCH)
SplashReagents(target)
//Finally, smash the bottle. This kills (del) the bottle.
src.smash(target, user)
smash(target, user)
return
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/SplashReagents(mob/M)
if(reagents && reagents.total_volume)
M.visible_message("<span class='danger'>The contents of \the [src] splashes all over [M]!</span>")
reagents.reaction(M, TOUCH)
reagents.clear_reagents()
//Keeping this here for now, I'll ask if I should keep it here.
/obj/item/weapon/broken_bottle
name = "broken bottle"
name = "Broken Bottle"
desc = "A bottle with a sharp broken bottom."
icon = 'icons/obj/drinks.dmi'
icon_state = "broken_bottle"
force = 9.0
throwforce = 5.0
force = 9
throwforce = 5
throw_speed = 3
throw_range = 5
w_class = 1
item_state = "beer"
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("stabbed", "slashed", "attacked")
sharp = 1
edge = 0
var/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken")
sharp = 1
edge = 1
/obj/item/weapon/reagent_containers/food/drinks/bottle/gin
name = "\improper Griffeater Gin"
name = "Griffeater Gin"
desc = "A bottle of high quality gin, produced in the New London Space Station."
icon_state = "ginbottle"
New()
..()
reagents.add_reagent("gin", 100)
list_reagents = list("gin" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey
name = "\improper Uncle Git's Special Reserve"
name = "Uncle Git's Special Reserve"
desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES."
icon_state = "whiskeybottle"
New()
..()
reagents.add_reagent("whiskey", 100)
list_reagents = list("whiskey" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka
name = "\improper Tunguska Triple Distilled"
name = "Tunguska Triple Distilled"
desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide."
icon_state = "vodkabottle"
New()
..()
reagents.add_reagent("vodka", 100)
list_reagents = list("vodka" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla
name = "\improper Caccavo Guaranteed Quality Tequilla"
/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka
name = "Badminka Vodka"
desc = "The label's written in Cyrillic. All you can make out is the name and a word that looks vaguely like 'Vodka'."
icon_state = "badminka"
list_reagents = list("vodka" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila
name = "Caccavo Guaranteed Quality Tequila"
desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!"
icon_state = "tequillabottle"
New()
..()
reagents.add_reagent("tequilla", 100)
icon_state = "tequilabottle"
list_reagents = list("tequila" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing
name = "\improper Bottle of Nothing"
desc = "A bottle filled with nothing"
name = "Bottle of Nothing"
desc = "A bottle filled with nothing."
icon_state = "bottleofnothing"
New()
..()
reagents.add_reagent("nothing", 100)
list_reagents = list("nothing" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/patron
name = "\improper Wrapp Artiste Patron"
desc = "Silver laced tequilla, served in space night clubs across the galaxy."
name = "Wrapp Artiste Patron"
desc = "Silver laced tequila, served in space night clubs across the galaxy."
icon_state = "patronbottle"
New()
..()
reagents.add_reagent("patron", 100)
list_reagents = list("patron" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/rum
name = "\improper Captain Pete's Cuban Spiced Rum"
name = "Captain Pete's Cuban Spiced Rum"
desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle."
icon_state = "rumbottle"
New()
..()
reagents.add_reagent("rum", 100)
list_reagents = list("rum" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater
name = "\improper Flask of Holy Water"
name = "Flask of Holy Water"
desc = "A flask of the chaplain's holy water."
icon_state = "holyflask"
New()
..()
reagents.add_reagent("holywater", 100)
list_reagents = list("holywater" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater/hell
desc = "A flask of holy water...it's been sitting in the Necropolis a while though."
list_reagents = list("hell_water" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth
name = "\improper Goldeneye Vermouth"
name = "Goldeneye Vermouth"
desc = "Sweet, sweet dryness~"
icon_state = "vermouthbottle"
New()
..()
reagents.add_reagent("vermouth", 100)
list_reagents = list("vermouth" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua
name = "\improper Robert Robust's Coffee Liqueur"
desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK"
name = "Robert Robust's Coffee Liqueur"
desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK."
icon_state = "kahluabottle"
New()
..()
reagents.add_reagent("kahlua", 100)
list_reagents = list("kahlua" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager
name = "\improper College Girl Goldschlager"
name = "College Girl Goldschlager"
desc = "Because they are the only ones who will drink 100 proof cinnamon schnapps."
icon_state = "goldschlagerbottle"
New()
..()
reagents.add_reagent("goldschlager", 100)
list_reagents = list("goldschlager" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac
name = "\improper Chateau De Baton Premium Cognac"
name = "Chateau De Baton Premium Cognac"
desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time."
icon_state = "cognacbottle"
New()
..()
reagents.add_reagent("cognac", 100)
list_reagents = list("cognac" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/wine
name = "\improper Doublebeard Bearded Special Wine"
name = "Doublebeard Bearded Special Wine"
desc = "A faint aura of unease and asspainery surrounds the bottle."
icon_state = "winebottle"
New()
..()
reagents.add_reagent("wine", 100)
list_reagents = list("wine" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe
name = "\improper Jailbreaker Verte"
desc = "One sip of this and you just know you're gonna have a good time."
name = "Extra-Strong Absinthe"
desc = "An strong alcoholic drink brewed and distributed by"
icon_state = "absinthebottle"
New()
..()
reagents.add_reagent("absinthe", 100)
list_reagents = list("absinthe" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/premium
name = "Gwyn's Premium Absinthe"
desc = "A potent alcoholic beverage, almost makes you forget the ash in your lungs."
icon_state = "absinthepremium"
/obj/item/weapon/reagent_containers/food/drinks/bottle/hcider
name = "Jian Hard Cider"
desc = "Apple juice for adults."
icon_state = "hcider"
volume = 50
list_reagents = list("suicider" = 50)
//////////////////////////JUICES AND STUFF ///////////////////////
/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice
name = "orange juice"
name = "Orange Juice"
desc = "Full of vitamins and deliciousness!"
icon_state = "orangejuice"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("orangejuice", 100)
list_reagents = list("orangejuice" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/cream
name = "milk cream"
name = "Milk Cream"
desc = "It's cream. Made from milk. What else did you think you'd find in there?"
icon_state = "cream"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("cream", 100)
list_reagents = list("cream" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice
name = "tomato juice"
name = "Tomato Juice"
desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness."
icon_state = "tomatojuice"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("tomatojuice", 100)
list_reagents = list("tomatojuice" = 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice
name = "lime juice"
name = "Lime Juice"
desc = "Sweet-sour goodness."
icon_state = "limejuice"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("limejuice", 100)
list_reagents = list("limejuice" = 100)
File diff suppressed because it is too large Load Diff
@@ -1,29 +0,0 @@
///jar
/obj/item/weapon/reagent_containers/food/drinks/jar
name = "empty jar"
desc = "A jar. You're not sure what it's supposed to hold."
icon_state = "jar"
item_state = "beaker"
New()
..()
reagents.add_reagent("slimejelly", 50)
on_reagent_change()
if(reagents.reagent_list.len > 0)
switch(reagents.get_master_reagent_id())
if("slimejelly")
icon_state = "jar_slime"
name = "slime jam"
desc = "A jar of slime jam. Delicious!"
else
icon_state ="jar_what"
name = "jar of something"
desc = "You can't really tell what this is."
else
icon_state = "jar"
name = "empty jar"
desc = "A jar. You're not sure what it's supposed to hold."
return
@@ -11,10 +11,15 @@
if(reagents.total_volume)
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]1")
switch(reagents.total_volume)
if(0 to 4) filling.icon_state = "[icon_state]1"
if(5 to 11) filling.icon_state = "[icon_state]5"
if(12 to INFINITY) filling.icon_state = "[icon_state]12"
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
if(0 to 25)
filling.icon_state = "[icon_state]1"
if(26 to 79)
filling.icon_state = "[icon_state]5"
if(80 to INFINITY)
filling.icon_state = "[icon_state]12"
filling.icon += mix_color_from_reagents(reagents.reagent_list)
overlays += filling
@@ -132,12 +132,6 @@
to_chat(user, "<span class='warning'>You cannot fill [target] while it is sealed.</span>")
return
/*else if(istype(target, /obj/machinery/bunsen_burner))
return
else if(istype(target, /obj/machinery/radiocarbon_spectrometer))
return*/
else if(istype(target, /obj/effect/decal/cleanable)) //stops splashing while scooping up fluids
return
@@ -181,22 +175,11 @@
item_state = "beaker"
materials = list(MAT_GLASS=500)
var/obj/item/device/assembly_holder/assembly = null
var/can_assembly = 1
/obj/item/weapon/reagent_containers/glass/beaker/on_reagent_change()
update_icon()
/obj/item/weapon/reagent_containers/glass/beaker/pickup(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/glass/beaker/dropped(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/glass/beaker/attack_hand()
..()
update_icon()
/obj/item/weapon/reagent_containers/glass/beaker/update_icon()
overlays.Cut()
@@ -233,7 +216,7 @@
set name = "Remove Assembly"
set category = "Object"
set src in usr
if(usr.stat || !usr.canmove || usr.restrained())
if(usr.incapacitated())
return
if(assembly)
to_chat(usr, "<span class='notice'>You detach [assembly] from \the [src]</span>")
@@ -249,7 +232,7 @@
reagents.handle_reactions()
/obj/item/weapon/reagent_containers/glass/beaker/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/device/assembly_holder))
if(istype(W, /obj/item/device/assembly_holder) && can_assembly)
if(assembly)
to_chat(usr, "<span class='warning'>The [src] already has an assembly.</span>")
return ..()
@@ -299,6 +282,17 @@
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25)
flags = OPENCONTAINER
can_assembly = 0
/obj/item/weapon/reagent_containers/glass/beaker/drugs
name = "baggie"
desc = "A baggie. Can hold up to 10 units."
icon_state = "baggie"
amount_per_transfer_from_this = 2
possible_transfer_amounts = 2
volume = 10
flags = OPENCONTAINER
can_assembly = 0
/obj/item/weapon/reagent_containers/glass/beaker/noreact
name = "cryostasis beaker"
@@ -319,15 +313,21 @@
possible_transfer_amounts = list(5,10,15,25,30,50,100,300)
flags = OPENCONTAINER
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
list_reagents = list("cryoxadone" = 30)
/obj/item/weapon/reagent_containers/glass/beaker/sulphuric
list_reagents = list("sacid" = 50)
/obj/item/weapon/reagent_containers/glass/beaker/slime
list_reagents = list("slimejelly" = 50)
/obj/item/weapon/reagent_containers/glass/beaker/drugs/meth
list_reagents = list("methamphetamine" = 10)
/obj/item/weapon/reagent_containers/glass/bucket
desc = "It's a bucket."
name = "bucket"
@@ -349,14 +349,4 @@
user.unEquip(src)
qdel(src)
else
..()
/obj/item/weapon/reagent_containers/glass/beaker/vial
name = "vial"
desc = "Small glass vial. Looks fragile."
icon_state = "vial"
materials = list(MAT_GLASS=500)
volume = 15
amount_per_transfer_from_this = 5
possible_transfer_amounts = list(1,5,15)
flags = OPENCONTAINER
..()