diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 96e8a2cf2d..1f3f73bc41 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -316,24 +316,31 @@ clown = 1 if(istype(P, /obj/item/weapon/paper)) - var/obj/item/weapon/paper_bundle/B = new(usr.loc) + var/obj/item/weapon/paper_bundle/B = new(src.loc) B.icon_state = icon_state + B.overlays = overlays + B:add_item(icon_state) if (name != "paper") B.name = name - usr.drop_item() - B.loc = usr - if (usr.hand) - usr.l_hand = B + else if (P.name != "paper") + B.name = P.name + user.drop_from_inventory(P) + if (user.r_hand == src) + user.drop_from_inventory(src) + B.loc = user + user.r_hand = B B.layer = 20 - else - usr.r_hand = B + else if (user.l_hand == src) + user.drop_from_inventory(src) + B.loc = user + user.l_hand = B B.layer = 20 - if(istype(usr,/mob/living/carbon/human)) - usr:update_inv_l_hand() - usr:update_inv_r_hand() - del(P) - del(src) - + if(istype(user,/mob/living/carbon/human)) + user:update_inv_l_hand() + user:update_inv_r_hand() + user << "You clip the papers together to create a bundle." + P.loc = B + src.loc = B if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon)) if ( istype(P, /obj/item/weapon/pen/robopen) && P:mode == 2 ) diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 70a98ee52c..e330b3b355 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -3,10 +3,67 @@ gender = PLURAL icon = 'icons/obj/bureaucracy.dmi' icon_state = "paper" + item_state = "paper" throwforce = 0 w_class = 1.0 throw_range = 2 throw_speed = 1 layer = 4 pressure_resistance = 1 - attack_verb = list("slaps") \ No newline at end of file + attack_verb = list("bapped") + var/amount = 0 //Amount of items clipped to the paper + var/page = 0 + + +/obj/item/weapon/paper_bundle/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(istype(W, /obj/item/weapon/paper)) + var/obj/item/weapon/paper/P = W + src.add_item(P.icon_state) + user << "You add [(P.name == "paper") ? "the paper" : P.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]." + user.drop_from_inventory(P) + P.loc = src + if(istype(user,/mob/living/carbon/human)) + user:update_inv_l_hand() + user:update_inv_r_hand() + add_fingerprint(usr) + return + + +/obj/item/weapon/paper_bundle/verb/rename() + set name = "Rename bundle" + set category = "Object" + set src in usr + + var/n_name = copytext(sanitize(input(usr, "What would you like to label the bundle?", "Bundle Labelling", null) as text), 1, MAX_NAME_LEN) + if((loc == usr && usr.stat == 0)) + name = "[(n_name ? text("[n_name]") : "paper")]" + add_fingerprint(usr) + return + + +/obj/item/weapon/paper_bundle/verb/remove_all() + set name = "Loose bundle" + set category = "Object" + set src in usr + + usr << "You loosen the bundle." + for(var/obj/O in src) + O.loc = usr.loc + usr.drop_from_inventory(src) + if(istype(usr,/mob/living/carbon/human)) + usr:update_inv_l_hand() + usr:update_inv_r_hand() + del(src) + return + + +/obj/item/weapon/paper_bundle/proc/add_item(state) + amount++ + var/image/img = image('icons/obj/bureaucracy.dmi', state) + img.pixel_x -= min(1*amount, 2) + img.pixel_y -= min(1*amount, 2) + pixel_x = min(0.5*amount, 1) + pixel_y = min( 1*amount, 2) + underlays += img + return \ No newline at end of file