From 70cb3417ef2b1558da7dc795decbcf9646930546 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Thu, 12 Jan 2012 11:13:05 -0700 Subject: [PATCH] Added weldpack, clipboards fit on belt, food and other things can now be wrapped --- baystation12.dme | 1 + .../Wrongnumber/weldbackpack.dm | 39 ++++++++++--------- code/defines/obj/weapon.dm | 1 + .../game/objects/items/weapons/papers_bins.dm | 7 +--- code/modules/chemical/Chemistry-Tools.dm | 29 +++++++------- code/modules/projectiles/guns/projectile.dm | 1 + code/modules/recycling/sortingmachinery.dm | 18 ++++++++- 7 files changed, 54 insertions(+), 42 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index f12f62af8e7..7ffa57bb660 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1029,6 +1029,7 @@ #include "code\WorkInProgress\virus2\isolator.dm" #include "code\WorkInProgress\virus2\monkeydispensor.dm" #include "code\WorkInProgress\virus2\Prob.dm" +#include "code\WorkInProgress\Wrongnumber\weldbackpack.dm" #include "interface\skin.dmf" #include "maps\tgstation.2.0.8.dmm" // END_INCLUDE diff --git a/code/WorkInProgress/Wrongnumber/weldbackpack.dm b/code/WorkInProgress/Wrongnumber/weldbackpack.dm index 051c2c2741f..61337086ebf 100644 --- a/code/WorkInProgress/Wrongnumber/weldbackpack.dm +++ b/code/WorkInProgress/Wrongnumber/weldbackpack.dm @@ -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 diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index fe837cd6550..32b98643257 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -567,6 +567,7 @@ w_class = 2.0 throw_speed = 3 throw_range = 10 + flags = ONBELT #define MAXCOIL 30 /obj/item/weapon/cable_coil diff --git a/code/game/objects/items/weapons/papers_bins.dm b/code/game/objects/items/weapons/papers_bins.dm index 7f09ed3da0c..cd435df9418 100644 --- a/code/game/objects/items/weapons/papers_bins.dm +++ b/code/game/objects/items/weapons/papers_bins.dm @@ -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) diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index bfe65f3b686..7526951920a 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,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) 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 8ff15cd5f09..27710f9bb28 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -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."