diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index a86ea7d4a6b..d9568f69ac1 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -14,21 +14,26 @@ damage_deflection = 10 var/closingLayer = CLOSED_DOOR_LAYER var/visible = 1 + /// Is it currently in the process of opening or closing. var/operating = FALSE var/autoclose = 0 - var/safe = TRUE //whether the door detects things and mobs in its way and reopen or crushes them. - var/locked = FALSE //whether the door is bolted or not. + /// Whether the door detects things and mobs in its way and reopen or crushes them. + var/safe = TRUE + // Whether the door is bolted or not. + var/locked = FALSE var/glass = FALSE var/welded = FALSE var/normalspeed = TRUE var/auto_close_time = 150 var/auto_close_time_dangerous = 15 - var/assemblytype //the type of door frame to drop during deconstruction + /// The type of door frame to drop during deconstruction + var/assemblytype var/datum/effect_system/spark_spread/spark_system var/real_explosion_block //ignore this, just use explosion_block var/heat_proof = FALSE // For rglass-windowed airlocks and firedoors var/emergency = FALSE - var/unres_sides = 0 //Unrestricted sides. A bitflag for which direction (if any) can open the door with no access + /// Unrestricted sides. A bitflag for which direction (if any) can open the door with no access. + var/unres_sides = 0 //Multi-tile doors var/width = 1 @@ -300,7 +305,7 @@ update_icon() if(visible && !glass) set_opacity(1) - operating = 0 + operating = FALSE air_update_turf(1) update_freelook_sight() if(safe) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index c509675868b..b19888ba907 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -6,7 +6,7 @@ /obj/machinery/door/firedoor name = "firelock" - desc = "Apply crowbar." + desc = "A convenable firelock. Equipped with a manual lever for operating in case of emergency." icon = 'icons/obj/doors/doorfireglass.dmi' icon_state = "door_open" opacity = 0 @@ -19,13 +19,14 @@ safe = FALSE layer = BELOW_OPEN_DOOR_LAYER closingLayer = CLOSED_FIREDOOR_LAYER - auto_close_time = 50 + auto_close_time = 5 SECONDS assemblytype = /obj/structure/firelock_frame armor = list("melee" = 30, "bullet" = 30, "laser" = 20, "energy" = 20, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 70) - var/can_force = TRUE - var/force_open_time = 300 + /// How long does opening by hand take, in deciseconds. + var/manual_open_time = 5 SECONDS var/can_crush = TRUE var/nextstate = null + /// Whether the "bolts" are "screwed". Used for deconstruction sequence. Has nothing to do with airlock bolting. var/boltslocked = TRUE var/active_alarm = FALSE var/list/affecting_areas @@ -89,20 +90,22 @@ if(operating || !density) return + if(welded) + to_chat(user, "[src] is welded shut!") + return + add_fingerprint(user) user.changeNext_move(CLICK_CD_MELEE) - if(can_force && (!glass || user.a_intent != INTENT_HELP)) - user.visible_message("[user] begins forcing \the [src].", \ - "You begin forcing \the [src].") - if(do_after(user, force_open_time, target = src)) - user.visible_message("[user] forces \the [src].", \ - "You force \the [src].") - open() - else if(glass) - user.visible_message("[user] bangs on \the [src].", - "You bang on \the [src].") - playsound(get_turf(src), 'sound/effects/glassknock.ogg', 10, 1) + user.visible_message( + "[user] tries to open [src] manually.", + "You operate the manual lever on [src].") + + if(do_after(user, manual_open_time, target = src)) + user.visible_message( + "[user] opens [src].", + "You open [src].") + open(auto_close = FALSE) /obj/machinery/door/firedoor/attackby(obj/item/C, mob/user, params) add_fingerprint(user) @@ -298,7 +301,6 @@ opacity = 1 explosion_block = 2 assemblytype = /obj/structure/firelock_frame/heavy - can_force = FALSE max_integrity = 550 /obj/item/firelock_electronics