/obj/item/paper_bundle name = "paper bundle" gender = NEUTER icon = 'icons/obj/bureaucracy.dmi' icon_state = "paper" item_state = "paper" throwforce = 0 w_class = ITEMSIZE_SMALL throw_range = 2 throw_speed = 1 plane = MOB_PLANE layer = MOB_LAYER pressure_resistance = 1 attack_verb = list("bapped") drop_sound = 'sound/items/drop/paper.ogg' pickup_sound = 'sound/items/pickup/paper.ogg' var/page = 1 // current page var/list/pages = list() // Ordered list of pages as they are to be displayed. Can be different order than src.contents. /obj/item/paper_bundle/attackby(obj/item/W as obj, mob/user as mob) ..() if (istype(W, /obj/item/paper/carbon)) var/obj/item/paper/carbon/C = W if (!C.iscopy && !C.copied) to_chat(user, span_notice("Take off the carbon copy first.")) add_fingerprint(user) return // adding sheets if(istype(W, /obj/item/paper) || istype(W, /obj/item/photo)) insert_sheet_at(user, pages.len+1, W) // burning else if(istype(W, /obj/item/flame)) burnpaper(W, user) // merging bundles else if(istype(W, /obj/item/paper_bundle)) user.drop_from_inventory(W) for(var/obj/O in W) O.loc = src O.add_fingerprint(usr) pages.Add(O) to_chat(user, span_notice("You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")) qdel(W) else if(istype(W, /obj/item/tape_roll)) return 0 if(istype(W, /obj/item/pen)) usr << browse("", "window=[name]") //Closes the dialog var/obj/P = pages[page] P.attackby(W, user) update_icon() attack_self(usr) //Update the browsed page. add_fingerprint(usr) return /obj/item/paper_bundle/proc/insert_sheet_at(mob/user, var/index, obj/item/sheet) if(istype(sheet, /obj/item/paper)) to_chat(user, span_notice("You add [(sheet.name == "paper") ? "the paper" : sheet.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")) else if(istype(sheet, /obj/item/photo)) to_chat(user, span_notice("You add [(sheet.name == "photo") ? "the photo" : sheet.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")) user.drop_from_inventory(sheet) sheet.loc = src pages.Insert(index, sheet) if(index <= page) page++ /obj/item/paper_bundle/proc/burnpaper(obj/item/flame/P, mob/user) var/class = "warning" if(P.lit && !user.restrained()) if(istype(P, /obj/item/flame/lighter/zippo)) class = "rose>" var/datum/gender/TU = gender_datums[user.get_visible_gender()] user.visible_message("[user] holds \the [P] up to \the [src], it looks like [TU.he] [TU.is] trying to burn it!", \ "You hold \the [P] up to \the [src], burning it slowly.") spawn(20) if(get_dist(src, user) < 2 && user.get_active_hand() == P && P.lit) user.visible_message("[user] burns right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.", \ "You burn right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.") if(user.get_inactive_hand() == src) user.drop_from_inventory(src) new /obj/effect/decal/cleanable/ash(src.loc) qdel(src) else to_chat(user, span_red("You must hold \the [P] steady to burn \the [src].")) /obj/item/paper_bundle/examine(mob/user) . = ..() if(Adjacent(user)) show_content(user) else . += span_notice("It is too far away.") /obj/item/paper_bundle/proc/show_content(mob/user as mob) var/dat var/obj/item/W = pages[page] // first if(page == 1) dat+= "
" dat+= "" dat+= "
Written on the back: