diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index e7aa5927287..e9f33ea06ca 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -8,6 +8,9 @@
var/possible_transfer_amounts = list(5,10,15,25,30)
var/volume = 30
var/list/banned_reagents = list() //List of reagent IDs we reject.
+ var/list/list_reagents = null
+ var/spawned_disease = null
+ var/disease_amount = 20
/obj/item/weapon/reagent_containers/verb/set_APTFT() //set amount_per_transfer_from_this
set name = "Set transfer amount"
@@ -24,6 +27,12 @@
if (!possible_transfer_amounts)
src.verbs -= /obj/item/weapon/reagent_containers/verb/set_APTFT
create_reagents(volume)
+ if(spawned_disease)
+ var/datum/disease/F = new spawned_disease(0)
+ var/list/data = list("viruses"= list(F))
+ reagents.add_reagent("blood", disease_amount, data)
+ if(list_reagents)
+ reagents.add_reagent_list(list_reagents)
/obj/item/weapon/reagent_containers/attack_self(mob/user as mob)
return
diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm
similarity index 81%
rename from code/modules/reagents/reagent_containers/glass/bottle.dm
rename to code/modules/reagents/reagent_containers/bottle.dm
index de269f2c42e..cd43f507f55 100644
--- a/code/modules/reagents/reagent_containers/glass/bottle.dm
+++ b/code/modules/reagents/reagent_containers/bottle.dm
@@ -1,262 +1,240 @@
-
-//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_state = null
- item_state = "atoxinbottle"
- possible_transfer_amounts = list(5,10,15,25,30)
- volume = 30
- var/spawned_reagent = null
- var/spawned_amount = 30
- var/spawned_disease = null
-
-/obj/item/weapon/reagent_containers/glass/bottle/New()
- ..()
- if(!icon_state)
- icon_state = "bottle[rand(1,20)]"
- if(spawned_disease)
- var/datum/disease/F = new spawned_disease(0)
- var/list/data = list("viruses"= list(F))
- reagents.add_reagent("blood", 20, data)
- if(spawned_reagent && spawned_amount)
- reagents.add_reagent("[spawned_reagent]", spawned_amount)
-
-
-/obj/item/weapon/reagent_containers/glass/bottle/epinephrine
- name = "epinephrine bottle"
- desc = "A small bottle. Contains epinephrine - used to stabilize patients."
- icon_state = "bottle16"
- spawned_reagent = "epinephrine"
-
-/obj/item/weapon/reagent_containers/glass/bottle/toxin
- name = "toxin bottle"
- desc = "A small bottle of toxins. Do not drink, it is poisonous."
- icon_state = "bottle12"
- spawned_reagent = "toxin"
-
-/obj/item/weapon/reagent_containers/glass/bottle/cyanide
- name = "cyanide bottle"
- desc = "A small bottle of cyanide. Bitter almonds?"
- icon_state = "bottle12"
- spawned_reagent = "cyanide"
-
-/obj/item/weapon/reagent_containers/glass/bottle/stoxin
- name = "sleep-toxin bottle"
- desc = "A small bottle of sleep toxins. Just the fumes make you sleepy."
- icon_state = "bottle20"
- spawned_reagent = "stoxin"
-
-/obj/item/weapon/reagent_containers/glass/bottle/morphine
- name = "morphine bottle"
- desc = "A small bottle of morphine."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "bottle20"
- spawned_reagent = "morphine"
-
-/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate
- name = "Chloral Hydrate Bottle"
- desc = "A small bottle of Choral Hydrate. Mickey's Favorite!"
- icon_state = "bottle20"
- spawned_reagent = "chloralhydrate"
- spawned_amount = 15
-
-/obj/item/weapon/reagent_containers/glass/bottle/charcoal
- name = "charcoal bottle"
- desc = "A small bottle of charcoal."
- icon_state = "bottle17"
- spawned_reagent = "salglu_solution"
-
-/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_state = "bottle20"
- spawned_reagent = "mutagen"
-
-/obj/item/weapon/reagent_containers/glass/bottle/plasma
- name = "liquid plasma bottle"
- desc = "A small bottle of liquid plasma. Extremely toxic and reacts with micro-organisms inside blood."
- icon_state = "bottle8"
- spawned_reagent = "plasma"
-
-/obj/item/weapon/reagent_containers/glass/bottle/synaptizine
- name = "synaptizine bottle"
- desc = "A small bottle of synaptizine."
- icon_state = "bottle20"
- spawned_reagent = "synaptizine"
-
-/obj/item/weapon/reagent_containers/glass/bottle/ammonia
- name = "ammonia bottle"
- desc = "A small bottle of ammonia."
- icon_state = "bottle20"
- spawned_reagent = "ammonia"
-
-/obj/item/weapon/reagent_containers/glass/bottle/diethylamine
- name = "diethylamine bottle"
- desc = "A small bottle of diethylamine."
- icon_state = "bottle17"
- spawned_reagent = "diethylamine"
-
-/obj/item/weapon/reagent_containers/glass/bottle/pacid
- name = "Polytrinic Acid Bottle"
- desc = "A small bottle. Contains a small amount of Polytrinic Acid"
- icon_state = "bottle17"
- spawned_reagent = "pacid"
-
-/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"
- spawned_reagent = "adminordrazine"
-
-/obj/item/weapon/reagent_containers/glass/bottle/capsaicin
- name = "Capsaicin Bottle"
- desc = "A small bottle. Contains hot sauce."
- icon_state = "bottle3"
- spawned_reagent = "capsaicin"
-
-/obj/item/weapon/reagent_containers/glass/bottle/frostoil
- name = "Frost Oil Bottle"
- desc = "A small bottle. Contains cold sauce."
- icon_state = "bottle17"
- spawned_reagent = "frostoil"
-
-/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/traitor
- name = "syndicate bottle"
- desc = "A small bottle. Contains a random nasty chemical."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "bottle16"
-
-/obj/item/weapon/reagent_containers/glass/bottle/traitor/New()
- ..()
- var/new_reagent = pick("polonium", "histamine", "formaldehyde", "venom", "neurotoxin2", "cyanide")
- reagents.add_reagent(new_reagent, 50)
-
-/obj/item/weapon/reagent_containers/glass/bottle/polonium
- name = "polonium bottle"
- desc = "A small bottle. Contains Polonium."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "bottle16"
- spawned_reagent = "polonium"
-
-/obj/item/weapon/reagent_containers/glass/bottle/venom
- name = "venom bottle"
- desc = "A small bottle. Contains Venom."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "bottle16"
- spawned_reagent = "venom"
-
-/obj/item/weapon/reagent_containers/glass/bottle/neurotoxin2
- name = "neurotoxin bottle"
- desc = "A small bottle. Contains Neurotoxin."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "bottle16"
- spawned_reagent = "neurotoxin2"
-
-/obj/item/weapon/reagent_containers/glass/bottle/formaldehyde
- name = "formaldehyde bottle"
- desc = "A small bottle. Contains Formaldehyde."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "bottle16"
- spawned_reagent = "formaldehyde"
-
-/obj/item/weapon/reagent_containers/glass/bottle/cyanide
- name = "cyanide bottle"
- desc = "A small bottle. Contains Cyanide."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "bottle16"
- spawned_reagent = "cyanide"
-
-/obj/item/weapon/reagent_containers/glass/bottle/histamine
- name = "histamine bottle"
- desc = "A small bottle. Contains Histamine."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "bottle16"
- spawned_reagent = "histamine"
-
-/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
+
+//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_state = null
+ item_state = "atoxinbottle"
+ possible_transfer_amounts = list(5,10,15,25,30)
+ 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/epinephrine
+ name = "epinephrine bottle"
+ desc = "A small bottle. Contains epinephrine - used to stabilize patients."
+ icon_state = "bottle16"
+ list_reagents = list("epinephrine" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/toxin
+ name = "toxin bottle"
+ desc = "A small bottle of toxins. Do not drink, it is poisonous."
+ 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_state = "bottle12"
+ list_reagents = list("cyanide" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/stoxin
+ name = "sleep-toxin bottle"
+ desc = "A small bottle of sleep toxins. Just the fumes make you sleepy."
+ icon_state = "bottle20"
+ list_reagents = list("stoxin" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/morphine
+ name = "morphine bottle"
+ desc = "A small bottle of morphine."
+ icon = 'icons/obj/chemical.dmi'
+ icon_state = "bottle20"
+ list_reagents = list("morphine" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate
+ name = "Chloral Hydrate Bottle"
+ desc = "A small bottle of Choral Hydrate. Mickey's Favorite!"
+ icon_state = "bottle20"
+ list_reagents = list("chloralhydrate" = 15)
+
+/obj/item/weapon/reagent_containers/glass/bottle/charcoal
+ name = "charcoal bottle"
+ desc = "A small bottle of charcoal."
+ icon_state = "bottle17"
+ list_reagents = list("salglu_solution" = 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_state = "bottle20"
+ list_reagents = list("mutagen" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/plasma
+ name = "liquid plasma bottle"
+ desc = "A small bottle of liquid plasma. Extremely toxic and reacts with micro-organisms inside blood."
+ icon_state = "bottle8"
+ list_reagents = list("plasma" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/synaptizine
+ name = "synaptizine bottle"
+ desc = "A small bottle of synaptizine."
+ icon_state = "bottle20"
+ list_reagents = list("synaptizine" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/ammonia
+ name = "ammonia bottle"
+ desc = "A small bottle of ammonia."
+ icon_state = "bottle20"
+ list_reagents = list("ammonia" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/diethylamine
+ name = "diethylamine bottle"
+ desc = "A small bottle of diethylamine."
+ icon_state = "bottle17"
+ list_reagents = list("diethylamine" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/pacid
+ name = "Polytrinic Acid Bottle"
+ desc = "A small bottle. Contains a small amount of Polytrinic Acid"
+ icon_state = "bottle17"
+ list_reagents = list("pacid" = 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_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_state = "bottle17"
+ list_reagents = list("frostoil" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/traitor
+ name = "syndicate bottle"
+ desc = "A small bottle. Contains a random nasty chemical."
+ icon = 'icons/obj/chemical.dmi'
+ icon_state = "bottle16"
+ var/new_reagent = null
+
+/obj/item/weapon/reagent_containers/glass/bottle/traitor/New()
+ new_reagent = pick("polonium", "histamine", "formaldehyde", "venom", "neurotoxin2", "cyanide")
+ list_reagents = list("[new_reagent]" = 30)
+ ..()
+
+/obj/item/weapon/reagent_containers/glass/bottle/polonium
+ name = "polonium bottle"
+ desc = "A small bottle. Contains Polonium."
+ icon_state = "bottle16"
+ list_reagents = list("polonium" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/venom
+ name = "venom bottle"
+ desc = "A small bottle. Contains Venom."
+ icon_state = "bottle16"
+ list_reagents = list("venom" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/neurotoxin2
+ name = "neurotoxin bottle"
+ desc = "A small bottle. Contains Neurotoxin."
+ icon_state = "bottle16"
+ list_reagents = list("neurotoxin2" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/formaldehyde
+ name = "formaldehyde bottle"
+ desc = "A small bottle. Contains Formaldehyde."
+ icon_state = "bottle16"
+ list_reagents = list("formaldehye" = 30)
+
+/obj/item/weapon/reagent_containers/glass/bottle/histamine
+ name = "histamine bottle"
+ desc = "A small bottle. Contains Histamine."
+ icon_state = "bottle16"
+ list_reagents = list("histamine" = 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
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 174770a6af0..4ee9e4f7e6b 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -1,7 +1,3 @@
-
-////////////////////////////////////////////////////////////////////////////////
-/// (Mixing)Glass.
-////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/glass
name = "glass"
amount_per_transfer_from_this = 10
@@ -102,6 +98,10 @@
m_amt = 0
g_amt = 500
+/obj/item/weapon/reagent_containers/glass/beaker/New()
+ ..()
+ update_icon()
+
/obj/item/weapon/reagent_containers/glass/beaker/on_reagent_change()
update_icon()
@@ -166,22 +166,13 @@
flags = OPENCONTAINER
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
- New()
- ..()
- reagents.add_reagent("cryoxadone", 30)
- update_icon()
+ list_reagents = list("cryoxadone" = 30)
/obj/item/weapon/reagent_containers/glass/beaker/sulphuric
- New()
- ..()
- reagents.add_reagent("sacid", 50)
- update_icon()
+ list_reagents = list("sacid" = 50)
/obj/item/weapon/reagent_containers/glass/beaker/slime
- New()
- ..()
- reagents.add_reagent("slimejelly", 50)
- update_icon()
+ list_reagents = list("slimejelly" = 50)
/obj/item/weapon/reagent_containers/glass/bucket
name = "bucket"
@@ -204,52 +195,3 @@
user.put_in_hands(new /obj/item/weapon/bucket_sensor)
user.unEquip(src)
qdel(src)
-
-/*
-/obj/item/weapon/reagent_containers/glass/blender_jug
- name = "Blender Jug"
- desc = "A blender jug, part of a blender."
- icon = 'icons/obj/kitchen.dmi'
- icon_state = "blender_jug_e"
- volume = 100
-
-/obj/item/weapon/reagent_containers/glass/blender_jug/on_reagent_change()
- switch(src.reagents.total_volume)
- if(0)
- icon_state = "blender_jug_e"
- if(1 to 75)
- icon_state = "blender_jug_h"
- if(76 to 100)
- icon_state = "blender_jug_f"
-
-/obj/item/weapon/reagent_containers/glass/canister //not used apparantly
- desc = "It's a canister. Mainly used for transporting fuel."
- name = "canister"
- icon = 'icons/obj/tank.dmi'
- icon_state = "canister"
- item_state = "canister"
- m_amt = 300
- g_amt = 0
- w_class = 4.0
-
- amount_per_transfer_from_this = 20
- possible_transfer_amounts = list(10,20,30,60)
- volume = 120
-
-/obj/item/weapon/reagent_containers/glass/dispenser
- name = "reagent glass"
- desc = "A reagent glass."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "beaker0"
- amount_per_transfer_from_this = 10
- flags = OPENCONTAINER
-
-/obj/item/weapon/reagent_containers/glass/dispenser/surfactant
- name = "reagent glass (surfactant)"
- icon_state = "liquid"
-
- New()
- ..()
- reagents.add_reagent("fluorosurfactant", 20)
-
-*/
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 5137bd9ebb4..bece546df2e 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -1,5 +1,3 @@
-//Hyposprays
-
/obj/item/weapon/reagent_containers/hypospray
name = "hypospray"
desc = "The DeForest Medical Corporation hypospray is a sterile, air-needle autoinjector for rapid administration of drugs to patients."
@@ -40,9 +38,8 @@
add_logs(user, M, "injected", object="[src.name]", addition="([contained])")
-/obj/item/weapon/reagent_containers/hypospray/CMO/New()
- ..()
- reagents.add_reagent("omnizine", 30)
+/obj/item/weapon/reagent_containers/hypospray/CMO
+ list_reagents = list("omnizine" = 30)
/obj/item/weapon/reagent_containers/hypospray/combat
name = "combat stimulant injector"
@@ -51,20 +48,12 @@
icon_state = "combat_hypo"
volume = 60
ignore_flags = 1 // So they can heal their comrades.
-
-/obj/item/weapon/reagent_containers/hypospray/combat/New()
- ..()
- reagents.add_reagent("epinephrine", 15)
- reagents.add_reagent("salglu_solution", 15)
+ list_reagents = list("epinephrine" = 15, "salglu_solution" = 15)
obj/item/weapon/reagent_containers/hypospray/combat/nanites
desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with expensive medical nanites for rapid healing."
volume = 100
-
-/obj/item/weapon/reagent_containers/hypospray/combat/nanites/New()
- ..()
- reagents.remove_reagent("synaptizine", 30)
- reagents.add_reagent("nanites", 100)
+ list_reagents = list("nanites" = 80, "synaptizine" = 20)
//MediPens
@@ -77,16 +66,12 @@ obj/item/weapon/reagent_containers/hypospray/combat/nanites
volume = 10
ignore_flags = 1 //so you can medipen through hardsuits
flags = null
- var/starting_reagent = "epinephrine"
- var/starting_amount = 10
/obj/item/weapon/reagent_containers/hypospray/medipen/New()
..()
- reagents.add_reagent(starting_reagent, starting_amount)
update_icon()
return
-
/obj/item/weapon/reagent_containers/hypospray/medipen/attack(mob/M as mob, mob/user as mob)
..()
update_icon()
@@ -105,35 +90,19 @@ obj/item/weapon/reagent_containers/hypospray/combat/nanites
else
usr << "It is spent."
-
/obj/item/weapon/reagent_containers/hypospray/medipen/leporazine //basilisks
name = "leporazine medipen"
desc = "A rapid way to regulate your body's temperature in the event of a hardsuit malfunction at the cost of some shortness of breath."
icon_state = "lepopen"
- starting_reagent = "leporazine"
- starting_amount = 9
-
-/obj/item/weapon/reagent_containers/hypospray/medipen/leporazine/New()
- ..()
- reagents.add_reagent("lexorin", 1)
- update_icon()
- return
+ list_reagents = list("leporazine" = 9, "lexorin" = 1)
/obj/item/weapon/reagent_containers/hypospray/medipen/stimpack //goliath kiting
name = "stimpack medipen"
desc = "A rapid way to stimulate your body's adrenaline, allowing for freer movement in restrictive armor at the cost of some shortness of breath."
icon_state = "stimpen"
- starting_reagent = "morphine"
- starting_amount = 9
-
-/obj/item/weapon/reagent_containers/hypospray/medipen/stimpack/New()
- ..()
- reagents.add_reagent("lexorin", 1)
- update_icon()
- return
+ list_reagents = list("morphine" = 9, "lexorin" = 1)
/obj/item/weapon/reagent_containers/hypospray/medipen/morphine
name = "morphine medipen"
desc = "A rapid way to get you out of a tight situation and fast! You'll feel rather drowsy, though."
- icon_state = "medipen"
- starting_reagent = "morphine"
+ list_reagents = list("morphine" = 10)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm
index 08ef1efcb37..80d825eb1f1 100644
--- a/code/modules/reagents/reagent_containers/patch.dm
+++ b/code/modules/reagents/reagent_containers/patch.dm
@@ -24,15 +24,9 @@
/obj/item/weapon/reagent_containers/pill/patch/styptic
name = "styptic powder patch"
desc = "Helps with brute injuries."
-
-/obj/item/weapon/reagent_containers/pill/patch/styptic/New()
- ..()
- reagents.add_reagent("styptic_powder", 25)
+ list_reagents = list("stpytic_powder" = 25)
/obj/item/weapon/reagent_containers/pill/patch/silver_sulf
name = "silver sulfadiazine patch"
desc = "Helps with burn injuries."
-
-/obj/item/weapon/reagent_containers/pill/patch/silver_sulf/New()
- ..()
- reagents.add_reagent("silver_sulfadiazine", 25)
\ No newline at end of file
+ list_reagents = list("silver_sulfadiazine" = 25)
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 7ed76b9c01a..9bff7d70d64 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -1,6 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-/// Pills.
-////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/pill
name = "pill"
desc = "A tablet or capsule."
@@ -68,86 +65,50 @@
spawn(5)
qdel(src)
-
-////////////////////////////////////////////////////////////////////////////////
-/// Pills. END
-////////////////////////////////////////////////////////////////////////////////
-
-//Pills
-
-
/obj/item/weapon/reagent_containers/pill/tox
name = "toxins pill"
desc = "Highly toxic."
icon_state = "pill5"
-
-/obj/item/weapon/reagent_containers/pill/tox/New()
- ..()
- reagents.add_reagent("toxin", 50)
-
+ list_reagents = list("toxin" = 50)
/obj/item/weapon/reagent_containers/pill/cyanide
name = "cyanide pill"
desc = "Don't swallow this."
icon_state = "pill5"
-
-/obj/item/weapon/reagent_containers/pill/cyanide/New()
- ..()
- reagents.add_reagent("cyanide", 50)
-
+ list_reagents = list("cyanide" = 50)
/obj/item/weapon/reagent_containers/pill/adminordrazine
name = "adminordrazine pill"
desc = "It's magic. We don't have to explain it."
icon_state = "pill16"
-
-/obj/item/weapon/reagent_containers/pill/adminordrazine/New()
- ..()
- reagents.add_reagent("adminordrazine", 50)
-
+ list_reagents = list("adminordrazine" = 50)
/obj/item/weapon/reagent_containers/pill/stox
name = "sleeping pill"
desc = "Commonly used to treat insomnia."
icon_state = "pill8"
-/obj/item/weapon/reagent_containers/pill/stox/New()
- ..()
- reagents.add_reagent("stoxin", 30)
+ list_reagents = list("stoxin" = 50)
/obj/item/weapon/reagent_containers/pill/stimulant
name = "stimulant pill"
desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!"
icon_state = "pill19"
-
-/obj/item/weapon/reagent_containers/pill/stimulant/New()
- ..()
- reagents.add_reagent("morphine", 10)
- reagents.add_reagent("ethylredoxrazine", 10)
- reagents.add_reagent("coffee", 30)
+ list_reagents = list("morphone" = 10, "ethylredoxrazine" = 10, "coffee" = 30)
/obj/item/weapon/reagent_containers/pill/salbutamol
name = "salbutamol pill"
desc = "Used to treat oxygen deprivation."
icon_state = "pill18"
-
-/obj/item/weapon/reagent_containers/pill/salbutamol/New()
- ..()
- reagents.add_reagent("salbutamol", 30)
+ list_reagents = list("salbutamol" = 30)
/obj/item/weapon/reagent_containers/pill/charcoal
name = "charcoal pill"
desc = "Neutralizes many common toxins."
icon_state = "pill17"
-
-/obj/item/weapon/reagent_containers/pill/charcoal/New()
- ..()
- reagents.add_reagent("charcoal", 50)
+ list_reagents = list("charcoal" = 50)
/obj/item/weapon/reagent_containers/pill/epinephrine
name = "epinephrine pill"
desc = "Used to stabilize patients."
icon_state = "pill17"
-
-/obj/item/weapon/reagent_containers/pill/epinephrine/New()
- ..()
- reagents.add_reagent("epinephrine", 50)
\ No newline at end of file
+ list_reagents = list("epinephrine" = 50)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index 421f4c72ffe..df482f7a6bd 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -100,11 +100,7 @@
/obj/item/weapon/reagent_containers/spray/cleaner
name = "space cleaner"
desc = "BLAM!-brand non-foaming space cleaner!"
-
-
-/obj/item/weapon/reagent_containers/spray/cleaner/New()
- ..()
- reagents.add_reagent("cleaner", 250)
+ list_reagents = list("cleaner" = 250)
//pepperspray
/obj/item/weapon/reagent_containers/spray/pepper
@@ -116,11 +112,7 @@
volume = 40
spray_maxrange = 4
amount_per_transfer_from_this = 5
-
-
-/obj/item/weapon/reagent_containers/spray/pepper/New()
- ..()
- reagents.add_reagent("condensedcapsaicin", 40)
+ list_reagents = list("condensedcapsaicin" = 40)
//water flower
/obj/item/weapon/reagent_containers/spray/waterflower
@@ -131,10 +123,7 @@
item_state = "sunflower"
amount_per_transfer_from_this = 1
volume = 10
-
-/obj/item/weapon/reagent_containers/spray/waterflower/New()
- ..()
- reagents.add_reagent("water", 10)
+ list_reagents = list("water" = 10)
/obj/item/weapon/reagent_containers/spray/waterflower/attack_self(var/mob/user) //Don't allow changing how much the flower sprays
return
@@ -199,12 +188,7 @@
user << "You adjust the output switch. You'll now use [amount_per_transfer_from_this] units per spray."
/obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror/New()
- ..()
- reagents.add_reagent("spore", 150)
- reagents.add_reagent("cryptobiolin", 150)
- reagents.add_reagent("mutagen", 150)
- reagents.add_reagent("chloralhydrate", 150)
-
+ list_reagents = list("spore" = 150, "cryptobiolin" = 150, "mutagen" = 150, "chloralhydrate" = 150)
// Plant-B-Gone
/obj/item/weapon/reagent_containers/spray/plantbgone // -- Skie
@@ -214,8 +198,4 @@
icon_state = "plantbgone"
item_state = "plantbgone"
volume = 100
-
-
-/obj/item/weapon/reagent_containers/spray/plantbgone/New()
- ..()
- reagents.add_reagent("plantbgone", 100)
+ list_reagents = list("plantbgone" = 30)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 55809262260..8aee1c0a99e 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -1,6 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-/// Syringes.
-////////////////////////////////////////////////////////////////////////////////
#define SYRINGE_DRAW 0
#define SYRINGE_INJECT 1
@@ -18,6 +15,12 @@
g_amt = 20
m_amt = 10
+/obj/item/weapon/reagent_containers/syringe/New()
+ ..()
+ if(list_reagents) //syringe starts in inject mode if its already got something inside
+ mode = SYRINGE_INJECT
+ update_icon()
+
/obj/item/weapon/reagent_containers/syringe/on_reagent_change()
update_icon()
@@ -220,6 +223,20 @@
filling.color = mix_color_from_reagents(reagents.reagent_list)
overlays += filling
+/obj/item/weapon/reagent_containers/syringe/epinephrine
+ name = "syringe (epinephrine)"
+ desc = "Contains epinephrine - used to stabilize patients."
+ list_reagents = list("epinephrine" = 15)
+
+/obj/item/weapon/reagent_containers/syringe/charcoal
+ name = "syringe (charcoal)"
+ desc = "Contains charcoal."
+ list_reagents = list("charcoal" = 15)
+
+/obj/item/weapon/reagent_containers/syringe/antiviral
+ name = "syringe (spaceacillin)"
+ desc = "Contains antiviral agents."
+ list_reagents = list("spaceacillin" = 15)
/obj/item/weapon/reagent_containers/syringe/lethal
name = "lethal injection syringe"
@@ -227,73 +244,5 @@
amount_per_transfer_from_this = 50
volume = 50
-////////////////////////////////////////////////////////////////////////////////
-/// Syringes. END
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-/obj/item/weapon/reagent_containers/syringe/epinephrine
- name = "syringe (epinephrine)"
- desc = "Contains epinephrine - used to stabilize patients."
- New()
- ..()
- reagents.add_reagent("epinephrine", 15)
- mode = SYRINGE_INJECT
- update_icon()
-
-/obj/item/weapon/reagent_containers/syringe/charcoal
- name = "syringe (charcoal)"
- desc = "Contains charcoal."
- New()
- ..()
- reagents.add_reagent("charcoal", 15)
- mode = SYRINGE_INJECT
- update_icon()
-
-/obj/item/weapon/reagent_containers/syringe/antiviral
- name = "syringe (spaceacillin)"
- desc = "Contains antiviral agents."
- New()
- ..()
- reagents.add_reagent("spaceacillin", 15)
- mode = SYRINGE_INJECT
- update_icon()
-
/obj/item/weapon/reagent_containers/syringe/lethal/choral
- New()
- ..()
- reagents.add_reagent("chloralhydrate", 50)
- mode = SYRINGE_INJECT
- update_icon()
-
-
-//Robot syringes
-//Not special in any way, code wise. They don't have added variables or procs.
-/obj/item/weapon/reagent_containers/syringe/robot/charcoal
- name = "syringe (charcoal)"
- desc = "Contains charcoal."
- New()
- ..()
- reagents.add_reagent("charcoal", 15)
- mode = SYRINGE_INJECT
- update_icon()
-
-/obj/item/weapon/reagent_containers/syringe/robot/epinephrine
- name = "syringe (epinephrine)"
- desc = "Contains epinephrine - used to stabilize patients."
- New()
- ..()
- reagents.add_reagent("epinephrine", 15)
- mode = SYRINGE_INJECT
- update_icon()
-
-/obj/item/weapon/reagent_containers/syringe/robot/mixed
- name = "syringe (mixed)"
- desc = "Contains epinephrine & charcoal solution."
- New()
- ..()
- reagents.add_reagent("epinephrine", 7)
- reagents.add_reagent("charcoal", 8)
- mode = SYRINGE_INJECT
- update_icon()
+ list_reagents = list("chloralhydrate" = 50)
diff --git a/tgstation.dme b/tgstation.dme
index e0d96f0935e..0d147d3ca6a 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1294,6 +1294,7 @@
#include "code\modules\reagents\Chemistry-Reagents\Consumable-Reagents\Drink-Reagents\Alcohols.dm"
#include "code\modules\reagents\Chemistry-Reagents\Consumable-Reagents\Drink-Reagents\Drinks.dm"
#include "code\modules\reagents\reagent_containers\borghydro.dm"
+#include "code\modules\reagents\reagent_containers\bottle.dm"
#include "code\modules\reagents\reagent_containers\dropper.dm"
#include "code\modules\reagents\reagent_containers\glass.dm"
#include "code\modules\reagents\reagent_containers\hypospray.dm"
@@ -1301,7 +1302,6 @@
#include "code\modules\reagents\reagent_containers\pill.dm"
#include "code\modules\reagents\reagent_containers\spray.dm"
#include "code\modules\reagents\reagent_containers\syringes.dm"
-#include "code\modules\reagents\reagent_containers\glass\bottle.dm"
#include "code\modules\recycling\conveyor2.dm"
#include "code\modules\recycling\disposal-construction.dm"
#include "code\modules\recycling\disposal.dm"