diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index d2a3508ffd5..2503b01d969 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -10,8 +10,10 @@
custom_materials = list(/datum/material/iron=2000)
clumsy_check = 0
fire_sound = 'sound/items/syringeproj.ogg'
+ var/load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg'
var/list/syringes = list()
- var/max_syringes = 1
+ var/max_syringes = 1 ///The number of syringes it can store.
+ var/has_syringe_overlay = TRUE ///If it has an overlay for inserted syringes. If true, the overlay is determined by the number of syringes inserted into it.
/obj/item/gun/syringe/Initialize()
. = ..()
@@ -33,6 +35,7 @@
/obj/item/gun/syringe/process_chamber()
if(chambered && !chambered.BB) //we just fired
recharge_newshot()
+ update_icon()
/obj/item/gun/syringe/examine(mob/user)
. = ..()
@@ -46,13 +49,14 @@
var/obj/item/reagent_containers/syringe/S = syringes[syringes.len]
if(!S)
- return 0
+ return FALSE
user.put_in_hands(S)
syringes.Remove(S)
to_chat(user, "You unload [S] from \the [src].")
+ update_icon()
- return 1
+ return TRUE
/obj/item/gun/syringe/attackby(obj/item/A, mob/user, params, show_msg = TRUE)
if(istype(A, /obj/item/reagent_containers/syringe))
@@ -62,11 +66,20 @@
to_chat(user, "You load [A] into \the [src].")
syringes += A
recharge_newshot()
+ update_icon()
+ playsound(loc, load_sound, 40)
return TRUE
else
to_chat(user, "[src] cannot hold more syringes!")
return FALSE
+/obj/item/gun/syringe/update_overlays()
+ . = ..()
+ if(!has_syringe_overlay)
+ return
+ var/syringe_count = syringes.len
+ . += "[initial(icon_state)]_[syringe_count ? clamp(syringe_count, 1, initial(max_syringes)) : "empty"]"
+
/obj/item/gun/syringe/rapidsyringe
name = "rapid syringe gun"
desc = "A modification of the syringe gun design, using a rotating cylinder to store up to six syringes."
@@ -113,6 +126,7 @@
desc = "Fire syringes at a short distance."
icon_state = "blowgun"
inhand_icon_state = "blowgun"
+ has_syringe_overlay = FALSE
fire_sound = 'sound/items/syringeproj.ogg'
/obj/item/gun/syringe/blowgun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
@@ -120,4 +134,4 @@
if(do_after(user, 25, target = src))
user.adjustStaminaLoss(20)
user.adjustOxyLoss(20)
- ..()
+ return ..()
diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi
index 9925d54336b..c620793c561 100644
Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ