diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index 42a6664364a..077e4056161 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -17,15 +17,16 @@ if(mapload) for(var/obj/item/I in loc.contents) if(istype(I, gun_category)) - I.loc = src + I.forceMove(src) if(contents.len >= capacity) break update_icon() /obj/structure/guncase/update_icon() cut_overlays() - for(var/i = contents.len, i >= 1, i--) - add_overlay(image(icon = src.icon, icon_state = "[case_type]", pixel_x = 4 * (i -1) )) + if(case_type && LAZYLEN(contents)) + for(var/i in 1 to contents.len) + add_overlay(image(icon = src.icon, icon_state = "[case_type]", pixel_x = 3 * (i - 1) )) if(open) add_overlay("[icon_state]_open") else @@ -34,14 +35,16 @@ /obj/structure/guncase/attackby(obj/item/I, mob/user, params) if(iscyborg(user) || isalien(user)) return - if(istype(I, gun_category)) - if(contents.len < capacity && open) + if(istype(I, gun_category) && open) + if(LAZYLEN(contents) < capacity) if(!user.drop_item()) return - contents += I + I.forceMove(src) to_chat(user, "You place [I] in [src].") update_icon() - return + else + to_chat(user, "[src] is full.") + return else if(user.a_intent != INTENT_HARM) open = !open @@ -62,9 +65,10 @@ var/dat = {"

Stored Guns

"} - for(var/i = contents.len, i >= 1, i--) - var/obj/item/I = contents[i] - dat += "[I.name]
" + if(LAZYLEN(contents)) + for(var/i in 1 to contents.len) + var/obj/item/I = contents[i] + dat += "[I.name]
" dat += "
" var/datum/browser/popup = new(user, "gunlocker", "
[name]
", 350, 300) @@ -76,7 +80,7 @@ var/obj/item/O = locate(href_list["retrieve"]) in contents if(!O || !istype(O)) return - if(!usr.canUseTopic(src)) + if(!usr.canUseTopic(src) || !open) return if(ishuman(usr)) if(!usr.put_in_hands(O))