From 0ba84545b1d13d427fe51f52b68f6d8f0701ef5a Mon Sep 17 00:00:00 2001 From: "joe.heinemeyer@gmail.com" Date: Thu, 15 Mar 2012 18:44:10 +0000 Subject: [PATCH] Package wrap is no longer retarded. Works on an afterattack proc, now. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3301 316c924e-a436-60f5-8080-3fe189b3f50e --- code/modules/chemical/Chemistry-Tools.dm | 28 +++++----- code/modules/projectiles/guns/projectile.dm | 2 +- code/modules/recycling/sortingmachinery.dm | 58 +++++++++------------ 3 files changed, 41 insertions(+), 47 deletions(-) diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index 05088c5e3f0..e71b9271cca 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -29,7 +29,7 @@ R.my_atom = src attackby(obj/item/weapon/W as obj, mob/user as mob)//TODO:Have grenades use the new assembly things - wrap(W, user) + if(istype(W,/obj/item/device/assembly_holder) && !stage && path != 2) path = 1 user << "\blue You add [W] to the metal casing." @@ -345,7 +345,7 @@ usr << "\blue [grenades] / [max_grenades] Grenades." attackby(obj/item/I as obj, mob/user as mob) - wrap(I, user) + if((istype(I, /obj/item/weapon/chem_grenade)) || (istype(I, /obj/item/weapon/flashbang)) || (istype(I, /obj/item/weapon/smokebomb)) || (istype(I, /obj/item/weapon/mustardbomb)) || (istype(I, /obj/item/weapon/empgrenade))) if(grenades.len < max_grenades) user.drop_item() @@ -506,7 +506,7 @@ usr << "\blue [syringes.len] / [max_syringes] syringes." attackby(obj/item/I as obj, mob/user as mob) - wrap(I, user) + if(istype(I, /obj/item/weapon/reagent_containers/syringe)) if(syringes.len < max_syringes) user.drop_item() @@ -667,14 +667,14 @@ R.my_atom = src attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W, user) + return attack_self(mob/user as mob) return attack(mob/M as mob, mob/user as mob, def_zone) return attackby(obj/item/I as obj, mob/user as mob) - wrap(I, user) + return afterattack(obj/target, mob/user , flag) return @@ -879,7 +879,7 @@ return attack_hand() attackby(obj/item/I as obj, mob/user as mob) - wrap(I, user) + return afterattack(obj/target, mob/user , flag) @@ -1085,7 +1085,7 @@ return attack_hand() attackby(obj/item/I as obj, mob/user as mob) - wrap(I, user) + return afterattack(obj/target, mob/user , flag) @@ -1282,7 +1282,7 @@ return attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W, user) + return attack_self(mob/user as mob) return @@ -1356,7 +1356,7 @@ return 0 attackby(obj/item/I as obj, mob/user as mob) - wrap(I, user) + return afterattack(obj/target, mob/user , flag) return @@ -1379,7 +1379,7 @@ var/slices_num attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W, user) + if((slices_num <= 0 || !slices_num) || !slice_path) return 1 var/inaccurate = 0 @@ -1587,7 +1587,7 @@ icon_state = "pill[rand(1,20)]" attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W, user) + return attack_self(mob/user as mob) return @@ -1632,7 +1632,7 @@ return 0 attackby(obj/item/I as obj, mob/user as mob) - wrap(I, user) + return afterattack(obj/target, mob/user , flag) @@ -2189,7 +2189,7 @@ volume = 50 attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W, user) + return attack_self(mob/user as mob) return @@ -2233,7 +2233,7 @@ return 0 attackby(obj/item/I as obj, mob/user as mob) - wrap(I, user) + return afterattack(obj/target, mob/user , flag) diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index fa65e654ee9..b0843fe1c5a 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -38,7 +38,7 @@ attackby(var/obj/item/A as obj, mob/user as mob) - wrap(A, user) + var/num_loaded = 0 if(istype(A, /obj/item/ammo_magazine)) if((load_method == 2) && loaded.len) return diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index f2a65c99272..eb9ae155fbc 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -1,4 +1,4 @@ -/obj/effect/bigDelivery +/obj/effect/bigDelivery //Why is this an effect? 0.o --SkyMarshal desc = "A big wrapped package." name = "large parcel" icon = 'storage.dmi' @@ -79,44 +79,50 @@ name = "package wrapper" icon = 'items.dmi' icon_state = "deliveryPaper" - w_class = 4.0 + w_class = 3.0 var/amount = 25.0 - attack(target as obj, mob/user as mob) + afterattack(var/obj/target as obj, mob/user as mob) + if(istype(target, /obj/structure/table) || istype(target, /obj/structure/rack) || istype(target,/obj/item/smallDelivery)) + return + if(target.anchored) + return + if(target in user) + return user.attack_log += text("\[[time_stamp()]\] Has used [src.name] on \ref[target]") - log_attack("[user] ([user.ckey]) has used [src.name] on \ref[target]") + if (istype(target, /obj/item)) var/obj/item/O = target - if(O.anchored) return - if(!istype(loc,/turf)) - user << "\red You need to place the item on the ground before wrapping it!" - return - else if (src.amount > 1) - var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) + if (src.amount > 1) + var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up! + if(!istype(O.loc, /turf)) + if(user.client) + user.client.screen -= O P.wrapped = O O.loc = P src.amount -= 1 else if (istype(target, /obj/structure/closet/crate)) var/obj/structure/closet/crate/O = target - if (src.amount > 3) + if (src.amount > 3 && !O.opened) var/obj/effect/bigDelivery/P = new /obj/effect/bigDelivery(get_turf(O.loc)) P.wrapped = O O.loc = P src.amount -= 3 - else + else if(src.amount > 3) user << "\blue You need more paper." else if (istype (target, /obj/structure/closet)) var/obj/structure/closet/O = target - if (src.amount > 3) + if (src.amount > 3 && !O.opened) var/obj/effect/bigDelivery/P = new /obj/effect/bigDelivery(get_turf(O.loc)) P.wrapped = O - O.close() + O.opened = 0 O.welded = 1 O.loc = P src.amount -= 3 - + else if(src.amount > 3) + user << "\blue You need more paper." else user << "\blue The object you are trying to wrap is unsuitable for the sorting machinery!" if (src.amount <= 0) @@ -126,23 +132,11 @@ return return - -/obj/item/proc/wrap(obj/item/I as obj, mob/user as mob) - if(istype(I, /obj/item/weapon/packageWrap)) - var/obj/item/weapon/packageWrap/C = I - if(src.anchored) return - if(!istype(src.loc,/turf)) - user << "\red You need to place the item on the ground before wrapping it!" - return - else if (C.amount > 1) - var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(src.loc)) - P.wrapped = src - src.loc = P - C.amount -= 1 - if (C.amount <= 0) - new /obj/item/weapon/c_tube( C.loc ) - del(C) - return + examine() + if(src in usr) + usr << "\blue There are [amount] units of package wrap left!" + ..() + return /obj/item/device/destTagger