//GUNCASES// /obj/structure/guncase name = "gun locker" desc = "A locker that holds guns." icon = 'icons/obj/closet.dmi' icon_state = "shotguncase" anchored = 0 density = 1 opacity = 0 var/case_type = null var/gun_category = /obj/item/weapon/gun var/open = 1 var/capacity = 4 /obj/structure/guncase/New() ..() update_icon() /obj/structure/guncase/initialize() ..() for(var/obj/item/I in loc.contents) if(istype(I, gun_category)) I.loc = 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(open) add_overlay("[icon_state]_open") else add_overlay("[icon_state]_door") /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(!user.drop_item()) return contents += I user << "You place [I] in [src]." update_icon() return else if(user.a_intent != "harm") open = !open update_icon() else return ..() /obj/structure/guncase/attack_hand(mob/user) if(iscyborg(user) || isalien(user)) return if(contents.len && open) ShowWindow(user) else open = !open update_icon() /obj/structure/guncase/proc/ShowWindow(mob/user) var/dat = {"