diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index d670c42e5a8..99175cefea1 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -85,6 +85,8 @@ GLOBAL_LIST_EMPTY(airlock_overlays) var/normal_integrity = AIRLOCK_INTEGRITY_N var/prying_so_hard = FALSE var/paintable = TRUE // If the airlock type can be painted with an airlock painter + var/welding = FALSE // Displays the state of the door when exposed to welding + var/reinforcing = FALSE // Displays the state of the door when exposed to reinforcement var/image/old_frame_overlay //keep those in order to prevent unnecessary updating var/image/old_filling_overlay @@ -908,7 +910,11 @@ About the new airlock wires panel: if(S.get_amount() < 2) to_chat(user, "You need at least 2 metal sheets to reinforce [src].") return + if(reinforcing) + to_chat(user, "You are already reinforcing [src].") + return to_chat(user, "You start reinforcing [src]...") + reinforcing = TRUE if(do_after(user, 20, 1, target = src)) if(!panel_open || !S.use(2)) return @@ -916,13 +922,18 @@ About the new airlock wires panel: "You reinforce \the [src] with metal.") security_level = AIRLOCK_SECURITY_METAL update_icon() + reinforcing = FALSE return else if(istype(C, /obj/item/stack/sheet/plasteel)) var/obj/item/stack/sheet/plasteel/S = C if(S.get_amount() < 2) to_chat(user, "You need at least 2 plasteel sheets to reinforce [src].") return + if(reinforcing) + to_chat(user, "You are already reinforcing [src].") + return to_chat(user, "You start reinforcing [src]...") + reinforcing = TRUE if(do_after(user, 20, 1, target = src)) if(!panel_open || !S.use(2)) return @@ -932,6 +943,7 @@ About the new airlock wires panel: modify_max_integrity(normal_integrity * AIRLOCK_INTEGRITY_MULTIPLIER) damage_deflection = AIRLOCK_DAMAGE_DEFLECTION_R update_icon() + reinforcing = FALSE return if(istype(C, /obj/item/assembly/signaler)) @@ -1044,7 +1056,11 @@ About the new airlock wires panel: if(panel_open) // panel should be open before we try to slice out any shielding. switch(security_level) if(AIRLOCK_SECURITY_METAL) + if(welding) + to_chat(user, "You are already cutting the panel's shielding") + return to_chat(user, "You begin cutting the panel's shielding...") + welding = TRUE if(!I.use_tool(src, user, 40, volume = I.tool_volume)) return visible_message("[user] cuts through \the [src]'s shielding.", @@ -1052,6 +1068,7 @@ About the new airlock wires panel: "You hear welding.") security_level = AIRLOCK_SECURITY_NONE spawn_atom_to_turf(/obj/item/stack/sheet/metal, user.loc, 2) + welding = FALSE if(AIRLOCK_SECURITY_PLASTEEL_O) to_chat(user, "You begin cutting the outer layer of shielding...") if(!I.use_tool(src, user, 40, volume = I.tool_volume))