From 82104d95652092f279491f0d7f6eced712bb8726 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Tue, 26 Nov 2013 03:22:12 -0500 Subject: [PATCH] New Security Levels --- code/game/machinery/doors/airlock.dm | 42 +++++++++++++++---- .../security levels/security levels.dm | 41 +++++++++++++++++- code/setup.dm | 4 +- maps/tgstation-redux-WIP.dmm | 4 +- 4 files changed, 80 insertions(+), 11 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index ac4a516ea88..5e6b66be525 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -121,13 +121,10 @@ opacity = 1 assembly_type = /obj/structure/door_assembly/door_assembly_hatch -/obj/machinery/door/airlock/hatch/delta - name = "Delta Level Hatch" - icon = 'icons/obj/doors/Doorhatchele.dmi' - opacity = 1 +/obj/machinery/door/airlock/hatch/gamma + name = "Gamma Level Hatch" hackProof = 1 aiControlDisabled = 1 - assembly_type = /obj/structure/door_assembly/door_assembly_hatch /obj/machinery/door/airlock/maintenance_hatch name = "Maintenance Hatch" @@ -296,6 +293,11 @@ icon = 'icons/obj/doors/hightechsecurity.dmi' assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity +/obj/machinery/door/airlock/highsecurity/red + name = "Secure Armory Airlock" + hackProof = 1 + aiControlDisabled = 1 + /* About the new airlock wires panel: * An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires. @@ -1072,7 +1074,7 @@ About the new airlock wires panel: return -/obj/machinery/door/airlock/hatch/delta/attackby(C as obj, mob/user as mob) +/obj/machinery/door/airlock/hatch/gamma/attackby(C as obj, mob/user as mob) //world << text("airlock attackby src [] obj [] mob []", src, C, user) if(!istype(usr, /mob/living/silicon)) if(src.isElectrified()) @@ -1094,4 +1096,30 @@ About the new airlock wires panel: src.update_icon() return else - return \ No newline at end of file + return + + +/obj/machinery/door/airlock/highsecurity/red/attackby(C as obj, mob/user as mob) + //world << text("airlock attackby src [] obj [] mob []", src, C, user) + if(!istype(usr, /mob/living/silicon)) + if(src.isElectrified()) + if(src.shock(user, 75)) + return + if(istype(C, /obj/item/device/detective_scanner) || istype(C, /obj/item/taperoll)) + return + + src.add_fingerprint(user) + if((istype(C, /obj/item/weapon/weldingtool) && !( src.operating > 0 ) && src.density)) + var/obj/item/weapon/weldingtool/W = C + if(W.remove_fuel(0,user)) + if(frozen) + frozen = 0 + if(!src.welded) + src.welded = 1 + else + src.welded = null + src.update_icon() + return + else + return + diff --git a/code/modules/security levels/security levels.dm b/code/modules/security levels/security levels.dm index 28563c3b488..fe3a9a11f45 100644 --- a/code/modules/security levels/security levels.dm +++ b/code/modules/security levels/security levels.dm @@ -14,6 +14,10 @@ level = SEC_LEVEL_BLUE if("red") level = SEC_LEVEL_RED + if("gamma") + level = SEC_LEVEL_GAMMA + if("epsiolon") + level = SEC_LEVEL_EPSILON if("delta") level = SEC_LEVEL_DELTA @@ -48,7 +52,10 @@ world << "Attention! Code red!" world << "[config.alert_desc_red_downto]" security_level = SEC_LEVEL_RED - + for(var/obj/machinery/door/airlock/highsecurity/red/R in machines) + if(R.z == 1) + R.locked = 0 + R.update_icon() /* - At the time of commit, setting status displays didn't work properly var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world) if(CC) @@ -59,6 +66,26 @@ FA.overlays = list() FA.overlays += image('icons/obj/monitors.dmi', "overlay_red") + if(SEC_LEVEL_GAMMA) + world << "Attention! GAMMA security level activated!" + world << "[config.alert_desc_red_upto]" + if(security_level < SEC_LEVEL_RED) + for(var/obj/machinery/door/airlock/highsecurity/red/R in machines) + if(R.z == 1) + R.locked = 0 + R.update_icon() + for(var/obj/machinery/door/airlock/hatch/gamma/H in machines) + if(H.z == 1) + H.open() + spawn(10) + H.locked = 1 + H.update_icon() + security_level = SEC_LEVEL_GAMMA + if(SEC_LEVEL_EPSILON) + world << "Attention! EPSILON security level activated!" + world << "[config.alert_desc_red_upto]" + security_level = SEC_LEVEL_EPSILON + if(SEC_LEVEL_DELTA) world << "Attention! Delta security level reached!" world << "[config.alert_desc_delta]" @@ -78,6 +105,10 @@ return "blue" if(SEC_LEVEL_RED) return "red" + if(SEC_LEVEL_GAMMA) + return "gamma" + if(SEC_LEVEL_EPSILON) + return "epsilon" if(SEC_LEVEL_DELTA) return "delta" @@ -89,6 +120,10 @@ return "blue" if(SEC_LEVEL_RED) return "red" + if(SEC_LEVEL_GAMMA) + return "gamma" + if(SEC_LEVEL_EPSILON) + return "epsilon" if(SEC_LEVEL_DELTA) return "delta" @@ -100,6 +135,10 @@ return SEC_LEVEL_BLUE if("red") return SEC_LEVEL_RED + if("gamma") + return SEC_LEVEL_GAMMA + if("epsilon") + return SEC_LEVEL_EPSILON if("delta") return SEC_LEVEL_DELTA diff --git a/code/setup.dm b/code/setup.dm index 72dac3dbc44..76357df62b6 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -473,7 +473,9 @@ var/static/list/scarySounds = list('sound/weapons/thudswoosh.ogg','sound/weapons #define SEC_LEVEL_GREEN 0 #define SEC_LEVEL_BLUE 1 #define SEC_LEVEL_RED 2 -#define SEC_LEVEL_DELTA 3 +#define SEC_LEVEL_GAMMA 3 +#define SEC_LEVEL_EPSILON 4 +#define SEC_LEVEL_DELTA 5 #define TRANSITIONEDGE 7 //Distance from edge to move to another z-level diff --git a/maps/tgstation-redux-WIP.dmm b/maps/tgstation-redux-WIP.dmm index 76e9cb122f2..58114bbaf44 100644 --- a/maps/tgstation-redux-WIP.dmm +++ b/maps/tgstation-redux-WIP.dmm @@ -160,9 +160,9 @@ "add" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/prison) "ade" = (/obj/item/device/radio/intercom{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/camera{c_tag = "Prison Wing Hallway"; dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/prison) "adf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area) -"adg" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Armoury Section"; req_access_txt = "3"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/armoury) +"adg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/highsecurity/red,/turf/simulated/floor{icon_state = "dark"},/area/security/armoury) "adh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area) -"adi" = (/obj/machinery/door/airlock/hatch/delta{name = "Gamma Armory"},/turf/simulated/floor{icon_state = "dark"},/area) +"adi" = (/obj/machinery/door/airlock/hatch/gamma{use_power = 0},/turf/simulated/floor{icon_state = "dark"},/area) "adj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/unsimulated/wall,/area) "adk" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area) "adl" = (/obj/machinery/door/airlock/vault{icon_state = "door_locked"; locked = 1; req_access_txt = "53"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/security/nuke_storage)