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-30 21:53:03 +02:00
committed by Erki
parent 6018bffe1f
commit 3c38c19f2a
21 changed files with 138 additions and 56 deletions
@@ -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)
+6 -4
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)
+24 -19
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)
+50 -26
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")
+6 -5
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"
+5 -2
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
@@ -0,0 +1,45 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
# admin
# backend
# security
# refactor
#################################
# Your name.
author: WowzewoW
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- tweak: "Tweaks some bureaucracy and library sprites."
- tweak: "Reverts pen sprite with some improvements."
- soundadd: "Filing cabinets, boxes and paper have new sounds."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.