diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm index 61c58ce9aa5..860fe296452 100644 --- a/code/game/objects/items/weapons/table_rack_parts.dm +++ b/code/game/objects/items/weapons/table_rack_parts.dm @@ -15,6 +15,11 @@ materials = list(MAT_METAL=4000) flags = CONDUCT attack_verb = list("slammed", "bashed", "battered", "bludgeoned", "thrashed", "whacked") + var/upgradable = 1 + var/result = /obj/structure/table + var/parts = list( + /obj/item/stack/sheet/metal, + /obj/item/stack/sheet/metal) /obj/item/weapon/table_parts/reinforced name = "reinforced table parts" @@ -23,18 +28,33 @@ icon_state = "reinf_tableparts" materials = list(MAT_METAL=8000) flags = CONDUCT + upgradable = 0 + result = /obj/structure/table/reinforced + parts = list( + /obj/item/stack/sheet/metal, + /obj/item/stack/rods) /obj/item/weapon/table_parts/wood name = "wooden table parts" desc = "Keep away from fire." icon_state = "wood_tableparts" flags = null + upgradable = 0 + result = /obj/structure/table/woodentable + parts = list( + /obj/item/stack/sheet/wood, + /obj/item/stack/sheet/wood) /obj/item/weapon/table_parts/glass name = "glass table parts" desc = "fragile!" icon_state = "glass_tableparts" flags = null + upgradable = 0 + result = /obj/structure/glasstable_frame + parts = list( + /obj/item/stack/sheet/metal, + /obj/item/stack/sheet/metal) /obj/item/weapon/rack_parts name = "rack parts" @@ -49,71 +69,26 @@ */ /obj/item/weapon/table_parts/attackby(obj/item/weapon/W as obj, mob/user as mob, params) ..() - if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/stack/sheet/metal( user.loc ) - new /obj/item/stack/sheet/metal( user.loc ) - //SN src = null + if(istype(W, /obj/item/weapon/wrench)) + for(var/p in parts) + new p(user.loc) qdel(src) - if (istype(W, /obj/item/stack/rods)) - if (W:amount >= 4) - new /obj/item/weapon/table_parts/reinforced( user.loc ) + else if(upgradable && istype(W, /obj/item/stack/rods)) + if(W:amount >= 4) + new /obj/item/weapon/table_parts/reinforced(user.loc) to_chat(user, "\blue You reinforce the [name].") W:use(4) qdel(src) - else if (W:amount < 4) + else if(W:amount < 4) to_chat(user, "\red You need at least four rods to do this.") /obj/item/weapon/table_parts/attack_self(mob/user as mob) - new /obj/structure/table( user.loc ) + for(var/obj/structure/table/T in user.loc) + to_chat(user, "You can't build tables on top of tables!") + return + new result(user.loc) user.drop_item() qdel(src) - return - - -/* - * Reinforced Table Parts - */ -/obj/item/weapon/table_parts/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/stack/sheet/metal( user.loc ) - new /obj/item/stack/rods( user.loc ) - qdel(src) - -/obj/item/weapon/table_parts/reinforced/attack_self(mob/user as mob) - new /obj/structure/table/reinforced( user.loc ) - user.drop_item() - qdel(src) - return - -/* - * Wooden Table Parts - */ -/obj/item/weapon/table_parts/wood/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/stack/sheet/wood(get_turf(src)) - new /obj/item/stack/sheet/wood(get_turf(src)) - qdel(src) - -/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob) - new /obj/structure/table/woodentable( user.loc ) - user.drop_item() - qdel(src) - return - -/* - * Glass Table Parts - */ -/obj/item/weapon/table_parts/glass/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/stack/sheet/metal( user.loc ) - new /obj/item/stack/sheet/metal( user.loc ) - qdel(src) - -/obj/item/weapon/table_parts/glass/attack_self(mob/user as mob) - new /obj/structure/glasstable_frame( user.loc ) - user.drop_item() - qdel(src) - return /* * Rack Parts @@ -121,14 +96,11 @@ /obj/item/weapon/rack_parts/attackby(obj/item/weapon/W as obj, mob/user as mob, params) ..() if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/stack/sheet/metal( user.loc ) + new /obj/item/stack/sheet/metal(user.loc) qdel(src) - return - return /obj/item/weapon/rack_parts/attack_self(mob/user as mob) - var/obj/structure/rack/R = new /obj/structure/rack( user.loc ) + var/obj/structure/rack/R = new /obj/structure/rack(user.loc) R.add_fingerprint(user) user.drop_item() - qdel(src) - return \ No newline at end of file + qdel(src) \ No newline at end of file