diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index a59bb5cfb54..62ff77a0a9d 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -333,7 +333,7 @@ to destroy them and players will be able to make replacements. return S.playtoolsound(loc, 50) soldering = 1 - if(do_after(user, src,40)) + if(do_after(user, src,4 SECONDS * S.work_speed)) var/boardType = allowed_boards[t] var/obj/item/I = new boardType(get_turf(user)) to_chat(user, "You fashion a crude [I] from the blank circuitboard.") diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 586393b03d8..5d06ca66b72 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -33,7 +33,7 @@ if(!S.remove_fuel(4,user)) return S.playtoolsound(loc, 100) - if(do_after(user, src,40)) + if(do_after(user, src,4 SECONDS * S.work_speed)) S.playtoolsound(loc, 100) icon_state = "door_electronics" to_chat(user, "You repair the blown fuses on the circuitboard.") diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index fe8091e5384..b75750e5fed 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -639,7 +639,7 @@ if(!S.remove_fuel(4,user)) return S.playtoolsound(loc, 100) - if(do_after(user, src,40)) + if(do_after(user, src,4 SECONDS * S.work_speed)) S.playtoolsound(loc, 100) stat &= !BROKEN emagged = FALSE diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 0046cd08d38..3fe5e362410 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -769,6 +769,7 @@ melt_temperature = MELTPOINT_STEEL origin_tech = Tc_ENGINEERING + "=1" var/max_fuel = 20 //The max amount of acid stored + var/work_speed = 1 //multiplier toolsounds = list('sound/items/Welder.ogg') /obj/item/tool/solder/splashable() @@ -843,6 +844,37 @@ reagents.add_reagent(SACID, 50) update_icon() +/obj/item/tool/solder/screw + name = "screwsolder" + desc = "An advanced soldering tool with a screwdriver head. Use in hand to swap to and from the screwhead." + max_fuel = 32 + work_speed = 0.5 //2x faster + icon_state = "ssolder-0" + origin_tech = Tc_ENGINEERING + "=6" + var/screwmode = TRUE + +/obj/item/tool/solder/screw/attack_self(mob/user) + playsound(src,'sound/items/Screwdriver.ogg',40, 1) + screwmode = !screwmode + to_chat(user, "You toggle the screwhead [screwmode ? "on":"off"].") + +/obj/item/tool/solder/screw/is_screwdriver(mob/user) + return screwmode + +/obj/item/tool/solder/screw/update_icon() + ..() + switch(reagents.get_reagent_amount(SACID) + reagents.get_reagent_amount(FORMIC_ACID)) + if(22 to INFINITY) + icon_state = "ssolder-20" + if(15 to 21) + icon_state = "ssolder-15" + if(8 to 14) + icon_state = "ssolder-10" + if(1 to 7) + icon_state = "ssolder-5" + if(0) + icon_state = "ssolder-0" + /* * Fuel Can * A special, large container that fits on the belt diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 51cfd221cfa..034f0c5cf88 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -37,7 +37,8 @@ /obj/item/weapon/storage/belt/utility/chief, /obj/item/clothing/glasses/scanner/material, /obj/item/weapon/card/debit/preferred/department/engineering, - /obj/item/weapon/reagent_containers/food/snacks/monkeycube/gourmonger + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/gourmonger, + /obj/item/tool/solder/screw ) /obj/structure/closet/secure_closet/engineering_electrical diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index 943d5c60e77..e49dfab569e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -77,7 +77,7 @@ if(!S.remove_fuel(4,user)) return S.playtoolsound(loc, 100) - if(do_after(user, src,40)) + if(do_after(user, src,4 SECONDS * S.work_speed)) S.playtoolsound(loc, 100) broken = 0 to_chat(user, "You repair the electronics inside the locking mechanism!") diff --git a/code/modules/media/broadcast/transmitters/broadcast.dm b/code/modules/media/broadcast/transmitters/broadcast.dm index 812204d412d..2eb7a04a6b7 100644 --- a/code/modules/media/broadcast/transmitters/broadcast.dm +++ b/code/modules/media/broadcast/transmitters/broadcast.dm @@ -103,7 +103,7 @@ if(!S.remove_fuel(4,user)) return playsound(loc, 'sound/items/Welder.ogg', 100, 1) - if(do_after(user, src,40)) + if(do_after(user, src,4 SECONDS * S.work_speed)) playsound(loc, 'sound/items/Welder.ogg', 100, 1) integrity = 100 to_chat(user, "You repair the blown fuses on [src].") diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 9073902f74d..9d1c91bc20f 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ