mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
Merge branch 'master' into put-that-cookie-down
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/paper/carbon
|
||||
/obj/item/paper/carbon
|
||||
name = "paper"
|
||||
icon_state = "paper_stack"
|
||||
item_state = "paper"
|
||||
@@ -6,7 +6,7 @@
|
||||
var/iscopy = 0
|
||||
|
||||
|
||||
/obj/item/weapon/paper/carbon/update_icon()
|
||||
/obj/item/paper/carbon/update_icon()
|
||||
if(iscopy)
|
||||
if(info)
|
||||
icon_state = "cpaper_words"
|
||||
@@ -25,15 +25,15 @@
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/paper/carbon/verb/removecopy()
|
||||
/obj/item/paper/carbon/verb/removecopy()
|
||||
set name = "Remove carbon-copy"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
if(copied == 0)
|
||||
var/obj/item/weapon/paper/carbon/c = src
|
||||
var/obj/item/paper/carbon/c = src
|
||||
var/copycontents = html_decode(c.info)
|
||||
var/obj/item/weapon/paper/carbon/copy = new /obj/item/weapon/paper/carbon (usr.loc)
|
||||
var/obj/item/paper/carbon/copy = new /obj/item/paper/carbon (usr.loc)
|
||||
copycontents = replacetext(copycontents, "<font face=\"[c.deffont]\" color=", "<font face=\"[c.deffont]\" nocolor=") //state of the art techniques in action
|
||||
copycontents = replacetext(copycontents, "<font face=\"[c.crayonfont]\" color=", "<font face=\"[c.crayonfont]\" nocolor=") //This basically just breaks the existing color tag, which we need to do because the innermost tag takes priority.
|
||||
copy.info += copycontents
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#define PAPERWORK 1
|
||||
#define PHOTO 2
|
||||
|
||||
/obj/item/weapon/clipboard
|
||||
/obj/item/clipboard
|
||||
name = "clipboard"
|
||||
desc = "It looks like you're writing a letter. Want some help?"
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -9,39 +9,39 @@
|
||||
item_state = "clipboard"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
throw_speed = 3
|
||||
var/obj/item/weapon/pen/containedpen
|
||||
var/obj/item/weapon/toppaper
|
||||
var/obj/item/pen/containedpen
|
||||
var/obj/item/toppaper
|
||||
slot_flags = SLOT_BELT
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/clipboard/New()
|
||||
/obj/item/clipboard/New()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/clipboard/verb/removePen(mob/user)
|
||||
/obj/item/clipboard/verb/removePen(mob/user)
|
||||
set category = "Object"
|
||||
set name = "Remove clipboard pen"
|
||||
if(!ishuman(user) || user.incapacitated())
|
||||
return
|
||||
penPlacement(user, containedpen, FALSE)
|
||||
|
||||
/obj/item/weapon/clipboard/proc/isPaperwork(obj/item/weapon/W) //This could probably do with being somewhere else but for now it's fine here.
|
||||
if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/paper_bundle))
|
||||
/obj/item/clipboard/proc/isPaperwork(obj/item/W) //This could probably do with being somewhere else but for now it's fine here.
|
||||
if(istype(W, /obj/item/paper) || istype(W, /obj/item/paper_bundle))
|
||||
return PAPERWORK
|
||||
if(istype(W, /obj/item/weapon/photo))
|
||||
if(istype(W, /obj/item/photo))
|
||||
return PHOTO
|
||||
|
||||
/obj/item/weapon/clipboard/proc/checkTopPaper()
|
||||
/obj/item/clipboard/proc/checkTopPaper()
|
||||
if(toppaper.loc != src) //Oh no! We're missing a top sheet! Better get another one to be at the top.
|
||||
toppaper = locate(/obj/item/weapon/paper) in src
|
||||
toppaper = locate(/obj/item/paper) in src
|
||||
if(!toppaper) //In case there's no paper, try find a paper bundle instead (why is paper_bundle not a subtype of paper?)
|
||||
toppaper = locate(/obj/item/weapon/paper_bundle) in src
|
||||
toppaper = locate(/obj/item/paper_bundle) in src
|
||||
|
||||
/obj/item/weapon/clipboard/examine(mob/user)
|
||||
/obj/item/clipboard/examine(mob/user)
|
||||
if(..(user, 1) && toppaper)
|
||||
toppaper.examine(user)
|
||||
|
||||
obj/item/weapon/clipboard/proc/penPlacement(mob/user, obj/item/weapon/pen/P, placing)
|
||||
obj/item/clipboard/proc/penPlacement(mob/user, obj/item/pen/P, placing)
|
||||
if(placing)
|
||||
if(containedpen)
|
||||
to_chat(user, "<span class='warning'>There's already a pen in [src]!</span>")
|
||||
@@ -61,12 +61,12 @@ obj/item/weapon/clipboard/proc/penPlacement(mob/user, obj/item/weapon/pen/P, pla
|
||||
containedpen = null
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/clipboard/proc/showClipboard(mob/user) //Show them what's on the clipboard
|
||||
/obj/item/clipboard/proc/showClipboard(mob/user) //Show them what's on the clipboard
|
||||
var/dat = "<title>[src]</title>"
|
||||
dat += "<a href='?src=[UID()];doPenThings=[containedpen ? "Remove" : "Add"]'>[containedpen ? "Remove pen" : "Add pen"]</a><br><hr>"
|
||||
if(toppaper)
|
||||
dat += "<a href='?src=[UID()];remove=\ref[toppaper]'>Remove</a><a href='?src=[UID()];viewOrWrite=\ref[toppaper]'>[toppaper.name]</a><br><hr>"
|
||||
for(var/obj/item/weapon/P in src)
|
||||
for(var/obj/item/P in src)
|
||||
if(isPaperwork(P) == PAPERWORK && P != toppaper)
|
||||
dat += "<a href='?src=[UID()];remove=\ref[P]'>Remove</a><a href='?src=[UID()];topPaper=\ref[P]'>Put on top</a><a href='?src=[UID()];viewOrWrite=\ref[P]'>[P.name]</a><br>"
|
||||
if(isPaperwork(P) == PHOTO)
|
||||
@@ -75,7 +75,7 @@ obj/item/weapon/clipboard/proc/penPlacement(mob/user, obj/item/weapon/pen/P, pla
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
|
||||
/obj/item/weapon/clipboard/update_icon()
|
||||
/obj/item/clipboard/update_icon()
|
||||
overlays.Cut()
|
||||
if(toppaper)
|
||||
overlays += toppaper.icon_state
|
||||
@@ -85,7 +85,7 @@ obj/item/weapon/clipboard/proc/penPlacement(mob/user, obj/item/weapon/pen/P, pla
|
||||
overlays += "clipboard_over"
|
||||
return
|
||||
|
||||
/obj/item/weapon/clipboard/attackby(obj/item/weapon/W, mob/user)
|
||||
/obj/item/clipboard/attackby(obj/item/W, mob/user)
|
||||
if(isPaperwork(W)) //If it's a photo, paper bundle, or piece of paper, place it on the clipboard.
|
||||
user.unEquip(W)
|
||||
W.forceMove(src)
|
||||
@@ -111,14 +111,14 @@ obj/item/weapon/clipboard/proc/penPlacement(mob/user, obj/item/weapon/pen/P, pla
|
||||
penPlacement(user, W, TRUE)
|
||||
else
|
||||
return
|
||||
else if(istype(W, /obj/item/weapon/stamp) && toppaper) //We can stamp the topmost piece of paper
|
||||
else if(istype(W, /obj/item/stamp) && toppaper) //We can stamp the topmost piece of paper
|
||||
toppaper.attackby(W, user)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/clipboard/attack_self(mob/user)
|
||||
/obj/item/clipboard/attack_self(mob/user)
|
||||
showClipboard(user)
|
||||
|
||||
/obj/item/weapon/clipboard/Topic(href, href_list)
|
||||
/obj/item/clipboard/Topic(href, href_list)
|
||||
..()
|
||||
if(!Adjacent(usr) || usr.incapacitated())
|
||||
return
|
||||
@@ -135,7 +135,7 @@ obj/item/weapon/clipboard/proc/penPlacement(mob/user, obj/item/weapon/pen/P, pla
|
||||
to_chat(usr, "<span class='notice'>You remove [P] from [src].</span>")
|
||||
checkTopPaper() //So we don't accidentally make the top sheet not be on the clipboard
|
||||
else if(href_list["viewOrWrite"])
|
||||
var/obj/item/weapon/P = locate(href_list["viewOrWrite"])
|
||||
var/obj/item/P = locate(href_list["viewOrWrite"])
|
||||
if(!isPaperwork(P))
|
||||
return
|
||||
if(is_pen(I) && isPaperwork(P) != PHOTO) //Because you can't write on photos that aren't in your hand
|
||||
@@ -143,10 +143,10 @@ obj/item/weapon/clipboard/proc/penPlacement(mob/user, obj/item/weapon/pen/P, pla
|
||||
else if(isPaperwork(P) == PAPERWORK) //Why can't these be subtypes of paper
|
||||
P.examine(usr)
|
||||
else if(isPaperwork(P) == PHOTO)
|
||||
var/obj/item/weapon/photo/Ph = P
|
||||
var/obj/item/photo/Ph = P
|
||||
Ph.show(usr)
|
||||
else if(href_list["topPaper"])
|
||||
var/obj/item/weapon/P = locate(href_list["topPaper"])
|
||||
var/obj/item/P = locate(href_list["topPaper"])
|
||||
if(P == toppaper)
|
||||
return
|
||||
to_chat(usr, "<span class='notice'>You flick the pages so that [P] is on top.</span>")
|
||||
|
||||
@@ -17,7 +17,7 @@ var/list/alldepartments = list()
|
||||
idle_power_usage = 30
|
||||
active_power_usage = 200
|
||||
|
||||
var/obj/item/weapon/card/id/scan = null // identification
|
||||
var/obj/item/card/id/scan = null // identification
|
||||
|
||||
var/authenticated = 0
|
||||
var/sendcooldown = 0 // to avoid spamming fax messages
|
||||
@@ -48,10 +48,10 @@ var/list/alldepartments = list()
|
||||
/obj/machinery/photocopier/faxmachine/attack_ghost(mob/user)
|
||||
ui_interact(user)
|
||||
|
||||
/obj/machinery/photocopier/faxmachine/attackby(obj/item/weapon/item, mob/user, params)
|
||||
if(istype(item,/obj/item/weapon/card/id) && !scan)
|
||||
/obj/machinery/photocopier/faxmachine/attackby(obj/item/item, mob/user, params)
|
||||
if(istype(item,/obj/item/card/id) && !scan)
|
||||
scan(item)
|
||||
else if(istype(item, /obj/item/weapon/paper) || istype(item, /obj/item/weapon/photo) || istype(item, /obj/item/weapon/paper_bundle))
|
||||
else if(istype(item, /obj/item/paper) || istype(item, /obj/item/photo) || istype(item, /obj/item/paper_bundle))
|
||||
..()
|
||||
SSnanoui.update_uis(src)
|
||||
else
|
||||
@@ -134,7 +134,7 @@ var/list/alldepartments = list()
|
||||
copyitem = null
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/photo) || istype(I, /obj/item/weapon/paper_bundle))
|
||||
if(istype(I, /obj/item/paper) || istype(I, /obj/item/photo) || istype(I, /obj/item/paper_bundle))
|
||||
usr.drop_item()
|
||||
copyitem = I
|
||||
I.forceMove(src)
|
||||
@@ -169,17 +169,17 @@ var/list/alldepartments = list()
|
||||
if(copyitem)
|
||||
var/n_name = sanitize(copytext(input(usr, "What would you like to label the fax?", "Fax Labelling", copyitem.name) as text, 1, MAX_MESSAGE_LEN))
|
||||
if((copyitem && copyitem.loc == src && usr.stat == 0))
|
||||
if(istype(copyitem, /obj/item/weapon/paper))
|
||||
if(istype(copyitem, /obj/item/paper))
|
||||
copyitem.name = "[(n_name ? text("[n_name]") : initial(copyitem.name))]"
|
||||
copyitem.desc = "This is a paper titled '" + copyitem.name + "'."
|
||||
else if(istype(copyitem, /obj/item/weapon/photo))
|
||||
else if(istype(copyitem, /obj/item/photo))
|
||||
copyitem.name = "[(n_name ? text("[n_name]") : "photo")]"
|
||||
else if(istype(copyitem, /obj/item/weapon/paper_bundle))
|
||||
else if(istype(copyitem, /obj/item/paper_bundle))
|
||||
copyitem.name = "[(n_name ? text("[n_name]") : "paper")]"
|
||||
|
||||
SSnanoui.update_uis(src)
|
||||
|
||||
/obj/machinery/photocopier/faxmachine/proc/scan(var/obj/item/weapon/card/id/card = null)
|
||||
/obj/machinery/photocopier/faxmachine/proc/scan(var/obj/item/card/id/card = null)
|
||||
if(scan) // Card is in machine
|
||||
if(ishuman(usr))
|
||||
scan.forceMove(get_turf(src))
|
||||
@@ -192,7 +192,7 @@ var/list/alldepartments = list()
|
||||
else if(Adjacent(usr))
|
||||
if(!card)
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if(istype(I, /obj/item/weapon/card/id))
|
||||
if(istype(I, /obj/item/card/id))
|
||||
usr.drop_item()
|
||||
I.forceMove(src)
|
||||
scan = I
|
||||
@@ -258,11 +258,11 @@ var/list/alldepartments = list()
|
||||
// give the sprite some time to flick
|
||||
sleep(20)
|
||||
|
||||
if(istype(incoming, /obj/item/weapon/paper))
|
||||
if(istype(incoming, /obj/item/paper))
|
||||
copy(incoming)
|
||||
else if(istype(incoming, /obj/item/weapon/photo))
|
||||
else if(istype(incoming, /obj/item/photo))
|
||||
photocopy(incoming)
|
||||
else if(istype(incoming, /obj/item/weapon/paper_bundle))
|
||||
else if(istype(incoming, /obj/item/paper_bundle))
|
||||
bundlecopy(incoming)
|
||||
else
|
||||
return 0
|
||||
@@ -280,11 +280,11 @@ var/list/alldepartments = list()
|
||||
use_power(200)
|
||||
|
||||
var/obj/item/rcvdcopy
|
||||
if(istype(copyitem, /obj/item/weapon/paper))
|
||||
if(istype(copyitem, /obj/item/paper))
|
||||
rcvdcopy = copy(copyitem)
|
||||
else if(istype(copyitem, /obj/item/weapon/photo))
|
||||
else if(istype(copyitem, /obj/item/photo))
|
||||
rcvdcopy = photocopy(copyitem)
|
||||
else if(istype(copyitem, /obj/item/weapon/paper_bundle))
|
||||
else if(istype(copyitem, /obj/item/paper_bundle))
|
||||
rcvdcopy = bundlecopy(copyitem)
|
||||
else
|
||||
visible_message("[src] beeps, \"Error transmitting message.\"")
|
||||
|
||||
@@ -32,12 +32,12 @@
|
||||
|
||||
/obj/structure/filingcabinet/initialize()
|
||||
for(var/obj/item/I in loc)
|
||||
if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/folder) || istype(I, /obj/item/weapon/photo))
|
||||
if(istype(I, /obj/item/paper) || istype(I, /obj/item/folder) || istype(I, /obj/item/photo))
|
||||
I.loc = src
|
||||
|
||||
|
||||
/obj/structure/filingcabinet/attackby(obj/item/P as obj, mob/user as mob, params)
|
||||
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) || istype(P, /obj/item/documents))
|
||||
if(istype(P, /obj/item/paper) || istype(P, /obj/item/folder) || istype(P, /obj/item/photo) || istype(P, /obj/item/paper_bundle) || istype(P, /obj/item/documents))
|
||||
to_chat(user, "<span class='notice'>You put [P] in [src].</span>")
|
||||
user.drop_item()
|
||||
P.loc = src
|
||||
@@ -45,7 +45,7 @@
|
||||
sleep(5)
|
||||
icon_state = initial(icon_state)
|
||||
updateUsrDialog()
|
||||
else if(istype(P, /obj/item/weapon/wrench))
|
||||
else if(istype(P, /obj/item/wrench))
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
anchored = !anchored
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>")
|
||||
@@ -116,7 +116,7 @@
|
||||
if(R.fields["name"] == G.fields["name"] || R.fields["id"] == G.fields["id"])
|
||||
S = R
|
||||
break
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
|
||||
var/obj/item/paper/P = new /obj/item/paper(src)
|
||||
P.info = "<CENTER><B>Security Record</B></CENTER><BR>"
|
||||
P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]<BR>\nSex: [G.fields["sex"]]<BR>\nAge: [G.fields["age"]]<BR>\nFingerprint: [G.fields["fingerprint"]]<BR>\nPhysical Status: [G.fields["p_stat"]]<BR>\nMental Status: [G.fields["m_stat"]]<BR>"
|
||||
P.info += "<BR>\n<CENTER><B>Security Data</B></CENTER><BR>\nCriminal Status: [S.fields["criminal"]]<BR>\n<BR>\nMinor Crimes: [S.fields["mi_crim"]]<BR>\nDetails: [S.fields["mi_crim_d"]]<BR>\n<BR>\nMajor Crimes: [S.fields["ma_crim"]]<BR>\nDetails: [S.fields["ma_crim_d"]]<BR>\n<BR>\nImportant Notes:<BR>\n\t[S.fields["notes"]]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>"
|
||||
@@ -150,7 +150,7 @@
|
||||
if(R.fields["name"] == G.fields["name"] || R.fields["id"] == G.fields["id"])
|
||||
M = R
|
||||
break
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
|
||||
var/obj/item/paper/P = new /obj/item/paper(src)
|
||||
P.info = "<CENTER><B>Medical Record</B></CENTER><BR>"
|
||||
P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]<BR>\nSex: [G.fields["sex"]]<BR>\nAge: [G.fields["age"]]<BR>\nFingerprint: [G.fields["fingerprint"]]<BR>\nPhysical Status: [G.fields["p_stat"]]<BR>\nMental Status: [G.fields["m_stat"]]<BR>"
|
||||
P.info += "<BR>\n<CENTER><B>Medical Data</B></CENTER><BR>\nBlood Type: [M.fields["b_type"]]<BR>\nDNA: [M.fields["b_dna"]]<BR>\n<BR>\nMinor Disabilities: [M.fields["mi_dis"]]<BR>\nDetails: [M.fields["mi_dis_d"]]<BR>\n<BR>\nMajor Disabilities: [M.fields["ma_dis"]]<BR>\nDetails: [M.fields["ma_dis_d"]]<BR>\n<BR>\nAllergies: [M.fields["alg"]]<BR>\nDetails: [M.fields["alg_d"]]<BR>\n<BR>\nCurrent Diseases: [M.fields["cdi"]] (per disease info placed in log/comment section)<BR>\nDetails: [M.fields["cdi_d"]]<BR>\n<BR>\nImportant Notes:<BR>\n\t[M.fields["notes"]]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/folder
|
||||
/obj/item/folder
|
||||
name = "folder"
|
||||
desc = "A folder."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -7,35 +7,35 @@
|
||||
pressure_resistance = 2
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/folder/blue
|
||||
/obj/item/folder/blue
|
||||
desc = "A blue folder."
|
||||
icon_state = "folder_blue"
|
||||
|
||||
/obj/item/weapon/folder/red
|
||||
/obj/item/folder/red
|
||||
desc = "A red folder."
|
||||
icon_state = "folder_red"
|
||||
|
||||
/obj/item/weapon/folder/yellow
|
||||
/obj/item/folder/yellow
|
||||
desc = "A yellow folder."
|
||||
icon_state = "folder_yellow"
|
||||
|
||||
/obj/item/weapon/folder/white
|
||||
/obj/item/folder/white
|
||||
desc = "A white folder."
|
||||
icon_state = "folder_white"
|
||||
|
||||
/obj/item/weapon/folder/update_icon()
|
||||
/obj/item/folder/update_icon()
|
||||
overlays.Cut()
|
||||
if(contents.len)
|
||||
overlays += "folder_paper"
|
||||
return
|
||||
|
||||
/obj/item/weapon/folder/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo) || istype(W, /obj/item/weapon/paper_bundle) || istype(W, /obj/item/documents))
|
||||
/obj/item/folder/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/paper) || istype(W, /obj/item/photo) || istype(W, /obj/item/paper_bundle) || istype(W, /obj/item/documents))
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
to_chat(user, "<span class='notice'>You put the [W] into \the [src].</span>")
|
||||
update_icon()
|
||||
else if(istype(W, /obj/item/weapon/pen))
|
||||
else if(istype(W, /obj/item/pen))
|
||||
var/n_name = input(usr, "What would you like to label the folder?", "Folder Labelling", null) as text|null
|
||||
if(!n_name)
|
||||
return
|
||||
@@ -45,14 +45,14 @@
|
||||
name = "folder[(n_name ? text("- '[n_name]'") : null)]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/folder/attack_self(mob/user as mob)
|
||||
/obj/item/folder/attack_self(mob/user as mob)
|
||||
var/dat = "<title>[name]</title>"
|
||||
|
||||
for(var/obj/item/weapon/paper/P in src)
|
||||
for(var/obj/item/paper/P in src)
|
||||
dat += "<A href='?src=[UID()];remove=\ref[P]'>Remove</A> - <A href='?src=[UID()];read=\ref[P]'>[P.name]</A><BR>"
|
||||
for(var/obj/item/weapon/photo/Ph in src)
|
||||
for(var/obj/item/photo/Ph in src)
|
||||
dat += "<A href='?src=[UID()];remove=\ref[Ph]'>Remove</A> - <A href='?src=[UID()];look=\ref[Ph]'>[Ph.name]</A><BR>"
|
||||
for(var/obj/item/weapon/paper_bundle/Pa in src)
|
||||
for(var/obj/item/paper_bundle/Pa in src)
|
||||
dat += "<A href='?src=[UID()];remove=\ref[Pa]'>Remove</A> - <A href='?src=[UID()];look=\ref[Pa]'>[Pa.name]</A><BR>"
|
||||
for(var/obj/item/documents/doc in src)
|
||||
dat += "<A href='?src=[UID()];remove=\ref[doc]'>Remove</A> - <A href='?src=[UID()];look=\ref[doc]'>[doc.name]</A><BR>"
|
||||
@@ -61,7 +61,7 @@
|
||||
add_fingerprint(usr)
|
||||
return
|
||||
|
||||
/obj/item/weapon/folder/Topic(href, href_list)
|
||||
/obj/item/folder/Topic(href, href_list)
|
||||
..()
|
||||
if((usr.stat || usr.restrained()))
|
||||
return
|
||||
@@ -75,15 +75,15 @@
|
||||
usr.put_in_hands(P)
|
||||
|
||||
else if(href_list["read"])
|
||||
var/obj/item/weapon/paper/P = locate(href_list["read"])
|
||||
var/obj/item/paper/P = locate(href_list["read"])
|
||||
if(P && (P.loc == src) && istype(P))
|
||||
P.show_content(usr)
|
||||
else if(href_list["look"])
|
||||
var/obj/item/weapon/photo/P = locate(href_list["look"])
|
||||
var/obj/item/photo/P = locate(href_list["look"])
|
||||
if(P && (P.loc == src) && istype(P))
|
||||
P.show(usr)
|
||||
else if(href_list["browse"])
|
||||
var/obj/item/weapon/paper_bundle/P = locate(href_list["browse"])
|
||||
var/obj/item/paper_bundle/P = locate(href_list["browse"])
|
||||
if(P && (P.loc == src) && istype(P))
|
||||
P.attack_self(usr)
|
||||
onclose(usr, "[P.name]")
|
||||
@@ -93,31 +93,31 @@
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/folder/documents
|
||||
/obj/item/folder/documents
|
||||
name = "folder- 'TOP SECRET'"
|
||||
desc = "A folder stamped \"Top Secret - Property of Nanotrasen Corporation. Unauthorized distribution is punishable by death.\""
|
||||
|
||||
/obj/item/weapon/folder/documents/New()
|
||||
/obj/item/folder/documents/New()
|
||||
..()
|
||||
new /obj/item/documents/nanotrasen(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/folder/syndicate
|
||||
/obj/item/folder/syndicate
|
||||
name = "folder- 'TOP SECRET'"
|
||||
desc = "A folder stamped \"Top Secret - Property of The Syndicate.\""
|
||||
|
||||
/obj/item/weapon/folder/syndicate/red
|
||||
/obj/item/folder/syndicate/red
|
||||
icon_state = "folder_sred"
|
||||
|
||||
/obj/item/weapon/folder/syndicate/red/New()
|
||||
/obj/item/folder/syndicate/red/New()
|
||||
..()
|
||||
new /obj/item/documents/syndicate/red(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/folder/syndicate/blue
|
||||
/obj/item/folder/syndicate/blue
|
||||
icon_state = "folder_sblue"
|
||||
|
||||
/obj/item/weapon/folder/syndicate/blue/New()
|
||||
/obj/item/folder/syndicate/blue/New()
|
||||
..()
|
||||
new /obj/item/documents/syndicate/blue(src)
|
||||
update_icon()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/picture_frame
|
||||
/obj/item/picture_frame
|
||||
name = "picture frame"
|
||||
desc = "Its patented design allows it to be folded larger or smaller to accommodate standard paper, photo, and poster, and canvas sizes."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -12,39 +12,39 @@
|
||||
"poster22_legit", "poster23", "poster23_legit", "poster24", "poster24_legit",
|
||||
"poster25", "poster27_legit", "poster28", "poster29")
|
||||
|
||||
/obj/item/weapon/picture_frame/New(loc, obj/item/weapon/D)
|
||||
/obj/item/picture_frame/New(loc, obj/item/D)
|
||||
..()
|
||||
if(D)
|
||||
insert(D)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/picture_frame/Destroy()
|
||||
/obj/item/picture_frame/Destroy()
|
||||
if(displayed)
|
||||
displayed = null
|
||||
for(var/A in contents)
|
||||
qdel(A)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/picture_frame/update_icon()
|
||||
/obj/item/picture_frame/update_icon()
|
||||
overlays.Cut()
|
||||
|
||||
if(displayed)
|
||||
overlays |= getFlatIcon(displayed)
|
||||
|
||||
if(istype(displayed, /obj/item/weapon/photo))
|
||||
if(istype(displayed, /obj/item/photo))
|
||||
icon_state = "[icon_base]-photo"
|
||||
else if(istype(displayed, /obj/structure/sign/poster))
|
||||
icon_state = "[icon_base]-[(displayed.icon_state in wide_posters) ? "wposter" : "poster"]"
|
||||
else if(istype(displayed, /obj/item/weapon/canvas))
|
||||
else if(istype(displayed, /obj/item/canvas))
|
||||
icon_state = "[icon_base]-canvas-[displayed.icon_state]"
|
||||
else
|
||||
icon_state = "[icon_base]-paper"
|
||||
|
||||
overlays |= icon_state
|
||||
|
||||
/obj/item/weapon/picture_frame/proc/insert(obj/D)
|
||||
if(istype(D, /obj/item/weapon/poster))
|
||||
var/obj/item/weapon/poster/P = D
|
||||
/obj/item/picture_frame/proc/insert(obj/D)
|
||||
if(istype(D, /obj/item/poster))
|
||||
var/obj/item/poster/P = D
|
||||
displayed = P.poster_structure
|
||||
P.poster_structure = null
|
||||
else
|
||||
@@ -54,11 +54,11 @@
|
||||
displayed.pixel_x = 0
|
||||
displayed.pixel_y = 0
|
||||
displayed.forceMove(src)
|
||||
if(istype(D, /obj/item/weapon/poster))
|
||||
if(istype(D, /obj/item/poster))
|
||||
qdel(D)
|
||||
|
||||
/obj/item/weapon/picture_frame/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
/obj/item/picture_frame/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/screwdriver))
|
||||
if(displayed)
|
||||
playsound(src, I.usesound, 100, 1)
|
||||
user.visible_message("<span class=warning>[user] unfastens \the [displayed] out of \the [src].</span>", "<span class=warning>You unfasten \the [displayed] out of \the [src].</span>")
|
||||
@@ -73,7 +73,7 @@
|
||||
update_icon()
|
||||
else
|
||||
to_chat(user, "<span class=notice>There is nothing to remove from \the [src].</span>")
|
||||
else if(istype(I, /obj/item/weapon/crowbar))
|
||||
else if(istype(I, /obj/item/crowbar))
|
||||
playsound(src, I.usesound, 100, 1)
|
||||
user.visible_message("<span class=warning>[user] breaks down \the [src].</span>", "<span class=warning>You break down \the [src].</span>")
|
||||
for(var/A in contents)
|
||||
@@ -85,7 +85,7 @@
|
||||
O.forceMove(user.loc)
|
||||
displayed = null
|
||||
qdel(src)
|
||||
else if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/photo) || istype(I, /obj/item/weapon/poster))
|
||||
else if(istype(I, /obj/item/paper) || istype(I, /obj/item/photo) || istype(I, /obj/item/poster))
|
||||
if(!displayed)
|
||||
user.unEquip(I)
|
||||
insert(I)
|
||||
@@ -95,13 +95,13 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/picture_frame/afterattack(atom/target, mob/user, proximity_flag)
|
||||
/obj/item/picture_frame/afterattack(atom/target, mob/user, proximity_flag)
|
||||
if(proximity_flag && istype(target, /turf/simulated/wall))
|
||||
place(target, user)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/picture_frame/proc/place(turf/T, mob/user)
|
||||
/obj/item/picture_frame/proc/place(turf/T, mob/user)
|
||||
var/stuff_on_wall = 0
|
||||
for(var/obj/O in user.loc.contents) //Let's see if it already has a poster on it or too much stuff
|
||||
if(istype(O, /obj/structure/sign))
|
||||
@@ -139,12 +139,12 @@
|
||||
|
||||
playsound(PF.loc, usesound, 100, 1)
|
||||
|
||||
/obj/item/weapon/picture_frame/examine(mob/user, var/distance = -1, var/infix = "", var/suffix = "")
|
||||
/obj/item/picture_frame/examine(mob/user, var/distance = -1, var/infix = "", var/suffix = "")
|
||||
..()
|
||||
if(displayed)
|
||||
displayed.examine(user, distance, infix, suffix)
|
||||
|
||||
/obj/item/weapon/picture_frame/attack_self(mob/user)
|
||||
/obj/item/picture_frame/attack_self(mob/user)
|
||||
if(displayed)
|
||||
if(istype(displayed, /obj/item))
|
||||
var/obj/item/I = displayed
|
||||
@@ -154,16 +154,16 @@
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/picture_frame/glass
|
||||
/obj/item/picture_frame/glass
|
||||
icon_base = "glass"
|
||||
icon_state = "glass-poster"
|
||||
materials = list(MAT_METAL = 25, MAT_GLASS = 75)
|
||||
|
||||
/obj/item/weapon/picture_frame/wooden
|
||||
/obj/item/picture_frame/wooden
|
||||
icon_base = "wood"
|
||||
icon_state = "wood-poster"
|
||||
|
||||
/obj/item/weapon/picture_frame/wooden/New()
|
||||
/obj/item/picture_frame/wooden/New()
|
||||
..()
|
||||
new /obj/item/stack/sheet/wood(src, 1)
|
||||
|
||||
@@ -173,8 +173,8 @@
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "glass-poster"
|
||||
|
||||
var/obj/item/weapon/picture_frame/frame
|
||||
var/obj/item/weapon/explosive
|
||||
var/obj/item/picture_frame/frame
|
||||
var/obj/item/explosive
|
||||
|
||||
var/tilted = 0
|
||||
var/tilt_transform = null
|
||||
@@ -212,7 +212,7 @@
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/structure/sign/picture_frame/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(istype(I, /obj/item/screwdriver))
|
||||
playsound(src, I.usesound, 100, 1)
|
||||
user.visible_message("<span class=warning>[user] begins to unfasten \the [src] from the wall.</span>", "<span class=warning>You begin to unfasten \the [src] from the wall.</span>")
|
||||
if(do_after(user, 100 * I.toolspeed, target = src))
|
||||
@@ -224,7 +224,7 @@
|
||||
explosive.forceMove(user.loc)
|
||||
explosive = null
|
||||
qdel(src)
|
||||
if(istype(I, /obj/item/weapon/grenade) || istype(I, /obj/item/weapon/grenade/plastic/c4))
|
||||
if(istype(I, /obj/item/grenade) || istype(I, /obj/item/grenade/plastic/c4))
|
||||
if(explosive)
|
||||
to_chat(user, "<span class='warning'>There is already a device attached behind \the [src], remove it first.</span>")
|
||||
return 1
|
||||
@@ -264,8 +264,8 @@
|
||||
..(severity)
|
||||
|
||||
/obj/structure/sign/picture_frame/proc/explode()
|
||||
if(istype(explosive, /obj/item/weapon/grenade))
|
||||
var/obj/item/weapon/grenade/G = explosive
|
||||
if(istype(explosive, /obj/item/grenade))
|
||||
var/obj/item/grenade/G = explosive
|
||||
explosive = null
|
||||
G.prime()
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/hand_labeler
|
||||
/obj/item/hand_labeler
|
||||
name = "hand labeler"
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "labeler0"
|
||||
@@ -7,7 +7,7 @@
|
||||
var/labels_left = 30
|
||||
var/mode = 0 //off or on.
|
||||
|
||||
/obj/item/weapon/hand_labeler/afterattack(atom/A, mob/user as mob, proximity)
|
||||
/obj/item/hand_labeler/afterattack(atom/A, mob/user as mob, proximity)
|
||||
if(!proximity) return
|
||||
if(!mode) //if it's off, give up.
|
||||
return
|
||||
@@ -29,7 +29,7 @@
|
||||
if(issilicon(A))
|
||||
to_chat(user, "<span class='notice'>You can't label cyborgs.</span>")
|
||||
return
|
||||
if(istype(A, /obj/item/weapon/reagent_containers/glass))
|
||||
if(istype(A, /obj/item/reagent_containers/glass))
|
||||
to_chat(user, "<span class='notice'>The label can't stick to the [A.name]. (Try using a pen)</span>")
|
||||
return
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"<span class='notice'>You label [A] as [label].</span>")
|
||||
A.name = "[A.name] ([label])"
|
||||
|
||||
/obj/item/weapon/hand_labeler/attack_self(mob/user as mob)
|
||||
/obj/item/hand_labeler/attack_self(mob/user as mob)
|
||||
mode = !mode
|
||||
icon_state = "labeler[mode]"
|
||||
if(mode)
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/paper_bundle
|
||||
/obj/item/paper_bundle
|
||||
name = "paper bundle"
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -16,13 +16,13 @@
|
||||
var/screen = 0
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bundle/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
/obj/item/paper_bundle/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
..()
|
||||
var/obj/item/weapon/paper/P
|
||||
if(istype(W, /obj/item/weapon/paper))
|
||||
var/obj/item/paper/P
|
||||
if(istype(W, /obj/item/paper))
|
||||
P = W
|
||||
if(istype(P, /obj/item/weapon/paper/carbon))
|
||||
var/obj/item/weapon/paper/carbon/C = P
|
||||
if(istype(P, /obj/item/paper/carbon))
|
||||
var/obj/item/paper/carbon/C = P
|
||||
if(!C.iscopy && !C.copied)
|
||||
to_chat(user, "<span class='notice'>Take off the carbon copy first.</span>")
|
||||
add_fingerprint(user)
|
||||
@@ -38,16 +38,16 @@
|
||||
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))
|
||||
else if(istype(W, /obj/item/photo))
|
||||
amount++
|
||||
if(screen == 2)
|
||||
screen = 1
|
||||
to_chat(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.unEquip(W)
|
||||
W.loc = src
|
||||
else if(istype(W, /obj/item/weapon/lighter))
|
||||
else if(istype(W, /obj/item/lighter))
|
||||
burnpaper(W, user)
|
||||
else if(istype(W, /obj/item/weapon/paper_bundle))
|
||||
else if(istype(W, /obj/item/paper_bundle))
|
||||
user.unEquip(W)
|
||||
for(var/obj/O in W)
|
||||
O.loc = src
|
||||
@@ -60,7 +60,7 @@
|
||||
else
|
||||
if(istype(W, /obj/item/stack/tape_roll))
|
||||
return 0
|
||||
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon))
|
||||
if(istype(W, /obj/item/pen) || istype(W, /obj/item/toy/crayon))
|
||||
usr << browse("", "window=[name]") //Closes the dialog
|
||||
P = src[page]
|
||||
P.attackby(W, user, params)
|
||||
@@ -72,11 +72,11 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bundle/proc/burnpaper(obj/item/weapon/lighter/P, mob/user)
|
||||
/obj/item/paper_bundle/proc/burnpaper(obj/item/lighter/P, mob/user)
|
||||
var/class = "<span class='warning'>"
|
||||
|
||||
if(P.lit && !user.restrained())
|
||||
if(istype(P, /obj/item/weapon/lighter/zippo))
|
||||
if(istype(P, /obj/item/lighter/zippo))
|
||||
class = "<span class='rose'>"
|
||||
|
||||
user.visible_message("[class][user] holds \the [P] up to \the [src], it looks like \he's trying to burn it!", \
|
||||
@@ -96,34 +96,34 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You must hold \the [P] steady to burn \the [src].</span>")
|
||||
|
||||
/obj/item/weapon/paper_bundle/examine(mob/user)
|
||||
/obj/item/paper_bundle/examine(mob/user)
|
||||
if(..(user, 1))
|
||||
src.show_content(user)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>It is too far away.</span>")
|
||||
|
||||
/obj/item/weapon/paper_bundle/proc/show_content(mob/user as mob)
|
||||
/obj/item/paper_bundle/proc/show_content(mob/user as mob)
|
||||
var/dat
|
||||
var/obj/item/weapon/W = src[page]
|
||||
var/obj/item/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=[UID()];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=[UID()];remove=1'>Remove [(istype(W, /obj/item/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=[UID()];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=[UID()];prev_page=1'>Previous Page</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=[UID()];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=[UID()];remove=1'>Remove [(istype(W, /obj/item/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=[UID()];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=[UID()];prev_page=1'>Previous Page</A></DIV>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=[UID()];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV><BR><HR>"
|
||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=[UID()];remove=1'>Remove [(istype(W, /obj/item/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/paper/P = W
|
||||
if(istype(src[page], /obj/item/paper))
|
||||
var/obj/item/paper/P = W
|
||||
dat += P.show_content(usr, view = 0)
|
||||
usr << browse(dat, "window=[name]")
|
||||
else if(istype(src[page], /obj/item/weapon/photo))
|
||||
var/obj/item/weapon/photo/P = W
|
||||
else if(istype(src[page], /obj/item/photo))
|
||||
var/obj/item/photo/P = W
|
||||
usr << browse_rsc(P.img, "tmp_photo.png")
|
||||
usr << browse(dat + "<html><head><title>[P.name]</title></head>" \
|
||||
+ "<body style='overflow:hidden'>" \
|
||||
@@ -131,15 +131,15 @@
|
||||
+ "[P.scribble ? "<div><br> Written on the back:<br><i>[P.scribble]</i>" : ]"\
|
||||
+ "</body></html>", "window=[name]")
|
||||
|
||||
/obj/item/weapon/paper_bundle/attack_self(mob/user as mob)
|
||||
/obj/item/paper_bundle/attack_self(mob/user as mob)
|
||||
src.show_content(user)
|
||||
add_fingerprint(usr)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/paper_bundle/Topic(href, href_list)
|
||||
/obj/item/paper_bundle/Topic(href, href_list)
|
||||
..()
|
||||
if((src in usr.contents) || (istype(src.loc, /obj/item/weapon/folder) && (src.loc in usr.contents)))
|
||||
if((src in usr.contents) || (istype(src.loc, /obj/item/folder) && (src.loc in usr.contents)))
|
||||
usr.set_machine(src)
|
||||
if(href_list["next_page"])
|
||||
if(page == amount)
|
||||
@@ -160,11 +160,11 @@
|
||||
page--
|
||||
playsound(src.loc, "pageturn", 50, 1)
|
||||
if(href_list["remove"])
|
||||
var/obj/item/weapon/W = src[page]
|
||||
var/obj/item/W = src[page]
|
||||
usr.put_in_hands(W)
|
||||
to_chat(usr, "<span class='notice'>You remove the [W.name] from the bundle.</span>")
|
||||
if(amount == 1)
|
||||
var/obj/item/weapon/paper/P = src[1]
|
||||
var/obj/item/paper/P = src[1]
|
||||
usr.unEquip(src)
|
||||
usr.put_in_hands(P)
|
||||
qdel(src)
|
||||
@@ -183,7 +183,7 @@
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bundle/verb/rename()
|
||||
/obj/item/paper_bundle/verb/rename()
|
||||
set name = "Rename bundle"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
@@ -195,7 +195,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bundle/verb/remove_all()
|
||||
/obj/item/paper_bundle/verb/remove_all()
|
||||
set name = "Loose bundle"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
@@ -211,9 +211,9 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bundle/update_icon()
|
||||
/obj/item/paper_bundle/update_icon()
|
||||
if(contents.len)
|
||||
var/obj/item/weapon/paper/P = src[1]
|
||||
var/obj/item/paper/P = src[1]
|
||||
icon_state = P.icon_state
|
||||
overlays = P.overlays
|
||||
underlays = 0
|
||||
@@ -221,7 +221,7 @@
|
||||
var/photo
|
||||
for(var/obj/O in src)
|
||||
var/image/img = image('icons/obj/bureaucracy.dmi')
|
||||
if(istype(O, /obj/item/weapon/paper))
|
||||
if(istype(O, /obj/item/paper))
|
||||
img.icon_state = O.icon_state
|
||||
img.pixel_x -= min(1*i, 2)
|
||||
img.pixel_y -= min(1*i, 2)
|
||||
@@ -229,8 +229,8 @@
|
||||
pixel_y = min( 1*i, 2)
|
||||
underlays += img
|
||||
i++
|
||||
else if(istype(O, /obj/item/weapon/photo))
|
||||
var/obj/item/weapon/photo/Ph = O
|
||||
else if(istype(O, /obj/item/photo))
|
||||
var/obj/item/photo/Ph = O
|
||||
img = Ph.tiny
|
||||
photo = 1
|
||||
overlays += img
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/paper_bin
|
||||
/obj/item/paper_bin
|
||||
name = "paper bin"
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "paper_bin1"
|
||||
@@ -12,21 +12,21 @@
|
||||
var/amount = 30 //How much paper is in the bin.
|
||||
var/list/papers = list() //List of papers put in the bin for reference.
|
||||
|
||||
/obj/item/weapon/paper_bin/fire_act()
|
||||
/obj/item/paper_bin/fire_act()
|
||||
if(!amount)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/paper_bin/Destroy()
|
||||
/obj/item/paper_bin/Destroy()
|
||||
QDEL_LIST(papers)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paper_bin/burn()
|
||||
/obj/item/paper_bin/burn()
|
||||
amount = 0
|
||||
extinguish()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/paper_bin/MouseDrop(atom/over_object)
|
||||
/obj/item/paper_bin/MouseDrop(atom/over_object)
|
||||
var/mob/M = usr
|
||||
if(M.restrained() || M.stat || !Adjacent(M))
|
||||
return
|
||||
@@ -48,7 +48,7 @@
|
||||
add_fingerprint(M)
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bin/attack_hand(mob/user as mob)
|
||||
/obj/item/paper_bin/attack_hand(mob/user as mob)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/organ/external/temp = H.bodyparts_by_name["r_hand"]
|
||||
@@ -62,12 +62,12 @@
|
||||
if(amount==0)
|
||||
update_icon()
|
||||
|
||||
var/obj/item/weapon/paper/P
|
||||
var/obj/item/paper/P
|
||||
if(papers.len > 0) //If there's any custom paper on the stack, use that instead of creating a new paper.
|
||||
P = papers[papers.len]
|
||||
papers.Remove(P)
|
||||
else
|
||||
P = new /obj/item/weapon/paper
|
||||
P = new /obj/item/paper
|
||||
if(holiday_master.holidays && holiday_master.holidays[APRIL_FOOLS])
|
||||
if(prob(30))
|
||||
P.info = "<font face=\"[P.crayonfont]\" color=\"red\"><b>HONK HONK HONK HONK HONK HONK HONK<br>HOOOOOOOOOOOOOOOOOOOOOONK<br>APRIL FOOLS</b></font>"
|
||||
@@ -84,7 +84,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bin/attackby(obj/item/weapon/paper/i as obj, mob/user as mob, params)
|
||||
/obj/item/paper_bin/attackby(obj/item/paper/i as obj, mob/user as mob, params)
|
||||
if(!istype(i))
|
||||
return
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
amount++
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bin/examine(mob/user)
|
||||
/obj/item/paper_bin/examine(mob/user)
|
||||
if(..(user, 1))
|
||||
if(amount)
|
||||
to_chat(usr, "<span class='notice'>There " + (amount > 1 ? "are [amount] papers" : "is one paper") + " in the bin.</span>")
|
||||
@@ -103,29 +103,29 @@
|
||||
to_chat(usr, "<span class='notice'>There are no papers in the bin.</span>")
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bin/update_icon()
|
||||
/obj/item/paper_bin/update_icon()
|
||||
if(amount < 1)
|
||||
icon_state = "paper_bin0"
|
||||
else
|
||||
icon_state = "paper_bin1"
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bin/carbon
|
||||
/obj/item/paper_bin/carbon
|
||||
name = "carbonless paper bin"
|
||||
icon_state = "paper_bin2"
|
||||
|
||||
/obj/item/weapon/paper_bin/carbon/attack_hand(mob/user as mob)
|
||||
/obj/item/paper_bin/carbon/attack_hand(mob/user as mob)
|
||||
if(amount >= 1)
|
||||
amount--
|
||||
if(amount==0)
|
||||
update_icon()
|
||||
|
||||
var/obj/item/weapon/paper/carbon/P
|
||||
var/obj/item/paper/carbon/P
|
||||
if(papers.len > 0) //If there's any custom paper on the stack, use that instead of creating a new paper.
|
||||
P = papers[papers.len]
|
||||
papers.Remove(P)
|
||||
else
|
||||
P = new /obj/item/weapon/paper/carbon
|
||||
P = new /obj/item/paper/carbon
|
||||
P.loc = user.loc
|
||||
user.put_in_hands(P)
|
||||
to_chat(user, "<span class='notice'>You take [P] out of the [src].</span>")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// Ported from TG
|
||||
/obj/item/weapon/paperplane
|
||||
/obj/item/paperplane
|
||||
name = "paper plane"
|
||||
desc = "Paper, folded in the shape of a plane."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -12,9 +12,9 @@
|
||||
burntime = 5
|
||||
no_spin = TRUE
|
||||
|
||||
var/obj/item/weapon/paper/internal_paper
|
||||
var/obj/item/paper/internal_paper
|
||||
|
||||
/obj/item/weapon/paperplane/New(loc, obj/item/weapon/paper/new_paper)
|
||||
/obj/item/paperplane/New(loc, obj/item/paper/new_paper)
|
||||
..()
|
||||
pixel_y = rand(-8, 8)
|
||||
pixel_x = rand(-9, 9)
|
||||
@@ -24,14 +24,14 @@
|
||||
color = new_paper.color
|
||||
new_paper.forceMove(src)
|
||||
else
|
||||
internal_paper = new /obj/item/weapon/paper(src)
|
||||
internal_paper = new /obj/item/paper(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/paperplane/Destroy()
|
||||
/obj/item/paperplane/Destroy()
|
||||
QDEL_NULL(internal_paper)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paperplane/suicide_act(mob/living/user)
|
||||
/obj/item/paperplane/suicide_act(mob/living/user)
|
||||
user.Stun(10)
|
||||
user.visible_message("<span class='suicide'>[user] jams [name] in \his nose. It looks like \he's trying to commit suicide!</span>")
|
||||
user.EyeBlurry(6)
|
||||
@@ -41,18 +41,18 @@
|
||||
sleep(10)
|
||||
return BRUTELOSS
|
||||
|
||||
/obj/item/weapon/paperplane/update_icon()
|
||||
/obj/item/paperplane/update_icon()
|
||||
overlays.Cut()
|
||||
var/list/stamped = internal_paper.stamped
|
||||
if(!stamped)
|
||||
stamped = new
|
||||
else if(stamped)
|
||||
for(var/S in stamped)
|
||||
var/obj/item/weapon/stamp = S
|
||||
var/obj/item/stamp = S
|
||||
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi', "paperplane_[initial(stamp.icon_state)]")
|
||||
overlays += stampoverlay
|
||||
|
||||
/obj/item/weapon/paperplane/attack_self(mob/user) // Unfold the paper plane
|
||||
/obj/item/paperplane/attack_self(mob/user) // Unfold the paper plane
|
||||
to_chat(user, "<span class='notice'>You unfold [src].</span>")
|
||||
if(internal_paper)
|
||||
internal_paper.forceMove(get_turf(src))
|
||||
@@ -60,14 +60,14 @@
|
||||
internal_paper = null
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/paperplane/attackby(obj/item/P, mob/living/carbon/human/user, params)
|
||||
/obj/item/paperplane/attackby(obj/item/P, mob/living/carbon/human/user, params)
|
||||
..()
|
||||
|
||||
if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon))
|
||||
to_chat(user, "<span class='notice'>You should unfold [src] before changing it.</span>")
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/stamp)) //we don't randomize stamps on a paperplane
|
||||
else if(istype(P, /obj/item/stamp)) //we don't randomize stamps on a paperplane
|
||||
internal_paper.attackby(P, user) //spoofed attack to update internal paper.
|
||||
update_icon()
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/item/weapon/paperplane/throw_impact(atom/hit_atom)
|
||||
/obj/item/paperplane/throw_impact(atom/hit_atom)
|
||||
if(..())
|
||||
return
|
||||
if(!ishuman(hit_atom))
|
||||
@@ -109,21 +109,21 @@
|
||||
E.take_damage(8, 1)
|
||||
H.emote("scream")
|
||||
|
||||
/obj/item/weapon/paper/AltClick(mob/user, obj/item/I)
|
||||
/obj/item/paper/AltClick(mob/user, obj/item/I)
|
||||
var/mob/living/carbon/human/H = user
|
||||
I = H.is_in_hands(/obj/item/weapon/paper)
|
||||
I = H.is_in_hands(/obj/item/paper)
|
||||
if(I)
|
||||
ProcFoldPlane(H, I)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/paper/proc/ProcFoldPlane(mob/living/carbon/user, obj/item/I)
|
||||
/obj/item/paper/proc/ProcFoldPlane(mob/living/carbon/user, obj/item/I)
|
||||
if(istype(user))
|
||||
if((!in_range(src, user)) || user.stat || user.restrained())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You fold [src] into the shape of a plane!</span>")
|
||||
user.unEquip(src)
|
||||
I = new /obj/item/weapon/paperplane(user, src)
|
||||
I = new /obj/item/paperplane(user, src)
|
||||
user.put_in_hands(I)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You lack the dexterity to fold [src].</span>")
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
/*
|
||||
* Pens
|
||||
*/
|
||||
/obj/item/weapon/pen
|
||||
/obj/item/pen
|
||||
desc = "It's a normal black ink pen."
|
||||
name = "pen"
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -24,33 +24,33 @@
|
||||
var/colour = "black" //what colour the ink is!
|
||||
pressure_resistance = 2
|
||||
|
||||
/obj/item/weapon/pen/suicide_act(mob/user)
|
||||
/obj/item/pen/suicide_act(mob/user)
|
||||
to_chat(viewers(user), "<span class='suicide'>[user] starts scribbling numbers over \himself with the [src.name]! It looks like \he's trying to commit sudoku.</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/pen/blue
|
||||
/obj/item/pen/blue
|
||||
name = "blue-ink pen"
|
||||
desc = "It's a normal blue ink pen."
|
||||
icon_state = "pen_blue"
|
||||
colour = "blue"
|
||||
|
||||
/obj/item/weapon/pen/red
|
||||
/obj/item/pen/red
|
||||
name = "red-ink pen"
|
||||
desc = "It's a normal red ink pen."
|
||||
icon_state = "pen_red"
|
||||
colour = "red"
|
||||
|
||||
/obj/item/weapon/pen/gray
|
||||
/obj/item/pen/gray
|
||||
name = "gray-ink pen"
|
||||
desc = "It's a normal gray ink pen."
|
||||
colour = "gray"
|
||||
|
||||
/obj/item/weapon/pen/invisible
|
||||
/obj/item/pen/invisible
|
||||
desc = "It's an invisble pen marker."
|
||||
icon_state = "pen"
|
||||
colour = "white"
|
||||
|
||||
/obj/item/weapon/pen/multi
|
||||
/obj/item/pen/multi
|
||||
name = "multicolor pen"
|
||||
desc = "It's a cool looking pen. Lots of colors!"
|
||||
|
||||
@@ -64,21 +64,21 @@
|
||||
var/pen_color_iconstate = "pencolor"
|
||||
var/pen_color_shift = 3
|
||||
|
||||
/obj/item/weapon/pen/multi/New()
|
||||
/obj/item/pen/multi/New()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/pen/multi/proc/select_colour(mob/user as mob)
|
||||
/obj/item/pen/multi/proc/select_colour(mob/user as mob)
|
||||
var/newcolour = input(user, "Which colour would you like to use?", name, colour) as null|anything in colour_choices
|
||||
if(newcolour)
|
||||
colour = newcolour
|
||||
playsound(loc, 'sound/effects/pop.ogg', 50, 1)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/pen/multi/attack_self(mob/living/user as mob)
|
||||
/obj/item/pen/multi/attack_self(mob/living/user as mob)
|
||||
select_colour(user)
|
||||
|
||||
/obj/item/weapon/pen/multi/update_icon()
|
||||
/obj/item/pen/multi/update_icon()
|
||||
overlays.Cut()
|
||||
var/icon/o = new(icon, pen_color_iconstate)
|
||||
var/list/c = colour_choices[colour]
|
||||
@@ -87,24 +87,24 @@
|
||||
o.Shift(SOUTH, pen_color_shift)
|
||||
overlays += o
|
||||
|
||||
/obj/item/weapon/pen/fancy
|
||||
/obj/item/pen/fancy
|
||||
name = "fancy pen"
|
||||
desc = "A fancy metal pen. It uses blue ink. An inscription on one side reads,\"L.L. - L.R.\""
|
||||
icon_state = "fancypen"
|
||||
|
||||
/obj/item/weapon/pen/multi/gold
|
||||
/obj/item/pen/multi/gold
|
||||
name = "Gilded Pen"
|
||||
desc = "A golden pen that is gilded with a meager amount of gold material. The word 'Nanotrasen' is etched on the clip of the pen."
|
||||
icon_state = "goldpen"
|
||||
pen_color_shift = 0
|
||||
|
||||
/obj/item/weapon/pen/multi/fountain
|
||||
/obj/item/pen/multi/fountain
|
||||
name = "Engraved Fountain Pen"
|
||||
desc = "An expensive looking pen."
|
||||
icon_state = "fountainpen"
|
||||
pen_color_shift = 0
|
||||
|
||||
/obj/item/weapon/pen/attack(mob/living/M, mob/user)
|
||||
/obj/item/pen/attack(mob/living/M, mob/user)
|
||||
if(!istype(M))
|
||||
return
|
||||
|
||||
@@ -122,12 +122,12 @@
|
||||
/*
|
||||
* Sleepypens
|
||||
*/
|
||||
/obj/item/weapon/pen/sleepy
|
||||
/obj/item/pen/sleepy
|
||||
flags = OPENCONTAINER
|
||||
origin_tech = "engineering=4;syndicate=2"
|
||||
|
||||
|
||||
/obj/item/weapon/pen/sleepy/attack(mob/living/M, mob/user)
|
||||
/obj/item/pen/sleepy/attack(mob/living/M, mob/user)
|
||||
if(!istype(M)) return
|
||||
|
||||
if(..())
|
||||
@@ -136,7 +136,7 @@
|
||||
reagents.trans_to(M, 50)
|
||||
|
||||
|
||||
/obj/item/weapon/pen/sleepy/New()
|
||||
/obj/item/pen/sleepy/New()
|
||||
create_reagents(100)
|
||||
reagents.add_reagent("ketamine", 100)
|
||||
..()
|
||||
@@ -145,14 +145,14 @@
|
||||
/*
|
||||
* (Alan) Edaggers
|
||||
*/
|
||||
/obj/item/weapon/pen/edagger
|
||||
/obj/item/pen/edagger
|
||||
origin_tech = "combat=3;syndicate=1"
|
||||
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") //these wont show up if the pen is off
|
||||
var/on = 0
|
||||
var/brightness_on = 2
|
||||
light_color = LIGHT_COLOR_RED
|
||||
|
||||
/obj/item/weapon/pen/edagger/attack_self(mob/living/user)
|
||||
/obj/item/pen/edagger/attack_self(mob/living/user)
|
||||
if(on)
|
||||
on = 0
|
||||
force = initial(force)
|
||||
@@ -179,7 +179,7 @@
|
||||
set_light(brightness_on, 1)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/pen/edagger/update_icon()
|
||||
/obj/item/pen/edagger/update_icon()
|
||||
if(on)
|
||||
icon_state = "edagger"
|
||||
item_state = "edagger"
|
||||
@@ -187,13 +187,13 @@
|
||||
icon_state = initial(icon_state) //looks like a normal pen when off.
|
||||
item_state = initial(item_state)
|
||||
|
||||
/obj/item/proc/on_write(obj/item/weapon/paper/P, mob/user)
|
||||
/obj/item/proc/on_write(obj/item/paper/P, mob/user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/pen/poison
|
||||
/obj/item/pen/poison
|
||||
var/uses_left = 3
|
||||
|
||||
/obj/item/weapon/pen/poison/on_write(obj/item/weapon/paper/P, mob/user)
|
||||
/obj/item/pen/poison/on_write(obj/item/paper/P, mob/user)
|
||||
if(P.contact_poison_volume)
|
||||
to_chat(user, "<span class='warning'>[P] is already coated.</span>")
|
||||
else if(uses_left)
|
||||
|
||||
@@ -65,14 +65,14 @@
|
||||
if(emag_cooldown > world.time)
|
||||
return
|
||||
|
||||
if(istype(copyitem, /obj/item/weapon/paper))
|
||||
if(istype(copyitem, /obj/item/paper))
|
||||
copy(copyitem)
|
||||
sleep(15)
|
||||
else if(istype(copyitem, /obj/item/weapon/photo))
|
||||
else if(istype(copyitem, /obj/item/photo))
|
||||
photocopy(copyitem)
|
||||
sleep(15)
|
||||
else if(istype(copyitem, /obj/item/weapon/paper_bundle))
|
||||
var/obj/item/weapon/paper_bundle/B = bundlecopy(copyitem)
|
||||
else if(istype(copyitem, /obj/item/paper_bundle))
|
||||
var/obj/item/paper_bundle/B = bundlecopy(copyitem)
|
||||
sleep(15*B.amount)
|
||||
else if(ass && ass.loc == src.loc)
|
||||
copyass()
|
||||
@@ -118,7 +118,7 @@
|
||||
return
|
||||
|
||||
playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1)
|
||||
var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (src.loc)
|
||||
var/obj/item/photo/p = new /obj/item/photo (src.loc)
|
||||
p.construct(selection)
|
||||
if(p.desc == "")
|
||||
p.desc += "Copied by [tempAI.name]"
|
||||
@@ -129,7 +129,7 @@
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/photocopier/attackby(obj/item/O as obj, mob/user as mob, params)
|
||||
if(istype(O, /obj/item/weapon/paper) || istype(O, /obj/item/weapon/photo) || istype(O, /obj/item/weapon/paper_bundle))
|
||||
if(istype(O, /obj/item/paper) || istype(O, /obj/item/photo) || istype(O, /obj/item/paper_bundle))
|
||||
if(!copyitem)
|
||||
user.drop_item()
|
||||
copyitem = O
|
||||
@@ -149,12 +149,12 @@
|
||||
updateUsrDialog()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>This cartridge is not yet ready for replacement! Use up the rest of the toner.</span>")
|
||||
else if(istype(O, /obj/item/weapon/wrench))
|
||||
else if(istype(O, /obj/item/wrench))
|
||||
playsound(loc, O.usesound, 50, 1)
|
||||
anchored = !anchored
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>")
|
||||
else if(istype(O, /obj/item/weapon/grab)) //For ass-copying.
|
||||
var/obj/item/weapon/grab/G = O
|
||||
else if(istype(O, /obj/item/grab)) //For ass-copying.
|
||||
var/obj/item/grab/G = O
|
||||
if(ismob(G.affecting) && G.affecting != ass)
|
||||
var/mob/GM = G.affecting
|
||||
visible_message("<span class='warning'>[usr] drags [GM.name] onto the photocopier!</span>")
|
||||
@@ -193,8 +193,8 @@
|
||||
toner = 0
|
||||
return
|
||||
|
||||
/obj/machinery/photocopier/proc/copy(var/obj/item/weapon/paper/copy)
|
||||
var/obj/item/weapon/paper/c = new /obj/item/weapon/paper (loc)
|
||||
/obj/machinery/photocopier/proc/copy(var/obj/item/paper/copy)
|
||||
var/obj/item/paper/c = new /obj/item/paper (loc)
|
||||
c.info = copy.info
|
||||
c.name = copy.name // -- Doohl
|
||||
c.fields = copy.fields
|
||||
@@ -223,8 +223,8 @@
|
||||
return c
|
||||
|
||||
|
||||
/obj/machinery/photocopier/proc/photocopy(var/obj/item/weapon/photo/photocopy)
|
||||
var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc)
|
||||
/obj/machinery/photocopier/proc/photocopy(var/obj/item/photo/photocopy)
|
||||
var/obj/item/photo/p = new /obj/item/photo (loc)
|
||||
p.name = photocopy.name
|
||||
p.icon = photocopy.icon
|
||||
p.tiny = photocopy.tiny
|
||||
@@ -269,7 +269,7 @@
|
||||
temp_img = icon('icons/obj/butts.dmi', "xeno")
|
||||
else
|
||||
return
|
||||
var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc)
|
||||
var/obj/item/photo/p = new /obj/item/photo (loc)
|
||||
p.desc = "You see [ass]'s ass on the photo."
|
||||
p.pixel_x = rand(-10, 10)
|
||||
p.pixel_y = rand(-10, 10)
|
||||
@@ -286,17 +286,17 @@
|
||||
return p
|
||||
|
||||
//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)
|
||||
/obj/machinery/photocopier/proc/bundlecopy(var/obj/item/paper_bundle/bundle, var/need_toner=1)
|
||||
var/obj/item/paper_bundle/p = new /obj/item/paper_bundle (src)
|
||||
for(var/obj/item/W in bundle)
|
||||
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>")
|
||||
break
|
||||
|
||||
if(istype(W, /obj/item/weapon/paper))
|
||||
if(istype(W, /obj/item/paper))
|
||||
W = copy(W)
|
||||
else if(istype(W, /obj/item/weapon/photo))
|
||||
else if(istype(W, /obj/item/photo))
|
||||
W = photocopy(W)
|
||||
W.forceMove(p)
|
||||
p.amount++
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
/********
|
||||
* photo *
|
||||
********/
|
||||
/obj/item/weapon/photo
|
||||
/obj/item/photo
|
||||
name = "photo"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "photo"
|
||||
@@ -36,24 +36,24 @@
|
||||
var/icon/tiny
|
||||
var/photo_size = 3
|
||||
|
||||
/obj/item/weapon/photo/attack_self(mob/user as mob)
|
||||
/obj/item/photo/attack_self(mob/user as mob)
|
||||
user.examinate(src)
|
||||
|
||||
/obj/item/weapon/photo/attackby(obj/item/weapon/P as obj, mob/user as mob, params)
|
||||
if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
/obj/item/photo/attackby(obj/item/P as obj, mob/user as mob, params)
|
||||
if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon))
|
||||
var/txt = sanitize(input(user, "What would you like to write on the back?", "Photo Writing", null) as text)
|
||||
txt = copytext(txt, 1, 128)
|
||||
if(loc == user && user.stat == 0)
|
||||
scribble = txt
|
||||
else if(istype(P, /obj/item/weapon/lighter))
|
||||
else if(istype(P, /obj/item/lighter))
|
||||
burnphoto(P, user)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/photo/proc/burnphoto(obj/item/weapon/lighter/P, mob/user)
|
||||
/obj/item/photo/proc/burnphoto(obj/item/lighter/P, mob/user)
|
||||
var/class = "<span class='warning'>"
|
||||
|
||||
if(P.lit && !user.restrained())
|
||||
if(istype(P, /obj/item/weapon/lighter/zippo))
|
||||
if(istype(P, /obj/item/lighter/zippo))
|
||||
class = "<span class='rose'>"
|
||||
|
||||
user.visible_message("[class][user] holds \the [P] up to \the [src], it looks like \he's trying to burn it!", \
|
||||
@@ -73,13 +73,13 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You must hold \the [P] steady to burn \the [src].</span>")
|
||||
|
||||
/obj/item/weapon/photo/examine(mob/user)
|
||||
/obj/item/photo/examine(mob/user)
|
||||
if(..(user, 1) || isobserver(user))
|
||||
show(user)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>It is too far away.</span>")
|
||||
|
||||
/obj/item/weapon/photo/proc/show(mob/user as mob)
|
||||
/obj/item/photo/proc/show(mob/user as mob)
|
||||
usr << browse_rsc(img, "tmp_photo.png")
|
||||
usr << browse("<html><head><title>[name]</title></head>" \
|
||||
+ "<body style='overflow:hidden;margin:0;text-align:center'>" \
|
||||
@@ -89,7 +89,7 @@
|
||||
onclose(usr, "[name]")
|
||||
return
|
||||
|
||||
/obj/item/weapon/photo/verb/rename()
|
||||
/obj/item/photo/verb/rename()
|
||||
set name = "Rename photo"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
@@ -105,15 +105,15 @@
|
||||
/**************
|
||||
* photo album *
|
||||
**************/
|
||||
/obj/item/weapon/storage/photo_album
|
||||
/obj/item/storage/photo_album
|
||||
name = "Photo album"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "album"
|
||||
item_state = "briefcase"
|
||||
can_hold = list(/obj/item/weapon/photo)
|
||||
can_hold = list(/obj/item/photo)
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/storage/photo_album/MouseDrop(obj/over_object as obj)
|
||||
/obj/item/storage/photo_album/MouseDrop(obj/over_object as obj)
|
||||
|
||||
if((istype(usr, /mob/living/carbon/human)))
|
||||
var/mob/M = usr
|
||||
@@ -388,7 +388,7 @@ var/list/SpookyGhosts = list("ghost","shade","shade2","ghost-narsie","horror","s
|
||||
return P
|
||||
|
||||
/obj/item/device/camera/proc/printpicture(mob/user, var/datum/picture/P)
|
||||
var/obj/item/weapon/photo/Photo = new/obj/item/weapon/photo()
|
||||
var/obj/item/photo/Photo = new/obj/item/photo()
|
||||
Photo.loc = user.loc
|
||||
if(!user.get_inactive_hand())
|
||||
user.put_in_inactive_hand(Photo)
|
||||
@@ -398,7 +398,7 @@ var/list/SpookyGhosts = list("ghost","shade","shade2","ghost-narsie","horror","s
|
||||
blueprints = 0
|
||||
Photo.construct(P)
|
||||
|
||||
/obj/item/weapon/photo/proc/construct(var/datum/picture/P)
|
||||
/obj/item/photo/proc/construct(var/datum/picture/P)
|
||||
name = P.fields["name"]
|
||||
icon = P.fields["icon"]
|
||||
tiny = P.fields["tiny"]
|
||||
@@ -408,8 +408,8 @@ var/list/SpookyGhosts = list("ghost","shade","shade2","ghost-narsie","horror","s
|
||||
pixel_y = P.fields["pixel_y"]
|
||||
photo_size = P.fields["size"]
|
||||
|
||||
/obj/item/weapon/photo/proc/copy()
|
||||
var/obj/item/weapon/photo/p = new/obj/item/weapon/photo()
|
||||
/obj/item/photo/proc/copy()
|
||||
var/obj/item/photo/p = new/obj/item/photo()
|
||||
|
||||
p.icon = icon(icon, icon_state)
|
||||
p.img = icon(img)
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
if(!selection)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/photo/P = new/obj/item/weapon/photo()
|
||||
var/obj/item/photo/P = new/obj/item/photo()
|
||||
P.construct(selection)
|
||||
P.show(usr)
|
||||
to_chat(usr, P.desc)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/stamp
|
||||
/obj/item/stamp
|
||||
name = "\improper rubber stamp"
|
||||
desc = "A rubber stamp for stamping important documents."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -13,85 +13,85 @@
|
||||
pressure_resistance = 2
|
||||
attack_verb = list("stamped")
|
||||
|
||||
/obj/item/weapon/stamp/suicide_act(mob/user)
|
||||
/obj/item/stamp/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] stamps 'VOID' on \his forehead, then promptly falls over, dead.</span>")
|
||||
return (OXYLOSS)
|
||||
|
||||
/obj/item/weapon/stamp/qm
|
||||
/obj/item/stamp/qm
|
||||
name = "Quartermaster's rubber stamp"
|
||||
icon_state = "stamp-qm"
|
||||
item_color = "qm"
|
||||
|
||||
/obj/item/weapon/stamp/law
|
||||
/obj/item/stamp/law
|
||||
name = "Law office's rubber stamp"
|
||||
icon_state = "stamp-law"
|
||||
item_color = "cargo"
|
||||
|
||||
/obj/item/weapon/stamp/captain
|
||||
/obj/item/stamp/captain
|
||||
name = "captain's rubber stamp"
|
||||
icon_state = "stamp-cap"
|
||||
item_color = "captain"
|
||||
|
||||
/obj/item/weapon/stamp/hop
|
||||
/obj/item/stamp/hop
|
||||
name = "head of personnel's rubber stamp"
|
||||
icon_state = "stamp-hop"
|
||||
item_color = "hop"
|
||||
|
||||
/obj/item/weapon/stamp/hos
|
||||
/obj/item/stamp/hos
|
||||
name = "head of security's rubber stamp"
|
||||
icon_state = "stamp-hos"
|
||||
item_color = "hosred"
|
||||
|
||||
/obj/item/weapon/stamp/ce
|
||||
/obj/item/stamp/ce
|
||||
name = "chief engineer's rubber stamp"
|
||||
icon_state = "stamp-ce"
|
||||
item_color = "chief"
|
||||
|
||||
/obj/item/weapon/stamp/rd
|
||||
/obj/item/stamp/rd
|
||||
name = "research director's rubber stamp"
|
||||
icon_state = "stamp-rd"
|
||||
item_color = "director"
|
||||
|
||||
/obj/item/weapon/stamp/cmo
|
||||
/obj/item/stamp/cmo
|
||||
name = "chief medical officer's rubber stamp"
|
||||
icon_state = "stamp-cmo"
|
||||
item_color = "medical"
|
||||
|
||||
/obj/item/weapon/stamp/granted
|
||||
/obj/item/stamp/granted
|
||||
name = "\improper GRANTED rubber stamp"
|
||||
icon_state = "stamp-ok"
|
||||
item_color = "qm"
|
||||
|
||||
/obj/item/weapon/stamp/denied
|
||||
/obj/item/stamp/denied
|
||||
name = "\improper DENIED rubber stamp"
|
||||
icon_state = "stamp-deny"
|
||||
item_color = "redcoat"
|
||||
|
||||
/obj/item/weapon/stamp/clown
|
||||
/obj/item/stamp/clown
|
||||
name = "clown's rubber stamp"
|
||||
icon_state = "stamp-clown"
|
||||
item_color = "clown"
|
||||
|
||||
/obj/item/weapon/stamp/centcom
|
||||
/obj/item/stamp/centcom
|
||||
name = "Nanotrasen Representative's rubber stamp"
|
||||
icon_state = "stamp-cent"
|
||||
item_color = "centcom"
|
||||
|
||||
/obj/item/weapon/stamp/syndicate
|
||||
/obj/item/stamp/syndicate
|
||||
name = "suspicious rubber stamp"
|
||||
icon_state = "stamp-syndicate"
|
||||
item_color = "syndicate"
|
||||
|
||||
// Syndicate stamp to forge documents.
|
||||
|
||||
/obj/item/weapon/stamp/chameleon/attack_self(mob/user as mob)
|
||||
/obj/item/stamp/chameleon/attack_self(mob/user as mob)
|
||||
|
||||
var/list/stamp_types = typesof(/obj/item/weapon/stamp) - src.type // Get all stamp types except our own
|
||||
var/list/stamp_types = typesof(/obj/item/stamp) - src.type // Get all stamp types except our own
|
||||
var/list/stamps = list()
|
||||
|
||||
// Generate them into a list
|
||||
for(var/stamp_type in stamp_types)
|
||||
var/obj/item/weapon/stamp/S = new stamp_type
|
||||
var/obj/item/stamp/S = new stamp_type
|
||||
stamps[capitalize(S.name)] = S
|
||||
|
||||
var/list/show_stamps = list("EXIT" = null) + sortList(stamps) // the list that will be shown to the user to pick from
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
if(user && src in user.contents)
|
||||
|
||||
var/obj/item/weapon/stamp/chosen_stamp = stamps[capitalize(input_stamp)]
|
||||
var/obj/item/stamp/chosen_stamp = stamps[capitalize(input_stamp)]
|
||||
|
||||
if(chosen_stamp)
|
||||
name = chosen_stamp.name
|
||||
|
||||
Reference in New Issue
Block a user