From 6ec28fc001fbd6b01b7f3727656922d377daeeb4 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Fri, 22 Apr 2016 11:17:42 -0500 Subject: [PATCH] Runtime and MC crash fixes --- code/modules/projectiles/firing.dm | 2 +- code/modules/projectiles/gun.dm | 5 +++++ .../projectiles/guns/projectile/rechargable_magazine.dm | 5 +++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index a56d178cfde..cf008e00ec1 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -4,7 +4,7 @@ var/curloc = user.loc var/targloc = get_turf(target) ready_proj(target, user, quiet, zone_override) - if(distro) + if(distro && targloc) targloc = spread(targloc, curloc, distro) if(!throw_proj(target, targloc, user, params)) return 0 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 678dbcc565e..b9ca0ed63ee 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -36,6 +36,7 @@ var/sawn_state = SAWN_INTACT var/burst_size = 1 //how large a burst is var/fire_delay = 0 //rate of fire for burst firing and semi auto + var/firing_burst = 0 //Prevent the weapon from firing again while already firing var/semicd = 0 //cooldown handler var/weapon_weight = WEAPON_LIGHT @@ -135,6 +136,8 @@ /obj/item/weapon/gun/afterattack(atom/target, mob/living/user, flag, params) + if(firing_burst) + return if(flag) //It's adjacent, is the user, or is on the user's person if(target in user.contents) //can't shoot stuff inside us. return @@ -210,6 +213,7 @@ obj/item/weapon/gun/proc/newshot() recoil = initial(recoil) if(burst_size > 1) + firing_burst = 1 for(var/i = 1 to burst_size) if(!user) break @@ -231,6 +235,7 @@ obj/item/weapon/gun/proc/newshot() process_chamber() update_icon() sleep(fire_delay) + firing_burst = 0 else if(chambered) if(!chambered.fire(target, user, params, , suppressed, zone_override)) diff --git a/code/modules/projectiles/guns/projectile/rechargable_magazine.dm b/code/modules/projectiles/guns/projectile/rechargable_magazine.dm index e907fd59726..b8c047ef12a 100644 --- a/code/modules/projectiles/guns/projectile/rechargable_magazine.dm +++ b/code/modules/projectiles/guns/projectile/rechargable_magazine.dm @@ -81,6 +81,7 @@ return update_icon() gun.forceMove(user) + user.update_inv_back() else user << "You are already holding the gun!" else @@ -125,7 +126,6 @@ else icon_state = "holstered" - /obj/item/weapon/minigunpack/proc/attach_gun(var/mob/user) if(!gun) gun = new(src) @@ -136,6 +136,7 @@ else src.visible_message("The [gun.name] snaps back onto the [name]!") update_icon() + user.update_inv_back() /obj/item/weapon/gun/projectile/minigun @@ -151,7 +152,7 @@ w_class = 5 materials = list() burst_size = 5 - fire_delay = 2 + fire_delay = 1 weapon_weight = WEAPON_HEAVY fire_sound = 'sound/weapons/Laser.ogg' mag_type = /obj/item/ammo_box/magazine/internal/minigun