From 3dae62303e4735dc8cc9d558c120fb27264e5aca Mon Sep 17 00:00:00 2001
From: Erika Fox <94164348+Erikafox@users.noreply.github.com>
Date: Thu, 5 Dec 2024 16:14:04 -0500
Subject: [PATCH 1/6] door speed
---
code/datums/wires/airlock.dm | 4 +-
code/game/machinery/doors/airlock.dm | 10 +-
.../machinery/doors/airlock_electronics.dm | 15 ++
code/game/machinery/doors/door.dm | 7 +-
code/game/objects/structures/door_assembly.dm | 241 +++++++++---------
.../tgui/interfaces/AirlockElectronics.js | 23 +-
tgui/packages/tgui/interfaces/Radio.js | 2 +-
7 files changed, 175 insertions(+), 127 deletions(-)
diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm
index 14e2d4f2ba1f..3b461ce8faf6 100644
--- a/code/datums/wires/airlock.dm
+++ b/code/datums/wires/airlock.dm
@@ -46,7 +46,7 @@
status += "The AI connection light is [A.aiControlDisabled || (A.obj_flags & EMAGGED) ? "off" : "on"]."
status += "The check wiring light is [A.safe ? "off" : "on"]."
status += "The timer is powered [A.autoclose ? "on" : "off"]."
- status += "The speed light is [A.normalspeed ? "on" : "off"]."
+ status += "The speed light is [A.fast_close ? "on" : "off"]."
status += "The emergency light is [A.emergency ? "on" : "off"]."
return status
@@ -94,7 +94,7 @@
if(!A.density)
A.close()
if(WIRE_TIMING)
- A.normalspeed = !A.normalspeed
+ A.fast_close = !A.fast_close
if(WIRE_LIGHT)
A.lights = !A.lights
A.update_appearance()
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 594aeedbe43d..4f88daa0c164 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -50,11 +50,13 @@
autoclose = TRUE
secondsElectrified = MACHINE_NOT_ELECTRIFIED //How many seconds remain until the door is no longer electrified. -1/MACHINE_ELECTRIFIED_PERMANENT = permanently electrified until someone fixes it.
assemblytype = /obj/structure/door_assembly
- normalspeed = 1
+ fast_close = FALSE
explosion_block = 1
hud_possible = list(DIAG_AIRLOCK_HUD)
req_ship_access = TRUE
+ close_speed = 150
+
smoothing_groups = list(SMOOTH_GROUP_AIRLOCK)
FASTDMM_PROP(\
@@ -1260,7 +1262,7 @@
playsound(src, pry_open_sound, 30, TRUE, mono_adj = TRUE)
if(autoclose)
- autoclose_in(normalspeed ? 150 : 15)
+ autoclose_in(fast_close ? clamp(close_speed/10, 10, 300) : close_speed)
if(!density)
return TRUE
@@ -1565,7 +1567,7 @@
data["locked"] = locked // bolted
data["lights"] = lights // bolt lights
data["safe"] = safe // safeties
- data["speed"] = normalspeed // safe speed
+ data["operation speed"] = fast_close // safe speed
data["welded"] = welded // welded
data["opened"] = !density // opened
@@ -1633,7 +1635,7 @@
safe = !safe
. = TRUE
if("speed-toggle")
- normalspeed = !normalspeed
+ fast_close = !fast_close
. = TRUE
if("open-close")
user_toggle_open(usr)
diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm
index 79260dc975be..e75d928dc6ba 100644
--- a/code/game/machinery/doors/airlock_electronics.dm
+++ b/code/game/machinery/doors/airlock_electronics.dm
@@ -2,6 +2,8 @@
name = "airlock electronics"
req_access = list(ACCESS_MAINT_TUNNELS)
custom_price = 50
+ ///how fast the constructed airlock will close
+ var/close_speed = 15 SECONDS
/// A list of all granted accesses
var/list/accesses = list()
/// If the airlock should require ALL or only ONE of the listed accesses
@@ -47,6 +49,7 @@
/obj/item/electronics/airlock/ui_data()
var/list/data = list()
+ data["close_speed"] = close_speed
data["accesses"] = accesses
data["oneAccess"] = one_access
data["unres_direction"] = unres_sides
@@ -91,6 +94,18 @@
return
accesses -= get_region_accesses(region)
. = TRUE
+ if("close_speed")
+ var/tune = params["tune"]
+ var/adjust = text2num(params["adjust"])
+ if(adjust)
+ tune = close_speed + adjust * 10
+ . = TRUE
+ else if(text2num(tune) != null)
+ tune = tune * 10
+ . = TRUE
+ if(.)
+ close_speed = clamp(tune, 0, 300)
+ . = TRUE
/obj/item/electronics/airlock/ui_host()
if(holder)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 7c8371809e81..477f3e291ab9 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -25,7 +25,10 @@
var/operating = FALSE
var/glass = FALSE
var/welded = FALSE
- var/normalspeed = 1
+ ///does this airlock close quickly
+ var/fast_close = 0
+ ///how many seconds should this door close after, if it is autoclosing
+ var/close_speed = 60
var/heat_proof = FALSE // For rglass-windowed airlocks and firedoors
var/emergency = FALSE // Emergency access override
var/sub_door = FALSE // true if it's meant to go under another door.
@@ -353,7 +356,7 @@
for(var/atom/movable/M in get_turf(src))
if(M.density && M != src) //something is blocking the door
if(autoclose)
- autoclose_in(60)
+ autoclose_in(fast_close ? close_speed/10, close_speed)
return
operating = TRUE
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index 43052f1f0dbb..f4acf9c0a883 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -49,81 +49,155 @@
else
. += "There is a small paper placard on the assembly[doorname]."
-/obj/structure/door_assembly/attackby(obj/item/W, mob/user, params)
- if(istype(W, /obj/item/pen))
- var/t = stripped_input(user, "Enter the name for the door.", name, created_name,MAX_NAME_LEN)
- if(!t)
- return
- if(!in_range(src, usr) && loc != usr)
- return
- created_name = t
+/obj/structure/door_assembly/wrench_act(mob/living/user, obj/item/I)
+ . = ..()
+ for(var/obj/machinery/door/D in loc)
+ if(!D.sub_door)
+ to_chat(user, "There is another door here!")
+ return FALSE
- else if((W.tool_behaviour == TOOL_WELDER) && (mineral || glass || !anchored))
- if(!W.tool_start_check(user, amount=0))
+ user.visible_message(
+ span_notice("[user] [anchored ? "unsecures" : "secures"] the airlock assembly to the floor."),
+ span_notice("You start to [anchored ? "unsecure" : "secure"] the airlock assembly to the floor..."),
+ span_hear("You hear wrenching.")
+ )
+
+ if(I.use_tool(src, user, 40, volume=100))
+ if(anchored)
return
+ to_chat(user, span_notice("You [anchored ? "unsecured" : "secured"] the airlock assembly."))
+ name = "[anchored ? "secured " : ""]airlock assembly"
+ anchored = !anchored
+ return TRUE
+ return FALSE
+
+/obj/structure/door_assembly/welder_act(mob/living/user, obj/item/I)
+ . = ..()
+ if(mineral || glass || !anchored)
+ if(!I.tool_start_check(user, amount=0))
+ return FALSE
if(mineral)
var/obj/item/stack/sheet/mineral/mineral_path = text2path("/obj/item/stack/sheet/mineral/[mineral]")
- user.visible_message("[user] welds the [mineral] plating off the airlock assembly.", "You start to weld the [mineral] plating off the airlock assembly...")
- if(W.use_tool(src, user, 40, volume=50))
+ user.visible_message(\
+ span_notice("[user] welds the [mineral] plating off the airlock assembly."),
+ span_notice("You start to weld the [mineral] plating off the airlock assembly..."))
+ if(I.use_tool(src, user, 40, volume=50))
to_chat(user, "You weld the [mineral] plating off.")
new mineral_path(loc, 2)
var/obj/structure/door_assembly/PA = new previous_assembly(loc)
transfer_assembly_vars(src, PA)
+ return TRUE
else if(glass)
- user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly...")
- if(W.use_tool(src, user, 40, volume=50))
- to_chat(user, "You weld the glass panel out.")
+ user.visible_message(
+ span_notice("[user] welds the glass panel out of the airlock assembly."),
+ span_notice("You start to weld the glass panel out of the airlock assembly"))
+ if(I.use_tool(src, user, 40, volume=50))
+ to_chat(user, span_notice("You weld the glass panel out."))
if(heat_proof_finished)
new /obj/item/stack/sheet/rglass(get_turf(src))
heat_proof_finished = 0
else
new /obj/item/stack/sheet/glass(get_turf(src))
glass = 0
+ return TRUE
else if(!anchored)
- user.visible_message("[user] disassembles the airlock assembly.", \
- "You start to disassemble the airlock assembly...")
- if(W.use_tool(src, user, 40, volume=50))
- to_chat(user, "You disassemble the airlock assembly.")
+ user.visible_message(
+ span_notice("[user] disassembles the airlock assembly."), \
+ span_notice("You start to disassemble the airlock assembly..."))
+ if(I.use_tool(src, user, 40, volume=50))
+ to_chat(user, span_notice("You disassemble the airlock assembly."))
deconstruct(TRUE)
+ return TRUE
+ return FALSE
- else if(W.tool_behaviour == TOOL_WRENCH)
- if(!anchored)
- var/door_check = 1
- for(var/obj/machinery/door/D in loc)
- if(!D.sub_door)
- door_check = 0
- break
+/obj/structure/door_assembly/wirecutter_act(mob/living/user, obj/item/I)
+ . = ..()
+ if(state == AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
+ user.visible_message(
+ span_notice("[user] cuts the wires from the airlock assembly."), \
+ span_notice("You start to cut the wires from the airlock assembly...")
+ )
- if(door_check)
- user.visible_message(
- "[user] secures the airlock assembly to the floor.",
- "You start to secure the airlock assembly to the floor...",
- "You hear wrenching."
- )
+ if(I.use_tool(src, user, 40, volume=100))
+ if(state != AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
+ return
+ to_chat(user, span_notice("You cut the wires from the airlock assembly."))
+ var/obj/item/cable = new /obj/item/stack/cable_coil(get_turf(src), 1)
+ user.put_in_hands(cable)
+ state = AIRLOCK_ASSEMBLY_NEEDS_WIRES
+ name = "secured airlock assembly"
+
+/obj/structure/door_assembly/crowbar_act(mob/living/user, obj/item/I)
+ . = ..()
+ if(state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
+ user.visible_message(span_notice("[user] removes the electronics from the airlock assembly."), \
+ span_notice("You start to remove electronics from the airlock assembly..."))
- if(W.use_tool(src, user, 40, volume=100))
- if(anchored)
- return
- to_chat(user, "You secure the airlock assembly.")
- name = "secured airlock assembly"
- set_anchored(TRUE)
+ if(I.use_tool(src, user, 40, volume=100))
+ if(state != AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
+ return
+ to_chat(user, span_notice("You remove the airlock electronics."))
+ state = AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS
+ name = "wired airlock assembly"
+ var/obj/item/electronics/airlock/ae
+ if (!electronics)
+ ae = new/obj/item/electronics/airlock(loc)
else
- to_chat(user, "There is another door here!")
+ ae = electronics
+ electronics = null
+ ae.forceMove(src.loc)
- else
- user.visible_message(
- "[user] unsecures the airlock assembly from the floor.",
- "You start to unsecure the airlock assembly from the floor...",
- "You hear wrenching."
- )
- if(W.use_tool(src, user, 40, volume=100))
- if(!anchored)
- return
- to_chat(user, "You unsecure the airlock assembly.")
- name = "airlock assembly"
- set_anchored(FALSE)
+/obj/structure/door_assembly/screwdriver_act(mob/living/user, obj/item/I)
+ . = ..()
+ if((I.tool_behaviour == TOOL_SCREWDRIVER) && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
+ user.visible_message(
+ span_notice("[user] finishes the airlock."),
+ span_notice("You start finishing the airlock...")
+ )
+
+ if(I.use_tool(src, user, 40, volume=100))
+ if(loc && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
+ to_chat(user, span_notice("You finish the airlock."))
+ new_door()
+ return TRUE
+ return FALSE
+
+/obj/structure/door_assembly/proc/new_door()
+ var/obj/machinery/door/airlock/door
+ if(glass)
+ door = new glass_type(loc)
+ else
+ door = new airlock_type(loc)
+ door.setDir(dir)
+ door.unres_sides = electronics.unres_sides
+ door.electronics = electronics
+ door.heat_proof = heat_proof_finished
+ door.security_level = 0
+ if(electronics.one_access)
+ door.req_one_access = electronics.accesses
+ else
+ door.req_access = electronics.accesses
+ door.close_speed = electronics.close_speed
+ if(created_name)
+ door.name = created_name
+ else
+ door.name = base_name
+ door.previous_airlock = previous_assembly
+ electronics.forceMove(door)
+ door.update_appearance()
+ qdel(src)
+
+/obj/structure/door_assembly/attackby(obj/item/W, mob/user, params)
+ . = ..()
+ if(istype(W, /obj/item/pen))
+ var/t = stripped_input(user, "Enter the name for the door.", name, created_name,MAX_NAME_LEN)
+ if(!t)
+ return
+ if(!in_range(src, usr) && loc != usr)
+ return
+ created_name = t
else if(istype(W, /obj/item/stack/cable_coil) && state == AIRLOCK_ASSEMBLY_NEEDS_WIRES && anchored)
if(!W.tool_start_check(user, amount=1))
@@ -138,18 +212,6 @@
to_chat(user, "You wire the airlock assembly.")
name = "wired airlock assembly"
- else if((W.tool_behaviour == TOOL_WIRECUTTER) && state == AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
- user.visible_message("[user] cuts the wires from the airlock assembly.", \
- "You start to cut the wires from the airlock assembly...")
-
- if(W.use_tool(src, user, 40, volume=100))
- if(state != AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
- return
- to_chat(user, "You cut the wires from the airlock assembly.")
- new/obj/item/stack/cable_coil(get_turf(user), 1)
- state = AIRLOCK_ASSEMBLY_NEEDS_WIRES
- name = "secured airlock assembly"
-
else if(istype(W, /obj/item/electronics/airlock) && state == AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
W.play_tool_sound(src, 100)
user.visible_message("[user] installs the electronics into the airlock assembly.", \
@@ -165,25 +227,6 @@
name = "near finished airlock assembly"
electronics = W
-
- else if((W.tool_behaviour == TOOL_CROWBAR) && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
- user.visible_message("[user] removes the electronics from the airlock assembly.", \
- "You start to remove electronics from the airlock assembly...")
-
- if(W.use_tool(src, user, 40, volume=100))
- if(state != AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
- return
- to_chat(user, "You remove the airlock electronics.")
- state = AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS
- name = "wired airlock assembly"
- var/obj/item/electronics/airlock/ae
- if (!electronics)
- ae = new/obj/item/electronics/airlock(loc)
- else
- ae = electronics
- electronics = null
- ae.forceMove(src.loc)
-
else if(istype(W, /obj/item/stack/sheet) && (!glass || !mineral))
var/obj/item/stack/sheet/G = W
if(G)
@@ -241,40 +284,6 @@
else
to_chat(user, "You cannot add [G] to [src]!")
- else if((W.tool_behaviour == TOOL_SCREWDRIVER) && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
- user.visible_message(
- "[user] finishes the airlock.",
- "You start finishing the airlock..."
- )
-
- if(W.use_tool(src, user, 40, volume=100))
- if(loc && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
- to_chat(user, "You finish the airlock.")
- var/obj/machinery/door/airlock/door
- if(glass)
- door = new glass_type(loc)
- else
- door = new airlock_type(loc)
- door.setDir(dir)
- door.unres_sides = electronics.unres_sides
- //door.req_access = req_access
- door.electronics = electronics
- door.heat_proof = heat_proof_finished
- door.security_level = 0
- if(electronics.one_access)
- door.req_one_access = electronics.accesses
- else
- door.req_access = electronics.accesses
- if(created_name)
- door.name = created_name
- else
- door.name = base_name
- door.previous_airlock = previous_assembly
- electronics.forceMove(door)
- door.update_appearance()
- qdel(src)
- else
- return ..()
update_name()
update_appearance()
diff --git a/tgui/packages/tgui/interfaces/AirlockElectronics.js b/tgui/packages/tgui/interfaces/AirlockElectronics.js
index 8eb0de72828d..bfd8daea6d1c 100644
--- a/tgui/packages/tgui/interfaces/AirlockElectronics.js
+++ b/tgui/packages/tgui/interfaces/AirlockElectronics.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Button, LabeledList, Section } from '../components';
+import { Button, LabeledList, Section, NumberInput } from '../components';
import { Window } from '../layouts';
import { AccessList } from './common/AccessList';
@@ -8,8 +8,9 @@ export const AirlockElectronics = (props, context) => {
const { oneAccess, unres_direction } = data;
const regions = data.regions || [];
const accesses = data.accesses || [];
+ const close_speed = data.close_speed || [];
return (
-
+
@@ -85,6 +86,24 @@ export const AirlockElectronics = (props, context) => {
})
}
/>
+
+
+
+ act('close_speed', {
+ adjust: value - close_speed / 10,
+ })
+ }
+ />
+
+
);
diff --git a/tgui/packages/tgui/interfaces/Radio.js b/tgui/packages/tgui/interfaces/Radio.js
index 1783933bf468..64d33e7505c8 100644
--- a/tgui/packages/tgui/interfaces/Radio.js
+++ b/tgui/packages/tgui/interfaces/Radio.js
@@ -64,7 +64,7 @@ export const Radio = (props, context) => {
animate
unit="kHz"
step={0.2}
- stepPixelSize={10}
+ stepPixelSize={15}
minValue={minFrequency / 10}
maxValue={maxFrequency / 10}
value={frequency / 10}
From afc768077aa23a3de89dc4fcb59f7f735b39cce6 Mon Sep 17 00:00:00 2001
From: Erika Fox <94164348+Erikafox@users.noreply.github.com>
Date: Thu, 5 Dec 2024 16:16:38 -0500
Subject: [PATCH 2/6] Update door_assembly.dm
---
code/game/objects/structures/door_assembly.dm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index f4acf9c0a883..a83fc6b341f8 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -190,7 +190,6 @@
qdel(src)
/obj/structure/door_assembly/attackby(obj/item/W, mob/user, params)
- . = ..()
if(istype(W, /obj/item/pen))
var/t = stripped_input(user, "Enter the name for the door.", name, created_name,MAX_NAME_LEN)
if(!t)
@@ -283,7 +282,7 @@
to_chat(user, "You cannot add [G] to [src]!")
else
to_chat(user, "You cannot add [G] to [src]!")
-
+ ..()
update_name()
update_appearance()
From 90ca346b800f29c9ac62ac456bc2df5b61d07c3b Mon Sep 17 00:00:00 2001
From: Erika Fox <94164348+Erikafox@users.noreply.github.com>
Date: Thu, 5 Dec 2024 16:21:01 -0500
Subject: [PATCH 3/6] Update door.dm
---
code/game/machinery/doors/door.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 477f3e291ab9..008c65177f30 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -356,7 +356,7 @@
for(var/atom/movable/M in get_turf(src))
if(M.density && M != src) //something is blocking the door
if(autoclose)
- autoclose_in(fast_close ? close_speed/10, close_speed)
+ autoclose_in(fast_close ? close_speed/10 : close_speed)
return
operating = TRUE
From 0ca95203e16ffddd65e5dbf2c14d9a6980e3fd7e Mon Sep 17 00:00:00 2001
From: Erika Fox <94164348+Erikafox@users.noreply.github.com>
Date: Thu, 5 Dec 2024 16:29:16 -0500
Subject: [PATCH 4/6] bw
---
.../independent/independent_shetland.dmm | 14 +++++++-------
_maps/shuttles/inteq/inteq_talos.dmm | 4 ++--
.../shuttles/syndicate/syndicate_ngr_derecho.dmm | 16 ++++++++--------
.../syndicate/syndicate_ngr_kaliandhi.dmm | 14 +++++++-------
4 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm
index 645dee18a539..ed4f684dab3b 100644
--- a/_maps/shuttles/independent/independent_shetland.dmm
+++ b/_maps/shuttles/independent/independent_shetland.dmm
@@ -621,7 +621,7 @@
/obj/machinery/door/airlock/engineering{
dir = 4;
name = "Engineering";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/turf_decal/industrial/warning/fulltile,
@@ -647,7 +647,7 @@
/obj/machinery/door/airlock/engineering{
dir = 4;
name = "Engineering";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/machinery/door/firedoor/border_only{
@@ -1727,7 +1727,7 @@
/obj/machinery/door/airlock/engineering{
dir = 4;
name = "Engine Room";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/turf_decal/industrial/warning/fulltile,
@@ -2062,7 +2062,7 @@
/obj/machinery/door/airlock/engineering{
dir = 4;
name = "Engineering";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/turf_decal/industrial/warning/fulltile,
@@ -2323,7 +2323,7 @@
/obj/machinery/door/airlock/engineering{
dir = 4;
name = "Engineering";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/turf_decal/industrial/warning/fulltile,
@@ -3861,7 +3861,7 @@
/obj/machinery/door/airlock/engineering{
dir = 4;
name = "Engine Room";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/turf_decal/industrial/warning/fulltile,
@@ -4379,7 +4379,7 @@
/obj/machinery/door/airlock/engineering{
dir = 4;
name = "Electrical";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/turf_decal/industrial/warning/fulltile,
diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm
index 2bd113ca646a..e82e179b8b77 100644
--- a/_maps/shuttles/inteq/inteq_talos.dmm
+++ b/_maps/shuttles/inteq/inteq_talos.dmm
@@ -536,7 +536,7 @@
/obj/machinery/door/airlock/engineering{
dir = 4;
name = "Engineering";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/turf_decal/industrial/warning/fulltile,
@@ -1614,7 +1614,7 @@
/obj/machinery/door/airlock/engineering{
dir = 4;
name = "Engineering";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/turf_decal/industrial/warning/fulltile,
diff --git a/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm b/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm
index 55d8cc03bfad..18631bea9f4d 100644
--- a/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm
+++ b/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm
@@ -89,7 +89,7 @@
/obj/machinery/door/airlock/hatch{
dir = 4;
name = "Command Deck";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "19"
},
/turf/open/floor/plasteel/tech/grid,
@@ -197,7 +197,7 @@
"bW" = (
/obj/machinery/door/airlock/hatch{
name = "Foreman's Office";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "56"
},
/turf/open/floor/plasteel/tech/grid,
@@ -826,7 +826,7 @@
/obj/machinery/door/airlock/hatch{
dir = 4;
name = "Life Support";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/decal/cleanable/dirt,
@@ -1534,7 +1534,7 @@
/obj/machinery/door/airlock/hatch{
dir = 1;
name = "Engineering";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/effect/decal/cleanable/dirt,
@@ -2170,7 +2170,7 @@
/obj/machinery/door/airlock/hatch{
dir = 4;
name = "Control Room";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/turf/open/floor/plasteel/tech/grid,
@@ -2834,7 +2834,7 @@
"xQ" = (
/obj/machinery/door/airlock/hatch{
name = "Foreman's Office";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "56"
},
/obj/machinery/door/firedoor/border_only{
@@ -3243,7 +3243,7 @@
/obj/machinery/door/airlock/hatch{
dir = 4;
name = "Bridge";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "19"
},
/turf/open/floor/plasteel/tech/grid,
@@ -5547,7 +5547,7 @@
/obj/machinery/door/airlock/hatch{
dir = 4;
name = "Command Deck";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "19"
},
/obj/structure/sign/directions/command{
diff --git a/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm b/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm
index f2e6b8f6dd63..3c83a4d6ee94 100644
--- a/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm
+++ b/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm
@@ -1284,7 +1284,7 @@
/obj/machinery/door/airlock/hatch{
dir = 8;
name = "Armory";
- normalspeed = 0;
+ fast_close = 1;
req_access = list(3)
},
/obj/machinery/door/firedoor/border_only{
@@ -2169,7 +2169,7 @@
"oc" = (
/obj/machinery/door/airlock/hatch{
name = "Bridge";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "19"
},
/obj/machinery/door/firedoor/border_only{
@@ -3156,7 +3156,7 @@
/obj/machinery/door/airlock/hatch{
dir = 8;
name = "Armory";
- normalspeed = 0;
+ fast_close = 1;
req_access = list(3)
},
/obj/structure/cable{
@@ -5536,7 +5536,7 @@
},
/obj/machinery/door/airlock/hatch{
name = "Control Room";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -5865,7 +5865,7 @@
"MS" = (
/obj/machinery/door/airlock/hatch{
name = "Command Deck";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "19"
},
/obj/structure/cable{
@@ -5905,7 +5905,7 @@
/obj/machinery/door/airlock/hatch{
dir = 4;
name = "Engineering";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/structure/cable{
@@ -7629,7 +7629,7 @@
},
/obj/machinery/door/airlock/hatch{
name = "Life Support";
- normalspeed = 0;
+ fast_close = 1;
req_access_txt = "10"
},
/obj/machinery/door/firedoor/border_only,
From ee7e7c8567b54e59964f058efc9056e7b9994da5 Mon Sep 17 00:00:00 2001
From: Erika Fox <94164348+Erikafox@users.noreply.github.com>
Date: Sat, 7 Dec 2024 16:48:57 -0500
Subject: [PATCH 5/6] Update code/game/machinery/doors/door.dm
Co-authored-by: Mark Suckerberg
Signed-off-by: Erika Fox <94164348+Erikafox@users.noreply.github.com>
---
code/game/machinery/doors/door.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 008c65177f30..7b5fc9f3af56 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -27,8 +27,8 @@
var/welded = FALSE
///does this airlock close quickly
var/fast_close = 0
- ///how many seconds should this door close after, if it is autoclosing
- var/close_speed = 60
+ ///how long this door takes to close, if it is autoclosing
+ var/close_speed = 6 SECONDS
var/heat_proof = FALSE // For rglass-windowed airlocks and firedoors
var/emergency = FALSE // Emergency access override
var/sub_door = FALSE // true if it's meant to go under another door.
From 4b782661746d5e06158af44e152dca99f1ebce9a Mon Sep 17 00:00:00 2001
From: Erika Fox <94164348+Erikafox@users.noreply.github.com>
Date: Sat, 7 Dec 2024 16:49:06 -0500
Subject: [PATCH 6/6] Update code/game/machinery/doors/airlock_electronics.dm
Co-authored-by: Mark Suckerberg
Signed-off-by: Erika Fox <94164348+Erikafox@users.noreply.github.com>
---
code/game/machinery/doors/airlock_electronics.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm
index e75d928dc6ba..6987c8266daa 100644
--- a/code/game/machinery/doors/airlock_electronics.dm
+++ b/code/game/machinery/doors/airlock_electronics.dm
@@ -98,10 +98,10 @@
var/tune = params["tune"]
var/adjust = text2num(params["adjust"])
if(adjust)
- tune = close_speed + adjust * 10
+ tune = close_speed + adjust SECONDS
. = TRUE
else if(text2num(tune) != null)
- tune = tune * 10
+ tune = tune SECONDS
. = TRUE
if(.)
close_speed = clamp(tune, 0, 300)