diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm
index 38386a2de7..5f8f1f145d 100644
--- a/code/modules/crafting/recipes.dm
+++ b/code/modules/crafting/recipes.dm
@@ -910,12 +910,13 @@
subcategory = CAT_WEAPON
/datum/crafting_recipe/rapiddartgun
- name = "Rapid Smart dartgun - larger size beaker = larger mag."
+ name = "Rapid Smart dartgun"
result = /obj/item/gun/syringe/dart/rapiddart
reqs = list(
/obj/item/gun/syringe/dart = 1,
/obj/item/stack/sheet/plastic = 5,
- /obj/item/stack/cable_coil = 1
+ /obj/item/stack/cable_coil = 1,
+ /obj/item/reagent_containers/glass/beaker = 1
)
parts = list(/obj/item/reagent_containers/glass/beaker = 1)
time = 120 //Modifying your gun
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index e3aa6fa76c..86336e6be4 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -130,11 +130,12 @@
max_syringes = 1
/obj/item/gun/syringe/dart/rapiddart/Initialize()
- .=..()
update_capacity()
+ .=..()
/obj/item/gun/syringe/dart/rapiddart/proc/update_capacity()
var/obj/item/reagent_containers/glass/beaker/B = locate(/obj/item/reagent_containers/glass/beaker) in src
+ message_admins("found[B]")
if(istype(B, /obj/item/reagent_containers/glass/beaker/large))
desc = "[initial(desc)] A modification of the dart gun's pressure chamber has been perfomed using a [B], extending it's holding size to [max_syringes]."
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 4bb2f8af1c..711fe11d5d 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -386,38 +386,32 @@
. = TRUE
if("createDart")
- var/many = params["many"]
- if(reagents.total_volume == 0)
- return
-
- for(var/datum/reagent/R in beaker.reagents.reagent_list)
+ for(var/datum/reagent/R in reagents.reagent_list)
if(!(istype(R, /datum/reagent/medicine)))
visible_message("The [src] beeps, \"SmartDarts are insoluble with non-medicinal compounds.\"")
return
- var/amount_full = 0
- var/vol_part = min(reagents.total_volume, 20)
+ var/many = params["many"]
+ if(reagents.total_volume == 0)
+ return
+ var/amount = 1
+ var/vol_each = min(reagents.total_volume, 20)
if(text2num(many))
- amount_full = round(reagents.total_volume / 20)
- vol_part = reagents.total_volume % 20
- var/name = stripped_input(usr, "Name:","Name your SmartDart!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN)
+ amount = CLAMP(round(input(usr, "Max 10. Buffer content will be split evenly.", "How many darts?", amount) as num|null), 0, 10)
+ if(!amount)
+ return
+ vol_each = min(reagents.total_volume / amount, 20)
+
+ var/name = stripped_input(usr,"Name:","Name your SmartDart!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN)
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr)))
return
var/obj/item/reagent_containers/syringe/dart/D
- for(var/i = 0; i < amount_full; i++)
+ for(var/i = 0; i < amount; i++)
D = new /obj/item/reagent_containers/syringe/dart(drop_location())
D.name = trim("[name] SmartDart")
adjust_item_drop_location(D)
- reagents.trans_to(D, 20)
- D.mode=!mode
- D.update_icon()
-
- if(vol_part)
- D = new /obj/item/reagent_containers/syringe/dart(drop_location())
- D.name = trim("[name] SmartDart")
- adjust_item_drop_location(D)
- reagents.trans_to(D, vol_part)
+ reagents.trans_to(D, vol_each)
D.mode=!mode
D.update_icon()
. = TRUE
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index ce6cf1bb85..f97a729f13 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -323,7 +323,7 @@
rounded_vol = "empty"
if(reagents && reagents.total_volume)
- if(round(volume,1)/reagents.total_volume == 1)
+ if(volume/round(reagents.total_volume, 1) == 1)
rounded_vol="full"
mode = SYRINGE_INJECT
diff --git a/tgui/src/interfaces/chem_master.ract b/tgui/src/interfaces/chem_master.ract
index de272d01b5..e6808f0e97 100644
--- a/tgui/src/interfaces/chem_master.ract
+++ b/tgui/src/interfaces/chem_master.ract
@@ -84,7 +84,7 @@
Create SmartDart (max 20ยต)
- Dispense Buffer to SmartDarts
+ Create multiple SmartDarts