From bccb7cb14fb4cadd4fdfc36940590fa1ac97b41e Mon Sep 17 00:00:00 2001 From: spasticVerbalizer Date: Mon, 11 May 2015 20:52:31 +0200 Subject: [PATCH] Standardized heat-proofing airlocks --- code/game/machinery/doors/airlock.dm | 20 ----------- code/game/machinery/doors/door.dm | 6 ++-- code/game/objects/structures/door_assembly.dm | 35 +++++++++++++++++++ 3 files changed, 37 insertions(+), 24 deletions(-) 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