Files
VOREStation/code/game/objects/items/weapons/papers_bins.dm
mport2004@gmail.com 3cae06c9c3 Fixed the signpost shuttle bug.
Critters have been added and livestock removed
Xbow damage raised to 30 a shot
Centcom Survival Kit is once again a box
Sec uniforms moved into their own locker

After IRC talk
Guns that are created in the protolathe now spawn inside of a lockbox
They can be unlocked by an ID with Armory access or an Emag.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2045 316c924e-a436-60f5-8080-3fe189b3f50e
2011-08-24 04:00:45 +00:00

806 lines
25 KiB
Plaintext

/*
CONTAINS:
PAPER
PAPER BIN
WRAPPING PAPER
GIFTS
BEDSHEET BIN
PHOTOGRAPHS
CLIPBOARDS
*/
// PAPER
/obj/item/weapon/paper/New()
..()
src.pixel_y = rand(-8, 8)
src.pixel_x = rand(-9, 9)
return
/obj/item/weapon/paper/examine()
set src in view()
..()
if (!( istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon) ))
usr << browse(text("<HTML><HEAD><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", src.name, stars(src.info)), text("window=[]", src.name))
onclose(usr, "[src.name]")
else
usr << browse(text("<HTML><HEAD><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", src.name, src.info), text("window=[]", src.name))
onclose(usr, "[src.name]")
return
/obj/item/weapon/pen/proc/formatText(var/s)
if (text_size < 2 || text_size > 7)
text_size = 3
if (!(text_color))
text_color = "#000000"
var/textToAddHeader = ""
var/textToAddFooter = ""
if (text_color && text_size)
textToAddHeader = "<font size=[text_size] color=[text_color]>"
textToAddFooter = "</font>"
if (text_bold == 1)
textToAddHeader = "[textToAddHeader]<b>"
textToAddFooter = "</b>[textToAddFooter]"
if (text_underline == 1)
textToAddHeader = "[textToAddHeader]<u>"
textToAddFooter = "</u>[textToAddFooter]"
if (text_italic == 1)
textToAddHeader = "[textToAddHeader]<i>"
textToAddFooter = "</i>[textToAddFooter]"
if (text_break == 1)
textToAddFooter = "[textToAddFooter]<br>"
var/r = "[textToAddHeader][s][textToAddFooter]"
return r
/obj/item/weapon/pen/attack_self(mob/user as mob)
var/dat
dat = text("How would you like to write?<br>")
dat = text("[formatText("example")]<br>")
dat += text("<b>size:</b><br>")
dat += text("<A href='?src=\ref[src];size=2'><font size=2>2</font></A> ")
dat += text("<A href='?src=\ref[src];size=3'><font size=3>3</font></A> ")
dat += text("<A href='?src=\ref[src];size=4'><font size=4>4</font></A> ")
dat += text("<A href='?src=\ref[src];size=5'><font size=5>5</font></A> ")
dat += text("<A href='?src=\ref[src];size=6'><font size=6>6</font></A> ")
dat += text("<A href='?src=\ref[src];size=7'><font size=7>7<font></A><br><br>")
dat += text("<b>Color:</b><br>")
dat += text("<A href='?src=\ref[src];color=["000000"]'><font color=black>black:</font></A> ")
dat += text("<A href='?src=\ref[src];color=["222222"]'><font color=#222222>1</font></A> ")
dat += text("<A href='?src=\ref[src];color=["444444"]'><font color=#444444>2</font></A> ")
dat += text("<A href='?src=\ref[src];color=["666666"]'><font color=#666666>3</font></A> ")
dat += text("<A href='?src=\ref[src];color=["888888"]'><font color=#888888>4</font></A> ")
dat += text("<A href='?src=\ref[src];color=["AAAAAA"]'><font color=#AAAAAA>5</font></A> ")
dat += text("<A href='?src=\ref[src];color=["CCCCCC"]'><font color=#CCCCCC>6</font></A><br>")
dat += text("<A href='?src=\ref[src];color=["FF0000"]'><font color=#FF0000>Red:</font></A> ")
dat += text("<A href='?src=\ref[src];color=["440000"]'><font color=#440000>1</font></A> ")
dat += text("<A href='?src=\ref[src];color=["880000"]'><font color=#880000>2</font></A> ")
dat += text("<A href='?src=\ref[src];color=["CC0000"]'><font color=#CC0000>3</font></A> ")
dat += text("<A href='?src=\ref[src];color=["FF2222"]'><font color=#FF2222>4</font></A> ")
dat += text("<A href='?src=\ref[src];color=["FF6666"]'><font color=#FF6666>5</font></A> ")
dat += text("<A href='?src=\ref[src];color=["FFBBBB"]'><font color=#FFBBBB>6</font></A><br>")
dat += text("<A href='?src=\ref[src];color=["FFFF00"]'><font color=#FFFF00>Yellow:</font></A> ")
dat += text("<A href='?src=\ref[src];color=["444400"]'><font color=#444400>1</font></A> ")
dat += text("<A href='?src=\ref[src];color=["888800"]'><font color=#888800>2</font></A> ")
dat += text("<A href='?src=\ref[src];color=["CCCC00"]'><font color=#CCCC00>3</font></A> ")
dat += text("<A href='?src=\ref[src];color=["FFFF22"]'><font color=#FFFF22>4</font></A> ")
dat += text("<A href='?src=\ref[src];color=["FFFF66"]'><font color=#FFFF66>5</font></A> ")
dat += text("<A href='?src=\ref[src];color=["FFFFBB"]'><font color=#FFFFBB>6</font></A><br>")
dat += text("<A href='?src=\ref[src];color=["00FF00"]'><font color=#00FF00>Green:</font></A> ")
dat += text("<A href='?src=\ref[src];color=["004400"]'><font color=#004400>1</font></A> ")
dat += text("<A href='?src=\ref[src];color=["008800"]'><font color=#008800>2</font></A> ")
dat += text("<A href='?src=\ref[src];color=["00CC00"]'><font color=#00CC00>3</font></A> ")
dat += text("<A href='?src=\ref[src];color=["22FF22"]'><font color=#22FF22>4</font></A> ")
dat += text("<A href='?src=\ref[src];color=["66FF66"]'><font color=#66FF66>5</font></A> ")
dat += text("<A href='?src=\ref[src];color=["BBFFBB"]'><font color=#BBFFBB>6</font></A><br>")
dat += text("<A href='?src=\ref[src];color=["00FFFF"]'><font color=#00FFFF>Cyan:</font></A> ")
dat += text("<A href='?src=\ref[src];color=["004444"]'><font color=#004444>1</font></A> ")
dat += text("<A href='?src=\ref[src];color=["008888"]'><font color=#008888>2</font></A> ")
dat += text("<A href='?src=\ref[src];color=["00CCCC"]'><font color=#00CCCC>3</font></A> ")
dat += text("<A href='?src=\ref[src];color=["22FFFF"]'><font color=#22FFFF>4</font></A> ")
dat += text("<A href='?src=\ref[src];color=["66FFFF"]'><font color=#66FFFF>5</font></A> ")
dat += text("<A href='?src=\ref[src];color=["BBFFFF"]'><font color=#BBFFFF>6</font></A><br>")
dat += text("<A href='?src=\ref[src];color=["0000FF"]'><font color=#0000FF>Blue:</font></A> ")
dat += text("<A href='?src=\ref[src];color=["000044"]'><font color=#000044>1</font></A> ")
dat += text("<A href='?src=\ref[src];color=["000088"]'><font color=#000088>2</font></A> ")
dat += text("<A href='?src=\ref[src];color=["0000CC"]'><font color=#0000CC>3</font></A> ")
dat += text("<A href='?src=\ref[src];color=["2222FF"]'><font color=#2222FF>4</font></A> ")
dat += text("<A href='?src=\ref[src];color=["6666FF"]'><font color=#6666FF>5</font></A> ")
dat += text("<A href='?src=\ref[src];color=["BBBBFF"]'><font color=#BBBBFF>6</font></A><br>")
dat += text("<A href='?src=\ref[src];color=["000000"]'><font color=#FF00FF>Purple:</font></A> ")
dat += text("<A href='?src=\ref[src];color=["440044"]'><font color=#440044>1</font></A> ")
dat += text("<A href='?src=\ref[src];color=["880088"]'><font color=#880088>2</font></A> ")
dat += text("<A href='?src=\ref[src];color=["CC00CC"]'><font color=#CC00CC>3</font></A> ")
dat += text("<A href='?src=\ref[src];color=["FF22FF"]'><font color=#FF22FF>4</font></A> ")
dat += text("<A href='?src=\ref[src];color=["FF66FF"]'><font color=#FF66FF>5</font></A> ")
dat += text("<A href='?src=\ref[src];color=["FFBBFF"]'><font color=#FFBBFF>6</font></A><br><br>")
if (text_bold)
dat += text("<b>Bold:</b> yes / <A href='?src=\ref[src];bold=[0]'>no</A><br>")
else
dat += text("<b>Bold: <A href='?src=\ref[src];bold=[1]'>yes</A> / no<br>")
if (text_italic)
dat += text("<b>Italic:</b> yes / <A href='?src=\ref[src];italic=[0]'>no</A><br>")
else
dat += text("<b>Italic: <A href='?src=\ref[src];italic=[1]'>yes</A> / no<br>")
if (text_underline)
dat += text("<b>Underline:</b> yes / <A href='?src=\ref[src];underline=[0]'>no</A><br>")
else
dat += text("<b>Underline:</b> <A href='?src=\ref[src];underline=[1]'>yes</A> / no<br>")
if (text_break)
dat += text("<b>Jump into a new line at the end?</b> yes / <A href='?src=\ref[src];break=[0]'>no</A><br>")
else
dat += text("<b>Jump into a new line at the end?</b> <A href='?src=\ref[src];break=[1]'>yes</A> / no<br>")
user << browse("[dat]", "window=pen")
/obj/item/weapon/pen/Topic(href, href_list)
usr.machine = src
if(href_list["color"])
src.text_color = "#"
src.text_color += href_list["color"]
if(href_list["size"])
src.text_size = text2num(href_list["size"])
if(href_list["bold"])
src.text_bold = text2num(href_list["bold"])
if(href_list["underline"])
src.text_underline = text2num(href_list["underline"])
if(href_list["italic"])
src.text_italic = text2num(href_list["italic"])
if(href_list["break"])
src.text_break = text2num(href_list["break"])
attack_self(usr)
return
/obj/item/weapon/paper/verb/rename()
set name = "Rename paper"
set category = "Object"
set src in usr
if ((usr.mutations & CLOWN) && prob(50))
usr << text("\red You cut yourself on the paper.")
return
var/n_name = input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text
n_name = copytext(n_name, 1, 32)
if ((src.loc == usr && usr.stat == 0))
src.name = text("paper[]", (n_name ? text("- '[n_name]'") : null))
src.add_fingerprint(usr)
return
/obj/item/weapon/paper/attack_self(mob/living/user as mob)
examine()
return
/obj/item/weapon/paper/attack_ai(var/mob/living/silicon/ai/user as mob)
var/dist
if (istype(user) && user.current) //is AI
dist = get_dist(src, user.current)
else //cyborg or AI not seeing through a camera
dist = get_dist(src, user)
if (dist < 2)
usr << browse(text("<HTML><HEAD><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", src.name, src.info), text("window=[]", src.name))
onclose(usr, "[src.name]")
else
usr << browse(text("<HTML><HEAD><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", src.name, stars(src.info)), text("window=[]", src.name))
onclose(usr, "[src.name]")
return
/obj/item/weapon/paper/attackby(obj/item/weapon/P as obj, mob/user as mob)
..()
var/clown = 0
if(user.mind && (user.mind.assigned_role == "Clown"))
clown = 1
if (istype(P, /obj/item/weapon/pen))
var/obj/item/weapon/pen/PEN = P
var/t = strip_html(input(user, "What text do you wish to add?", text("[]", src.name), null),8192) as message
t = text("[PEN.formatText(t)]")
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
return
/*
t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
t = dd_replacetext(t, "\n", "<BR>")
t = dd_replacetext(t, "\[b\]", "<B>")
t = dd_replacetext(t, "\[/b\]", "</B>")
t = dd_replacetext(t, "\[i\]", "<I>")
t = dd_replacetext(t, "\[/i\]", "</I>")
t = dd_replacetext(t, "\[u\]", "<U>")
t = dd_replacetext(t, "\[/u\]", "</U>")
t = dd_replacetext(t, "\[sign\]", text("<font face=vivaldi>[]</font>", user.real_name))
*/
t = text("<font face=calligrapher>[]</font>", t)
src.info += t
else
if(istype(P, /obj/item/weapon/stamp))
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
return
src.info += text("<BR><i>This paper has been stamped with the [].</i><BR>", P.name)
switch(P.type)
if(/obj/item/weapon/stamp/captain)
src.icon_state = "paper_stamped_cap"
if(/obj/item/weapon/stamp/hop)
src.icon_state = "paper_stamped_hop"
if(/obj/item/weapon/stamp/hos)
src.icon_state = "paper_stamped_hos"
if(/obj/item/weapon/stamp/ce)
src.icon_state = "paper_stamped_ce"
if(/obj/item/weapon/stamp/rd)
src.icon_state = "paper_stamped_rd"
if(/obj/item/weapon/stamp/cmo)
src.icon_state = "paper_stamped_cmo"
if(/obj/item/weapon/stamp/denied)
src.icon_state = "paper_stamped_denied"
if(/obj/item/weapon/stamp/clown)
if (!clown)
usr << "\red You are totally unable to use the stamp. HONK!"
return
else
src.icon_state = "paper_stamped_clown"
else
src.icon_state = "paper_stamped"
if(!stamped)
stamped = new
stamped += P.type
user << "\blue You stamp the paper with your rubber stamp."
/*
else
if (istype(P, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/W = P
if ((W.welding && W.weldfuel > 0))
for(var/mob/O in viewers(user, null))
O.show_message(text("\red [] burns [] with the welding tool!", user, src), 1, "\red You hear a small burning noise", 2)
//Foreach goto(323)
spawn( 0 )
src.burn(1800000.0)
return
else
if (istype(P, /obj/item/device/igniter))
for(var/mob/O in viewers(user, null))
O.show_message(text("\red [] burns [] with the igniter!", user, src), 1, "\red You hear a small burning noise", 2)
//Foreach goto(406)
spawn( 0 )
src.burn(1800000.0)
return
else
if (istype(P, /obj/item/weapon/wirecutters))
for(var/mob/O in viewers(user, null))
O.show_message(text("\red [] starts cutting []!", user, src), 1)
//Foreach goto(489)
sleep(50)
if (((src.loc == src || get_dist(src, user) <= 1) && (!( user.stat ) && !( user.restrained() ))))
for(var/mob/O in viewers(user, null))
O.show_message(text("\red [] cuts [] to pieces!", user, src), 1)
//Foreach goto(580)
//SN src = null
del(src)
return
*/ //TODO: FIX
src.add_fingerprint(user)
return
//PAPER BIN
/obj/item/weapon/paper_bin/proc/update()
src.icon_state = text("paper_bin[]", ((src.amount || locate(/obj/item/weapon/paper, src)) ? "1" : null))
return
/obj/item/weapon/paper_bin/MouseDrop(mob/user as mob)
if ((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
if (usr.hand)
if (!( usr.l_hand ))
spawn( 0 )
src.attack_hand(usr, 1, 1)
return
else
if (!( usr.r_hand ))
spawn( 0 )
src.attack_hand(usr, 0, 1)
return
return
/obj/item/weapon/paper_bin/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/item/weapon/paper_bin/attack_hand(mob/user as mob, unused, flag)
if (flag)
return ..()
src.add_fingerprint(user)
if (locate(/obj/item/weapon/paper, src))
for(var/obj/item/weapon/paper/P in src)
if ((usr.hand && !( usr.l_hand )))
usr.l_hand = P
P.loc = usr
P.layer = 20
P = null
usr.update_clothing()
break
else if (!usr.r_hand)
usr.r_hand = P
P.loc = usr
P.layer = 20
P = null
usr.update_clothing()
break
else
if (src.amount >= 1)
src.amount--
new /obj/item/weapon/paper( usr.loc )
src.update()
return
/obj/item/weapon/paper_bin/examine()
set src in oview(1)
src.amount = round(src.amount)
var/n = src.amount
for(var/obj/item/weapon/paper/P in src)
n++
if (n <= 0)
n = 0
usr << "There are no papers in the bin."
else
if (n == 1)
usr << "There is one paper in the bin."
else
usr << text("There are [] papers in the bin.", n)
return
/*
/obj/item/weapon/paper_bin/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/paper))
user.drop_item()
W.loc = src
else
if (istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/T = W
if ((T.welding && T.weldfuel > 0))
viewers(user, null) << text("[] burns the paper with the welding tool!", user)
spawn( 0 )
src.burn(1800000.0)
return
else
if (istype(W, /obj/item/device/igniter))
viewers(user, null) << text("[] burns the paper with the igniter!", user)
spawn( 0 )
src.burn(1800000.0)
return
src.update()
return
*/ //TODO: FIX
// WRAPPING PAPER
/obj/item/weapon/wrapping_paper/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (!( locate(/obj/table, src.loc) ))
user << "\blue You MUST put the paper on a table!"
if (W.w_class < 4)
if ((istype(user.l_hand, /obj/item/weapon/wirecutters) || istype(user.r_hand, /obj/item/weapon/wirecutters)))
var/a_used = 2 ** (src.w_class - 1)
if (src.amount < a_used)
user << "\blue You need more paper!"
return
else
src.amount -= a_used
user.drop_item()
var/obj/item/weapon/gift/G = new /obj/item/weapon/gift( src.loc )
G.size = W.w_class
G.w_class = G.size + 1
G.icon_state = text("gift[]", G.size)
G.gift = W
W.loc = G
G.add_fingerprint(user)
W.add_fingerprint(user)
src.add_fingerprint(user)
if (src.amount <= 0)
new /obj/item/weapon/c_tube( src.loc )
//SN src = null
del(src)
return
else
user << "\blue You need scissors!"
else
user << "\blue The object is FAR too large!"
return
/obj/item/weapon/wrapping_paper/examine()
set src in oview(1)
..()
usr << text("There is about [] square units of paper left!", src.amount)
return
/obj/item/weapon/wrapping_paper/attack(mob/target as mob, mob/user as mob)
if (!istype(target, /mob/living/carbon/human)) return
if (istype(target:wear_suit, /obj/item/clothing/suit/straight_jacket) || target:stat)
if (src.amount > 2)
var/obj/spresent/present = new /obj/spresent (target:loc)
src.amount -= 2
if (target:client)
target:client:perspective = EYE_PERSPECTIVE
target:client:eye = present
target:loc = present
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been wrapped with [src.name] by [user.name] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to wrap [target.name] ([target.ckey])</font>")
else
user << "/blue You need more paper."
else
user << "Theyre moving around too much. a Straitjacket would help."
// GIFTS
/obj/item/weapon/gift/attack_self(mob/user as mob)
if(!src.gift)
user << "\blue The gift was empty!"
del(src)
src.gift.loc = user
if (user.hand)
user.l_hand = src.gift
else
user.r_hand = src.gift
src.gift.layer = 20
src.gift.add_fingerprint(user)
del(src)
return
/obj/item/weapon/a_gift/ex_act()
del(src)
return
/obj/spresent/relaymove(mob/user as mob)
if (user.stat)
return
user << "\blue You cant move."
/obj/spresent/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (!istype(W, /obj/item/weapon/wirecutters))
user << "/blue I need wirecutters for that."
return
user << "\blue You cut open the present."
for(var/mob/M in src) //Should only be one but whatever.
M.loc = src.loc
if (M.client)
M.client.eye = M.client.mob
M.client.perspective = MOB_PERSPECTIVE
del(src)
/obj/item/weapon/a_gift/attack_self(mob/M as mob)
switch(pick("flash", "t_gun", "l_gun", "shield", "sword", "axe"))
if("flash")
var/obj/item/device/flash/W = new /obj/item/device/flash( M )
if (M.hand)
M.l_hand = W
else
M.r_hand = W
W.layer = 20
W.add_fingerprint(M)
//SN src = null
del(src)
return
if("l_gun")
var/obj/item/weapon/gun/energy/laser/W = new /obj/item/weapon/gun/energy/laser( M )
if (M.hand)
M.l_hand = W
else
M.r_hand = W
W.layer = 20
W.add_fingerprint(M)
//SN src = null
del(src)
return
if("t_gun")
var/obj/item/weapon/gun/energy/taser/W = new /obj/item/weapon/gun/energy/taser( M )
if (M.hand)
M.l_hand = W
else
M.r_hand = W
W.layer = 20
W.add_fingerprint(M)
//SN src = null
del(src)
return
if("shield")
var/obj/item/device/shield/W = new /obj/item/device/shield( M )
if (M.hand)
M.l_hand = W
else
M.r_hand = W
W.layer = 20
W.add_fingerprint(M)
//SN src = null
del(src)
return
if("sword")
var/obj/item/weapon/melee/energy/sword/W = new /obj/item/weapon/melee/energy/sword( M )
if (M.hand)
M.l_hand = W
else
M.r_hand = W
W.layer = 20
W.add_fingerprint(M)
//SN src = null
del(src)
return
if("axe")
var/obj/item/weapon/melee/energy/axe/W = new /obj/item/weapon/melee/energy/axe( M )
if (M.hand)
M.l_hand = W
else
M.r_hand = W
W.layer = 20
W.add_fingerprint(M)
//SN src = null
del(src)
return
else
return
// BEDSHEET BIN
/obj/bedsheetbin/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/bedsheet))
//W = null
del(W)
src.amount++
return
/obj/bedsheetbin/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/bedsheetbin/attack_hand(mob/user as mob)
if (src.amount >= 1)
src.amount--
new /obj/item/weapon/bedsheet( src.loc )
add_fingerprint(user)
/obj/bedsheetbin/examine()
set src in oview(1)
src.amount = round(src.amount)
if (src.amount <= 0)
src.amount = 0
usr << "There are no bed sheets in the bin."
else
if (src.amount == 1)
usr << "There is one bed sheet in the bin."
else
usr << text("There are [] bed sheets in the bin.", src.amount)
return
// CLIPBOARD
/obj/item/weapon/clipboard/attack_self(mob/user as mob)
var/dat = "<B>Clipboard</B><BR>"
if (src.pen)
dat += text("<A href='?src=\ref[];pen=1'>Remove Pen</A><BR><HR>", src)
for(var/obj/item/weapon/paper/P in src)
dat += text("<A href='?src=\ref[];read=\ref[]'>[]</A> <A href='?src=\ref[];write=\ref[]'>Write</A> <A href='?src=\ref[];remove=\ref[]'>Remove</A><BR>", src, P, P.name, src, P, src, P)
user << browse(dat, "window=clipboard")
onclose(user, "clipboard")
return
/obj/item/weapon/clipboard/Topic(href, href_list)
..()
if ((usr.stat || usr.restrained()))
return
if (usr.contents.Find(src))
usr.machine = src
if (href_list["pen"])
if (src.pen)
if ((usr.hand && !( usr.l_hand )))
usr.l_hand = src.pen
src.pen.loc = usr
src.pen.layer = 20
src.pen = null
usr.update_clothing()
else
if (!( usr.r_hand ))
usr.r_hand = src.pen
src.pen.loc = usr
src.pen.layer = 20
src.pen = null
usr.update_clothing()
if (src.pen)
src.pen.add_fingerprint(usr)
src.add_fingerprint(usr)
if (href_list["remove"])
var/obj/item/P = locate(href_list["remove"])
if ((P && P.loc == src))
if ((usr.hand && !( usr.l_hand )))
usr.l_hand = P
P.loc = usr
P.layer = 20
usr.update_clothing()
else
if (!( usr.r_hand ))
usr.r_hand = P
P.loc = usr
P.layer = 20
usr.update_clothing()
P.add_fingerprint(usr)
src.add_fingerprint(usr)
if (href_list["write"])
var/obj/item/P = locate(href_list["write"])
if ((P && P.loc == src))
if (istype(usr.r_hand, /obj/item/weapon/pen))
P.attackby(usr.r_hand, usr)
else
if (istype(usr.l_hand, /obj/item/weapon/pen))
P.attackby(usr.l_hand, usr)
else
if (istype(src.pen, /obj/item/weapon/pen))
P.attackby(src.pen, usr)
src.add_fingerprint(usr)
if (href_list["read"])
var/obj/item/weapon/paper/P = locate(href_list["read"])
if ((P && P.loc == src))
if (!( istype(usr, /mob/living/carbon/human) ))
usr << browse(text("<HTML><HEAD><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", P.name, stars(P.info)), text("window=[]", P.name))
onclose(usr, "[P.name]")
else
usr << browse(text("<HTML><HEAD><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", P.name, P.info), text("window=[]", P.name))
onclose(usr, "[P.name]")
if (ismob(src.loc))
var/mob/M = src.loc
if (M.machine == src)
spawn( 0 )
src.attack_self(M)
return
return
/obj/item/weapon/clipboard/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/item/weapon/clipboard/attack_hand(mob/user as mob)
if ((locate(/obj/item/weapon/paper, src) && (!( user.equipped() ) && (user.l_hand == src || user.r_hand == src))))
var/obj/item/weapon/paper/P
for(P in src)
break
if (P)
if (user.hand)
user.l_hand = P
else
user.r_hand = P
P.loc = user
P.layer = 20
P.add_fingerprint(user)
user.update_clothing()
src.add_fingerprint(user)
else
if (user.contents.Find(src))
spawn( 0 )
src.attack_self(user)
return
else
return ..()
return
/obj/item/weapon/clipboard/attackby(obj/item/weapon/P as obj, mob/user as mob)
..()
if (istype(P, /obj/item/weapon/paper))
if (src.contents.len < 15)
user.drop_item()
P.loc = src
else
user << "\blue Not enough space!!!"
else
if (istype(P, /obj/item/weapon/pen))
if (!src.pen)
user.drop_item()
P.loc = src
src.pen = P
else
return
src.update()
spawn(0)
attack_self(user)
return
return
/obj/item/weapon/clipboard/proc/update()
src.icon_state = text("clipboard[][]", (locate(/obj/item/weapon/paper, src) ? "1" : "0"), (locate(/obj/item/weapon/pen, src) ? "1" : "0"))
return
/obj/item/weapon/clipboard/MouseDrop(obj/over_object as obj) //Quick clipboard fix. -Agouri
if (ishuman(usr) || ismonkey(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~
var/mob/M = usr
if (!( istype(over_object, /obj/screen) ))
return ..()
if ((!( M.restrained() ) && !( M.stat ) /*&& M.pocket == src*/))
if (over_object.name == "r_hand")
if (!( M.r_hand ))
M.u_equip(src)
M.r_hand = src
else
if (over_object.name == "l_hand")
if (!( M.l_hand ))
M.u_equip(src)
M.l_hand = src
M.update_clothing()
src.add_fingerprint(usr)
return //
// PHOTOGRAPH
/obj/item/weapon/paper/photograph/New()
..()
src.pixel_y = 0
src.pixel_x = 0
return
/obj/item/weapon/paper/photograph/attack_self(mob/user as mob)
var/n_name = input(user, "What would you like to label the photo?", "Paper Labelling", null) as text
n_name = copytext(n_name, 1, 32)
if ((src.loc == user && user.stat == 0))
src.name = text("photo[]", (n_name ? text("- '[]'", n_name) : null))
src.add_fingerprint(user)
return