diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index d6c0058ff86..8ede4c9ed1b 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -81,7 +81,10 @@ dat+= "
" if(istype(src[page], /obj/item/weapon/paper)) var/obj/item/weapon/paper/P = W - dat+= "[P.name][P.info][P.stamps]" + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) + dat+= "[P.name][stars(P.info)][P.stamps]" + else + dat+= "[P.name][P.info][P.stamps]" human_user << browse(dat, "window=[name]") P.add_fingerprint(usr) else if(istype(src[page], /obj/item/weapon/photo)) @@ -94,6 +97,7 @@ + "", "window=[name]") P.add_fingerprint(usr) add_fingerprint(usr) + update_icon() return @@ -215,7 +219,9 @@ underlays += img i++ else if(istype(O, /obj/item/weapon/photo)) - img.icon_state = "photo" + var/obj/item/weapon/photo/Ph = O +// img.icon_state = "photo" + img = Ph.tiny photo = 1 overlays += img if(i>1) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 451411c0e30..1b02d2d7eb1 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -10,6 +10,7 @@ power_channel = EQUIP var/obj/item/weapon/paper/copy = null //what's in the copier! var/obj/item/weapon/photo/photocopy = null + var/obj/item/weapon/paper_bundle/bundle = null var/copies = 1 //how many copies to print! var/toner = 30 //how much toner is left! woooooo~ var/maxcopies = 10 //how many copies can be copied at once- idea shamelessly stolen from bs12's copier! @@ -24,7 +25,7 @@ user.set_machine(src) var/dat = "Photocopier

" - if(copy || photocopy) + if(copy || photocopy || bundle) dat += "Remove Paper
" if(toner) dat += "Copy
" @@ -45,37 +46,7 @@ if(copy) for(var/i = 0, i < copies, i++) if(toner > 0) - var/obj/item/weapon/paper/c = new /obj/item/weapon/paper (loc) - if(toner > 10) //lots of toner, make it dark - c.info = "" - else //no toner? shitty copies for you! - c.info = "" - var/copied = html_decode(copy.info) - copied = replacetext(copied, "" - c.name = copy.name // -- Doohl - c.fields = copy.fields - c.stamps = copy.stamps - c.stamped = copy.stamped - c.ico = copy.ico - c.offset_x = copy.offset_x - c.offset_y = copy.offset_y - var/list/temp_overlays = copy.overlays //Iterates through stamps - var/image/img //and puts a matching - for (var/j = 1, j <= temp_overlays.len, j++) //gray overlay onto the copy - if (findtext(copy.ico[j], "cap") || findtext(copy.ico[j], "cent")) - img = image('icons/obj/bureaucracy.dmi', "paper_stamp-circle") - else if (findtext(copy.ico[j], "deny")) - img = image('icons/obj/bureaucracy.dmi', "paper_stamp-x") - else - img = image('icons/obj/bureaucracy.dmi', "paper_stamp-dots") - img.pixel_x = copy.offset_x[j] - img.pixel_y = copy.offset_y[j] - c.overlays += img - c.updateinfolinks() - toner-- + copy(copy) sleep(15) else break @@ -83,25 +54,36 @@ else if(photocopy) for(var/i = 0, i < copies, i++) if(toner > 0) - var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (src.loc) - var/icon/I = icon(photocopy.icon, photocopy.icon_state) - var/icon/img = icon(photocopy.img) - if(toner > 10) //plenty of toner, go straight greyscale - I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) //I'm not sure how expensive this is, but given the many limitations of photocopying, it shouldn't be an issue. - img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) - else //not much toner left, lighten the photo - I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) - img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) - p.icon = I - p.img = img - p.name = photocopy.name - p.desc = photocopy.desc - p.scribble = photocopy.scribble - toner -= 5 //photos use a lot of ink! + photocopy(photocopy) sleep(15) else break updateUsrDialog() + else if(bundle) + for(var/i = 0, i < copies, i++) + if(toner <= 0) + break + var/obj/item/weapon/paper_bundle/p = new /obj/item/weapon/paper_bundle (src) + var/j = 0 + for(var/obj/item/weapon/W in bundle) + if(toner <= 0) + usr << "The photocopier couldn't finish the printjob." + break + else if(istype(W, /obj/item/weapon/paper)) + W = copy(W) + else if(istype(W, /obj/item/weapon/photo)) + W = photocopy(W) + W.loc = p + p.amount++ + j++ + p.amount-- + p.loc = src.loc + p.update_icon() + p.icon_state = "paper_words" + p.pixel_y = rand(-8, 8) + p.pixel_x = rand(-9, 9) + sleep(15*j) + updateUsrDialog() else if(href_list["remove"]) if(copy) copy.loc = usr.loc @@ -115,6 +97,12 @@ usr << "You take the photo out of \the [src]." photocopy = null updateUsrDialog() + else if(bundle) + bundle.loc = usr.loc + usr.put_in_hands(bundle) + usr << "You take the paper bundle out of \the [src]." + bundle = null + updateUsrDialog() else if(href_list["min"]) if(copies > 1) copies-- @@ -126,7 +114,7 @@ attackby(obj/item/O as obj, mob/user as mob) if(istype(O, /obj/item/weapon/paper)) - if(!copy && !photocopy) + if(!copy && !photocopy && !bundle) user.drop_item() copy = O O.loc = src @@ -136,7 +124,7 @@ else user << "There is already something in \the [src]." else if(istype(O, /obj/item/weapon/photo)) - if(!copy && !photocopy) + if(!copy && !photocopy && !bundle) user.drop_item() photocopy = O O.loc = src @@ -145,6 +133,14 @@ updateUsrDialog() else user << "There is already something in \the [src]." + else if(istype(O, /obj/item/weapon/paper_bundle)) + if(!copy && !photocopy && !bundle) + user.drop_item() + bundle = O + O.loc = src + user << "You insert the bundle into \the [src]." + flick("bigscanner1", src) + updateUsrDialog() else if(istype(O, /obj/item/device/toner)) if(toner == 0) user.drop_item() @@ -187,6 +183,63 @@ 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) + if(toner > 10) //lots of toner, make it dark + c.info = "" + else //no toner? shitty copies for you! + c.info = "" + var/copied = html_decode(copy.info) + copied = replacetext(copied, "" + c.name = copy.name // -- Doohl + c.fields = copy.fields + c.stamps = copy.stamps + c.stamped = copy.stamped + c.ico = copy.ico + c.offset_x = copy.offset_x + c.offset_y = copy.offset_y + var/list/temp_overlays = copy.overlays //Iterates through stamps + var/image/img //and puts a matching + for (var/j = 1, j <= temp_overlays.len, j++) //gray overlay onto the copy + if (findtext(copy.ico[j], "cap") || findtext(copy.ico[j], "cent")) + img = image('icons/obj/bureaucracy.dmi', "paper_stamp-circle") + else if (findtext(copy.ico[j], "deny")) + img = image('icons/obj/bureaucracy.dmi', "paper_stamp-x") + else + img = image('icons/obj/bureaucracy.dmi', "paper_stamp-dots") + img.pixel_x = copy.offset_x[j] + img.pixel_y = copy.offset_y[j] + c.overlays += img + c.updateinfolinks() + toner-- + return c + + +/obj/machinery/photocopier/proc/photocopy(var/obj/item/weapon/photo/photocopy) + var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (src.loc) + var/icon/I = icon(photocopy.icon, photocopy.icon_state) + var/icon/img = icon(photocopy.img) + if(toner > 10) //plenty of toner, go straight greyscale + I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) //I'm not sure how expensive this is, but given the many limitations of photocopying, it shouldn't be an issue. + img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) + else //not much toner left, lighten the photo + I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) + img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) + p.icon = I + p.img = img + p.name = photocopy.name + p.desc = photocopy.desc + p.scribble = photocopy.scribble + toner -= 5 //photos use a lot of ink! + if(toner < 0) + toner = 0 + return p + + /obj/item/device/toner name = "toner cartridge" icon_state = "tonercartridge" diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index fc71edff2a8..00d5dc2b958 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -29,6 +29,7 @@ w_class = 2.0 var/icon/img //Big photo image var/scribble //Scribble on the back. + var/icon/tiny /obj/item/weapon/photo/attack_self(mob/user as mob) examine() @@ -242,10 +243,15 @@ if(!user.get_inactive_hand()) user.put_in_inactive_hand(P) var/icon/small_img = icon(temp) + var/icon/tiny_img = icon(temp) var/icon/ic = icon('icons/obj/items.dmi',"photo") + var/icon/pc = icon('icons/obj/bureaucracy.dmi', "photo") small_img.Scale(8, 8) + tiny_img.Scale(4, 4) ic.Blend(small_img,ICON_OVERLAY, 10, 13) + pc.Blend(tiny_img,ICON_OVERLAY, 12, 19) P.icon = ic + P.tiny = pc P.img = temp P.desc = mobs P.pixel_x = rand(-10, 10) diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index a1d379cad9a..3c6d52748c6 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ