diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index 618b74fffb..b31b5c600d 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -19,18 +19,38 @@
var/container_HP = 2
var/cached_icon
+/obj/item/reagent_containers/verb/set_APTFT(mob/user) //set amount_per_transfer_from_this
+ set name = "Set Transfer Amount"
+ set category = "Object"
+ var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts
+ if(N)
+ amount_per_transfer_from_this = N
+ to_chat(user, "[src]'s transfer amount is now [amount_per_transfer_from_this] units.")
+
/obj/item/reagent_containers/Initialize(mapload, vol)
. = ..()
if(isnum(vol) && vol > 0)
volume = vol
+ if(!possible_transfer_amounts)
+ src.verbs -= /obj/item/reagent_containers/verb/set_APTFT
create_reagents(volume, reagent_flags)
if(spawned_disease)
var/datum/disease/F = new spawned_disease()
var/list/data = list("blood_DNA" = "UNKNOWN DNA", "blood_type" = "SY","viruses"= list(F))
reagents.add_reagent("blood", disease_amount, data)
-
add_initial_reagents()
+/obj/item/reagent_containers/examine(mob/user)
+ . = ..()
+ . += "Currently transferring [amount_per_transfer_from_this] units per use."
+ if(possible_transfer_amounts && user.Adjacent(src))
+ . += "Alt-click it to set its transfer amount."
+
+/obj/item/reagent_containers/AltClick(mob/user)
+ . = ..()
+ if(possible_transfer_amounts && user.Adjacent(src))
+ set_APTFT()
+
/obj/item/reagent_containers/proc/add_initial_reagents()
if(list_reagents)
reagents.add_reagent_list(list_reagents)
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 85248250a2..1b213fed0f 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -115,7 +115,7 @@
icon_state = "beaker"
item_state = "beaker"
materials = list(MAT_GLASS=500)
- possible_transfer_amounts = list(5,10,15,20,25,30,60)
+ possible_transfer_amounts = list(5,10,15,20,25,30,50,60)
beaker_weakness_bitflag = PH_WEAK
/obj/item/reagent_containers/glass/beaker/Initialize()
@@ -169,7 +169,7 @@
materials = list(MAT_GLASS=2500)
volume = 120
amount_per_transfer_from_this = 10
- possible_transfer_amounts = list(5,10,15,20,25,30,40,60,120)
+ possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120)
container_HP = 3
/obj/item/reagent_containers/glass/beaker/plastic
@@ -179,7 +179,7 @@
materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000)
volume = 180
amount_per_transfer_from_this = 10
- possible_transfer_amounts = list(5,10,15,20,25,30,40,60,120,180)
+ possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120,180)
/obj/item/reagent_containers/glass/beaker/plastic/Initialize()
beaker_weakness_bitflag &= ~PH_WEAK
@@ -198,7 +198,7 @@
materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000, MAT_GOLD=1000, MAT_TITANIUM=1000)
volume = 240
amount_per_transfer_from_this = 10
- possible_transfer_amounts = list(5,10,15,20,25,30,40,60,120,200,240)
+ possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120,200,240)
/obj/item/reagent_containers/glass/beaker/meta/Initialize() // why the fuck can't you just set the beaker weakness bitflags to nothing? fuck you
beaker_weakness_bitflag &= ~PH_WEAK
@@ -341,6 +341,7 @@
materials = list(MAT_GLASS=0)
volume = 50
amount_per_transfer_from_this = 10
+ possible_transfer_amounts = list(5,10,15,20,25,30,50)
container_HP = 1
/obj/item/reagent_containers/glass/beaker/waterbottle/Initialize()
@@ -357,6 +358,7 @@
list_reagents = list("water" = 100)
volume = 100
amount_per_transfer_from_this = 20
+ possible_transfer_amounts = list(5,10,15,20,25,30,50,100)
container_HP = 1
/obj/item/reagent_containers/glass/beaker/waterbottle/large/empty
diff --git a/code/modules/reagents/reagent_containers/hypovial.dm b/code/modules/reagents/reagent_containers/hypovial.dm
index 482877afcd..1f83e895bb 100644
--- a/code/modules/reagents/reagent_containers/hypovial.dm
+++ b/code/modules/reagents/reagent_containers/hypovial.dm
@@ -62,11 +62,11 @@
/obj/item/reagent_containers/glass/bottle/vial/small
name = "hypovial"
volume = 60
- possible_transfer_amounts = list(1,2,5,10,20,30)
+ possible_transfer_amounts = list(1,2,5,10,20)
/obj/item/reagent_containers/glass/bottle/vial/small/bluespace
volume = 120
- possible_transfer_amounts = list(1,2,5,10,20,30,40)
+ possible_transfer_amounts = list(1,2,5,10,20)
name = "bluespace hypovial"
icon_state = "hypovialbs"
unique_reskin = null
@@ -76,7 +76,7 @@
desc = "A large hypovial, for deluxe hypospray models."
icon_state = "hypoviallarge"
volume = 120
- possible_transfer_amounts = list(1,2,5,10,20,30,40,60)
+ possible_transfer_amounts = list(1,2,5,10,20)
unique_reskin = list("large hypovial" = "hypoviallarge",
"large red hypovial" = "hypoviallarge-b",
"large blue hypovial" = "hypoviallarge-d",
@@ -108,7 +108,7 @@
add_overlay(filling)
/obj/item/reagent_containers/glass/bottle/vial/large/bluespace
- possible_transfer_amounts = list(1,2,5,10,20,30,40,60)
+ possible_transfer_amounts = list(1,2,5,10,20)
name = "bluespace large hypovial"
volume = 240
icon_state = "hypoviallargebs"