From 388e0a330e56b4544c22d8b4f4e252a121d2d4bb Mon Sep 17 00:00:00 2001 From: paprka Date: Wed, 18 Feb 2015 02:55:28 -0800 Subject: [PATCH] fixes firing delay --- code/modules/projectiles/ammunition/energy.dm | 2 +- code/modules/projectiles/gun.dm | 30 ++++++++++++++----- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index 8d663855d8f..76e7c137b15 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -56,7 +56,7 @@ select_name = "stun" fire_sound = 'sound/weapons/taser.ogg' e_cost = 200 - delay = 5 + delay = 10 /obj/item/ammo_casing/energy/electrode/gun fire_sound = 'sound/weapons/gunshot.ogg' diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index d838d794cec..0d241791d93 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -157,14 +157,31 @@ if(semicd) return - for(var/i = 1 to burst_size) - if(!issilicon(user)) - if( i>1 && !(src in get_both_hands(user))) //for burst firing + if(burst_size > 1) + for(var/i = 1 to burst_size) + if(!issilicon(user)) + if( i>1 && !(src in get_both_hands(user))) //for burst firing + break + if(chambered) + if(!chambered.fire(target, user, params, , suppressed)) + shoot_with_empty_chamber(user) + break + else + if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot + shoot_live_shot(user, 1, target, message) + else + shoot_live_shot(user, 0, target, message) + else + shoot_with_empty_chamber(user) break + process_chamber() + update_icon() + sleep(fire_delay) + else if(chambered) if(!chambered.fire(target, user, params, , suppressed)) shoot_with_empty_chamber(user) - break + return else if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot shoot_live_shot(user, 1, target, message) @@ -172,12 +189,9 @@ shoot_live_shot(user, 0, target, message) else shoot_with_empty_chamber(user) - break + return process_chamber() update_icon() - sleep(fire_delay) - - if(burst_size == 1 && fire_delay) semicd = 1 spawn(fire_delay) semicd = 0