/obj/structure/janitorialcart name = "janitorial cart" desc = "This is the alpha and omega of sanitation." icon = 'icons/obj/janitor.dmi' icon_state = "cart" anchored = FALSE density = TRUE container_type = OPENCONTAINER //copypaste sorry var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite var/obj/item/storage/bag/trash/mybag = null var/obj/item/mop/mymop = null var/obj/item/reagent_containers/spray/cleaner/myspray = null var/obj/item/lightreplacer/myreplacer = null var/signs = 0 var/const/max_signs = 4 /obj/structure/janitorialcart/Initialize() . = ..() create_reagents(100) /obj/structure/janitorialcart/proc/wet_mop(obj/item/mop, mob/user) if(reagents.total_volume < 1) to_chat(user, "[src] is out of water!") return 0 else reagents.trans_to(mop, 5) to_chat(user, "You wet [mop] in [src].") playsound(loc, 'sound/effects/slosh.ogg', 25, 1) return 1 /obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user) if(!user.transferItemToLoc(I, src)) return updateUsrDialog() to_chat(user, "You put [I] into [src].") return /obj/structure/janitorialcart/attackby(obj/item/I, mob/user, params) var/fail_msg = "There is already one of those in [src]!" if(istype(I, /obj/item/mop)) var/obj/item/mop/m=I if(m.reagents.total_volume < m.reagents.maximum_volume) if (wet_mop(m, user)) return if(!mymop) m.janicart_insert(user, src) else to_chat(user, fail_msg) else if(istype(I, /obj/item/storage/bag/trash)) if(!mybag) var/obj/item/storage/bag/trash/t=I t.janicart_insert(user, src) else to_chat(user, fail_msg) else if(istype(I, /obj/item/reagent_containers/spray/cleaner)) if(!myspray) put_in_cart(I, user) myspray=I update_icon() else to_chat(user, fail_msg) else if(istype(I, /obj/item/lightreplacer)) if(!myreplacer) var/obj/item/lightreplacer/l=I l.janicart_insert(user,src) else to_chat(user, fail_msg) else if(istype(I, /obj/item/caution)) if(signs < max_signs) put_in_cart(I, user) signs++ update_icon() else to_chat(user, "[src] can't hold any more signs!") else if(mybag) mybag.attackby(I, user) else if(istype(I, /obj/item/crowbar)) user.visible_message("[user] begins to empty the contents of [src].", "You begin to empty the contents of [src]...") if(I.use_tool(src, user, 30)) to_chat(usr, "You empty the contents of [src]'s bucket onto the floor.") reagents.reaction(src.loc) src.reagents.clear_reagents() else return ..() /obj/structure/janitorialcart/attack_hand(mob/user) . = ..() if(.) return user.set_machine(src) var/dat if(mybag) dat += "[mybag.name]
" if(mymop) dat += "[mymop.name]
" if(myspray) dat += "[myspray.name]
" if(myreplacer) dat += "[myreplacer.name]
" if(signs) dat += "[signs] sign\s
" var/datum/browser/popup = new(user, "janicart", name, 240, 160) popup.set_content(dat) popup.open() /obj/structure/janitorialcart/Topic(href, href_list) if(!in_range(src, usr)) return if(!isliving(usr)) return var/mob/living/user = usr if(href_list["garbage"]) if(mybag) user.put_in_hands(mybag) to_chat(user, "You take [mybag] from [src].") mybag = null if(href_list["mop"]) if(mymop) user.put_in_hands(mymop) to_chat(user, "You take [mymop] from [src].") mymop = null if(href_list["spray"]) if(myspray) user.put_in_hands(myspray) to_chat(user, "You take [myspray] from [src].") myspray = null if(href_list["replacer"]) if(myreplacer) user.put_in_hands(myreplacer) to_chat(user, "You take [myreplacer] from [src].") myreplacer = null if(href_list["sign"]) if(signs) var/obj/item/caution/Sign = locate() in src if(Sign) user.put_in_hands(Sign) to_chat(user, "You take \a [Sign] from [src].") signs-- else WARNING("Signs ([signs]) didn't match contents") signs = 0 update_icon() updateUsrDialog() /obj/structure/janitorialcart/update_icon() cut_overlays() if(mybag) add_overlay("cart_garbage") if(mymop) add_overlay("cart_mop") if(myspray) add_overlay("cart_spray") if(myreplacer) add_overlay("cart_replacer") if(signs) add_overlay("cart_sign[signs]") if(reagents.total_volume > 0) add_overlay("cart_water")