/obj/item/weapon/paper
name = "paper"
gender = PLURAL
icon = 'bureaucracy.dmi'
icon_state = "paper"
throwforce = 0
w_class = 1.0
throw_speed = 3
throw_range = 15
layer = 4
var/info //What's actually written on the paper.
var/stamps //The (text for the) stamps on the paper.
var/list/stamped
var/see_face = 1
var/body_parts_covered = HEAD
/obj/item/weapon/paper/New()
..()
src.pixel_y = rand(-8, 8)
src.pixel_x = rand(-9, 9)
spawn(2)
if(src.info)
src.overlays += "paper_words"
return
/obj/item/weapon/paper/update_icon()
if(src.info)
src.overlays += "paper_words"
return
/obj/item/weapon/paper/examine()
set src in oview(1)
// ..() //We don't want them to see the dumb "this is a paper" thing every time.
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
usr << browse("
[name][stars(info)][stamps]", "window=[name]")
onclose(usr, "[name]")
else
usr << browse("[name][info][stamps]", "window=[name]")
onclose(usr, "[name]")
return
/obj/item/weapon/paper/verb/rename()
set name = "Rename paper"
set category = "Object"
set src in usr
if ((usr.mutations & CLUMSY) && prob(50))
usr << "\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 ((loc == usr && usr.stat == 0))
name = "paper[(n_name ? text("- '[n_name]'") : null)]"
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("[name][info][stamps]", "window=[name]")
onclose(usr, "[name]")
else
usr << browse("[name][stars(info)][stamps]", "window=[name]")
onclose(usr, "[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/t = strip_html_simple(input(user, "What text do you wish to add?", "[name]", null),8192) as message
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, "\[center\]", "")
t = dd_replacetext(t, "\[/center\]", "")
t = dd_replacetext(t, "\[list\]", "")
t = dd_replacetext(t, "\[/list\]", "
")
t = dd_replacetext(t, "\[*\]", "")
t = dd_replacetext(t, "\[*\]", "")
t = dd_replacetext(t, "\[br\]", "
")
t = dd_replacetext(t, "\[hr\]", "
")
t = dd_replacetext(t, "\[b\]", "")
t = dd_replacetext(t, "\[/b\]", "")
t = dd_replacetext(t, "\[i\]", "")
t = dd_replacetext(t, "\[/i\]", "")
t = dd_replacetext(t, "\[u\]", "")
t = dd_replacetext(t, "\[/u\]", "")
t = dd_replacetext(t, "\[small\]", "")
t = dd_replacetext(t, "\[/small\]", "")
t = dd_replacetext(t, "\[large\]", "")
t = dd_replacetext(t, "\[/large\]", "")
t = dd_replacetext(t, "\[sign\]", "[user.real_name]")
var/obj/item/weapon/pen/i = P
t = "[t]"
if(!overlays.Find("paper_words"))
overlays += "paper_words"
info += t
return
if(istype(P, /obj/item/toy/crayon))
var/t = strip_html_simple(input(user, "What text do you wish to add?", "[name]", null),8192) as message
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, "\[center\]", "")
t = dd_replacetext(t, "\[/center\]", "")
t = dd_replacetext(t, "\[br\]", "
")
t = dd_replacetext(t, "\[b\]", "")
t = dd_replacetext(t, "\[/b\]", "")
t = dd_replacetext(t, "\[i\]", "")
t = dd_replacetext(t, "\[/i\]", "")
t = dd_replacetext(t, "\[u\]", "")
t = dd_replacetext(t, "\[/u\]", "")
t = dd_replacetext(t, "\[large\]", "")
t = dd_replacetext(t, "\[/large\]", "")
t = dd_replacetext(t, "\[sign\]", "[user.real_name]")
var/obj/item/toy/crayon/i = P
t = "[t]"
if(!overlays.Find("paper_words"))
overlays += "paper_words"
info += t
return
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
if(stamps)
stamps += "
This paper has been stamped with the [P.name]."
else
stamps += "
This paper has been stamped with the [P.name]."
switch(P.type)
if(/obj/item/weapon/stamp/captain)
overlays += "paper_stamped_cap"
if(/obj/item/weapon/stamp/hop)
overlays += "paper_stamped_hop"
if(/obj/item/weapon/stamp/hos)
overlays += "paper_stamped_hos"
if(/obj/item/weapon/stamp/ce)
overlays += "paper_stamped_ce"
if(/obj/item/weapon/stamp/rd)
overlays += "paper_stamped_rd"
if(/obj/item/weapon/stamp/cmo)
overlays += "paper_stamped_cmo"
if(/obj/item/weapon/stamp/denied)
overlays += "paper_stamped_denied"
if(/obj/item/weapon/stamp/clown)
if (!clown)
usr << "\red You are totally unable to use the stamp. HONK!"
return
else
overlays += "paper_stamped_clown"
else
overlays += "paper_stamped"
if(!stamped)
stamped = new
stamped += P.type
user << "\blue You stamp the paper with your rubber stamp."
add_fingerprint(user)
return