diff --git a/code/__DEFINES/~skyrat_defines/airlock.dm b/code/__DEFINES/~skyrat_defines/airlock.dm index 8f0a05e3e61..258da592d57 100644 --- a/code/__DEFINES/~skyrat_defines/airlock.dm +++ b/code/__DEFINES/~skyrat_defines/airlock.dm @@ -27,7 +27,10 @@ #define AIRLOCK_LIGHT_POWER 0.5 #define AIRLOCK_LIGHT_RANGE 2 #define AIRLOCK_LIGHT_ENGINEERING "engineering" +#define AIRLOCK_LIGHT_FIRE "fire" +#define AIRLOCK_LIGHT_POWERON "poweron" #define AIRLOCK_POWERON_LIGHT_COLOR "#3aa7c2" +#define AIRLOCK_FIRE_LIGHT_COLOR "#eaeaea" #define AIRLOCK_BOLTS_LIGHT_COLOR "#c22323" #define AIRLOCK_ACCESS_LIGHT_COLOR "#57e69c" #define AIRLOCK_EMERGENCY_LIGHT_COLOR "#d1d11d" diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index c8504a919f1..3ae84fbc421 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -411,6 +411,8 @@ GLOBAL_VAR_INIT(cops_arrived, FALSE) post_status("alert", "orangealert") if(SEC_LEVEL_AMBER) post_status("alert", "amberalert") + if(SEC_LEVEL_EPSILON) + post_status("alert", "epsilonalert") if(SEC_LEVEL_GAMMA) post_status("alert", "gammaalert") // SKYRAT EDIT ADD END - Alert Levels diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index b3b1615aded..e98fccb501b 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -194,6 +194,8 @@ set_light(l_color = LIGHT_COLOR_ORANGE) if(SEC_LEVEL_AMBER) set_light(l_color = LIGHT_COLOR_DIM_YELLOW) + if(SEC_LEVEL_EPSILON) + set_light(l_color = COLOR_ASSEMBLY_WHITE) if(SEC_LEVEL_GAMMA) set_light(l_color = COLOR_ASSEMBLY_PURPLE) //SKYRAT EDIT ADDITION END diff --git a/code/modules/modular_computers/file_system/programs/statusdisplay.dm b/code/modules/modular_computers/file_system/programs/statusdisplay.dm index 3b7fb0dc7ee..5dfdaae2c87 100644 --- a/code/modules/modular_computers/file_system/programs/statusdisplay.dm +++ b/code/modules/modular_computers/file_system/programs/statusdisplay.dm @@ -75,6 +75,8 @@ post_status("alert", "orangealert") if(SEC_LEVEL_AMBER) post_status("alert", "amberalert") + if(SEC_LEVEL_EPSILON) + post_status("alert", "epsilonalert") if(SEC_LEVEL_GAMMA) post_status("alert", "gammaalert") // SKYRAT EDIT ADD END - Alert Levels diff --git a/modular_skyrat/modules/aesthetics/airlock/code/airlock.dm b/modular_skyrat/modules/aesthetics/airlock/code/airlock.dm index 574b66c5c66..c8b279cc963 100644 --- a/modular_skyrat/modules/aesthetics/airlock/code/airlock.dm +++ b/modular_skyrat/modules/aesthetics/airlock/code/airlock.dm @@ -3,28 +3,17 @@ doorClose = 'modular_skyrat/modules/aesthetics/airlock/sound/close.ogg' boltUp = 'modular_skyrat/modules/aesthetics/airlock/sound/bolts_up.ogg' boltDown = 'modular_skyrat/modules/aesthetics/airlock/sound/bolts_down.ogg' - //noPower = 'sound/machines/doorclick.ogg' var/forcedOpen = 'modular_skyrat/modules/aesthetics/airlock/sound/open_force.ogg' //Come on guys, why aren't all the sound files like this. var/forcedClosed = 'modular_skyrat/modules/aesthetics/airlock/sound/close_force.ogg' /// For those airlocks you might want to have varying "fillings" for, without having to /// have an icon file per door with a different filling. var/fill_state_suffix = null - /// For the airlocks that use greyscale lights, set this to the color you want your lights to be. - var/greyscale_lights_color = null /// For the airlocks that use a greyscale accent door color, set this color to the accent color you want it to be. var/greyscale_accent_color = null - - var/has_environment_lights = TRUE //Does this airlock emit a light? - var/light_color_poweron = AIRLOCK_POWERON_LIGHT_COLOR - var/light_color_bolts = AIRLOCK_BOLTS_LIGHT_COLOR - var/light_color_access = AIRLOCK_ACCESS_LIGHT_COLOR - var/light_color_emergency = AIRLOCK_EMERGENCY_LIGHT_COLOR - var/light_color_engineering = AIRLOCK_ENGINEERING_LIGHT_COLOR - var/light_color_deny = AIRLOCK_DENY_LIGHT_COLOR - var/door_light_range = AIRLOCK_LIGHT_RANGE - var/door_light_power = AIRLOCK_LIGHT_POWER - ///Is this door external? E.g. does it lead to space? Shuttle docking systems bolt doors with this flag. + /// Does this airlock emit a light? + var/has_environment_lights = TRUE + /// Is this door external? E.g. does it lead to space? Shuttle docking systems bolt doors with this flag. var/external = FALSE /obj/machinery/door/airlock/external @@ -39,59 +28,57 @@ /obj/machinery/door/airlock/update_overlays() . = ..() - var/pre_light_range = 0 - var/pre_light_power = 0 - var/pre_light_color = initial(light_color) - var/lights_overlay = "" - var/frame_state - var/light_state + var/light_state = AIRLOCK_LIGHT_POWERON + var/pre_light_color switch(airlock_state) if(AIRLOCK_CLOSED) frame_state = AIRLOCK_FRAME_CLOSED if(locked) light_state = AIRLOCK_LIGHT_BOLTS - lights_overlay = "lights_bolts" - pre_light_color = light_color_bolts + pre_light_color = AIRLOCK_BOLTS_LIGHT_COLOR else if(emergency) light_state = AIRLOCK_LIGHT_EMERGENCY - lights_overlay = "lights_emergency" - pre_light_color = light_color_emergency + pre_light_color = AIRLOCK_EMERGENCY_LIGHT_COLOR + else if(fire_active) + light_state = AIRLOCK_LIGHT_FIRE + pre_light_color = AIRLOCK_FIRE_LIGHT_COLOR else if(engineering_override) light_state = AIRLOCK_LIGHT_ENGINEERING - lights_overlay = "lights_engineering" - pre_light_color = light_color_engineering + pre_light_color = AIRLOCK_ENGINEERING_LIGHT_COLOR else - lights_overlay = "lights_poweron" - pre_light_color = light_color_poweron + pre_light_color = AIRLOCK_POWERON_LIGHT_COLOR if(AIRLOCK_DENY) frame_state = AIRLOCK_FRAME_CLOSED light_state = AIRLOCK_LIGHT_DENIED - lights_overlay = "lights_denied" - pre_light_color = light_color_deny + pre_light_color = AIRLOCK_DENY_LIGHT_COLOR if(AIRLOCK_EMAG) frame_state = AIRLOCK_FRAME_CLOSED if(AIRLOCK_CLOSING) frame_state = AIRLOCK_FRAME_CLOSING light_state = AIRLOCK_LIGHT_CLOSING - lights_overlay = "lights_closing" - pre_light_color = light_color_access + pre_light_color = AIRLOCK_ACCESS_LIGHT_COLOR if(AIRLOCK_OPEN) frame_state = AIRLOCK_FRAME_OPEN if(locked) - lights_overlay = "lights_bolts_open" - pre_light_color = light_color_bolts + light_state = AIRLOCK_LIGHT_BOLTS + pre_light_color = AIRLOCK_BOLTS_LIGHT_COLOR else if(emergency) - lights_overlay = "lights_emergency_open" - pre_light_color = light_color_emergency + light_state = AIRLOCK_LIGHT_EMERGENCY + pre_light_color = AIRLOCK_EMERGENCY_LIGHT_COLOR + else if(fire_active) + light_state = AIRLOCK_LIGHT_FIRE + pre_light_color = AIRLOCK_FIRE_LIGHT_COLOR + else if(engineering_override) + light_state = AIRLOCK_LIGHT_ENGINEERING + pre_light_color = AIRLOCK_ENGINEERING_LIGHT_COLOR else - lights_overlay = "lights_poweron_open" - pre_light_color = light_color_poweron + pre_light_color = AIRLOCK_POWERON_LIGHT_COLOR + light_state += "_open" if(AIRLOCK_OPENING) frame_state = AIRLOCK_FRAME_OPENING light_state = AIRLOCK_LIGHT_OPENING - lights_overlay = "lights_opening" - pre_light_color = light_color_access + pre_light_color = AIRLOCK_ACCESS_LIGHT_COLOR . += get_airlock_overlay(frame_state, icon, src, em_block = TRUE) if(airlock_material) @@ -99,31 +86,17 @@ else . += get_airlock_overlay("fill_[frame_state + fill_state_suffix]", icon, src, em_block = TRUE) - if(greyscale_lights_color && !light_state) - lights_overlay += "_greyscale" - - if(lights && hasPower()) + if(lights && hasPower() && has_environment_lights) . += get_airlock_overlay("lights_[light_state]", overlays_file, src, em_block = FALSE) - pre_light_range = door_light_range - pre_light_power = door_light_power - if(has_environment_lights) - set_light(l_range = pre_light_range, l_power = pre_light_power, l_color = pre_light_color, l_on = TRUE) - if(multi_tile) - filler.set_light(l_range = pre_light_range, l_power = pre_light_power, l_color = pre_light_color, l_on = TRUE) + . += emissive_appearance(overlays_file, "lights_[light_state]", src, alpha = src.alpha) + + if(multi_tile) + filler.set_light(l_range = AIRLOCK_LIGHT_RANGE, l_power = AIRLOCK_LIGHT_POWER, l_color = pre_light_color, l_on = TRUE) + + set_light(l_range = AIRLOCK_LIGHT_RANGE, l_power = AIRLOCK_LIGHT_POWER, l_color = pre_light_color, l_on = TRUE) else - lights_overlay = "" set_light(l_on = FALSE) - var/mutable_appearance/lights_appearance = mutable_appearance(overlays_file, lights_overlay, FLOAT_LAYER, src, ABOVE_LIGHTING_PLANE) - - if(greyscale_lights_color && !light_state) - lights_appearance.color = greyscale_lights_color - - if(multi_tile) - lights_appearance.dir = dir - - . += lights_appearance - if(greyscale_accent_color) . += get_airlock_overlay("[frame_state]_accent", overlays_file, src, em_block = TRUE, state_color = greyscale_accent_color) @@ -359,6 +332,43 @@ icon = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/highsec/highsec.dmi' overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi' +//TITANIUM / SHUTTLE +/obj/machinery/door/airlock/titanium + icon = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi' + overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi' + +/obj/machinery/door/airlock/shuttle + icon = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi' + overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi' + +//SHUTTLE2 +/obj/machinery/door/airlock/shuttle/ferry + icon = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/erokez.dmi' + overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi' + +/obj/machinery/door/airlock/external/wagon + icon = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/wagon.dmi' + overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi' + +//SURVIVAL +/obj/machinery/door/airlock/survival_pod + overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/survival/overlays.dmi' + +//ABDUCTOR +/obj/machinery/door/airlock/abductor + overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/abductor/overlays.dmi' + +//CULT +/obj/machinery/door/airlock/cult + overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/cult/runed/overlays.dmi' + +/obj/machinery/door/airlock/cult/unruned + overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/cult/unruned/overlays.dmi' + +//CLOCKWORK +/obj/machinery/door/airlock/bronze + overlays_file = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/clockwork/overlays.dmi' + //MULTI-TILE /obj/machinery/door/airlock/multi_tile diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/abductor/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/abductor/overlays.dmi new file mode 100644 index 00000000000..b93c50ad2e4 Binary files /dev/null and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/abductor/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi index f47a46ad003..421aaa8fa41 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/clockwork/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/clockwork/overlays.dmi new file mode 100644 index 00000000000..33f3a03f522 Binary files /dev/null and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/clockwork/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/cult/runed/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/cult/runed/overlays.dmi new file mode 100644 index 00000000000..9ae7976d568 Binary files /dev/null and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/cult/runed/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/cult/unruned/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/cult/unruned/overlays.dmi new file mode 100644 index 00000000000..9eec60e4b52 Binary files /dev/null and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/cult/unruned/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/external/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/external/overlays.dmi index 7e0080f78c8..f72fdbdca04 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/external/overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/external/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi index 662f12813da..30617c86496 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi index 580ca671550..c8bc0148964 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/multi_tile/glass_overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/multi_tile/glass_overlays.dmi index a6a2b020138..cf1e7eea569 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/multi_tile/glass_overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/multi_tile/glass_overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/multi_tile/metal_overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/multi_tile/metal_overlays.dmi index 7de2b627a45..b1f39452c39 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/multi_tile/metal_overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/multi_tile/metal_overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi index d418e45f603..3b7831841bc 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi new file mode 100644 index 00000000000..b4b998e4bcb Binary files /dev/null and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/erokez.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/erokez.dmi similarity index 100% rename from modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/erokez.dmi rename to modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/erokez.dmi diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi new file mode 100644 index 00000000000..6d5a316cf3f Binary files /dev/null and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/wagon.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/wagon.dmi similarity index 100% rename from modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle/wagon.dmi rename to modular_skyrat/modules/aesthetics/airlock/icons/airlocks/shuttle2/wagon.dmi diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi index 8530f0753db..04990c630cf 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi index 1342376d98c..c253fc2ca66 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/survival/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/survival/overlays.dmi new file mode 100644 index 00000000000..a527b386b9c Binary files /dev/null and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/survival/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/tram/tram_overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/tram/tram_overlays.dmi index e30dbeb2b98..e154428fd0b 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/tram/tram_overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/tram/tram_overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi index 992e678d010..222c146b3ff 100644 Binary files a/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi and b/modular_skyrat/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi differ diff --git a/modular_skyrat/modules/aesthetics/firealarm/icons/firealarm.dmi b/modular_skyrat/modules/aesthetics/firealarm/icons/firealarm.dmi index ce8c37b6004..1bcd033b9cf 100644 Binary files a/modular_skyrat/modules/aesthetics/firealarm/icons/firealarm.dmi and b/modular_skyrat/modules/aesthetics/firealarm/icons/firealarm.dmi differ diff --git a/modular_skyrat/modules/aesthetics/firedoor/code/firedoor.dm b/modular_skyrat/modules/aesthetics/firedoor/code/firedoor.dm index 1af081f40b8..281a27efe6a 100644 --- a/modular_skyrat/modules/aesthetics/firedoor/code/firedoor.dm +++ b/modular_skyrat/modules/aesthetics/firedoor/code/firedoor.dm @@ -10,7 +10,8 @@ if(istype(src, /obj/machinery/door/firedoor/border_only)) return if(density) // if the door is closed, add the bottom blinking overlay -- and only if it's closed - . += "firelock_alarm_type_bottom" + . += mutable_appearance(icon, "firelock_alarm_type_bottom") + . += emissive_appearance(icon, "firelock_alarm_type_bottom", src, alpha = src.alpha) /obj/machinery/door/firedoor/open() playsound(loc, door_open_sound, 100, TRUE) diff --git a/modular_skyrat/modules/aesthetics/firedoor/icons/firedoor.dmi b/modular_skyrat/modules/aesthetics/firedoor/icons/firedoor.dmi index c7ab9ab729e..5c9c13ac539 100644 Binary files a/modular_skyrat/modules/aesthetics/firedoor/icons/firedoor.dmi and b/modular_skyrat/modules/aesthetics/firedoor/icons/firedoor.dmi differ diff --git a/modular_skyrat/modules/aesthetics/firedoor/icons/firedoor_glass.dmi b/modular_skyrat/modules/aesthetics/firedoor/icons/firedoor_glass.dmi index 69eb711fa2e..256455834be 100644 Binary files a/modular_skyrat/modules/aesthetics/firedoor/icons/firedoor_glass.dmi and b/modular_skyrat/modules/aesthetics/firedoor/icons/firedoor_glass.dmi differ diff --git a/modular_skyrat/modules/aesthetics/status_display/icons/status_display.dmi b/modular_skyrat/modules/aesthetics/status_display/icons/status_display.dmi index bfb794df356..36ce7d24380 100644 Binary files a/modular_skyrat/modules/aesthetics/status_display/icons/status_display.dmi and b/modular_skyrat/modules/aesthetics/status_display/icons/status_display.dmi differ diff --git a/modular_skyrat/modules/airlock_override/code/airlock_override.dm b/modular_skyrat/modules/airlock_override/code/airlock_override.dm index cad26123ce5..4686120f8aa 100644 --- a/modular_skyrat/modules/airlock_override/code/airlock_override.dm +++ b/modular_skyrat/modules/airlock_override/code/airlock_override.dm @@ -70,9 +70,15 @@ /obj/machinery/door/airlock /// Determines if engineers get access to this door on orange alert var/engineering_override = FALSE + /// If there is an active fire alarm in the door's area + var/fire_active = FALSE + /// Area the door is located in + var/area/door_area /obj/machinery/door/airlock/Initialize(mapload) . = ..() + door_area = get_area(src) + RegisterSignal(door_area, COMSIG_AREA_FIRE_CHANGED, PROC_REF(update_fire_status)) RegisterSignal(SSdcs, COMSIG_GLOB_FORCE_ENG_OVERRIDE, PROC_REF(force_eng_override)) ///Check for the three states of open access. Emergency, Unrestricted, and Engineering Override @@ -83,7 +89,7 @@ if(unrestricted_side(user)) return TRUE - if(engineering_override) + if(engineering_override || fire_active) var/mob/living/carbon/human/interacting_human = user if(!istype(interacting_human)) return ..() @@ -111,7 +117,9 @@ return engineering_override = FALSE - normalspeed = TRUE + if(!fire_active) + normalspeed = TRUE + update_appearance() return @@ -150,17 +158,30 @@ GLOBAL_VAR_INIT(force_eng_override, FALSE) /obj/machinery/door/airlock/proc/force_eng_override(datum/source, status) SIGNAL_HANDLER - if(!status) - engineering_override = FALSE + engineering_override = status + if(!engineering_override && !fire_active) normalspeed = TRUE update_appearance() return - var/area/source_area = get_area(src) - if(!source_area.engineering_override_eligible) + if(!door_area.engineering_override_eligible) + return + + normalspeed = FALSE + update_appearance() + +/obj/machinery/door/airlock/proc/update_fire_status(datum/source, fire) + SIGNAL_HANDLER + + fire_active = fire + if(!fire_active && !engineering_override) + normalspeed = TRUE + update_appearance() + return + + if(!door_area.engineering_override_eligible) return - engineering_override = TRUE normalspeed = FALSE update_appearance()