diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index d76b70b582e..9d3315d9e05 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -560,6 +560,8 @@ About the new airlock wires panel:
return
else if(isscrewdriver(C))
p_open = !p_open
+ to_chat(user, "You [p_open ? "open":"close"] the maintenance panel of the airlock.")
+ playsound(loc, C.usesound, 50, 1)
update_icon()
else if(iswirecutter(C))
return attack_hand(user)
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index f15b923f54a..b17a778ae26 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -213,6 +213,7 @@
/obj/machinery/door/airlock/centcom
icon = 'icons/obj/doors/Doorele.dmi'
opacity = 0
+ assemblytype = /obj/structure/door_assembly/door_assembly_centcom
//////////////////////////////////
/*
@@ -222,7 +223,7 @@
/obj/machinery/door/airlock/vault
name = "vault door"
icon = 'icons/obj/doors/vault.dmi'
- assemblytype = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites.
+ assemblytype = /obj/structure/door_assembly/door_assembly_vault
explosion_block = 2
//////////////////////////////////
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 8d87860705c..86c133408cf 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -181,6 +181,8 @@
sleep(6)
open()
emagged = 1
+ if(istype(src, /obj/machinery/door/airlock))
+ desc = "Its access panel is smoking slightly."
return 1
/obj/machinery/door/blob_act()
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 5ce0a786cab..180d35bcbe0 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -126,7 +126,8 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list(
new /datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50),
new /datum/stack_recipe("Surgery Table", /obj/machinery/optable, 5, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1),
- new /datum/stack_recipe("Mass Driver frame", /obj/machinery/mass_driver_frame, 3, time = 50, one_per_turf = 1)
+ new /datum/stack_recipe("Mass Driver frame", /obj/machinery/mass_driver_frame, 3, time = 50, one_per_turf = 1),
+ new /datum/stack_recipe("vault door assembly", /obj/structure/door_assembly/door_assembly_vault, 4, time = 50, one_per_turf = 1, on_floor = 1)
)
/obj/item/stack/sheet/plasteel
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index 40f79e78d24..a8bac85e4ec 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -13,6 +13,7 @@
var/glass = 0 // 0 = glass can be installed. -1 = glass can't be installed. 1 = glass is already installed. Text = mineral plating is installed instead.
var/created_name = null
var/heat_proof_finished = 0 //whether to heat-proof the finished airlock
+ var/material_type = /obj/item/stack/sheet/metal
/obj/structure/door_assembly/New()
update_state()
@@ -22,90 +23,113 @@
return ..()
/obj/structure/door_assembly/door_assembly_com
+ name = "command airlock assembly"
base_icon_state = "com"
base_name = "command airlock"
glass_type = "/glass_command"
airlock_type = "/command"
/obj/structure/door_assembly/door_assembly_sec
+ name = "security airlock assembly"
base_icon_state = "sec"
base_name = "security airlock"
glass_type = "/glass_security"
airlock_type = "/security"
/obj/structure/door_assembly/door_assembly_eng
+ name = "engineering airlock assembly"
base_icon_state = "eng"
base_name = "engineering airlock"
glass_type = "/glass_engineering"
airlock_type = "/engineering"
/obj/structure/door_assembly/door_assembly_min
+ name = "mining airlock assembly"
base_icon_state = "min"
base_name = "mining airlock"
glass_type = "/glass_mining"
airlock_type = "/mining"
/obj/structure/door_assembly/door_assembly_atmo
+ name = "atmospherics airlock assembly"
base_icon_state = "atmo"
base_name = "atmospherics airlock"
glass_type = "/glass_atmos"
airlock_type = "/atmos"
/obj/structure/door_assembly/door_assembly_research
+ name = "research airlock assembly"
base_icon_state = "res"
base_name = "research airlock"
glass_type = "/glass_research"
airlock_type = "/research"
/obj/structure/door_assembly/door_assembly_science
+ name = "science airlock assembly"
base_icon_state = "sci"
base_name = "science airlock"
glass_type = "/glass_science"
airlock_type = "/science"
/obj/structure/door_assembly/door_assembly_med
+ name = "medical airlock assembly"
base_icon_state = "med"
base_name = "medical airlock"
glass_type = "/glass_medical"
airlock_type = "/medical"
/obj/structure/door_assembly/door_assembly_mai
+ name = "maintenance airlock assembly"
base_icon_state = "mai"
base_name = "maintenance airlock"
airlock_type = "/maintenance"
glass = -1
/obj/structure/door_assembly/door_assembly_ext
+ name = "external airlock assembly"
base_icon_state = "ext"
base_name = "external airlock"
airlock_type = "/external"
glass = -1
/obj/structure/door_assembly/door_assembly_fre
+ name = "freezer airlock assembly"
base_icon_state = "fre"
base_name = "freezer airlock"
airlock_type = "/freezer"
glass = -1
/obj/structure/door_assembly/door_assembly_hatch
+ name = "airtight hatch assembly"
base_icon_state = "hatch"
base_name = "airtight hatch"
airlock_type = "/hatch"
glass = -1
/obj/structure/door_assembly/door_assembly_mhatch
+ name = "maintenance hatch assembly"
base_icon_state = "mhatch"
base_name = "maintenance hatch"
airlock_type = "/maintenance_hatch"
glass = -1
/obj/structure/door_assembly/door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly
+ name = "high security airlock assembly"
base_icon_state = "highsec"
base_name = "high security airlock"
airlock_type = "/highsecurity"
glass = -1
+/obj/structure/door_assembly/door_assembly_vault
+ name = "vault door assembly"
+ base_icon_state = "vault"
+ base_name = "vault door"
+ airlock_type = "/vault"
+ glass = -1
+ material_type = /obj/item/stack/sheet/plasteel
+
/obj/structure/door_assembly/door_assembly_shuttle
+ name = "shuttle airlock assembly"
base_icon_state = "shuttle"
base_name = "shuttle airlock"
airlock_type = "/shuttle"
@@ -151,6 +175,11 @@
airlock_type = "/cult/runed"
glass = -1
+/obj/structure/door_assembly/door_assembly_centcom
+ base_icon_state = "ele"
+ airlock_type = "/centcom"
+ glass = -1
+
/obj/structure/door_assembly/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/pen))
var/t = copytext(stripped_input(user, "Enter the name for the door.", name, created_name),1,MAX_NAME_LEN)
@@ -192,7 +221,7 @@
if(!src || !WT.isOn())
return
to_chat(user, "You dissasembled the airlock assembly!")
- new /obj/item/stack/sheet/metal(loc, 4)
+ new material_type(loc, 4)
qdel(src)
else
to_chat(user, "You need more welding fuel.")
@@ -236,18 +265,16 @@
else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1 && W.icon_state != "door_electronics_smoked")
playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
- user.drop_item()
- W.loc = src
if(do_after(user, 40 * W.toolspeed, target = src))
if(!src)
return
+ user.drop_item()
+ W.loc = src
to_chat(user, "You installed the airlock electronics!")
state = 2
name = "near finished airlock assembly"
electronics = W
- else
- W.loc = loc
else if(iscrowbar(W) && state == 2 )
playsound(loc, W.usesound, 100, 1)
diff --git a/icons/obj/doors/door_assembly.dmi b/icons/obj/doors/door_assembly.dmi
index 232a54da317..f8c1e979ff9 100644
Binary files a/icons/obj/doors/door_assembly.dmi and b/icons/obj/doors/door_assembly.dmi differ