Added weldpack, clipboards fit on belt, food and other things can now be wrapped

This commit is contained in:
SkyMarshal
2012-01-12 11:13:05 -07:00
parent 7b3e347dba
commit 70cb3417ef
7 changed files with 54 additions and 42 deletions

View File

@@ -1,20 +1,21 @@
/obj/item/weapon/weldpack
name = "Portable welding tank."
desc = "For welding on the go!"
icon_state = "backpack"
name = "Welding kit"
desc = "A heavy-duty, portable welding fluid carrier."
flags = ONBACK
icon_state = "engiepack"
w_class = 4.0
flags = 259.0
var/max_fuel = 100
var/max_fuel = 350
/obj/item/weapon/weldpack/New()
var/datum/reagents/R = new/datum/reagents(100) //5 refills
var/datum/reagents/R = new/datum/reagents(max_fuel) //5 refills
reagents = R
R.my_atom = src
R.add_reagent("fuel", 100)
R.add_reagent("fuel", max_fuel)
/obj/item/weapon/weldpack/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/weldingtool)
if(W.welding & prob(15))
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/T = W
if(T.welding & prob(50))
message_admins("[key_name_admin(user)] triggered a fueltank explosion.")
log_game("[key_name(user)] triggered a fueltank explosion.")
user << "\red That was stupid of you."
@@ -23,9 +24,9 @@
del(src)
return
else
if(W.welding)
if(T.welding)
user << "\red That was close!"
src.reagents.trans_to(W, W.max_fuel)
src.reagents.trans_to(W, T.max_fuel)
user << "\blue Welder refilled!"
playsound(src.loc, 'refill.ogg', 50, 1, -6)
return
@@ -33,14 +34,14 @@
return
/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob)
if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel)
O.reagents.trans_to(src, max_fuel)
user << "\blue Tank refilled!"
playsound(src.loc, 'refill.ogg', 50, 1, -6)
return
else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel)
user << "\blue Tank is already full!"
return
if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel)
O.reagents.trans_to(src, max_fuel)
user << "\blue You crack the cap off the top of the pack and fill it back up again from the tank."
playsound(src.loc, 'refill.ogg', 50, 1, -6)
return
else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel)
user << "\blue The pack is already full!"
return
/obj/item/weapon/weldpack/examine()
set src in usr

View File

@@ -567,6 +567,7 @@
w_class = 2.0
throw_speed = 3
throw_range = 10
flags = ONBELT
#define MAXCOIL 30
/obj/item/weapon/cable_coil

View File

@@ -637,12 +637,7 @@ CLIPBOARDS
user.update_clothing()
src.add_fingerprint(user)
else
if (user.contents.Find(src))
spawn( 0 )
src.attack_self(user)
return
else
return ..()
return ..()
return
/obj/item/weapon/clipboard/attackby(obj/item/weapon/P as obj, mob/user as mob)

View File

@@ -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,27 +679,14 @@
R.my_atom = src
attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/packageWrap))
if(istype(src.loc,/obj/item/weapon/storage) || istype(src.loc,/obj/item/clothing/suit/storage/)) //Taking stuff out of storage duplicates it.
user << "\blue Do not do this, it is broken as all hell. Take it out of the container first."
return
for(var/obj/item/T in user) //Lets remove it from their inventory
if(T == src)
user.remove_from_mob(T)
break
var/obj/item/weapon/packageWrap/O = W
if (O.amount > 1)
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(src.loc))
P.wrapped = src
src.loc = P
O.amount -= 1
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
@@ -1086,6 +1077,7 @@
return attack_hand()
attackby(obj/item/I as obj, mob/user as mob)
wrap(I,user)
return
afterattack(obj/target, mob/user , flag)
@@ -1279,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
@@ -1350,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
@@ -1372,6 +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
@@ -1578,6 +1573,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
@@ -1620,6 +1616,7 @@
return 0
attackby(obj/item/I as obj, mob/user as mob)
wrap(I,user)
return
afterattack(obj/target, mob/user , flag)
@@ -2176,6 +2173,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
@@ -2217,6 +2215,7 @@
return 0
attackby(obj/item/I as obj, mob/user as mob)
wrap(I,user)
return
afterattack(obj/target, mob/user , flag)

View File

@@ -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

View File

@@ -163,8 +163,6 @@
..()
return
/obj/item/weapon/packageWrap
name = "package wrapper"
icon = 'items.dmi'
@@ -220,6 +218,22 @@
..()
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 or a table 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."