From de08b914bb515e81816c8183af3bbad8eefd86e7 Mon Sep 17 00:00:00 2001 From: uraniummeltdown Date: Thu, 9 Nov 2017 22:52:23 +0400 Subject: [PATCH] gave door assemblies names added vault door assembly made with 4 plasteel sheets centcom/ele airlocks have their own assembly emagged airlock has a different desc screwdrivering an airlock now displays a message electronics go into assembly after do_after --- code/game/machinery/doors/airlock.dm | 2 + code/game/machinery/doors/airlock_types.dm | 3 +- code/game/machinery/doors/door.dm | 2 + .../items/stacks/sheets/sheet_types.dm | 3 +- code/game/objects/structures/door_assembly.dm | 37 +++++++++++++++--- icons/obj/doors/door_assembly.dmi | Bin 47022 -> 50839 bytes 6 files changed, 40 insertions(+), 7 deletions(-) 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 232a54da3177100522a552e80a016dcf6b8e3fdc..f8c1e979ff9b44df1b0046e14e81f4adb0db63a7 100644 GIT binary patch delta 9699 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

|gIiJ! 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 Vzic(JkMIi{c%)^ZiPEqM{XaRLh2Q`H