diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm
index 4a2a354ca6..62a6e2e88e 100644
--- a/code/modules/projectiles/ammunition/special/syringe.dm
+++ b/code/modules/projectiles/ammunition/special/syringe.dm
@@ -59,3 +59,10 @@
S.forceMove(D)
D.injector = S
..()
+
+/obj/item/ammo_casing/syringegun/dart
+ name = "syringe gun spring"
+ desc = "A high-power spring that throws syringes."
+ projectile_type = /obj/item/projectile/bullet/dart/syringe
+ firing_effect_type = null
+ harmful = FALSE
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index cc1b321e3a..2e125f80b1 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -102,3 +102,15 @@
else
to_chat(user, "[src] cannot hold more syringes!")
return FALSE
+
+/obj/item/gun/syringe/dart
+ name = "dart gun"
+ desc = "A compressed air gun, designed to fit medicinal darts for application of medicine for those patients just out of reach."
+ icon_state = "dartgun"
+ item_state = "dartgun"
+ materials = list(MAT_METAL=2000, MAT_GLASS=500)
+ suppressed = TRUE //Softer fire sound
+
+/obj/item/gun/syringe/dart/Initialize()
+ ..()
+ chambered = new /obj/item/ammo_casing/syringegun/dart(src)
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index b2b7ab88a7..430d7e5d5d 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -14,6 +14,7 @@
var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun
materials = list(MAT_METAL=10, MAT_GLASS=20)
container_type = TRANSPARENT
+ var/Sname = "syringe"
/obj/item/reagent_containers/syringe/Initialize()
. = ..()
@@ -72,7 +73,7 @@
if(SYRINGE_DRAW)
if(reagents.total_volume >= reagents.maximum_volume)
- to_chat(user, "The syringe is full.")
+ to_chat(user, "The [Sname] is full.")
return
if(L) //living mob
@@ -137,8 +138,8 @@
return
if(L.reagents.total_volume >= L.reagents.maximum_volume)
return
- L.visible_message("[user] injects [L] with the syringe!", \
- "[user] injects [L] with the syringe!")
+ L.visible_message("[user] injects [L] with the [Sname]!", \
+ "[user] injects [L] with the [Sname]!")
if(L != user)
log_combat(user, L, "injected", src, addition="which had [contained]")
@@ -147,7 +148,7 @@
var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1)
reagents.reaction(L, INJECT, fraction)
reagents.trans_to(target, amount_per_transfer_from_this)
- to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.")
+ to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The [Sname] now contains [reagents.total_volume] units.")
if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT)
mode = SYRINGE_DRAW
update_icon()
@@ -158,7 +159,7 @@
var/rounded_vol
if(reagents && reagents.total_volume)
rounded_vol = CLAMP(round((reagents.total_volume / volume * 15),5), 1, 15)
- var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "syringe[rounded_vol]")
+ var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "[Sname][rounded_vol]")
filling_overlay.color = mix_color_from_reagents(reagents.reagent_list)
add_overlay(filling_overlay)
else
@@ -262,3 +263,26 @@
/obj/item/reagent_containers/syringe/get_belt_overlay()
return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "pouch")
+
+/obj/item/reagent_containers/syringe/dart
+ name = "medicinal dart"
+ desc = "A non-harmful dart that can administer medication from a range. Unable to hold any caustic or toxic chemicals without disintegrating"
+ volume = 20
+ amount_per_transfer_from_this = 20
+ icon = 'icons/obj/dart.dmi'
+ Sname = "dart"
+ //harmful = FALSE
+
+/obj/item/reagent_containers/syringe/dart/afterattack(atom/target, mob/user , proximity)
+ ..()
+ for(var/datum/reagent/R in src.reagents.reagent_list)//(!R == /datum/reagent/fermi) ||
+ if((!R == /datum/reagent/medicine) || (!R == /datum/reagent/consumable))
+ qdel(src)
+ to_chat(user, "The dart dissolves under the caustic nature of the chems!")
+
+/obj/item/reagent_containers/syringe/dart/bluespace
+ name = "bluespace dart"
+ desc = "A non-harmful dart that can administer medication from a range, with extended 60u capacity. Unable to hold any caustic or toxic chemicals without disintegrating"
+ amount_per_transfer_from_this = 20
+ volume = 60
+ //harmful = FALSE
diff --git a/icons/obj/dart.dmi b/icons/obj/dart.dmi
new file mode 100644
index 0000000000..fd6be8ab14
Binary files /dev/null and b/icons/obj/dart.dmi differ
diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi
index e4a39903b3..5ed5a434ba 100644
Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index f2cef76dd9..c9098249b0 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2505,22 +2505,10 @@
#include "code\modules\research\designs\AI_module_designs.dm"
#include "code\modules\research\designs\biogenerator_designs.dm"
#include "code\modules\research\designs\bluespace_designs.dm"
-#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm"
-#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm"
-#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm"
-#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm"
-#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm"
-#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm"
#include "code\modules\research\designs\computer_part_designs.dm"
#include "code\modules\research\designs\electronics_designs.dm"
#include "code\modules\research\designs\equipment_designs.dm"
#include "code\modules\research\designs\limbgrower_designs.dm"
-#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm"
-#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm"
-#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm"
-#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm"
-#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm"
-#include "code\modules\research\designs\machine_desings\machine_designs_service.dm"
#include "code\modules\research\designs\mecha_designs.dm"
#include "code\modules\research\designs\mechfabricator_designs.dm"
#include "code\modules\research\designs\medical_designs.dm"
@@ -2538,6 +2526,18 @@
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm"
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm"
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm"
+#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm"
+#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm"
+#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm"
+#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm"
+#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm"
+#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm"
+#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm"
+#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm"
+#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm"
+#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm"
+#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm"
+#include "code\modules\research\designs\machine_desings\machine_designs_service.dm"
#include "code\modules\research\machinery\_production.dm"
#include "code\modules\research\machinery\circuit_imprinter.dm"
#include "code\modules\research\machinery\departmental_circuit_imprinter.dm"