/obj/item/material/butterflyconstruction name = "unfinished concealed knife" desc = "An unfinished concealed knife, it looks like the screws need to be tightened." icon = 'icons/obj/buildingobject.dmi' icon_state = "butterflystep1" material_significance = MATERIAL_SIGNIFICANCE_SHARD /obj/item/material/butterflyconstruction/attackby(obj/item/W as obj, mob/user as mob) if(W.is_screwdriver()) to_chat(user, "You finish the concealed blade weapon.") playsound(src, W.tool_sound, 50, 1) new /obj/item/material/butterfly(user.loc, get_primary_material()) qdel(src) return /obj/item/material/butterflyblade name = "knife blade" desc = "A knife blade. Unusable as a weapon without a grip." icon = 'icons/obj/buildingobject.dmi' icon_state = "butterfly2" material_significance = MATERIAL_SIGNIFICANCE_SHARD /obj/item/material/butterflyblade/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/duct_tape_roll)) to_chat(user, "You wrap the blade with the entire roll of duct tape.") new /obj/item/melee/shiv(user.loc) qdel(W) return /obj/item/material/butterflyhandle name = "concealed knife grip" desc = "A plasteel grip with screw fittings for a blade." icon = 'icons/obj/buildingobject.dmi' icon_state = "butterfly1" material_significance = MATERIAL_SIGNIFICANCE_SHARD /obj/item/material/butterflyhandle/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/material/butterflyblade)) var/obj/item/material/butterflyblade/B = W to_chat(user, "You attach the two concealed blade parts.") new /obj/item/material/butterflyconstruction(user.loc, B.get_primary_material()) qdel(W) qdel(src) return /obj/item/material/wirerod name = "wired rod" desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit." icon = 'icons/obj/weapons.dmi' icon_state = "wiredrod" item_state = "rods" damage_force = 8 throw_force = 10 w_class = WEIGHT_CLASS_NORMAL attack_verb = list("hit", "bludgeoned", "whacked", "bonked") material_significance = MATERIAL_SIGNIFICANCE_SHARD /obj/item/material/wirerod/attackby(var/obj/item/I, mob/user as mob) ..() var/obj/item/finished if(istype(I, /obj/item/material/shard) || istype(I, /obj/item/material/butterflyblade)) var/obj/item/material/shard/tmp_shard = I finished = new /obj/item/material/twohanded/spear(get_turf(user), tmp_shard.get_primary_material()) to_chat(user, "You fasten \the [I] to the top of the rod with the cable.") else if(I.is_wirecutter()) finished = new /obj/item/melee/baton/cattleprod(get_turf(user)) to_chat(user, "You fasten the wirecutters to the top of the rod with the cable, prongs outward.") else if(istype(I, /obj/item/weldingtool/mini)) finished = new /obj/item/weldingtool/welder_spear(get_turf(user)) to_chat(user, "You fasten the mini welder to the top of the rod with the cable, nozzle outward.") if(finished) qdel(I) qdel(src) user.put_in_hands(finished) //Sledgehammer construction /obj/item/material/hammer_head name = "hammer head" desc = "A rectangular hammer head. Feels very heavy in your hand.." icon = 'icons/obj/buildingobject.dmi' icon_state = "hammer_construction_1" description_info = "You need rods, metal, a wrench and welding fuel to finish this up." var/construction_stage = 1 /obj/item/material/hammer_head/attackby(var/obj/item/thing, var/mob/user) if(istype(thing, /obj/item/stack/rods) && construction_stage == 1) var/obj/item/stack/rods = thing if(rods.get_amount() < 4) to_chat(user, "You need at least 4 rods for this task.") return rods.use(4) user.visible_message("\The [user] puts some rods together in \the [src] hole.") increment_construction_stage() return if(istype(thing, /obj/item/weldingtool) && construction_stage == 2) var/obj/item/weldingtool/welder = thing if(!welder.isOn()) to_chat(user, "Turn it on first!") return if(!welder.remove_fuel(0,user)) to_chat(user, "You need more fuel!") return user.visible_message("\The [user] welds the rods to the head \the [src] together with \the [thing].") playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) spawn(5) increment_construction_stage() return if(istype(thing, /obj/item/stack/rods) && construction_stage == 3) var/obj/item/stack/rods = thing if(rods.get_amount() < 4) to_chat(user, "You need at least 4 rods for this task.") return rods.use(4) user.visible_message("\The [user] jams \the [thing]'s into \the [src].") increment_construction_stage() return if(istype(thing, /obj/item/weldingtool) && construction_stage == 4) var/obj/item/weldingtool/welder = thing if(!welder.isOn()) to_chat(user, "Turn it on first!") return if(!welder.remove_fuel(0,user)) to_chat(user, "You need more fuel!") return user.visible_message("\The [user] welds the rods together of the handle into place, forming a long irregular shaft.") playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) increment_construction_stage() return if(istype(thing, /obj/item/stack/material) && construction_stage == 5) var/obj/item/stack/material/reinforcing = thing var/datum/prototype/material/reinforcing_with = reinforcing.material if(reinforcing_with.name == MAT_STEEL) // Steel if(reinforcing.get_amount() < 3) to_chat(user, "You need at least 3 [reinforcing.singular_name]\s for this task.") return reinforcing.use(3) user.visible_message("\The [user] shapes some metal sheets around the rods.") increment_construction_stage() return if(istype(thing, /obj/item/weldingtool) && construction_stage == 6) var/obj/item/weldingtool/welder = thing if(!welder.isOn()) to_chat(user, "Turn it on first!") return if(!welder.remove_fuel(10,user)) to_chat(user, "You need more fuel!") return user.visible_message("\The [user] heats up the metal sheets until it glows red.") playsound(src, 'sound/items/Welder2.ogg', 100, 1) increment_construction_stage() return if(istype(thing, /obj/item/tool/wrench) && construction_stage == 7) user.visible_message("\The [user] whacks at \the [src] like a caveman, shaping the metal with \the [thing] into a rough handle, finishing it off.") increment_construction_stage() playsound(src, 'sound/weapons/smash5.ogg', 100, 1) var/obj/item/material/twohanded/sledgehammer/sledge = new(loc, get_primary_material()) var/put_in_hands var/mob/M = loc if(istype(M)) put_in_hands = M == user M.temporarily_remove_from_inventory(src, INV_OP_FORCE | INV_OP_SHOULD_NOT_INTERCEPT | INV_OP_SILENT) if(put_in_hands) user.put_in_hands_or_drop(sledge) else sledge.forceMove(drop_location()) qdel(src) return return ..() /obj/item/material/hammer_head/proc/increment_construction_stage() if(construction_stage < 7) construction_stage++ icon_state = "hammer_construction_[construction_stage]" /obj/item/material/hammer_head/examine(var/mob/user) . = ..() if(.) switch(construction_stage) //BLACKMAJOR YOU KNOW YOU SHOULDN'T INLINE SWITCH STATEMENTS AAAA if(1) . += "It has a slot in the base for a metal rod." if(2) . += "It has a bunch of rods sticking out of the hole. Consider welding it." if(3) . += "It has a short rough metal shaft sticking to it, quite short, needs more rods." if(4) . += "It has a bunch of unwelded rods jammed into the shaft." if(5) . += "It has a pretty long rough metal shaft sticking out of it, it look hard to grab. Could make a handle with some steel..." if(6) . += "It has a few unwelded sheets bent in half across the handle." if(7) . += "It has red hot, pliable looking metal sheets spread over the handle. What a sloppy job. Finish the job with a wrench."