bureaucracy and library update 2 : electric boogaloo (#6182)

tweak: "Tweaks some bureaucracy sprites."
tweak: "Reverts pen sprite with some improvements."
soundadd: "boxes filing cabinets and paper make noises"
also put all the bureaucracy in a nice file
This commit is contained in:
alsoandanswer
2019-03-31 03:53:03 +08:00
committed by Erki
parent 6018bffe1f
commit 3c38c19f2a
21 changed files with 138 additions and 56 deletions

View File

@@ -26,6 +26,7 @@
desc = "It's just an ordinary box."
icon_state = "box"
item_state = "syringe_kit"
use_sound = 'sound/items/storage/box.ogg'
var/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
var/maxHealth = 20 //health is already defined
@@ -96,6 +97,7 @@
return
// Now make the cardboard
to_chat(user, "<span class='notice'>You fold [src] flat.</span>")
playsound(src.loc, 'sound/items/storage/boxfold.ogg', 30, 1)
new src.foldable(get_turf(src))
qdel(src)

View File

@@ -38,8 +38,9 @@
if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo) || istype(P, /obj/item/weapon/paper_bundle))
to_chat(user, "<span class='notice'>You put [P] in [src].</span>")
user.drop_from_inventory(P,src)
icon_state = "[initial(icon_state)]-open"
sleep(5)
flick("[initial(icon_state)]-open",src)
playsound(loc, 'sound/bureaucracy/filingcabinet.ogg', 50, 1)
sleep(40)
icon_state = initial(icon_state)
updateUsrDialog()
else if(P.iswrench())
@@ -90,9 +91,10 @@
if(istype(P) && (P.loc == src) && src.Adjacent(usr))
usr.put_in_hands(P)
updateUsrDialog()
icon_state = "[initial(icon_state)]-open"
flick("[initial(icon_state)]-open",src)
playsound(loc, 'sound/bureaucracy/filingcabinet.ogg', 50, 1)
spawn(0)
sleep(5)
sleep(20)
icon_state = initial(icon_state)

View File

@@ -91,11 +91,11 @@
to_chat(user, span("notice", "You're going to have to unfold it before you can read it."))
return
if(name != "sheet of paper")
to_chat(user, "It's titled '[name]'.")
to_chat(user,"It's titled '[name]'.")
if(in_range(user, src) || isobserver(user))
show_content(usr)
else
to_chat(user, "<span class='notice'>You have to go closer if you want to read it.</span>")
to_chat(user, span("notice", "You have to go closer if you want to read it."))
/obj/item/weapon/paper/proc/show_content(mob/user, forceshow)
@@ -112,7 +112,7 @@
set src in usr
if((CLUMSY in usr.mutations) && prob(50))
to_chat(usr, "<span class='warning'>You cut yourself on the paper.</span>")
to_chat(usr, span("warning", "You cut yourself on the paper."))
return
var/n_name = sanitizeSafe(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text, MAX_NAME_LEN)
@@ -128,9 +128,10 @@
return
//crumple dat paper
info = stars(info,85)
user.visible_message("\The [user] crumples \the [src] into a ball!", "You crumple \the [src] into a ball.", "You hear crinkling.")
user.visible_message("\The [user] crumples \the [src] into a ball!", "You crumple \the [src] into a ball.")
playsound(src, 'sound/bureaucracy/papercrumple.ogg', 50, 1)
icon_state = "scrap"
throw_range = 8
throw_range = 4 //you can now make epic paper ball hoops into the disposals (kinda dumb that you could only throw crumpled paper 1 tile) -wezzy
return
if (user.a_intent == I_GRAB && icon_state != "scrap" && !istype(src, /obj/item/weapon/paper/carbon))
@@ -138,7 +139,8 @@
user.show_message(span("alert", "The paper is already folded into a plane."))
return
user.visible_message(span("notice", "\The [user] carefully folds \the [src] into a plane."),
span("notice", "You carefully fold \the [src] into a plane."), "You hear paper rustling.")
span("notice", "You carefully fold \the [src] into a plane."), "\The [user] folds \the [src] into a plane.")
playsound(src, 'sound/bureaucracy/paperfold.ogg', 50, 1)
icon_state = "paper_plane"
throw_range = 8
old_name = name
@@ -147,6 +149,7 @@
if (user.a_intent == I_HELP && old_name && icon_state == "paper_plane")
user.visible_message(span("notice", "\The [user] unfolds \the [src]."), span("notice", "You unfold \the [src]."), "You hear paper rustling.")
playsound(src, 'sound/bureaucracy/paperfold.ogg', 50, 1)
icon_state = initial(icon_state)
throw_range = initial(throw_range)
name = old_name
@@ -175,7 +178,7 @@
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H == user)
to_chat(user, "<span class='notice'>You wipe off the lipstick with [src].</span>")
to_chat(user, span("notice", "You wipe off the lipstick with [src]."))
H.lip_style = null
H.update_body()
else
@@ -317,6 +320,8 @@
user.visible_message("<span class='[class]'>[user] holds \the [P] up to \the [src], it looks like \he's trying to burn it!</span>", \
"<span class='[class]'>You hold \the [P] up to \the [src], burning it slowly.</span>")
playsound(src.loc, 'sound/bureaucracy/paperburn.ogg', 50, 1)
icon_state = "paper_onfire"
//I was going to add do_after in here, but keeping the current method allows people to burn papers they're holding, while they move. That seems fine to keep -Nanako
spawn(20)
@@ -327,7 +332,7 @@
qdel(src)
else
to_chat(user, "<span class='warning'>You must hold \the [P] steady to burn \the [src].</span>")
to_chat(user, span("warning", "You must hold \the [P] steady to burn \the [src]."))
/obj/item/weapon/paper/Topic(href, href_list)
@@ -340,7 +345,7 @@
//var/t = strip_html_simple(input(usr, "What text do you wish to add to " + (id=="end" ? "the end of the paper" : "field "+id) + "?", "[name]", null),8192) as message
if(free_space <= 0)
to_chat(usr, "<span class='info'>There isn't enough space left on \the [src] to write anything.</span>")
to_chat(usr, span("info", "There isn't enough space left on \the [src] to write anything."))
return
var/t = sanitize(input("Enter what you want to write:", "Write", null, null) as message, free_space, extra = 0)
@@ -375,7 +380,7 @@
if(fields > 50)//large amount of fields creates a heavy load on the server, see updateinfolinks() and addtofield()
to_chat(usr, "<span class='warning'>Too many fields. Sorry, you can't do this.</span>")
to_chat(usr, span("warning", "Too many fields. Sorry, you can't do this."))
fields = last_fields_value
return
@@ -387,9 +392,9 @@
update_space(t)
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY bgcolor='[color]'>[info_links][stamps]</BODY></HTML>", "window=[name]") // Update the window)
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY bgcolor='[color]'>[info_links][stamps]</BODY></HTML>", "window=[name]") // Update the window
playsound(src, pick('sound/items/pen1.ogg','sound/items/pen2.ogg'), 10)
playsound(src, pick('sound/bureaucracy/pen1.ogg','sound/bureaucracy/pen2.ogg'), 10)
update_icon()
@@ -408,7 +413,7 @@
if (istype(P, /obj/item/weapon/paper/carbon))
var/obj/item/weapon/paper/carbon/C = P
if (!C.iscopy && !C.copied)
to_chat(user, "<span class='notice'>Take off the carbon copy first.</span>")
to_chat(user, span("notice", "Take off the carbon copy first."))
add_fingerprint(user)
return
var/obj/item/weapon/paper_bundle/B = new(src.loc)
@@ -445,7 +450,7 @@
src.forceMove(get_turf(h_user))
if(h_user.client) h_user.client.screen -= src
h_user.put_in_hands(B)
to_chat(user, "<span class='notice'>You clip the [P.name] to [(src.name == "paper") ? "the paper" : src.name].</span>")
to_chat(user, span("notice", "You clip the [P.name] to [(src.name == "paper") ? "the paper" : src.name]."))
src.forceMove(B)
B.pages.Add(src)
@@ -455,7 +460,7 @@
else if(istype(P, /obj/item/weapon/pen))
if(icon_state == "scrap")
to_chat(usr, "<span class='warning'>\The [src] is too crumpled to write on.</span>")
to_chat(user, span("warning", "The [src] is too crumpled to write on."))
return
var/obj/item/weapon/pen/robopen/RP = P
@@ -486,7 +491,7 @@
if(istype(P, /obj/item/weapon/stamp/clown))
if(!clown)
to_chat(user, "<span class='notice'>You are totally unable to use the stamp. HONK!</span>")
to_chat(user, span("notice", "You are totally unable to use the stamp. HONK!"))
return
if(!ico)
@@ -499,10 +504,10 @@
stamped += P.type
add_overlay(stampoverlay)
playsound(src, 'sound/items/stamp.ogg', 50, 1)
to_chat(user, "<span class='notice'>You stamp the paper with \the [P].</span>")
playsound(src, 'sound/bureaucracy/stamp.ogg', 50, 1)
to_chat(user, span("notice", "You stamp the paper with \the [P]."))
else if(istype(P, /obj/item/weapon/flame))
else if(istype(P, /obj/item/weapon/flame) || P.iswelder())
burnpaper(P, user)
else if(P.iswelder())
burnpaper(P, user)

View File

@@ -46,7 +46,7 @@
if (paper_result > 0)
paperamount += paper_result
qdel(W)
playsound(src.loc, 'sound/items/pshred.ogg', 75, 1)
playsound(src.loc, 'sound/bureaucracy/papershred.ogg', 75, 1)
to_chat(user, span("notice", "You shred the paper."))
flick("papershredder_on", src)
if(paperamount > max_paper)
@@ -107,8 +107,19 @@
paperamount--
return new /obj/item/weapon/shreddedp(get_turf(src))
/obj/machinery/papershredder/update_icon()
icon_state = "papershredder[max(0,min(5,Floor(paperamount/2)))]"
/obj/machinery/papershredder/update_icon() //makes it show how full the papershredder is while covering up the animation. Seemsgood - Wezzy
cut_overlays()
switch(paperamount)
if(2 to 3)
add_overlay("papershredder1")
if(4 to 5)
add_overlay("papershredder2")
if(6 to 7)
add_overlay("papershredder3")
if(8 to 9)
add_overlay("papershredder4")
if(10)
add_overlay("papershredder5")
/obj/item/weapon/shreddedp/attackby(var/obj/item/W as obj, var/mob/user)
if(istype(W, /obj/item/weapon/flame/lighter))
@@ -116,36 +127,49 @@
else
..()
/obj/item/weapon/shreddedp/proc/burnpaper(var/obj/item/weapon/flame/lighter/P, var/mob/user)
if(user.restrained())
return
if(!P.lit)
to_chat(user, "<span class='warning'>\The [P] is not lit.</span>")
return
user.visible_message("<span class='warning'>\The [user] holds \the [P] up to \the [src]. It looks like \he's trying to burn it!</span>", \
"<span class='warning'>You hold \the [P] up to \the [src], burning it slowly.</span>")
if(!do_after(user,20))
to_chat(user, "<span class='warning'>You must hold \the [P] steady to burn \the [src].</span>")
return
user.visible_message("<span class='danger'>\The [user] burns right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.</span>", \
"<span class='danger'>You burn right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.</span>")
FireBurn()
/obj/item/weapon/shreddedp/proc/burnpaper(obj/item/weapon/P, mob/user)
var/class = "warning"
if (!user.restrained())
if (istype(P, /obj/item/weapon/flame))
var/obj/item/weapon/flame/F = P
if (!F.lit)
return
else if (P.iswelder())
var/obj/item/weapon/weldingtool/F = P // NOW THAT'S WHAT I CALL RECYCLING - wezzy
if (!F.welding)
return
if (!F.remove_fuel(1, user))
return
else
return
if(istype(P, /obj/item/weapon/flame/lighter/zippo))
class = "rose"
user.visible_message("<span class='[class]'>[user] holds \the [P] up to \the [src], it looks like \he's trying to burn it!</span>", \
"<span class='[class]'>You hold \the [P] up to \the [src], burning it slowly.</span>")
playsound(src.loc, 'sound/bureaucracy/paperburn.ogg', 50, 1)
icon_state = "shredp_onfire" //no do_after here, so people can walk n' burn at the same time. -wezzy
spawn(20)
if(get_dist(src, user) < 2 && user.get_active_hand() == P)
user.visible_message("<span class='[class]'>[user] burns right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.</span>", \
"<span class='[class]'>You burn right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.</span>")
new /obj/effect/decal/cleanable/ash(src.loc)
qdel(src)
else
to_chat(user, span("warning", "You must hold \the [P] steady to burn \the [src]."))
/obj/item/weapon/shreddedp/proc/FireBurn()
new /obj/effect/decal/cleanable/ash(get_turf(src))
qdel(src)
/obj/item/weapon/shreddedp
name = "shredded paper"
desc = "The remains of a private, confidential, or otherwise sensitive document."
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "shredp"
throwforce = 0
w_class = 1
throw_range = 3
throw_speed = 1
/obj/item/weapon/shreddedp/New()
..()
pixel_x = rand(-5,5)
pixel_y = rand(-5,5)
if(prob(65)) color = pick("#BABABA","#7F7F7F")

View File

@@ -10,7 +10,7 @@
* Pens
*/
/obj/item/weapon/pen
desc = "It's a normal black ink pen."
desc = "An instrument for writing or drawing with ink. This one is in black. Stylish, classic and professional."
name = "pen"
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "pen"
@@ -25,17 +25,18 @@
/obj/item/weapon/pen/blue
desc = "It's a normal blue ink pen."
desc = "An instrument for writing or drawing with ink. This one is in blue. Ironically used mostly by white-collar workers."
icon_state = "pen_blue"
colour = "blue"
/obj/item/weapon/pen/red
desc = "It's a normal red ink pen."
desc = "An instrument for writing or drawing with ink. This one is in red. Favored by teachers and creeps who like to pretend to write in blood."
icon_state = "pen_red"
colour = "red"
/obj/item/weapon/pen/multi
desc = "It's a pen with multiple colors of ink!"
desc = "An instrument for writing or drawing with ink. This one comes with with multiple colors! Push down all three simultaneously to rule the universe."
icon_state = "pen_multi"
var/selectedColor = 1
var/colors = list("black","blue","red")
@@ -53,7 +54,7 @@
to_chat(user, "<span class='notice'>Changed color to '[colour].'</span>")
/obj/item/weapon/pen/invisible
desc = "It's an invisble pen marker."
desc = "An instrument for writing or drawing with ink. This one has invisible ink."
icon_state = "pen"
colour = "white"

View File

@@ -2,7 +2,7 @@
name = "photocopier"
icon = 'icons/obj/library.dmi'
icon_state = "photocopier"
var/insert_anim = "photocopier1"
var/insert_anim = "photocopier_scan"
anchored = 1
density = 1
use_power = 1
@@ -179,11 +179,13 @@ VUEUI_MONITOR_VARS(/obj/machinery/photocopier, photocopiermonitor)
toner--
if(toner == 0)
visible_message("<span class='notice'>A red light on \the [src] flashes, indicating that it is out of toner.</span>")
flick("photocopier_notoner", src)
return
c.set_content_unsafe(pname, info)
if (print)
src.print(c, use_sound, 'sound/items/poster_being_created.ogg', delay)
src.print(c, use_sound, 'sound/bureaucracy/print.ogg', delay)
flick("photocopier_print", src)
return c
/obj/machinery/photocopier/proc/photocopy(var/obj/item/weapon/photo/photocopy)
@@ -204,6 +206,7 @@ VUEUI_MONITOR_VARS(/obj/machinery/photocopier, photocopiermonitor)
if(toner < 0)
toner = 0
visible_message("<span class='notice'>A red light on \the [src] flashes, indicating that it is out of toner.</span>")
flick("photocopier_notoner", src)
return p