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))