/obj/item/storage/wallet name = "wallet" desc = "It can hold a few small and personal things." icon_state = "wallet" w_class = WEIGHT_CLASS_SMALL resistance_flags = FLAMMABLE slot_flags = SLOT_ID var/obj/item/card/id/front_id = null var/list/combined_access /obj/item/storage/wallet/ComponentInitialize() . = ..() GET_COMPONENT(STR, /datum/component/storage) STR.max_items = 4 STR.can_hold = typecacheof(list( /obj/item/stack/spacecash, /obj/item/card, /obj/item/clothing/mask/cigarette, /obj/item/flashlight/pen, /obj/item/seeds, /obj/item/stack/medical, /obj/item/toy/crayon, /obj/item/coin, /obj/item/dice, /obj/item/disk, /obj/item/implanter, /obj/item/lighter, /obj/item/lipstick, /obj/item/match, /obj/item/paper, /obj/item/pen, /obj/item/photo, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/screwdriver, /obj/item/stamp)) /obj/item/storage/wallet/Exited(atom/movable/AM) . = ..() refreshID() /obj/item/storage/wallet/proc/refreshID() if(!(front_id in src)) front_id = null for(var/obj/item/card/id/I in contents) LAZYINITLIST(combined_access) LAZYCLEARLIST(combined_access) if(!front_id) front_id = I combined_access |= I.access update_icon() /obj/item/storage/wallet/Entered(atom/movable/AM) . = ..() refreshID() /obj/item/storage/wallet/update_icon() var/new_state = "wallet" if(front_id) new_state = "wallet_[front_id.icon_state]" if(new_state != icon_state) //avoid so many icon state changes. icon_state = new_state /obj/item/storage/wallet/GetID() return front_id /obj/item/storage/wallet/GetAccess() if(LAZYLEN(combined_access)) return combined_access else return ..() /obj/item/storage/wallet/random icon_state = "random_wallet" /obj/item/storage/wallet/random/PopulateContents() var/item1_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) var/item2_type if(prob(50)) item2_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) var/item3_type = pick( /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/gold, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron ) spawn(2) if(item1_type) new item1_type(src) if(item2_type) new item2_type(src) if(item3_type) new item3_type(src) update_icon()