diff --git a/code/modules/detective_work/footprints_and_rag.dm b/code/modules/detective_work/footprints_and_rag.dm
index 07e20fae128..39486444e81 100644
--- a/code/modules/detective_work/footprints_and_rag.dm
+++ b/code/modules/detective_work/footprints_and_rag.dm
@@ -16,7 +16,7 @@
icon = 'icons/obj/toy.dmi'
icon_state = "rag"
amount_per_transfer_from_this = 5
- possible_transfer_amounts = list(5)
+ possible_transfer_amounts = null
volume = 5
flags = NOBLUDGEON
container_type = OPENCONTAINER
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 6949588863a..ae1a1eed9c4 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -9,6 +9,7 @@
container_type = OPENCONTAINER
consume_sound = 'sound/items/drink.ogg'
possible_transfer_amounts = list(5,10,15,20,25,30,50)
+ visible_transfer_rate = TRUE
volume = 50
resistance_flags = NONE
antable = FALSE
@@ -125,7 +126,7 @@
throwforce = 1
amount_per_transfer_from_this = 5
materials = list(MAT_METAL=100)
- possible_transfer_amounts = list()
+ possible_transfer_amounts = null
volume = 5
flags = CONDUCT
container_type = OPENCONTAINER
@@ -249,7 +250,7 @@
desc = "A paper water cup."
icon_state = "water_cup_e"
item_state = "coffee"
- possible_transfer_amounts = list()
+ possible_transfer_amounts = null
volume = 10
/obj/item/reagent_containers/food/drinks/sillycup/on_reagent_change()
diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm
index 52ef84a991e..1bea711c85e 100644
--- a/code/modules/food_and_drinks/food.dm
+++ b/code/modules/food_and_drinks/food.dm
@@ -3,6 +3,7 @@
////////////////////////////////////////////////////////////////////////////////
/obj/item/reagent_containers/food
possible_transfer_amounts = null
+ visible_transfer_rate = FALSE
volume = 50 //Sets the default container amount for all food items.
var/filling_color = "#FFFFFF" //Used by sandwiches.
var/junkiness = 0 //for junk food. used to lower human satiety.
diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm
index 9d9e81be9af..9a12b5cec92 100644
--- a/code/modules/food_and_drinks/food/condiment.dm
+++ b/code/modules/food_and_drinks/food/condiment.dm
@@ -12,6 +12,7 @@
icon_state = "emptycondiment"
container_type = OPENCONTAINER
possible_transfer_amounts = list(1, 5, 10, 15, 20, 25, 30, 50)
+ visible_transfer_rate = TRUE
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(
@@ -204,7 +205,7 @@
icon_state = "condi_empty"
volume = 10
amount_per_transfer_from_this = 10
- possible_transfer_amounts = list()
+ possible_transfer_amounts = null
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!"))
/obj/item/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly.
diff --git a/code/modules/hydroponics/beekeeping/honeycomb.dm b/code/modules/hydroponics/beekeeping/honeycomb.dm
index e4bcdb13a33..efa4a62bac3 100644
--- a/code/modules/hydroponics/beekeeping/honeycomb.dm
+++ b/code/modules/hydroponics/beekeeping/honeycomb.dm
@@ -4,10 +4,11 @@
desc = "A hexagonal mesh of honeycomb."
icon = 'icons/obj/hydroponics/harvest.dmi'
icon_state = "honeycomb"
- possible_transfer_amounts = list()
+ possible_transfer_amounts = null
disease_amount = 0
volume = 10
amount_per_transfer_from_this = 0
+ visible_transfer_rate = FALSE
list_reagents = list("honey" = 5)
var/honey_color = ""
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index 27f01cdfa22..25c9305231d 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -5,6 +5,7 @@
icon_state = null
w_class = WEIGHT_CLASS_TINY
var/amount_per_transfer_from_this = 5
+ var/visible_transfer_rate = TRUE
var/possible_transfer_amounts = list(5,10,15,25,30)
var/volume = 30
var/list/list_reagents = null
@@ -25,7 +26,9 @@
var/default = null
if(amount_per_transfer_from_this in possible_transfer_amounts)
default = amount_per_transfer_from_this
- var/N = input("Amount per transfer from this:", "[src]", default) as null|anything in possible_transfer_amounts
+ var/new_transfer_rate = input("Amount per transfer from this:", "[src]", default) as null|anything in possible_transfer_amounts
+ if(!new_transfer_rate)
+ return
if(!usr.Adjacent(src))
to_chat(usr, "You have moved too far away!")
@@ -34,8 +37,8 @@
to_chat(usr, "You can't use your hands!")
return
- if(N)
- amount_per_transfer_from_this = N
+ amount_per_transfer_from_this = new_transfer_rate
+ to_chat(usr, "[src] will now transfer [amount_per_transfer_from_this] units at a time.")
/obj/item/reagent_containers/AltClick()
set_APTFT()
@@ -100,8 +103,9 @@
/obj/item/reagent_containers/examine(mob/user)
. = ..()
- // Food has no valid possible_transfer_amounts, and we don't want to show
- // this message on examining food.
+ if(visible_transfer_rate)
+ . += "It will transfer [amount_per_transfer_from_this] unit[amount_per_transfer_from_this != 1 ? "s" : ""] at a time."
+
+ // Items that have no valid possible_transfer_amounts shouldn't say their transfer rate is variable
if(possible_transfer_amounts)
- . += "It will transfer [amount_per_transfer_from_this] unit[amount_per_transfer_from_this > 1 ? "s" : ""] at a time."
. += "Alt-click to change the transfer amount."
diff --git a/code/modules/reagents/reagent_containers/applicator.dm b/code/modules/reagents/reagent_containers/applicator.dm
index 5725225ea1e..f41d8f95b9e 100644
--- a/code/modules/reagents/reagent_containers/applicator.dm
+++ b/code/modules/reagents/reagent_containers/applicator.dm
@@ -6,6 +6,7 @@
item_state = "mender"
volume = 200
possible_transfer_amounts = null
+ visible_transfer_rate = FALSE
resistance_flags = ACID_PROOF
container_type = REFILLABLE | AMOUNT_VISIBLE
temperature_min = 270
diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm
index 8533da3fdec..fddb26d9229 100644
--- a/code/modules/reagents/reagent_containers/glass_containers.dm
+++ b/code/modules/reagents/reagent_containers/glass_containers.dm
@@ -240,7 +240,7 @@
desc = "A baggie. Can hold up to 10 units."
icon_state = "baggie"
amount_per_transfer_from_this = 2
- possible_transfer_amounts = 2
+ possible_transfer_amounts = null
volume = 10
container_type = OPENCONTAINER
can_assembly = 0
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 3fbef587723..1bbde0e0d2d 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -86,7 +86,7 @@
name = "combat stimulant injector"
desc = "A modified air-needle autoinjector, used by support operatives to quickly heal injuries in combat."
amount_per_transfer_from_this = 15
- possible_transfer_amounts = list(15)
+ possible_transfer_amounts = null
icon_state = "combat_hypo"
volume = 90
ignore_flags = 1 // So they can heal their comrades.
@@ -104,7 +104,7 @@
item_state = "autoinjector"
belt_icon = "autoinjector"
amount_per_transfer_from_this = 10
- possible_transfer_amounts = list(10)
+ possible_transfer_amounts = null
volume = 10
ignore_flags = TRUE //so you can medipen through hardsuits
container_type = DRAWABLE
@@ -151,7 +151,6 @@
desc = "Rapidly stimulates and regenerates the body's organ system."
icon_state = "stimpen"
amount_per_transfer_from_this = 50
- possible_transfer_amounts = list(50)
volume = 50
list_reagents = list("stimulants" = 50)
@@ -168,7 +167,6 @@
desc = "After a short period of time the nanites will slow the body's systems and assist with bone repair. Nanomachines son."
icon_state = "bonepen"
amount_per_transfer_from_this = 30
- possible_transfer_amounts = list(30)
volume = 30
list_reagents = list("nanocalcium" = 30)
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index e157cc7d733..581cdc0a87e 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -10,7 +10,7 @@
icon_state = "0"
belt_icon = "syringe"
amount_per_transfer_from_this = 5
- possible_transfer_amounts = list()
+ possible_transfer_amounts = null
volume = 15
sharp = TRUE
var/busy = FALSE