diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm
index 3333e192907..f5923f7d522 100644
--- a/code/game/objects/items/weapons/tanks/watertank.dm
+++ b/code/game/objects/items/weapons/tanks/watertank.dm
@@ -168,7 +168,7 @@
icon_state = "misterjani"
item_state = "misterjani"
amount_per_transfer_from_this = 5
- possible_transfer_amounts = null
+ possible_transfer_amounts = list()
/obj/item/weapon/watertank/janitor/make_noz()
return new /obj/item/weapon/reagent_containers/spray/mister/janitor(src)
diff --git a/code/modules/food&drinks/drinks/drinks.dm b/code/modules/food&drinks/drinks/drinks.dm
index 1fb92782a13..ccf29496831 100644
--- a/code/modules/food&drinks/drinks/drinks.dm
+++ b/code/modules/food&drinks/drinks/drinks.dm
@@ -62,7 +62,7 @@
user << "[src] is full."
return
- var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
+ var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
user << "You fill [src] with [trans] units of the contents of [target]."
else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
@@ -107,7 +107,7 @@
throwforce = 10
amount_per_transfer_from_this = 20
materials = list(MAT_GOLD=1000)
- possible_transfer_amounts = null
+ possible_transfer_amounts = list()
volume = 150
flags = CONDUCT | OPENCONTAINER
spillable = 1
@@ -181,7 +181,7 @@
name = "Paper Cup"
desc = "A paper water cup."
icon_state = "water_cup_e"
- possible_transfer_amounts = null
+ possible_transfer_amounts = list()
volume = 10
spillable = 1
diff --git a/code/modules/food&drinks/food.dm b/code/modules/food&drinks/food.dm
index 5a7dbde5102..32b680a6b6a 100644
--- a/code/modules/food&drinks/food.dm
+++ b/code/modules/food&drinks/food.dm
@@ -2,7 +2,7 @@
/// Food.
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food
- possible_transfer_amounts = null
+ possible_transfer_amounts = list()
volume = 50 //Sets the default container amount for all food items.
burn_state = 0 //Burnable
diff --git a/code/modules/food&drinks/food/condiment.dm b/code/modules/food&drinks/food/condiment.dm
index 9f4e49345e1..3edd8d0d33a 100644
--- a/code/modules/food&drinks/food/condiment.dm
+++ b/code/modules/food&drinks/food/condiment.dm
@@ -67,7 +67,7 @@
user << "[src] is full!"
return
- var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
+ var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
user << "You fill [src] with [trans] units of the contents of [target]."
//Something like a glass or a food item. Player probably wants to transfer TO it.
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 3f258374874..52d9ad7142f 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -37,7 +37,7 @@
if(M.reagents)
var/modifier = Clamp((1 - touch_protection), 0, 1)
var/amount = round(reac_volume*modifier, 0.1)
- if(amount >= 1)
+ if(amount >= 0.5)
M.reagents.add_reagent(id, amount)
return 1
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index 4d68d5f00d7..100c6e85271 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -5,27 +5,15 @@
icon_state = null
w_class = 1
var/amount_per_transfer_from_this = 5
- var/possible_transfer_amounts = list(5,10,15,25,30)
+ var/list/possible_transfer_amounts = list(5,10,15,25,30)
var/volume = 30
var/list/list_reagents = null
var/spawned_disease = null
var/disease_amount = 20
var/spillable = 0
-/obj/item/weapon/reagent_containers/verb/set_APTFT() //set amount_per_transfer_from_this
- set name = "Set transfer amount"
- set category = "Object"
- set src in range(0)
- if(usr.incapacitated())
- return
- var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts
- if (N)
- amount_per_transfer_from_this = N
-
/obj/item/weapon/reagent_containers/New(location, vol = 0)
..()
- if (!possible_transfer_amounts)
- src.verbs -= /obj/item/weapon/reagent_containers/verb/set_APTFT
if (vol > 0)
volume = vol
create_reagents(volume)
@@ -37,7 +25,17 @@
reagents.add_reagent_list(list_reagents)
/obj/item/weapon/reagent_containers/attack_self(mob/user)
- return
+ if(possible_transfer_amounts.len)
+ var/i=0
+ for(var/A in possible_transfer_amounts)
+ i++
+ if(A == amount_per_transfer_from_this)
+ if(i[src]'s transfer amount is now [amount_per_transfer_from_this] units."
+ return
/obj/item/weapon/reagent_containers/attack(mob/M, mob/user, def_zone)
return
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index 9b53ad657f7..57137f23ea8 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -16,7 +16,7 @@ Borg Hypospray
icon_state = "borghypo"
amount_per_transfer_from_this = 5
volume = 30
- possible_transfer_amounts = null
+ possible_transfer_amounts = list()
var/mode = 1
var/charge_cost = 50
var/charge_tick = 0
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 4fdbafae8f5..7987ef2716e 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -88,7 +88,7 @@
user << "[src] is full."
return
- var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
+ var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
user << "You fill [src] with [trans] unit\s of the contents of [target]."
else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it.
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index ecab7f5cf22..9103f5f5666 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -6,7 +6,7 @@
icon_state = "hypo"
amount_per_transfer_from_this = 5
volume = 30
- possible_transfer_amounts = null
+ possible_transfer_amounts = list()
flags = OPENCONTAINER
slot_flags = SLOT_BELT
var/ignore_flags = 0
diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm
index 1b475da801e..b3e792479f1 100644
--- a/code/modules/reagents/reagent_containers/patch.dm
+++ b/code/modules/reagents/reagent_containers/patch.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "bandaid"
item_state = "bandaid"
- possible_transfer_amounts = null
+ possible_transfer_amounts = list()
volume = 50
apply_type = PATCH
apply_method = "apply"
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 94ece6ee2c0..9e8f53c60ac 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "pill"
item_state = "pill"
- possible_transfer_amounts = null
+ possible_transfer_amounts = list()
volume = 50
var/apply_type = INGEST
var/apply_method = "swallow"
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index b35b9330ab7..5ed379b2887 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -14,7 +14,7 @@
var/spray_currentrange = 3 //the range of tiles the sprayer will reach when in fixed mode.
amount_per_transfer_from_this = 5
volume = 250
- possible_transfer_amounts = null
+ possible_transfer_amounts = list()
/obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user)
@@ -34,7 +34,7 @@
user << "\The [src] is full."
return
- var/trans = A.reagents.trans_to(src, A:amount_per_transfer_from_this)
+ var/trans = A.reagents.trans_to(src, 50) //transfer 50u , using the spray's transfer amount would take too long to refill
user << "You fill \the [src] with [trans] units of the contents of \the [A]."
return
@@ -103,7 +103,7 @@
set name = "Empty Spray Bottle"
set category = "Object"
set src in usr
- if(usr.stat || !usr.canmove || usr.restrained())
+ if(usr.incapacitated())
return
if (alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", "Yes", "No") != "Yes")
return
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 019ec3c4c83..c8eefc60ecc 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -8,7 +8,7 @@
item_state = "syringe_0"
icon_state = "0"
amount_per_transfer_from_this = 5
- possible_transfer_amounts = null //list(5, 10, 15)
+ possible_transfer_amounts = list()
volume = 15
var/mode = SYRINGE_DRAW
var/busy = 0 // needed for delayed drawing of blood
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 7b84806d834..8c8932a7bd2 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -7,9 +7,6 @@
anchored = 0
pressure_resistance = 2*ONE_ATMOSPHERE
- var/amount_per_transfer_from_this = 10
- var/possible_transfer_amounts = list(10,25,50,100)
-
/obj/structure/reagent_dispensers/ex_act(severity, target)
switch(severity)
if(1)
@@ -35,20 +32,8 @@
/obj/structure/reagent_dispensers/New()
create_reagents(1000)
- if (!possible_transfer_amounts)
- src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT
..()
-/obj/structure/reagent_dispensers/verb/set_APTFT() //set amount_per_transfer_from_this
- set name = "Set transfer amount"
- set category = "Object"
- set src in view(1)
- if(usr.stat || !usr.canmove || usr.restrained())
- return
- var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts
- if (N)
- amount_per_transfer_from_this = N
-
/obj/structure/reagent_dispensers/examine(mob/user)
..()
user << "It contains [reagents.total_volume] units."
@@ -59,7 +44,6 @@
desc = "A watertank"
icon = 'icons/obj/objects.dmi'
icon_state = "watertank"
- amount_per_transfer_from_this = 10
/obj/structure/reagent_dispensers/watertank/New()
..()
@@ -93,7 +77,6 @@
desc = "A fueltank"
icon = 'icons/obj/objects.dmi'
icon_state = "weldtank"
- amount_per_transfer_from_this = 10
/obj/structure/reagent_dispensers/fueltank/New()
..()
@@ -132,7 +115,6 @@
icon_state = "peppertank"
anchored = 1
density = 0
- amount_per_transfer_from_this = 45
/obj/structure/reagent_dispensers/peppertank/New()
..()
@@ -142,10 +124,8 @@
/obj/structure/reagent_dispensers/water_cooler
name = "Water-Cooler"
desc = "A machine that dispenses water to drink"
- amount_per_transfer_from_this = 5
icon = 'icons/obj/vending.dmi'
icon_state = "water_cooler"
- possible_transfer_amounts = null
anchored = 1
var/cups = 50
@@ -180,7 +160,6 @@
desc = "A beer keg"
icon = 'icons/obj/objects.dmi'
icon_state = "beertankTEMP"
- amount_per_transfer_from_this = 10
/obj/structure/reagent_dispensers/beerkeg/New()
..()
@@ -195,7 +174,6 @@
desc = "A dispenser of virus food."
icon = 'icons/obj/objects.dmi'
icon_state = "virusfoodtank"
- amount_per_transfer_from_this = 10
anchored = 1
/obj/structure/reagent_dispensers/virusfood/New()
diff --git a/html/changelogs/phil235-TransferAmountChange.yml b/html/changelogs/phil235-TransferAmountChange.yml
new file mode 100644
index 00000000000..9abd9663507
--- /dev/null
+++ b/html/changelogs/phil235-TransferAmountChange.yml
@@ -0,0 +1,8 @@
+
+author: phil235
+
+delete-after: True
+
+changes:
+ - tweak: "Changing the transfer amount of all reagent containers (beaker, bucket, glass) is now done by clicking them, similar to spray. Reagent dispensers (watertank, fueltank, pepperspray dispenser) no longer have their own transfer amounts and use the reagent container's transfer amount instead (except for sprays which get 50u for faster refilling)."
+