diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index a1e66042092..92ea94d49b6 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -29,6 +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." @@ -344,6 +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() @@ -443,6 +445,7 @@ usr << "\blue [syringes] / [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() @@ -521,6 +524,7 @@ usr << "\blue [syringes] / [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() @@ -675,12 +679,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 @@ -888,6 +894,7 @@ return attack_hand() attackby(obj/item/I as obj, mob/user as mob) + wrap(I, user) return afterattack(obj/target, mob/user , flag) @@ -1071,6 +1078,7 @@ return attack_hand() attackby(obj/item/I as obj, mob/user as mob) + wrap(I, user) return afterattack(obj/target, mob/user , flag) @@ -1263,6 +1271,7 @@ return attackby(obj/item/weapon/W as obj, mob/user as mob) + wrap(W, user) return attack_self(mob/user as mob) return @@ -1334,6 +1343,7 @@ return 0 attackby(obj/item/I as obj, mob/user as mob) + wrap(I, user) return afterattack(obj/target, mob/user , flag) return @@ -1356,7 +1366,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 @@ -1562,6 +1572,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 @@ -1604,6 +1615,7 @@ return 0 attackby(obj/item/I as obj, mob/user as mob) + wrap(I, user) return afterattack(obj/target, mob/user , flag) @@ -2160,6 +2172,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 @@ -2201,6 +2214,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 9d17671303f..fa65e654ee9 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -38,6 +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 034ee612c1a..914d20f9fad 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -125,6 +125,24 @@ 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(!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 + + /obj/item/device/destTagger name = "destination tagger" desc = "Used to set the destination of properly wrapped packages."