/obj/structure/dispenser name = "tank storage unit" desc = "A simple yet bulky storage device for gas tanks. Has room for up to ten oxygen tanks, and ten phoron tanks." icon = 'icons/obj/objects.dmi' icon_state = "dispenser" density = 1 anchored = 1.0 w_class = ITEMSIZE_HUGE var/oxygentanks = 10 var/phorontanks = 10 var/list/oxytanks = list() //sorry for the similar var names var/list/platanks = list() /obj/structure/dispenser/oxygen phorontanks = 0 /obj/structure/dispenser/phoron oxygentanks = 0 /obj/structure/dispenser/New() update_icon() /obj/structure/dispenser/update_icon() overlays.Cut() switch(oxygentanks) if(1 to 3) overlays += "oxygen-[oxygentanks]" if(4 to INFINITY) overlays += "oxygen-4" switch(phorontanks) if(1 to 4) overlays += "phoron-[phorontanks]" if(5 to INFINITY) overlays += "phoron-5" /obj/structure/dispenser/attack_ai(mob/user as mob) if(user.Adjacent(src)) return attack_hand(user) ..() /obj/structure/dispenser/attack_hand(mob/user as mob) user.set_machine(src) var/dat = "[src]

" dat += "Oxygen tanks: [oxygentanks] - [oxygentanks ? "Dispense" : "empty"]
" dat += "Phoron tanks: [phorontanks] - [phorontanks ? "Dispense" : "empty"]" user << browse(dat, "window=dispenser") onclose(user, "dispenser") return /obj/structure/dispenser/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/weapon/tank/oxygen) || istype(I, /obj/item/weapon/tank/air) || istype(I, /obj/item/weapon/tank/anesthetic)) if(oxygentanks < 10) user.drop_item() I.loc = src oxytanks.Add(I) oxygentanks++ user << "You put [I] in [src]." if(oxygentanks < 5) update_icon() else user << "[src] is full." updateUsrDialog() return if(istype(I, /obj/item/weapon/tank/phoron)) if(phorontanks < 10) user.drop_item() I.loc = src platanks.Add(I) phorontanks++ user << "You put [I] in [src]." if(oxygentanks < 6) update_icon() else user << "[src] is full." updateUsrDialog() return if(istype(I, /obj/item/weapon/wrench)) if(anchored) user << "You lean down and unwrench [src]." anchored = 0 else user << "You wrench [src] into place." anchored = 1 return /obj/structure/dispenser/Topic(href, href_list) if(usr.stat || usr.restrained()) return if(Adjacent(usr)) usr.set_machine(src) if(href_list["oxygen"]) if(oxygentanks > 0) var/obj/item/weapon/tank/oxygen/O if(oxytanks.len == oxygentanks) O = oxytanks[1] oxytanks.Remove(O) else O = new /obj/item/weapon/tank/oxygen(loc) O.loc = loc usr << "You take [O] out of [src]." oxygentanks-- update_icon() if(href_list["phoron"]) if(phorontanks > 0) var/obj/item/weapon/tank/phoron/P if(platanks.len == phorontanks) P = platanks[1] platanks.Remove(P) else P = new /obj/item/weapon/tank/phoron(loc) P.loc = loc usr << "You take [P] out of [src]." phorontanks-- update_icon() add_fingerprint(usr) updateUsrDialog() else usr << browse(null, "window=dispenser") return return