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