mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-27 17:41:50 +00:00
Big Paperwork: Adds the Paperwork loan offer, paperwork fraud, and ancient paperwork! (#70863) Adds paperwork -- an indecipherable mess of papers that only a seasoned department head could hope to decipher. If processed and sent to Central Command via the cargo shuttle, the budget gets a bonus. Paperwork is distributed through a new Shuttle Loan offer. A nearby station needs some paperwork reviewed. Do you have what it takes to handle BIG PAPERWORK? Processing paperwork is relatively simple. You can inspect it to see which head of staff it "belongs" to, and you can use their stamp to complete it. You get a lot of these, so the bonuses can add up if you get them all in. Just be careful not to return any unprocessed paperwork. With big paperwork comes big paperwork fraud, and big fines. You can photocopy your completed paperwork to double-dip with Central Command and squeeze out a little bit more money. The more paperwork fraud you commit, the higher the chance you'll be caught and fined. On top of that: Some say that in the long forgotten halls of maintenance, there lies _ancient paperwork_. Documents whose importance has long since passed, but are still important for bookkeeping at Central Command. With a keen eye, you might spot one of these while scouring through maintenance. Make sure it gets forwarded to the right person, cargo will thank you. Co-authored-by: Rhials <Datguy33456@gmail.com>
127 lines
3.4 KiB
Plaintext
127 lines
3.4 KiB
Plaintext
/obj/item/folder//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE
|
|
name = "folder"
|
|
desc = "A folder."
|
|
icon = 'icons/obj/bureaucracy.dmi'
|
|
icon_state = "folder"
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
pressure_resistance = 2
|
|
resistance_flags = FLAMMABLE
|
|
/// The background color for tgui in hex (with a `#`)
|
|
var/bg_color = "#7f7f7f"
|
|
/// A typecache of the objects that can be inserted into a folder
|
|
var/static/list/folder_insertables = typecacheof(list(
|
|
/obj/item/paper,
|
|
/obj/item/photo,
|
|
/obj/item/documents,
|
|
/obj/item/paperwork,
|
|
))
|
|
|
|
/obj/item/folder/suicide_act(mob/living/user)
|
|
user.visible_message(span_suicide("[user] begins filing an imaginary death warrant! It looks like [user.p_theyre()] trying to commit suicide!"))
|
|
return OXYLOSS
|
|
|
|
/obj/item/folder/Initialize(mapload)
|
|
update_icon()
|
|
. = ..()
|
|
|
|
/obj/item/folder/Destroy()
|
|
for(var/obj/important_thing in contents)
|
|
if(!(important_thing.resistance_flags & INDESTRUCTIBLE))
|
|
continue
|
|
important_thing.forceMove(drop_location()) //don't destroy round critical content such as objective documents.
|
|
return ..()
|
|
|
|
/obj/item/folder/examine()
|
|
. = ..()
|
|
if(length(contents))
|
|
. += span_notice("Right-click to remove [contents[1]].")
|
|
|
|
/obj/item/folder/proc/rename(mob/user, obj/item/writing_instrument)
|
|
if(!user.can_write(writing_instrument))
|
|
return
|
|
|
|
var/inputvalue = tgui_input_text(user, "What would you like to label the folder?", "Folder Labelling", max_length = MAX_NAME_LEN)
|
|
|
|
if(!inputvalue)
|
|
return
|
|
|
|
if(user.canUseTopic(src, be_close = TRUE))
|
|
name = "folder[(inputvalue ? " - '[inputvalue]'" : null)]"
|
|
|
|
/obj/item/folder/proc/remove_item(obj/item/Item, mob/user)
|
|
if(istype(Item))
|
|
Item.forceMove(user.loc)
|
|
user.put_in_hands(Item)
|
|
to_chat(user, span_notice("You remove [Item] from [src]."))
|
|
update_icon()
|
|
|
|
/obj/item/folder/attack_hand(mob/user, list/modifiers)
|
|
if(length(contents) && LAZYACCESS(modifiers, RIGHT_CLICK))
|
|
remove_item(contents[1], user)
|
|
return TRUE
|
|
. = ..()
|
|
|
|
/obj/item/folder/update_overlays()
|
|
. = ..()
|
|
if(contents.len)
|
|
. += "folder_paper"
|
|
|
|
/obj/item/folder/attackby(obj/item/weapon, mob/user, params)
|
|
if(burn_paper_product_attackby_check(weapon, user))
|
|
return
|
|
if(is_type_in_typecache(weapon, folder_insertables))
|
|
//Add paper, photo or documents into the folder
|
|
if(!user.transferItemToLoc(weapon, src))
|
|
return
|
|
to_chat(user, span_notice("You put [weapon] into [src]."))
|
|
update_appearance()
|
|
else if(istype(weapon, /obj/item/pen))
|
|
rename(user, weapon)
|
|
|
|
/obj/item/folder/attack_self(mob/user)
|
|
add_fingerprint(usr)
|
|
ui_interact(user)
|
|
return
|
|
|
|
/obj/item/folder/ui_interact(mob/user, datum/tgui/ui)
|
|
ui = SStgui.try_update_ui(user, src, ui)
|
|
if(!ui)
|
|
ui = new(user, src, "Folder")
|
|
ui.open()
|
|
|
|
/obj/item/folder/ui_data(mob/user)
|
|
var/list/data = list()
|
|
if(istype(src, /obj/item/folder/syndicate))
|
|
data["theme"] = "syndicate"
|
|
data["bg_color"] = "[bg_color]"
|
|
data["folder_name"] = "[name]"
|
|
|
|
data["contents"] = list()
|
|
data["contents_ref"] = list()
|
|
for(var/Content in src)
|
|
data["contents"] += "[Content]"
|
|
data["contents_ref"] += "[REF(Content)]"
|
|
|
|
return data
|
|
|
|
/obj/item/folder/ui_act(action, params)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
|
|
if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED))
|
|
return
|
|
|
|
switch(action)
|
|
// Take item out
|
|
if("remove")
|
|
var/obj/item/Item = locate(params["ref"]) in src
|
|
remove_item(Item, usr)
|
|
. = TRUE
|
|
// Inspect the item
|
|
if("examine")
|
|
var/obj/item/Item = locate(params["ref"]) in src
|
|
if(istype(Item))
|
|
usr.examinate(Item)
|
|
. = TRUE
|