diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index ed5e9f3f878..e4bb9365afa 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -888,11 +888,13 @@ About the new airlock wires panel: src.add_fingerprint(user) if((istype(C, /obj/item/weapon/weldingtool) && !( src.operating ) && src.density)) var/obj/item/weapon/weldingtool/W = C - user << "You begin [welded ? "unwelding":"welding"] the airlock..." - playsound(loc, 'sound/items/Welder.ogg', 40, 1) - if(do_after(user,40,5,1)) - if(density && !operating)//Door must be closed to weld. - if(W.remove_fuel(0,user)) + if(W.remove_fuel(0,user)) + user << "You begin [welded ? "unwelding":"welding"] the airlock..." + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + if(do_after(user,40,5,1)) + if(density && !operating)//Door must be closed to weld. + if( !istype(src, /obj/machinery/door/airlock) || !user || !W || !W.isOn() || !user.loc ) + return playsound(loc, 'sound/items/Welder2.ogg', 50, 1) welded = !welded user << "You [welded ? "welded the airlock shut":"unwelded the airlock"]" @@ -1013,10 +1015,11 @@ About the new airlock wires panel: return /obj/machinery/door/airlock/plasma/attackby(C as obj, mob/user as mob) - if(C) - message_admins("Plasma airlock ignited by [key_name(user, user.client)](?) in ([x],[y],[z] - JMP)",0,1) - log_game("Plasma airlock ignited by [user.ckey]([user]) in ([x],[y],[z])") + if(is_hot(C) > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma wall ignited by [key_name(user, user.client)](?) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma wall ignited by [user.ckey]([user]) in ([x],[y],[z])") ignite(is_hot(C)) + return ..() /obj/machinery/door/airlock/open(var/forced=0) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 9c772d349b2..92a862ee1c2 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -179,16 +179,16 @@ if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W - user << "You begin cutting the [src] apart..." - playsound(loc, 'sound/items/Welder.ogg', 40, 1) - if(do_after(user,40,5,1)) - if(src.opened) - if(WT.remove_fuel(0,user)) - playsound(loc, 'sound/items/Welder2.ogg', 50, 1) - new /obj/item/stack/sheet/metal(src.loc) - for(var/mob/M in viewers(src)) - M.show_message("\The [src] has been cut apart by [user] with \the [WT].", 3, "You hear welding.", 2) - qdel(src) + if(WT.remove_fuel(0,user)) + user << "You begin cutting the [src] apart..." + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + if(do_after(user,40,5,1)) + if( !src.opened || !istype(src, /obj/structure/closet) || !user || !WT || !WT.isOn() || !user.loc ) + return + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + new /obj/item/stack/sheet/metal(src.loc) + visible_message("\The [src] has been cut apart by [user] with \the [WT].", "You hear welding.") + qdel(src) return if(isrobot(user)) @@ -201,16 +201,17 @@ return else if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W - user << "You begin [welded ? "unwelding":"welding"] the [src]..." - playsound(loc, 'sound/items/Welder2.ogg', 40, 1) - if(do_after(user,40,5,1)) - if(!src.opened) - if(WT.remove_fuel(0,user)) - playsound(loc, 'sound/items/welder.ogg', 50, 1) - welded = !welded - user << "You [welded ? "welded the [src] shut":"unwelded the [src]"]" - update_icon() - user.visible_message("[src] has been [welded? "welded shut":"unwelded"] by [user.name].") + if(WT.remove_fuel(0,user)) + user << "You begin [welded ? "unwelding":"welding"] the [src]..." + playsound(loc, 'sound/items/Welder2.ogg', 40, 1) + if(do_after(user,40,5,1)) + if(src.opened || !istype(src, /obj/structure/closet) || !user || !WT || !WT.isOn() || !user.loc ) + return + playsound(loc, 'sound/items/welder.ogg', 50, 1) + welded = !welded + user << "You [welded ? "welded the [src] shut":"unwelded the [src]"]" + update_icon() + user.visible_message("[src] has been [welded? "welded shut":"unwelded"] by [user.name].") return else if(!place(user, W)) src.attack_hand(user) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index ef645aa7963..31eb386c918 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -221,12 +221,12 @@ user << "You begin slicing through the outer plating." playsound(src, 'sound/items/Welder.ogg', 100, 1) - sleep(100) - if( !istype(src, /turf/simulated/wall) || !user || !WT || !WT.isOn() || !T ) return - - if( user.loc == T && user.get_active_hand() == WT ) - user << "You remove the outer plating." - dismantle_wall() + if(do_after(user, 100)) + if( !istype(src, /turf/simulated/wall) || !user || !WT || !WT.isOn() || !T ) + return + if( user.loc == T && user.get_active_hand() == WT ) + user << "You remove the outer plating." + dismantle_wall() else return @@ -235,16 +235,18 @@ user << "You begin slicing through the outer plating." playsound(src, 'sound/items/Welder.ogg', 100, 1) - sleep(60) - if(mineral == "diamond")//Oh look, it's tougher - sleep(60) - if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return + if(do_after(user, 60)) + if(mineral == "diamond")//Oh look, it's tougher + if(!do_after(user, 60)) + return - if( user.loc == T && user.get_active_hand() == W ) - user << "You remove the outer plating." - dismantle_wall() - for(var/mob/O in viewers(user, 5)) - O.show_message("The wall was sliced apart by [user]!", 1, "You hear metal being sliced apart.", 2) + if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) + return + + if( user.loc == T && user.get_active_hand() == W ) + user << "You remove the outer plating." + dismantle_wall() + visible_message("The wall was sliced apart by [user]!", "You hear metal being sliced apart.") return //DRILLING @@ -252,16 +254,17 @@ user << "You begin to drill though the wall." - sleep(60) - if(mineral == "diamond") - sleep(60) - if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return + if(do_after(user, 60)) + if(mineral == "diamond")//Oh look, it's tougher + if(!do_after(user, 60)) + return + if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) + return - if( user.loc == T && user.get_active_hand() == W ) - user << "Your drill tears though the last of the reinforced plating." - dismantle_wall() - for(var/mob/O in viewers(user, 5)) - O.show_message("The wall was drilled through by [user]!", 1, "You hear the grinding of metal.", 2) + if( user.loc == T && user.get_active_hand() == W ) + user << "Your drill tears though the last of the reinforced plating." + dismantle_wall() + visible_message("The wall was drilled through by [user]!", "You hear the grinding of metal.") return else if( istype(W, /obj/item/weapon/melee/energy/blade) ) @@ -271,18 +274,19 @@ user << "You stab \the [EB] into the wall and begin to slice it apart." playsound(src, "sparks", 50, 1) - sleep(70) - if(mineral == "diamond") - sleep(70) - if( !istype(src, /turf/simulated/wall) || !user || !EB || !T ) return + if(do_after(user, 70)) + if(mineral == "diamond")//Oh look, it's tougher + if(!do_after(user, 70)) + return + if( !istype(src, /turf/simulated/wall) || !user || !EB || !T ) + return - if( user.loc == T && user.get_active_hand() == W ) - EB.spark_system.start() - playsound(src, "sparks", 50, 1) - playsound(src, 'sound/weapons/blade1.ogg', 50, 1) - dismantle_wall(1) - for(var/mob/O in viewers(user, 5)) - O.show_message("The wall was sliced apart by [user]!", 1, "You hear metal being sliced apart and sparks flying.", 2) + if( user.loc == T && user.get_active_hand() == W ) + EB.spark_system.start() + playsound(src, "sparks", 50, 1) + playsound(src, 'sound/weapons/blade1.ogg', 50, 1) + dismantle_wall(1) + visible_message("The wall was sliced apart by [user]!", "You hear metal being sliced apart and sparks flying.") return else if(istype(W,/obj/item/apc_frame))