diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 64117c66660..e738e8ef8ec 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -164,7 +164,6 @@
opacity = 0
doortype = /obj/structure/door_assembly/door_assembly_research/glass
glass = 1
- heat_proof = 1
/obj/machinery/door/airlock/glass_mining
name = "maintenance hatch"
@@ -1114,35 +1113,27 @@ About the new airlock wires panel:
if("Default")
icon = 'icons/obj/doors/Doorglass.dmi'
doortype = /obj/structure/door_assembly/door_assembly_glass
- heat_proof = 0
if("Engineering")
icon = 'icons/obj/doors/Doorengglass.dmi'
doortype = /obj/structure/door_assembly/door_assembly_eng/glass
- heat_proof = 0
if("Atmospherics")
icon = 'icons/obj/doors/Dooratmoglass.dmi'
doortype = /obj/structure/door_assembly/door_assembly_atmo/glass
- heat_proof = 0
if("Security")
icon = 'icons/obj/doors/Doorsecglass.dmi'
doortype = /obj/structure/door_assembly/door_assembly_sec/glass
- heat_proof = 0
if("Command")
icon = 'icons/obj/doors/Doorcomglass.dmi'
doortype = /obj/structure/door_assembly/door_assembly_com/glass
- heat_proof = 0
if("Medical")
icon = 'icons/obj/doors/Doormedglass.dmi'
doortype = /obj/structure/door_assembly/door_assembly_med/glass
- heat_proof = 0
if("Research")
icon = 'icons/obj/doors/Doorresearchglass.dmi'
doortype = /obj/structure/door_assembly/door_assembly_research/glass
- heat_proof = 1
if("Mining")
icon = 'icons/obj/doors/Doorminingglass.dmi'
doortype = /obj/structure/door_assembly/door_assembly_min/glass
- heat_proof = 0
else
//These airlocks have a regular version.
var optionlist = list("Default", "Engineering", "Atmospherics", "Security", "Command", "Medical", "Research", "Mining", "Maintenance", "External", "High Security")
@@ -1152,47 +1143,36 @@ About the new airlock wires panel:
if("Default")
icon = 'icons/obj/doors/Doorint.dmi'
doortype = /obj/structure/door_assembly/door_assembly_0
- heat_proof = 0
if("Engineering")
icon = 'icons/obj/doors/Dooreng.dmi'
doortype = /obj/structure/door_assembly/door_assembly_eng
- heat_proof = 0
if("Atmospherics")
icon = 'icons/obj/doors/Dooratmo.dmi'
doortype = /obj/structure/door_assembly/door_assembly_atmo
- heat_proof = 0
if("Security")
icon = 'icons/obj/doors/Doorsec.dmi'
doortype = /obj/structure/door_assembly/door_assembly_sec
- heat_proof = 0
if("Command")
icon = 'icons/obj/doors/Doorcom.dmi'
doortype = /obj/structure/door_assembly/door_assembly_com
- heat_proof = 0
if("Medical")
icon = 'icons/obj/doors/Doormed.dmi'
doortype = /obj/structure/door_assembly/door_assembly_med
- heat_proof = 0
if("Research")
icon = 'icons/obj/doors/Doorresearch.dmi'
doortype = /obj/structure/door_assembly/door_assembly_research
- heat_proof = 0
if("Mining")
icon = 'icons/obj/doors/Doormining.dmi'
doortype = /obj/structure/door_assembly/door_assembly_min
- heat_proof = 0
if("Maintenance")
icon = 'icons/obj/doors/Doormaint.dmi'
doortype = /obj/structure/door_assembly/door_assembly_mai
- heat_proof = 0
if("External")
icon = 'icons/obj/doors/Doorext.dmi'
doortype = /obj/structure/door_assembly/door_assembly_ext
- heat_proof = 0
if("High Security")
icon = 'icons/obj/doors/hightechsecurity.dmi'
doortype = /obj/structure/door_assembly/door_assembly_highsecurity
- heat_proof = 0
update_icon()
/obj/machinery/door/airlock/CanAStarPass(var/obj/item/weapon/card/id/ID)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 86434159b81..f30d3f3aa47 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -15,7 +15,7 @@
var/operating = 0
var/glass = 0
var/normalspeed = 1
- var/heat_proof = 0 // For glass airlocks/opacity firedoors
+ var/heat_proof = 0 // For plasteel-plated airlocks and firedoors
var/emergency = 0 // Emergency access override
var/sub_door = 0 // 1 if it's meant to go under another door.
@@ -275,9 +275,7 @@
return !(stat & NOPOWER)
/obj/machinery/door/BlockSuperconductivity()
- if(opacity || heat_proof)
- return 1
- return 0
+ return heat_proof
/obj/machinery/door/morgue
icon = 'icons/obj/doors/doormorgue.dmi'
\ No newline at end of file
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index d37ebc83076..9574134c749 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -15,6 +15,7 @@ obj/structure/door_assembly
var/airlock_type = /obj/machinery/door/airlock //the type path of the airlock once completed
var/glass_type = /obj/machinery/door/airlock/glass
var/created_name = null
+ var/heat_proof_finished = 0 //will the airlock be heat proof when finished
obj/structure/door_assembly/New()
base_icon_state = copytext(icon_state,1,lentext(icon_state))
@@ -493,6 +494,29 @@ obj/structure/door_assembly/New()
user << " You unsecure the airlock assembly."
src.name = "airlock assembly"
src.anchored = 0
+ else if(istype(W, /obj/item/stack/sheet/plasteel) && state == 1)
+ var/obj/item/stack/sheet/plasteel/P = W
+ if (!heat_proof_finished)
+ if (P.get_amount() < 1)
+ user << "You need one sheet of plasteel to heat-proof the airlock assembly!"
+ return
+ user.visible_message("[user] adds heat-proof plating to the airlock assembly.",
+ "You start adding heat-proof plating to the airlock assembly...")
+ if(do_after(user, 40)) //TODO: does this need a sound?
+ if(P.get_amount() < 1) return
+ P.use(1)
+ src.heat_proof_finished = 1
+ user << "You add heat-proof plating to the airlock assembly."
+ src.name = "heat-proofed wired airlock assembly "
+ else
+ user << "The airlock assembly already has heat-proof plating!"
+ else if(istype(W, /obj/item/weapon/crowbar) && state == 1 && heat_proof_finished)
+ playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ user << "You remove the heat-proof plating from the airlock assembly."
+ src.heat_proof_finished = 0
+ new/obj/item/stack/sheet/plasteel(get_turf(user), 1)
+ src.name = "wired airlock assembly"
+
else if(istype(W, /obj/item/stack/cable_coil) && state == 0 && anchored )
var/obj/item/stack/cable_coil/C = W
@@ -507,6 +531,8 @@ obj/structure/door_assembly/New()
src.state = 1
user << "You wire the airlock assembly."
src.name = "wired airlock assembly"
+ if(src.heat_proof_finished)
+ src.name = "heat-proofed [src.name]"
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 )
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
@@ -520,6 +546,8 @@ obj/structure/door_assembly/New()
new/obj/item/stack/cable_coil(get_turf(user), 1)
src.state = 0
src.name = "secured airlock assembly"
+ if(src.heat_proof_finished)
+ src.name = "heat-proofed [src.name]"
else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1 )
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
@@ -536,6 +564,8 @@ obj/structure/door_assembly/New()
user << " You install the airlock electronics."
src.state = 2
src.name = "near finished airlock assembly"
+ if(src.heat_proof_finished)
+ src.name = "heat-proofed [src.name]"
src.electronics = W
@@ -550,6 +580,8 @@ obj/structure/door_assembly/New()
user << " You remove the airlock electronics."
src.state = 1
src.name = "wired airlock assembly"
+ if(src.heat_proof_finished)
+ src.name = "heat-proofed [src.name]"
var/obj/item/weapon/airlock_electronics/ae
if (!electronics)
ae = new/obj/item/weapon/airlock_electronics( src.loc )
@@ -595,6 +627,8 @@ obj/structure/door_assembly/New()
G.use(2)
mineral = "[M]"
name = "near finished [M] airlock assembly"
+ if(heat_proof_finished)
+ name = "heat-proofed [name]"
airlock_type = text2path ("/obj/machinery/door/airlock/[M]")
base_icon_state = "door_as_[M]"
glass_base_icon_state = "door_as_g"
@@ -615,6 +649,7 @@ obj/structure/door_assembly/New()
door = new src.airlock_type( src.loc )
//door.req_access = src.req_access
door.electronics = src.electronics
+ door.heat_proof = src.heat_proof_finished
if(src.electronics.use_one_access)
door.req_one_access = src.electronics.conf_access
else