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