diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index cea40dc27e..c99508cda5 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -76,7 +76,8 @@ return 1 /obj/item/ammo_box/attackby(obj/item/A, mob/user, params, silent = FALSE, replace_spent = 0) - if(INTERACTING_WITH(user, A)) + if(INTERACTING_WITH(user, src) || INTERACTING_WITH(user, A)) + to_chat(user, "You're already doing that!") return FALSE var/num_loaded = 0 if(!can_load(user)) @@ -84,8 +85,11 @@ if(istype(A, /obj/item/ammo_box)) var/obj/item/ammo_box/AM = A for(var/obj/item/ammo_casing/AC in AM.stored_ammo) - if(load_delay) - if(do_after(user, load_delay, target = src)) + if(load_delay || AM.load_delay) + var/loadtime = load_delay + if(AM.load_delay > load_delay) + loadtime = AM.load_delay + if(do_after(user, loadtime, target = src)) else return FALSE var/did_load = give_round(AC, replace_spent) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index fa8099a257..22e53e83f0 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -53,6 +53,10 @@ ..() if (istype(A, /obj/item/ammo_box/magazine)) var/obj/item/ammo_box/magazine/AM = A + if(AM.load_delay) + if(do_after(user, AM.load_delay, target = src)) + else + return FALSE if (!magazine && istype(AM, mag_type)) if(user.transferItemToLoc(AM, src)) magazine = AM