/obj/structure/noticeboard name = "notice board" desc = "A board for pinning important notices upon." icon = 'icons/obj/stationobjs.dmi' icon_state = "nboard00" density = FALSE anchored = TRUE max_integrity = 150 var/notices = 0 /obj/structure/noticeboard/Initialize(mapload) . = ..() if(!mapload) return for(var/obj/item/I in loc) if(notices > 4) break if(istype(I, /obj/item/paper)) I.forceMove(src) notices++ icon_state = "nboard0[notices]" //attaching papers!! /obj/structure/noticeboard/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/paper) || istype(O, /obj/item/photo)) if(!allowed(user)) to_chat(user, "You are not authorized to add notices!") return if(notices < 5) if(!user.transferItemToLoc(O, src)) return notices++ icon_state = "nboard0[notices]" to_chat(user, "You pin the [O] to the noticeboard.") else to_chat(user, "The notice board is full!") else return ..() /obj/structure/noticeboard/interact(mob/user) ui_interact(user) /obj/structure/noticeboard/ui_interact(mob/user) . = ..() var/auth = allowed(user) var/dat = "[name]
" for(var/obj/item/P in src) if(istype(P, /obj/item/paper)) dat += "[P.name] [auth ? "Write Remove" : ""]
" else dat += "[P.name] [auth ? "Remove" : ""]
" user << browse("Notices[dat]","window=noticeboard") onclose(user, "noticeboard") /obj/structure/noticeboard/Topic(href, href_list) ..() usr.set_machine(src) if(href_list["remove"]) if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED)) //For when a player is handcuffed while they have the notice window open return var/obj/item/I = locate(href_list["remove"]) in contents if(istype(I) && I.loc == src) I.forceMove(usr.loc) usr.put_in_hands(I) notices-- icon_state = "nboard0[notices]" if(href_list["write"]) if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED)) //For when a player is handcuffed while they have the notice window open return var/obj/item/P = locate(href_list["write"]) in contents if(istype(P) && P.loc == src) var/obj/item/I = usr.is_holding_item_of_type(/obj/item/pen) if(I) add_fingerprint(usr) P.attackby(I, usr) else to_chat(usr, "You'll need something to write with!") if(href_list["read"]) var/obj/item/I = locate(href_list["read"]) in contents if(istype(I) && I.loc == src) usr.examinate(I) /obj/structure/noticeboard/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) new /obj/item/stack/sheet/iron (loc, 1) qdel(src) // Notice boards for the heads of staff (plus the qm) /obj/structure/noticeboard/captain name = "Captain's Notice Board" desc = "Important notices from the Captain." req_access = list(ACCESS_CAPTAIN) /obj/structure/noticeboard/hop name = "Head of Personnel's Notice Board" desc = "Important notices from the Head of Personnel." req_access = list(ACCESS_HOP) /obj/structure/noticeboard/ce name = "Chief Engineer's Notice Board" desc = "Important notices from the Chief Engineer." req_access = list(ACCESS_CE) /obj/structure/noticeboard/hos name = "Head of Security's Notice Board" desc = "Important notices from the Head of Security." req_access = list(ACCESS_HOS) /obj/structure/noticeboard/cmo name = "Chief Medical Officer's Notice Board" desc = "Important notices from the Chief Medical Officer." req_access = list(ACCESS_CMO) /obj/structure/noticeboard/rd name = "Research Director's Notice Board" desc = "Important notices from the Research Director." req_access = list(ACCESS_RD) /obj/structure/noticeboard/qm name = "Quartermaster's Notice Board" desc = "Important notices from the Quartermaster." req_access = list(ACCESS_QM) /obj/structure/noticeboard/staff name = "Staff Notice Board" desc = "Important notices from the heads of staff." req_access = list(ACCESS_HEADS)