mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 12:08:28 +01:00
Merge resolution.
This commit is contained in:
@@ -68,14 +68,14 @@
|
||||
//The topmost paper. I don't think there's any way to organise contents in byond, so this is what we're stuck with. -Pete
|
||||
if(toppaper)
|
||||
var/obj/item/weapon/paper/P = toppaper
|
||||
dat += "<A href='?src=\ref[src];write=\ref[P]'>Write</A> <A href='?src=\ref[src];remove=\ref[P]'>Remove</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR><HR>"
|
||||
dat += "<A href='?src=\ref[src];write=\ref[P]'>Write</A> <A href='?src=\ref[src];remove=\ref[P]'>Remove</A> <A href='?src=\ref[src];rename=\ref[P]'>Rename</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR><HR>"
|
||||
|
||||
for(var/obj/item/weapon/paper/P in src)
|
||||
if(P==toppaper)
|
||||
continue
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[P]'>Remove</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR>"
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[P]'>Remove</A> <A href='?src=\ref[src];rename=\ref[P]'>Rename</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR>"
|
||||
for(var/obj/item/weapon/photo/Ph in src)
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[Ph]'>Remove</A> - <A href='?src=\ref[src];look=\ref[Ph]'>[Ph.name]</A><BR>"
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[Ph]'>Remove</A> <A href='?src=\ref[src];rename=\ref[Ph]'>Rename</A> - <A href='?src=\ref[src];look=\ref[Ph]'>[Ph.name]</A><BR>"
|
||||
|
||||
user << browse(dat, "window=clipboard")
|
||||
onclose(user, "clipboard")
|
||||
@@ -129,6 +129,18 @@
|
||||
toppaper = newtop
|
||||
else
|
||||
toppaper = null
|
||||
|
||||
else if(href_list["rename"])
|
||||
var/obj/item/weapon/O = locate(href_list["rename"])
|
||||
|
||||
if(O && (O.loc == src))
|
||||
if(istype(O, /obj/item/weapon/paper))
|
||||
var/obj/item/weapon/paper/to_rename = O
|
||||
to_rename.rename()
|
||||
|
||||
else if(istype(O, /obj/item/weapon/photo))
|
||||
var/obj/item/weapon/photo/to_rename = O
|
||||
to_rename.rename()
|
||||
|
||||
else if(href_list["read"])
|
||||
var/obj/item/weapon/paper/P = locate(href_list["read"])
|
||||
|
||||
@@ -189,7 +189,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
|
||||
else if (istype(copyitem, /obj/item/weapon/photo))
|
||||
rcvdcopy = photocopy(copyitem)
|
||||
else if (istype(copyitem, /obj/item/weapon/paper_bundle))
|
||||
rcvdcopy = bundlecopy(copyitem)
|
||||
rcvdcopy = bundlecopy(copyitem, 0)
|
||||
else
|
||||
visible_message("[src] beeps, \"Error transmitting message.\"")
|
||||
return
|
||||
|
||||
@@ -44,11 +44,11 @@
|
||||
var/dat = "<title>[name]</title>"
|
||||
|
||||
for(var/obj/item/weapon/paper/P in src)
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[P]'>Remove</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR>"
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[P]'>Remove</A> <A href='?src=\ref[src];rename=\ref[P]'>Rename</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR>"
|
||||
for(var/obj/item/weapon/photo/Ph in src)
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[Ph]'>Remove</A> - <A href='?src=\ref[src];look=\ref[Ph]'>[Ph.name]</A><BR>"
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[Ph]'>Remove</A> <A href='?src=\ref[src];rename=\ref[Ph]'>Rename</A> - <A href='?src=\ref[src];look=\ref[Ph]'>[Ph.name]</A><BR>"
|
||||
for(var/obj/item/weapon/paper_bundle/Pb in src)
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[Pb]'>Remove</A> - <A href='?src=\ref[src];browse=\ref[Pb]'>[Pb.name]</A><BR>"
|
||||
dat += "<A href='?src=\ref[src];remove=\ref[Pb]'>Remove</A> <A href='?src=\ref[src];rename=\ref[Pb]'>Rename</A> - <A href='?src=\ref[src];browse=\ref[Pb]'>[Pb.name]</A><BR>"
|
||||
user << browse(dat, "window=folder")
|
||||
onclose(user, "folder")
|
||||
add_fingerprint(usr)
|
||||
@@ -85,7 +85,22 @@
|
||||
if(P && (P.loc == src) && istype(P))
|
||||
P.attack_self(usr)
|
||||
onclose(usr, "[P.name]")
|
||||
|
||||
else if(href_list["rename"])
|
||||
var/obj/item/weapon/O = locate(href_list["rename"])
|
||||
|
||||
if(O && (O.loc == src))
|
||||
if(istype(O, /obj/item/weapon/paper))
|
||||
var/obj/item/weapon/paper/to_rename = O
|
||||
to_rename.rename()
|
||||
|
||||
else if(istype(O, /obj/item/weapon/photo))
|
||||
var/obj/item/weapon/photo/to_rename = O
|
||||
to_rename.rename()
|
||||
|
||||
else if(istype(O, /obj/item/weapon/paper_bundle))
|
||||
var/obj/item/weapon/paper_bundle/to_rename = O
|
||||
to_rename.rename()
|
||||
|
||||
//Update everything
|
||||
attack_self(usr)
|
||||
update_icon()
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
var/info_links //A different version of the paper which includes html links at fields and EOF
|
||||
var/stamps //The (text for the) stamps on the paper.
|
||||
var/fields //Amount of user created fields
|
||||
var/free_space = MAX_PAPER_MESSAGE_LEN
|
||||
var/list/stamped
|
||||
var/list/ico[0] //Icons and
|
||||
var/list/offset_x[0] //offsets stored for later
|
||||
@@ -51,6 +52,7 @@
|
||||
|
||||
spawn(2)
|
||||
update_icon()
|
||||
update_space(info)
|
||||
updateinfolinks()
|
||||
return
|
||||
|
||||
@@ -62,6 +64,12 @@
|
||||
return
|
||||
icon_state = "paper"
|
||||
|
||||
/obj/item/weapon/paper/proc/update_space(var/new_text)
|
||||
if(!new_text)
|
||||
return
|
||||
|
||||
free_space -= length(strip_html_properly(new_text))
|
||||
|
||||
/obj/item/weapon/paper/examine(mob/user)
|
||||
..()
|
||||
if(in_range(user, src) || istype(user, /mob/dead/observer))
|
||||
@@ -87,11 +95,14 @@
|
||||
usr << "<span class='warning'>You cut yourself on the paper.</span>"
|
||||
return
|
||||
var/n_name = sanitizeSafe(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text, MAX_NAME_LEN)
|
||||
if((loc == usr && usr.stat == 0))
|
||||
name = "[(n_name ? text("[n_name]") : initial(name))]"
|
||||
if(name != "paper")
|
||||
desc = "This is a paper titled '" + name + "'."
|
||||
add_fingerprint(usr)
|
||||
|
||||
// We check loc one level up, so we can rename in clipboards and such. See also: /obj/item/weapon/photo/rename()
|
||||
if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == 0 && n_name)
|
||||
name = n_name
|
||||
if(n_name != "paper")
|
||||
desc = "This is a paper titled '" + name + "'."
|
||||
|
||||
add_fingerprint(usr)
|
||||
return
|
||||
|
||||
/obj/item/weapon/paper/attack_self(mob/living/user as mob)
|
||||
@@ -188,6 +199,7 @@
|
||||
/obj/item/weapon/paper/proc/clearpaper()
|
||||
info = null
|
||||
stamps = null
|
||||
free_space = MAX_PAPER_MESSAGE_LEN
|
||||
stamped = list()
|
||||
overlays.Cut()
|
||||
updateinfolinks()
|
||||
@@ -268,31 +280,6 @@
|
||||
|
||||
return t
|
||||
|
||||
|
||||
/obj/item/weapon/paper/proc/openhelp(mob/user as mob)
|
||||
user << browse({"<HTML><HEAD><TITLE>Pen Help</TITLE></HEAD>
|
||||
<BODY>
|
||||
<b><center>Crayon&Pen commands</center></b><br>
|
||||
<br>
|
||||
\[br\] : Creates a linebreak.<br>
|
||||
\[center\] - \[/center\] : Centers the text.<br>
|
||||
\[h1\] - \[/h1\] : Makes the text a first level heading<br>
|
||||
\[h2\] - \[/h2\] : Makes the text a second level heading<br>
|
||||
\[h3\] - \[/h3\] : Makes the text a third level heading<br>
|
||||
\[b\] - \[/b\] : Makes the text <b>bold</b>.<br>
|
||||
\[i\] - \[/i\] : Makes the text <i>italic</i>.<br>
|
||||
\[u\] - \[/u\] : Makes the text <u>underlined</u>.<br>
|
||||
\[large\] - \[/large\] : Increases the <font size = \"4\">size</font> of the text.<br>
|
||||
\[sign\] : Inserts a signature of your name in a foolproof way.<br>
|
||||
\[field\] : Inserts an invisible field which lets you start type from there. Useful for forms.<br>
|
||||
<br>
|
||||
<b><center>Pen exclusive commands</center></b><br>
|
||||
\[small\] - \[/small\] : Decreases the <font size = \"1\">size</font> of the text.<br>
|
||||
\[list\] - \[/list\] : A list.<br>
|
||||
\[*\] : A dot used for lists.<br>
|
||||
\[hr\] : Adds a horizontal rule.
|
||||
</BODY></HTML>"}, "window=paper_help")
|
||||
|
||||
/obj/item/weapon/paper/proc/burnpaper(obj/item/weapon/flame/P, mob/user)
|
||||
var/class = "<span class='warning'>"
|
||||
|
||||
@@ -312,7 +299,7 @@
|
||||
user.drop_from_inventory(src)
|
||||
|
||||
new /obj/effect/decal/cleanable/ash(src.loc)
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
else
|
||||
user << "\red You must hold \the [P] steady to burn \the [src]."
|
||||
@@ -327,12 +314,11 @@
|
||||
var/id = href_list["write"]
|
||||
//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
|
||||
|
||||
var/textlimit = MAX_PAPER_MESSAGE_LEN - length(info)
|
||||
if(textlimit <= 0)
|
||||
if(free_space <= 0)
|
||||
usr << "<span class='info'>There isn't enough space left on \the [src] to write anything.</span>"
|
||||
return
|
||||
|
||||
var/t = sanitize(input("Enter what you want to write:", "Write", null, null) as message, textlimit, extra = 0)
|
||||
var/t = sanitize(input("Enter what you want to write:", "Write", null, null) as message, free_space, extra = 0)
|
||||
|
||||
if(!t)
|
||||
return
|
||||
@@ -340,8 +326,8 @@
|
||||
var/obj/item/i = usr.get_active_hand() // Check to see if he still got that darn pen, also check if he's using a crayon or pen.
|
||||
var/iscrayon = 0
|
||||
if(!istype(i, /obj/item/weapon/pen))
|
||||
if(!istype(i, /obj/item/toy/crayon))
|
||||
return
|
||||
return
|
||||
if(istype(i, /obj/item/weapon/pen/crayon))
|
||||
iscrayon = 1
|
||||
|
||||
|
||||
@@ -378,6 +364,8 @@
|
||||
info += t // Oh, he wants to edit to the end of the file, let him.
|
||||
updateinfolinks()
|
||||
|
||||
update_space(t)
|
||||
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info_links][stamps]</BODY></HTML>", "window=[name]") // Update the window
|
||||
|
||||
update_icon()
|
||||
@@ -437,15 +425,17 @@
|
||||
user << "<span class='notice'>You clip the [P.name] to [(src.name == "paper") ? "the paper" : src.name].</span>"
|
||||
src.loc = B
|
||||
P.loc = B
|
||||
B.amount++
|
||||
|
||||
B.pages.Add(src)
|
||||
B.pages.Add(P)
|
||||
B.update_icon()
|
||||
|
||||
else if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
if ( istype(P, /obj/item/weapon/pen/robopen) && P:mode == 2 )
|
||||
P:RenamePaper(user,src)
|
||||
else if(istype(P, /obj/item/weapon/pen))
|
||||
var/obj/item/weapon/pen/robopen/RP = P
|
||||
if ( istype(RP) && RP.mode == 2 )
|
||||
RP.RenamePaper(user,src)
|
||||
else
|
||||
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info_links][stamps]</BODY></HTML>", "window=[name]")
|
||||
//openhelp(user)
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/stamp))
|
||||
|
||||
@@ -11,66 +11,63 @@
|
||||
layer = 4
|
||||
pressure_resistance = 1
|
||||
attack_verb = list("bapped")
|
||||
var/amount = 0 //Amount of items clipped to the paper
|
||||
var/page = 1
|
||||
var/screen = 0
|
||||
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/weapon/paper_bundle/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
var/obj/item/weapon/paper/P
|
||||
if(istype(W, /obj/item/weapon/paper))
|
||||
P = W
|
||||
if (istype(P, /obj/item/weapon/paper/carbon))
|
||||
var/obj/item/weapon/paper/carbon/C = P
|
||||
if (!C.iscopy && !C.copied)
|
||||
user << "<span class='notice'>Take off the carbon copy first.</span>"
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
amount++
|
||||
if(screen == 2)
|
||||
screen = 1
|
||||
user << "<span class='notice'>You add [(P.name == "paper") ? "the paper" : P.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
||||
user.drop_from_inventory(P)
|
||||
P.loc = src
|
||||
if(istype(user,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.update_inv_l_hand()
|
||||
H.update_inv_r_hand()
|
||||
else if(istype(W, /obj/item/weapon/photo))
|
||||
amount++
|
||||
if(screen == 2)
|
||||
screen = 1
|
||||
user << "<span class='notice'>You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
||||
user.drop_from_inventory(W)
|
||||
W.loc = src
|
||||
if (istype(W, /obj/item/weapon/paper/carbon))
|
||||
var/obj/item/weapon/paper/carbon/C = W
|
||||
if (!C.iscopy && !C.copied)
|
||||
user << "<span class='notice'>Take off the carbon copy first.</span>"
|
||||
add_fingerprint(user)
|
||||
return
|
||||
// adding sheets
|
||||
if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo))
|
||||
insert_sheet_at(user, pages.len+1, W)
|
||||
|
||||
// burning
|
||||
else if(istype(W, /obj/item/weapon/flame))
|
||||
burnpaper(W, user)
|
||||
|
||||
// merging bundles
|
||||
else if(istype(W, /obj/item/weapon/paper_bundle))
|
||||
user.drop_from_inventory(W)
|
||||
for(var/obj/O in W)
|
||||
O.loc = src
|
||||
O.add_fingerprint(usr)
|
||||
src.amount++
|
||||
if(screen == 2)
|
||||
screen = 1
|
||||
pages.Add(O)
|
||||
|
||||
user << "<span class='notice'>You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
||||
del(W)
|
||||
qdel(W)
|
||||
else
|
||||
if(istype(W, /obj/item/weapon/tape_roll))
|
||||
return 0
|
||||
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon))
|
||||
if(istype(W, /obj/item/weapon/pen))
|
||||
usr << browse("", "window=[name]") //Closes the dialog
|
||||
P = src[page]
|
||||
var/obj/P = pages[page]
|
||||
P.attackby(W, user)
|
||||
|
||||
|
||||
update_icon()
|
||||
attack_self(usr) //Update the browsed page.
|
||||
add_fingerprint(usr)
|
||||
return
|
||||
|
||||
/obj/item/weapon/paper_bundle/proc/insert_sheet_at(mob/user, var/index, obj/item/weapon/sheet)
|
||||
if(istype(sheet, /obj/item/weapon/paper))
|
||||
user << "<span class='notice'>You add [(sheet.name == "paper") ? "the paper" : sheet.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
||||
else if(istype(sheet, /obj/item/weapon/photo))
|
||||
user << "<span class='notice'>You add [(sheet.name == "photo") ? "the photo" : sheet.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
||||
|
||||
user.drop_from_inventory(sheet)
|
||||
sheet.loc = src
|
||||
|
||||
pages.Insert(index, sheet)
|
||||
|
||||
if(index <= page)
|
||||
page++
|
||||
|
||||
/obj/item/weapon/paper_bundle/proc/burnpaper(obj/item/weapon/flame/P, mob/user)
|
||||
var/class = "<span class='warning'>"
|
||||
@@ -91,7 +88,7 @@
|
||||
user.drop_from_inventory(src)
|
||||
|
||||
new /obj/effect/decal/cleanable/ash(src.loc)
|
||||
del(src)
|
||||
qdel(src)
|
||||
|
||||
else
|
||||
user << "\red You must hold \the [P] steady to burn \the [src]."
|
||||
@@ -105,28 +102,32 @@
|
||||
|
||||
/obj/item/weapon/paper_bundle/proc/show_content(mob/user as mob)
|
||||
var/dat
|
||||
var/obj/item/weapon/W = src[page]
|
||||
switch(screen)
|
||||
if(0)
|
||||
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV><BR><HR>"
|
||||
if(1)
|
||||
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV><BR><HR>"
|
||||
if(2)
|
||||
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV><BR><HR>"
|
||||
dat+= "<DIV STYLE='float;left; text-align:right; with:33.33333%'></DIV>"
|
||||
if(istype(src[page], /obj/item/weapon/paper))
|
||||
var/obj/item/weapon/W = pages[page]
|
||||
|
||||
// first
|
||||
if(page == 1)
|
||||
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Front</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV><BR><HR>"
|
||||
// last
|
||||
else if(page == pages.len)
|
||||
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||
dat+= "<DIV STYLE='float;left; text-align:right; with:33.33333%'><A href='?src=\ref[src];next_page=1'>Back</A></DIV><BR><HR>"
|
||||
// middle pages
|
||||
else
|
||||
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV><BR><HR>"
|
||||
|
||||
if(istype(pages[page], /obj/item/weapon/paper))
|
||||
var/obj/item/weapon/paper/P = W
|
||||
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
|
||||
dat+= "<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[stars(P.info)][P.stamps]</BODY></HTML>"
|
||||
else
|
||||
dat+= "<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[P.info][P.stamps]</BODY></HTML>"
|
||||
user << browse(dat, "window=[name]")
|
||||
else if(istype(src[page], /obj/item/weapon/photo))
|
||||
else if(istype(pages[page], /obj/item/weapon/photo))
|
||||
var/obj/item/weapon/photo/P = W
|
||||
user << browse_rsc(P.img, "tmp_photo.png")
|
||||
user << browse(dat + "<html><head><title>[P.name]</title></head>" \
|
||||
@@ -145,55 +146,51 @@
|
||||
..()
|
||||
if((src in usr.contents) || (istype(src.loc, /obj/item/weapon/folder) && (src.loc in usr.contents)))
|
||||
usr.set_machine(src)
|
||||
var/obj/item/weapon/in_hand = usr.get_active_hand()
|
||||
if(href_list["next_page"])
|
||||
if(page == amount)
|
||||
screen = 2
|
||||
else if(page == 1)
|
||||
screen = 1
|
||||
else if(page == amount+1)
|
||||
return
|
||||
page++
|
||||
playsound(src.loc, "pageturn", 50, 1)
|
||||
if(in_hand && (istype(in_hand, /obj/item/weapon/paper) || istype(in_hand, /obj/item/weapon/photo)))
|
||||
insert_sheet_at(usr, page+1, in_hand)
|
||||
else if(page != pages.len)
|
||||
page++
|
||||
playsound(src.loc, "pageturn", 50, 1)
|
||||
if(href_list["prev_page"])
|
||||
if(page == 1)
|
||||
return
|
||||
else if(page == 2)
|
||||
screen = 0
|
||||
else if(page == amount+1)
|
||||
screen = 1
|
||||
page--
|
||||
playsound(src.loc, "pageturn", 50, 1)
|
||||
if(in_hand && (istype(in_hand, /obj/item/weapon/paper) || istype(in_hand, /obj/item/weapon/photo)))
|
||||
insert_sheet_at(usr, page, in_hand)
|
||||
else if(page > 1)
|
||||
page--
|
||||
playsound(src.loc, "pageturn", 50, 1)
|
||||
if(href_list["remove"])
|
||||
var/obj/item/weapon/W = src[page]
|
||||
var/obj/item/weapon/W = pages[page]
|
||||
usr.put_in_hands(W)
|
||||
pages.Remove(pages[page])
|
||||
|
||||
usr << "<span class='notice'>You remove the [W.name] from the bundle.</span>"
|
||||
if(amount == 1)
|
||||
|
||||
if(pages.len <= 1)
|
||||
var/obj/item/weapon/paper/P = src[1]
|
||||
usr.drop_from_inventory(src)
|
||||
usr.put_in_hands(P)
|
||||
del(src)
|
||||
else if(page == amount)
|
||||
screen = 2
|
||||
else if(page == amount+1)
|
||||
page--
|
||||
|
||||
amount--
|
||||
qdel(src)
|
||||
|
||||
return
|
||||
|
||||
if(page > pages.len)
|
||||
page = pages.len
|
||||
|
||||
update_icon()
|
||||
else
|
||||
usr << "<span class='notice'>You need to hold it in hands!</span>"
|
||||
if (istype(src.loc, /mob) ||istype(src.loc.loc, /mob))
|
||||
src.attack_self(src.loc)
|
||||
src.attack_self(usr)
|
||||
updateUsrDialog()
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bundle/verb/rename()
|
||||
set name = "Rename bundle"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
var/n_name = sanitizeSafe(input(usr, "What would you like to label the bundle?", "Bundle Labelling", null) as text, MAX_NAME_LEN)
|
||||
if((loc == usr && usr.stat == 0))
|
||||
if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == 0)
|
||||
name = "[(n_name ? text("[n_name]") : "paper")]"
|
||||
add_fingerprint(usr)
|
||||
return
|
||||
@@ -210,12 +207,12 @@
|
||||
O.layer = initial(O.layer)
|
||||
O.add_fingerprint(usr)
|
||||
usr.drop_from_inventory(src)
|
||||
del(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bundle/update_icon()
|
||||
var/obj/item/weapon/paper/P = src[1]
|
||||
var/obj/item/weapon/paper/P = pages[1]
|
||||
icon_state = P.icon_state
|
||||
overlays = P.overlays
|
||||
underlays = 0
|
||||
|
||||
@@ -167,3 +167,28 @@
|
||||
colour = COLOR_BLACK
|
||||
usr << "<span class='info'>You select the [lowertext(selected_type)] ink container.</span>"
|
||||
|
||||
|
||||
/*
|
||||
* Crayons
|
||||
*/
|
||||
|
||||
/obj/item/weapon/pen/crayon
|
||||
name = "crayon"
|
||||
desc = "A colourful crayon. Please refrain from eating it or putting it in your nose."
|
||||
icon = 'icons/obj/crayons.dmi'
|
||||
icon_state = "crayonred"
|
||||
w_class = 1.0
|
||||
attack_verb = list("attacked", "coloured")
|
||||
colour = "#FF0000" //RGB
|
||||
var/shadeColour = "#220000" //RGB
|
||||
var/uses = 30 //0 for unlimited uses
|
||||
var/instant = 0
|
||||
var/colourName = "red" //for updateIcon purposes
|
||||
|
||||
suicide_act(mob/user)
|
||||
viewers(user) << "\red <b>[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide.</b>"
|
||||
return (BRUTELOSS|OXYLOSS)
|
||||
|
||||
New()
|
||||
name = "[colourName] crayon"
|
||||
..()
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
sleep(15)
|
||||
else if (istype(copyitem, /obj/item/weapon/paper_bundle))
|
||||
var/obj/item/weapon/paper_bundle/B = bundlecopy(copyitem)
|
||||
sleep(15*B.amount)
|
||||
sleep(15*B.pages.len)
|
||||
else
|
||||
usr << "<span class='warning'>\The [copyitem] can't be copied by \the [src].</span>"
|
||||
break
|
||||
@@ -118,7 +118,7 @@
|
||||
user << "<span class='notice'>You insert the toner cartridge into \the [src].</span>"
|
||||
var/obj/item/device/toner/T = O
|
||||
toner += T.toner_amount
|
||||
del(O)
|
||||
qdel(O)
|
||||
updateUsrDialog()
|
||||
else
|
||||
user << "<span class='notice'>This cartridge is not yet ready for replacement! Use up the rest of the toner.</span>"
|
||||
@@ -131,10 +131,10 @@
|
||||
/obj/machinery/photocopier/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
del(src)
|
||||
qdel(src)
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
del(src)
|
||||
qdel(src)
|
||||
else
|
||||
if(toner > 0)
|
||||
new /obj/effect/decal/cleanable/blood/oil(get_turf(src))
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
/obj/machinery/photocopier/blob_act()
|
||||
if(prob(50))
|
||||
del(src)
|
||||
qdel(src)
|
||||
else
|
||||
if(toner > 0)
|
||||
new /obj/effect/decal/cleanable/blood/oil(get_turf(src))
|
||||
@@ -216,7 +216,7 @@
|
||||
//If need_toner is 0, the copies will still be lightened when low on toner, however it will not be prevented from printing. TODO: Implement print queues for fax machines and get rid of need_toner
|
||||
/obj/machinery/photocopier/proc/bundlecopy(var/obj/item/weapon/paper_bundle/bundle, var/need_toner=1)
|
||||
var/obj/item/weapon/paper_bundle/p = new /obj/item/weapon/paper_bundle (src)
|
||||
for(var/obj/item/weapon/W in bundle)
|
||||
for(var/obj/item/weapon/W in bundle.pages)
|
||||
if(toner <= 0 && need_toner)
|
||||
toner = 0
|
||||
visible_message("<span class='notice'>A red light on \the [src] flashes, indicating that it is out of toner.</span>")
|
||||
@@ -227,8 +227,8 @@
|
||||
else if(istype(W, /obj/item/weapon/photo))
|
||||
W = photocopy(W)
|
||||
W.loc = p
|
||||
p.amount++
|
||||
//p.amount--
|
||||
p.pages += W
|
||||
|
||||
p.loc = src.loc
|
||||
p.update_icon()
|
||||
p.icon_state = "paper_words"
|
||||
|
||||
@@ -42,7 +42,7 @@ var/global/photo_count = 0
|
||||
user.examinate(src)
|
||||
|
||||
/obj/item/weapon/photo/attackby(obj/item/weapon/P as obj, mob/user as mob)
|
||||
if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
if(istype(P, /obj/item/weapon/pen))
|
||||
var/txt = sanitize(input(user, "What would you like to write on the back?", "Photo Writing", null) as text, 128)
|
||||
if(loc == user && user.stat == 0)
|
||||
scribble = txt
|
||||
@@ -159,7 +159,7 @@ var/global/photo_count = 0
|
||||
return
|
||||
user << "<span class='notice'>You insert [I] into [src].</span>"
|
||||
user.drop_item()
|
||||
del(I)
|
||||
qdel(I)
|
||||
pictures_left = pictures_max
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -9,59 +9,48 @@
|
||||
throw_speed = 7
|
||||
throw_range = 15
|
||||
matter = list("steel" = 60)
|
||||
item_color = "cargo"
|
||||
pressure_resistance = 2
|
||||
attack_verb = list("stamped")
|
||||
|
||||
/obj/item/weapon/stamp/captain
|
||||
name = "captain's rubber stamp"
|
||||
icon_state = "stamp-cap"
|
||||
item_color = "captain"
|
||||
|
||||
/obj/item/weapon/stamp/hop
|
||||
name = "head of personnel's rubber stamp"
|
||||
icon_state = "stamp-hop"
|
||||
item_color = "hop"
|
||||
|
||||
/obj/item/weapon/stamp/hos
|
||||
name = "head of security's rubber stamp"
|
||||
icon_state = "stamp-hos"
|
||||
item_color = "hosred"
|
||||
|
||||
/obj/item/weapon/stamp/ce
|
||||
name = "chief engineer's rubber stamp"
|
||||
icon_state = "stamp-ce"
|
||||
item_color = "chief"
|
||||
|
||||
/obj/item/weapon/stamp/rd
|
||||
name = "research director's rubber stamp"
|
||||
icon_state = "stamp-rd"
|
||||
item_color = "director"
|
||||
|
||||
/obj/item/weapon/stamp/cmo
|
||||
name = "chief medical officer's rubber stamp"
|
||||
icon_state = "stamp-cmo"
|
||||
item_color = "cmo"
|
||||
|
||||
/obj/item/weapon/stamp/denied
|
||||
name = "\improper DENIED rubber stamp"
|
||||
icon_state = "stamp-deny"
|
||||
item_color = "redcoat"
|
||||
|
||||
/obj/item/weapon/stamp/clown
|
||||
name = "clown's rubber stamp"
|
||||
icon_state = "stamp-clown"
|
||||
item_color = "clown"
|
||||
|
||||
/obj/item/weapon/stamp/internalaffairs
|
||||
name = "internal affairs rubber stamp"
|
||||
icon_state = "stamp-intaff"
|
||||
item_color = "intaff"
|
||||
|
||||
/obj/item/weapon/stamp/centcomm
|
||||
name = "centcomm rubber stamp"
|
||||
icon_state = "stamp-cent"
|
||||
item_color = "centcomm"
|
||||
|
||||
// Syndicate stamp to forge documents.
|
||||
/obj/item/weapon/stamp/chameleon/attack_self(mob/user as mob)
|
||||
@@ -84,5 +73,4 @@
|
||||
|
||||
if(chosen_stamp)
|
||||
name = chosen_stamp.name
|
||||
icon_state = chosen_stamp.icon_state
|
||||
item_color = chosen_stamp.item_color
|
||||
icon_state = chosen_stamp.icon_state
|
||||
Reference in New Issue
Block a user