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
This commit is contained in:
joe.heinemeyer@gmail.com
2012-03-15 18:44:10 +00:00
parent d879c24d46
commit 0ba84545b1
3 changed files with 41 additions and 47 deletions
+14 -14
View File
@@ -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)
+1 -1
View File
@@ -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
+26 -32
View File
@@ -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()]\] <font color='blue'>Has used [src.name] on \ref[target]</font>")
log_attack("<font color='blue'>[user] ([user.ckey]) has used [src.name] on \ref[target]</font>")
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