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