diff --git a/code/modules/projectiles/guns/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/launcher/grenade_launcher.dm index 514e68a6b25..186e8275223 100644 --- a/code/modules/projectiles/guns/launcher/grenade_launcher.dm +++ b/code/modules/projectiles/guns/launcher/grenade_launcher.dm @@ -59,7 +59,7 @@ ..() /obj/item/weapon/gun/launcher/grenade/attack_hand(mob/user) - if(src in user) + if(loc == user) if(grenades.len) var/obj/item/weapon/grenade/G = grenades[grenades.len] grenades.len-- diff --git a/code/modules/projectiles/guns/launcher/syringe_gun.dm b/code/modules/projectiles/guns/launcher/syringe_gun.dm index 59110be1951..b8e1559445f 100644 --- a/code/modules/projectiles/guns/launcher/syringe_gun.dm +++ b/code/modules/projectiles/guns/launcher/syringe_gun.dm @@ -100,7 +100,7 @@ next = darts[1] /obj/item/weapon/gun/launcher/syringe/attack_hand(mob/living/user as mob) - if(src in user) + if(loc == user) if(!darts.len) user << "[src] is empty." return diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 128eddccde2..e8255027325 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -155,7 +155,7 @@ unload_ammo(user) /obj/item/weapon/gun/projectile/attack_hand(mob/user as mob) - if(src in user) + if(loc == user) unload_ammo(user, allow_dump=0) else return ..() diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 506ffcfff38..eb5cb3c1055 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -74,21 +74,19 @@ /obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon() icon_state = "l6[cover_open ? "open" : "closed"][ammo_magazine ? round(loaded.len, 25) : "-empty"]" -/obj/item/weapon/gun/projectile/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays +/obj/item/weapon/gun/projectile/automatic/l6_saw/special_check(mob/user) if(cover_open) - user << "[src]'s cover is open! Close it before firing!" - else - ..() - update_icon() + user << "[src]'s cover is open! Close it before firing!" + return 0 + return ..() -/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_hand(mob/user as mob) - if(loc != user) - ..() //let them pick it up - else if(cover_open) - unload_ammo(user) - -/obj/item/weapon/gun/projectile/automatic/l6_saw/attackby(var/obj/item/A as obj, mob/user as mob) - if(istype(A,/obj/item/ammo_magazine) && !cover_open) - user << "[src]'s cover is closed! You can't insert a new mag!" +/obj/item/weapon/gun/projectile/automatic/l6_saw/load_ammo(var/obj/item/A, mob/user) + if(!cover_open) + user << "You need to open the cover to load [src]." return - ..() + ..() + +/obj/item/weapon/gun/projectile/automatic/l6_saw/unload_ammo(mob/user) + if(!cover_open) + return + ..() \ No newline at end of file