From 05f78a97d74bbc33209f7d1c9365dcc87fe13faf Mon Sep 17 00:00:00 2001 From: skull132 Date: Tue, 10 Nov 2015 17:33:34 +0200 Subject: [PATCH 01/13] Doorbrace - Initial Commit Adds a device that can lock doors externally. --- aurora.dme | 1 + code/game/machinery/doors/airlock.dm | 16 +- .../game/objects/items/devices/door_bracer.dm | 237 ++++++++++++++++++ 3 files changed, 252 insertions(+), 2 deletions(-) create mode 100644 code/game/objects/items/devices/door_bracer.dm diff --git a/aurora.dme b/aurora.dme index 26eeb25f..990ac4ed 100644 --- a/aurora.dme +++ b/aurora.dme @@ -565,6 +565,7 @@ #include "code\game\objects\items\trash.dm" #include "code\game\objects\items\devices\aicard.dm" #include "code\game\objects\items\devices\binoculars.dm" +#include "code\game\objects\items\devices\door_bracer.dm" #include "code\game\objects\items\devices\chameleonproj.dm" #include "code\game\objects\items\devices\debugger.dm" #include "code\game\objects\items\devices\flash.dm" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 8b49259e..7e15c4f9 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -51,6 +51,7 @@ var/door_sound='sound/machines/airlock.ogg' var/door_sound_distance=30 autoclose = 1 + var/obj/item/device/doorbrace/bracer = null /obj/machinery/door/airlock/command name = "Airlock" @@ -717,6 +718,15 @@ About the new airlock wires panel: set_frequency(ST.change_freq(frequency)) return + if (istype(C, /obj/item/device/doorbrace)) + if (bracer) + user << "There is already a [bracer] on [src]!" + return + + var/obj/item/device/doorbrace/newbracer = C + newbracer.attachto(src, user) + return + src.add_fingerprint(user) if((istype(C, /obj/item/weapon/weldingtool) && !( src.operating > 0 ) && src.density)) var/obj/item/weapon/weldingtool/W = C @@ -824,7 +834,7 @@ About the new airlock wires panel: playsound(src.loc, door_sound, door_sound_distance, 1) /obj/machinery/door/airlock/open(var/forced=0) - if( operating || welded || locked ) + if( operating || welded || locked || bracer) return 0 if(!forced) if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) ) @@ -915,7 +925,9 @@ About the new airlock wires panel: break /obj/machinery/door/airlock/proc/prison_open() + if (bracer) + return src.unlock() src.open() src.lock() - return \ No newline at end of file + return diff --git a/code/game/objects/items/devices/door_bracer.dm b/code/game/objects/items/devices/door_bracer.dm new file mode 100644 index 00000000..e49da9ac --- /dev/null +++ b/code/game/objects/items/devices/door_bracer.dm @@ -0,0 +1,237 @@ +#define STATUS_INACTIVE 0 +#define STATUS_ACTIVE 1 +#define STATUS_BROKEN 2 + +#define LAYER_ATTACHED 3.2 +#define LAYER_NORMAL 3 + +/obj/item/device/doorbrace + name = "magnetic door lock" + desc = "A large, ID locked device used for completely locking down airlocks." + icon = 'icons/obj/door_braces/centcom.dmi' + icon_state = "inactive" + w_class = 3 + req_access = list(103) + + var/department = "CENTCOM" + var/status = 0 + var/constructionstate = 0 + var/obj/machinery/door/airlock/target = null + +/obj/item/device/doorbrace/security + icon = 'icons/obj/door_braces/security.dmi' + department = "Security" + req_access = list(1) + +/obj/item/device/doorbrace/engineering + icon = 'icons/obj/door_braces/engineering.dmi' + department = "Engineering" + req_access = null + req_one_access = list(11, 24) + +/obj/item/device/doorbrace/examine(mob/user) + ..(user) + + user << "\blue This device has [department] department markings on it." + +/obj/item/device/doorbrace/attack_hand(var/mob/user) + if (status == STATUS_ACTIVE) + ui_interact(user) + else + ..() + +/obj/item/device/doorbrace/attackby(var/obj/item/I, var/mob/user) + if (status == STATUS_BROKEN) + user << "[src] is broken beyond repair!" + return + + switch (constructionstate) + if (0) + if (istype(I, /obj/item/weapon/card/emag)) + var/obj/item/weapon/card/emag/emagcard = I + emagcard.uses-- + visible_message("[src] sparks and falls off the door!", "You emag [src], frying its circuitry[status == STATUS_ACTIVE ? " and making it drop onto the floor" : ""]!") + + setstatus(STATUS_BROKEN) + return + + if (status == STATUS_ACTIVE && istype(I, /obj/item/weapon/card/id)) + if (check_access(I) && !constructionstate) + user << "You swipe your [I] through [src], making it drop onto the floor with a thud." + setstatus(STATUS_INACTIVE) + return + else if (constructionstate) + user << "You cannot swipe your [I] through [src] with it partially dismantled!" + return + else + user << "A red light flashes on [src] as you swipe your [I] through it." + flick("deny",src) + return + + if (istype(I, /obj/item/weapon/screwdriver)) + user << "You unfasten and remove the plastic cover from [src], revealing a thick metal shell." + playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) + setconstructionstate(1) + return + + if (1) + if (istype(I, /obj/item/weapon/screwdriver)) + user << "You put the metal cover of back onto [src], and screw it tight." + playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) + setconstructionstate(0) + return + if (istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = I + if (WT.remove_fuel(1, user)) + user.visible_message("[user] starts welding through the metal shell of [src].", "You start welding through the metal covering of [src]") + playsound(loc, 'sound/items/Welder.ogg', 50, 1) + if (do_after(user, 25)) + user << "You are able to weld through the metal shell of [src]." + setconstructionstate(2) + return + if (2) + if (istype(I, /obj/item/weapon/crowbar)) + user << "You pry off the metal covering from [src]." + playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) + setconstructionstate(3) + return + if (3) + if (istype(I, /obj/item/weapon/wirecutters)) + user << "You cut the wires connecting the [src]'s magnets to their powersupply, [status ? "rendering the device unusable." : "making the device fall off and rendering it unusable."]" + playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1) + setconstructionstate(4) + return + +/obj/item/device/doorbrace/proc/attachto(var/obj/machinery/door/airlock/newtarget, var/mob/user as mob) + if (status == STATUS_BROKEN) + user << "[src] is damaged beyond repair! It cannot be used!" + return + + if (!newtarget.density || newtarget.operating) + user << "[newtarget] must be closed before you can attach [src] to it!" + return + + if (newtarget.p_open) + user << "You must close [newtarget]'s maintenance panel before attaching [src] to it!" + return + + user.visible_message("[user] starts mounting [src] onto [newtarget].", "You begin mounting [src] onto [newtarget].") + if (do_after(user, 35, 1)) + if (status == STATUS_BROKEN) + user << "[src] is damaged beyond repair! It cannot be used!" + return + + if (!newtarget.density) + user << "[newtarget] must be closed before you can attach [src] to it!" + return + + if (newtarget.p_open) + user << "You must close [newtarget]'s maintenance panel before attaching [src] to it!" + return + + user.visible_message("[user] attached [src] onto [newtarget] and flicks it on. The magnetic lock now seals [newtarget].", "You attached [src] onto [newtarget] and switched on the magnetic lock.") + user.drop_item() + + setstatus(STATUS_ACTIVE, newtarget) + return + +/obj/item/device/doorbrace/proc/setstatus(var/newstatus, var/obj/machinery/door/airlock/newtarget as obj) + switch (newstatus) + if (STATUS_INACTIVE) + if (status != STATUS_ACTIVE) + return + if (!target) + return + + detach() + icon_state = "inactive" + status = newstatus + + if (STATUS_ACTIVE) + if (status != STATUS_INACTIVE) + return + if (!newtarget) + return + + attach(newtarget) + icon_state = "active" + status = newstatus + + if (STATUS_BROKEN) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + spawn(5) + del(s) + + if (target) + detach() + + icon_state = "broken" + status = newstatus + +/obj/item/device/doorbrace/proc/setconstructionstate(var/newstate) + constructionstate = newstate + if (newstate == 0) + if (status == STATUS_ACTIVE) + icon_state = "active" + else + icon_state = "inactive" + else + icon_state = "construction-[constructionstate]" + +/obj/item/device/doorbrace/proc/detach() + if (target) + adjustsprite(null) + layer = LAYER_NORMAL + + target.bracer = null + + anchored = 0 + +/obj/item/device/doorbrace/proc/attach(var/obj/machinery/door/airlock/newtarget as obj) + adjustsprite(newtarget) + layer = LAYER_ATTACHED + + newtarget.bracer = src + target = newtarget + + anchored = 1 + +/obj/item/device/doorbrace/proc/adjustsprite(var/obj/target as obj) + if (target) + switch (get_dir(src, target)) + if (NORTH) + pixel_x = 0 + pixel_y = 32 + if (NORTHEAST) + pixel_x = 32 + pixel_y = 32 + if (EAST) + pixel_x = 32 + pixel_y = 0 + if (SOUTHEAST) + pixel_x = 32 + pixel_y = -32 + if (SOUTH) + pixel_x = 0 + pixel_y = -32 + if (SOUTHWEST) + pixel_x = -32 + pixel_y = -32 + if (WEST) + pixel_x = -32 + pixel_y = 0 + if (NORTHWEST) + pixel_x = -32 + pixel_y = 32 + else + pixel_x = 0 + pixel_y = 0 + +#undef STATUS_INACTIVE +#undef STATUS_ACTIVE +#undef STATUS_BROKEN + +#undef LAYER_ATTACHED +#undef LAYER_NORMAL From ac53f18798d50fbb0db38fe34706660d55519114 Mon Sep 17 00:00:00 2001 From: skull132 Date: Wed, 2 Dec 2015 20:30:58 +0200 Subject: [PATCH 02/13] Door Bracers - Update - They can now be shot off/damaged with weapons - Icon references were updated to match icons --- code/game/machinery/doors/airlock.dm | 5 +- .../game/objects/items/devices/door_bracer.dm | 76 ++++++++++++++++--- 2 files changed, 68 insertions(+), 13 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 7e15c4f9..4712c727 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -834,7 +834,10 @@ About the new airlock wires panel: playsound(src.loc, door_sound, door_sound_distance, 1) /obj/machinery/door/airlock/open(var/forced=0) - if( operating || welded || locked || bracer) + if( operating || welded || locked) + return 0 + if (bracer) + visible_message("[src]'s actuators whirr, but the door does not open.") return 0 if(!forced) if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) ) diff --git a/code/game/objects/items/devices/door_bracer.dm b/code/game/objects/items/devices/door_bracer.dm index e49da9ac..8c45f2cf 100644 --- a/code/game/objects/items/devices/door_bracer.dm +++ b/code/game/objects/items/devices/door_bracer.dm @@ -12,6 +12,7 @@ icon_state = "inactive" w_class = 3 req_access = list(103) + health = 90 var/department = "CENTCOM" var/status = 0 @@ -29,10 +30,13 @@ req_access = null req_one_access = list(11, 24) -/obj/item/device/doorbrace/examine(mob/user) - ..(user) +/obj/item/device/doorbrace/examine() + ..() - user << "\blue This device has [department] department markings on it." + if (status == STATUS_BROKEN) + usr << "It looks broken!" + else + usr << "\blue This device has [department] department markings on it." /obj/item/device/doorbrace/attack_hand(var/mob/user) if (status == STATUS_ACTIVE) @@ -40,11 +44,24 @@ else ..() +/obj/item/device/doorbrace/bullet_act(var/obj/item/projectile/Proj) + takedamage(Proj.damage) + ..() + /obj/item/device/doorbrace/attackby(var/obj/item/I, var/mob/user) if (status == STATUS_BROKEN) user << "[src] is broken beyond repair!" return + if (istype(I, /obj/item/weapon) && user.a_intent == "hurt") + if (I.force >= 8) + user.visible_message("[user] bashes [src] with [I]!", "You strike [src] with [I], damaging it!") + takedamage(I.force) + return + else + user.visible_message("[user] hits [src] with [I] to no visible effect.", "You hit [src] with [I], but it appears to have no effect.") + return + switch (constructionstate) if (0) if (istype(I, /obj/item/weapon/card/emag)) @@ -97,7 +114,7 @@ return if (3) if (istype(I, /obj/item/weapon/wirecutters)) - user << "You cut the wires connecting the [src]'s magnets to their powersupply, [status ? "rendering the device unusable." : "making the device fall off and rendering it unusable."]" + user << "You cut the wires connecting the [src]'s magnets to their powersupply, [target ? "making the device fall off [target] and rendering it unusable." : "rendering the device unusable."]" playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1) setconstructionstate(4) return @@ -158,14 +175,14 @@ status = newstatus if (STATUS_BROKEN) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, src) - s.start() - spawn(5) - del(s) + spark() if (target) - detach() + var/playflick = 1 + if (constructionstate) + playflick = 0 + + detach(playflick) icon_state = "broken" status = newstatus @@ -177,11 +194,19 @@ icon_state = "active" else icon_state = "inactive" + else if (newstate == 2) + flick("deconstruct_2_anim", src) + else if (newstate == 4) + setstatus(STATUS_BROKEN) else - icon_state = "construction-[constructionstate]" + icon_state = "deconstruct_[constructionstate]" -/obj/item/device/doorbrace/proc/detach() +/obj/item/device/doorbrace/proc/detach(var/playflick = 1) if (target) + + if (playflick) + spawn(-15) flick("release", src) + adjustsprite(null) layer = LAYER_NORMAL @@ -192,6 +217,7 @@ /obj/item/device/doorbrace/proc/attach(var/obj/machinery/door/airlock/newtarget as obj) adjustsprite(newtarget) layer = LAYER_ATTACHED + flick("deploy", src) newtarget.bracer = src target = newtarget @@ -229,6 +255,32 @@ pixel_x = 0 pixel_y = 0 +/obj/item/device/doorbrace/proc/takedamage(var/damage) + health -= damage + + if (damage >= 40 && prob(50)) + health = 0 + + if (health <= 0) + visible_message("[src] sparks[target ? " and falls off of \the [target]!" : "!"] It is now completely unusable!") + setstatus(STATUS_BROKEN) + return + + if (prob(50)) + spark() + +/obj/item/device/doorbrace/proc/spark() + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + + if (target) + s.set_up(5, 1, target) + else + s.set_up(5, 1, src) + + s.start() + spawn(5) + del(s) + #undef STATUS_INACTIVE #undef STATUS_ACTIVE #undef STATUS_BROKEN From c996467ebdb0b445aef13afc82de034b99ce08a8 Mon Sep 17 00:00:00 2001 From: skull132 Date: Wed, 2 Dec 2015 20:31:19 +0200 Subject: [PATCH 03/13] Door Bracers - Icons --- icons/obj/door_braces/centcom.dmi | Bin 0 -> 3364 bytes icons/obj/door_braces/engineering.dmi | Bin 0 -> 1494 bytes icons/obj/door_braces/security.dmi | Bin 0 -> 3607 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/obj/door_braces/centcom.dmi create mode 100644 icons/obj/door_braces/engineering.dmi create mode 100644 icons/obj/door_braces/security.dmi diff --git a/icons/obj/door_braces/centcom.dmi b/icons/obj/door_braces/centcom.dmi new file mode 100644 index 0000000000000000000000000000000000000000..97a977941acaeea6a14e568eb48645d27937b190 GIT binary patch literal 3364 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 literal 0 HcmV?d00001 diff --git a/icons/obj/door_braces/engineering.dmi b/icons/obj/door_braces/engineering.dmi new file mode 100644 index 0000000000000000000000000000000000000000..49323f4a3778d0166c52ab633a0159e5d7dc7e12 GIT binary patch literal 1494 zcmV;{1u6Q8P)9v&XE0N_16J@C^2-~a#sdEmZ>3Q9^!V`F3g#sHC# zkyXe5Ha0d~TwGpWUKhgv@TUOqbO63#3Q$l`R#sNPz`&*{N^}4K00DGTPE!Ct=GbNc z0078(R9JLGWpiV4X>fFDZ*Bkpc$}4z&klkx493sfQ!H>LM*bbW7>MB@uRtbLSsWYL zCWg0nf-w<6LwaeyeEl_P>ymwX$a0b#Gu(mFObW6i(PoR$omHl`MHpaI1H05_EVQ8p zZ0ayUOT#*FFshi+R`M}AE84)Azl|p)uOR-~Dk!DUM%_wN_^aH(DtEY!T~NWA`IgA4 zz-j-Ky&*8-QnpiC%VobXH26ZiBKCeD6>y+>Y4iS+8Gn#xiN8^+wStYjJwgy*SDeVj1U4d z1XrsC5kfHK^@zs28r6W3*B*oG_1cuzegYx!oI^CfQt!e|+?ev^8_*tu<_4?s!qoP%cfwr@|gLXl7UIR{OfdD=m9 ze2?*+cJQsAcF^qi?c1qsDTN|G>8Blh>!%$|`Z)*9w(CRaJJP_eP54C%OgwAg+;!*J zb)}+@Xg3URr(qcG<Tci#ED!HS!& z-Sb`7jm!q#`MkmJk-27`$#VjreBR(s-bd73%S@gV0OivbW7bFCcFp6NPYBHaL+N++ zFRK*;AmmH9s2K;ehbC=B9J7{qeEFZB;P zKIiY#X_U$5r_-n+-pyJ*M7ix{y(=LKy0z+W?eWeoT}L}v5@ z*!=zx{Qxw-ul+#n2YmDH*9R=MetBHo^5fTBfcK6Y-l2n^GQdB@V4ZE&aMxNuHDE2E_5;@We(eXGhqrV3fm;YS zF8;oTaOLrizFo%LAb5Pi z4O-7Z>hW!T6(CNs)^E4b^7ZXD-g$EY)qr)rU;6BHwDaCC5VP{4wKhuf}y>RGB==YNZcDx$KPl?fdO!Sj|M!yM+2STqX7?J z(O4kOV literal 0 HcmV?d00001 diff --git a/icons/obj/door_braces/security.dmi b/icons/obj/door_braces/security.dmi new file mode 100644 index 0000000000000000000000000000000000000000..00a820fbb8751161e8bc093fa6a23db1f9cdc1ad GIT binary patch literal 3607 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 Dc<(S~ literal 0 HcmV?d00001 From 7bd628eca691427a7c938a4cc571a975be9b5a3e Mon Sep 17 00:00:00 2001 From: skull132 Date: Thu, 3 Dec 2015 15:29:15 +0200 Subject: [PATCH 04/13] Door Bracers - Supply Update Adds two supply crates with the door bracers in them for cargo ordering. --- code/datums/supplypacks.dm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 696fb288..6da7f62f 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -1345,3 +1345,23 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Pill Bottle Kit" access = access_medical group = "Medical / Science" + +/datum/supply_packs/doorbracers_engineering + name = "Engineering Doorbracer Crate" + contains = list(/obj/item/device/doorbrace/engineering, + /obj/item/device/doorbrace/engineering, + /obj/item/device/doorbrace/engineering) + cost = 30 + containertype = /obj/structure/closet/crate + containername = "engineering doorbracers" + group = "Engineering" + +/datum/supply_packs/doorbracers_security + name = "Security Doorbracer Crate" + contains = list(/obj/item/device/doorbrace/security, + /obj/item/device/doorbrace/security, + /obj/item/device/doorbrace/security) + cost = 30 + containertype = /obj/structure/closet/crate + containername = "security doorbracers" + group = "Security" From c9504ebd4f5c0265a956c14530fb0e9c8aac4787 Mon Sep 17 00:00:00 2001 From: skull132 Date: Thu, 3 Dec 2015 15:30:56 +0200 Subject: [PATCH 05/13] Door Bracers - DME update --- aurora.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/aurora.dme b/aurora.dme index 990ac4ed..932ba400 100644 --- a/aurora.dme +++ b/aurora.dme @@ -568,6 +568,7 @@ #include "code\game\objects\items\devices\door_bracer.dm" #include "code\game\objects\items\devices\chameleonproj.dm" #include "code\game\objects\items\devices\debugger.dm" +#include "code\game\objects\items\devices\door_bracer.dm" #include "code\game\objects\items\devices\flash.dm" #include "code\game\objects\items\devices\flashlight.dm" #include "code\game\objects\items\devices\isocube.dm" From b84bc3b508074757d73af35106b11333ae2c067c Mon Sep 17 00:00:00 2001 From: skull132 Date: Thu, 3 Dec 2015 23:15:22 +0200 Subject: [PATCH 06/13] Secret Santa - Sign-up Box --- code/modules/secretsanta/submission_box.dm | 266 +++++++++++++++++++++ 1 file changed, 266 insertions(+) create mode 100644 code/modules/secretsanta/submission_box.dm diff --git a/code/modules/secretsanta/submission_box.dm b/code/modules/secretsanta/submission_box.dm new file mode 100644 index 00000000..a3789a8b --- /dev/null +++ b/code/modules/secretsanta/submission_box.dm @@ -0,0 +1,266 @@ +/* +* Contains the secret santa structures and procs. +* Requires database modification to work. +*/ + +#define CUTOFF_DATE 19 +#define STATUS_CLOSED 0 +#define STATUS_SIGNUP 1 +#define STATUS_GIFTS 2 + +/obj/structure/santa_signup_box + name = "Secret Santa Sign-up Box" + desc = "Sign up to participate in NSS Aurora secret santa extravaganza here!" + anchored = 1 + density = 1 + + icon = 'icons/obj/robot_component.dmi' + icon_state = "analyser" + + var/daysLeft + var/signupStatus + +/obj/structure/santa_signup_box/New() + ..() + + daysLeft = CUTOFF_DATE - text2num(time2text(world.realtime, "DD")) + + if (time2text(world.realtime, "MM") != "12") + signupStatus = STATUS_CLOSED + return + + if (daysLeft > 0) + signupStatus = STATUS_SIGNUP + else + signupStatus = STATUS_GIFTS + +/obj/structure/santa_signup_box/examine() + ..() + + switch (signupStatus) + if (STATUS_SIGNUP) + usr << "\blue Sign-ups to participate are still being accepted for the next [daysLeft] days!" + if (STATUS_GIFTS) + usr << "\blue Currently accepting gift submissions from assigned santas!" + else + usr << "\red Christmas is over! Go home, scrub!" + +/obj/structure/santa_signup_box/attack_hand(mob/user) + add_fingerprint(user) + ui_interact(user) + +/obj/structure/santa_signup_box/ui_interact(mob/user) + if (user.stat) + return + + if (!ishuman(user)) + user << "\red You must be human to use this machine!" + return + + var/mob/living/carbon/human/M = user + + if (!M.client || M.client.player_age < 14) + user << "\red You haven't been around for long enough to participate! Sorry, but this is kind of an anti-spam measure..." + return + + var/explanation = "

Explanation:

" + explanation += "
Everyone has until the 18th of December to sign up to participate. On the 19th of December, everyone who's signed up will be assigned a mark. You can return to this box on that day, or afterwards, to check up who you were assigned!
After that, until the 26th of December, you can submit a gift idea to this box. The gifts will be delivered by a NanoTrasen approved Santa Claus after the 24th!


" + explanation += "
OOC remarks: Be creative, any item that is ingame is a go! Also, feel free to seek out your mark and try to figure out what would suit them best! The gifted items will spawn on the marked characters until mid-to-late-January.
No weapons or godmodded items -- the only rule.
If you were assigned a mark you don't know anything about, and cannot reasonably interact with due to timezone constraints, please contact Skull132 ASAP!
" + + var/dat + + establish_db_connection() + + if (dbcon.IsConnected()) + switch (signupStatus) + if (STATUS_CLOSED) + dat += "


Christmas is over! Go home, scrub!
" + if (STATUS_SIGNUP) + if (isSignedUp(M)) + dat += "
You are currently signed up to participate in the NSS Aurora secret santa extravaganza!


" + dat += "
You have [daysLeft] days left to change your mind, should you want to!

" + dat += "
Withdraw Participation
" + else + dat += "
You are currently not signed up to participate in the NSS Aurora secret santa extravaganza!


" + dat += "
You have [daysLeft] days left to sign up!

" + dat += "
Sign up to participate!
" + + dat += explanation + + if (STATUS_GIFTS) + if (isSignedUp(M)) + if (hasMark(M)) + var/list/markInfo = getMarkInfo(hasMark(M)) + + dat += "
Your mark is: [hasMark(M)]!

" + dat += "
Figure out what they may like for Christmas, and submit the idea for NanoTrasen approval!

" + dat += "
Your mark is a [markInfo["character_gender"]] [markInfo["character_species"]] working aboard the NSS Aurora as a [markInfo["character_job"]]. They like [markInfo["character_like"]].


" + + if (markInfo["assigned_gift"]) + dat += "
You are giving them a [markInfo["assigned_gift"]]. Revise
" + else + dat += "
Submit Gift Idea
" + + else + dat += "
You have no mark! This is bad! Contact an admin, pronto!
" + + dat += explanation + else + dat += "


You didn't sign up in time! Sorry!

" + dat += "
Better luck next time!
" + else + dat += "
No database connection! System unable to operate!
" + + M << browse(dat, "window=secret_santa") + return + +/obj/structure/santa_signup_box/Topic(href, href_list) + ..() + + var/mob/living/carbon/user = locate(href_list["user"]) + + switch (href_list["choice"]) + if ("withdraw") + withdrawSignUp(user) + if ("signup") + signUp(user) + if ("reviseGift") + alterGift(user) + if ("submitGift") + assignGift(user) + + ui_interact(user) + return + +/obj/structure/santa_signup_box/proc/signUp(var/mob/living/carbon/human/user) + if (!user.client || user.stat || !user.real_name) + user << "\red No. Die." + return + + establish_db_connection() + + if (!dbcon.IsConnected()) + user << "\red No database connection! Bad!" + return + + var/queryText + + var/DBQuery/lookupQuery = dbcon.NewQuery("SELECT * FROM ss13_santa WHERE character_name = '[user.real_name]'") + lookupQuery.Execute() + if (lookupQuery.NextRow()) + if (alert(user, "Your data already exists here. Do you just want to be added to the roster again?", "Choices, choices...", "Yes", "No") == "Yes") + queryText = "UPDATE ss13_santa SET participation_status = '1' WHERE character_name = '[user.real_name]'" + else + return + + else + var/list/storeArray = list("character_name", "character_gender", "character_species", "character_job", "character_like") + + storeArray["character_name"] = user.real_name + storeArray["character_gender"] = user.gender + storeArray["character_species"] = user.species.name + storeArray["character_job"] = input(user, "Please type in your character's normal job", "Character Job") as text + storeArray["character_like"] = input(user, "Please specific 1 of your character's likes", "Character Like") as message + + storeArray["character_job"] = sanitizeSQL(storeArray["character_job"]) + storeArray["character_like"] = sanitizeSQL(storeArray["character_like"]) + + queryText = "INSERT INTO ss13_santa (character_name, character_gender, character_species, character_job, character_like) VALUES ('[storeArray["character_name"]]', '[storeArray["character_gender"]]', '[storeArray["character_species"]]', '[storeArray["character_job"]]', '[storeArray["character_like"]]')" + + var/DBQuery/query = dbcon.NewQuery(queryText) + if (!query.Execute()) + user << "\red Something went wrong! Give this error to the coders: [query.ErrorMsg()]." + else + user << "\blue You are now signed up for the NSS Aurora secret santa extravaganza! Return here after the 18th of December to find out who your mark is!" + + return + +/obj/structure/santa_signup_box/proc/isSignedUp(var/mob/living/carbon/human/user) + establish_db_connection() + + if (!dbcon.IsConnected()) + return 0 + + var/isSignedUp = 0 + + var/DBQuery/query = dbcon.NewQuery("SELECT participation_status FROM ss13_santa WHERE character_name = '[user.real_name]'") + query.Execute() + if (query.NextRow()) + isSignedUp = text2num(query.item[1]) + + return isSignedUp + +/obj/structure/santa_signup_box/proc/withdrawSignUp(var/mob/living/carbon/human/user) + establish_db_connection() + + if (!dbcon.IsConnected()) + return + + var/DBQuery/query = dbcon.NewQuery("UPDATE ss13_santa SET participation_status = '0' WHERE character_name = '[user.real_name]'") + query.Execute() + return + +/obj/structure/santa_signup_box/proc/hasMark(var/mob/living/carbon/human/user) + establish_db_connection() + + if (!dbcon.IsConnected()) + return 0 + + var/DBQuery/query = dbcon.NewQuery("SELECT mark_name FROM ss13_santa WHERE character_name = '[user.real_name]'") + query.Execute() + if (query.NextRow()) + return query.item[1] + + return 0 + +/obj/structure/santa_signup_box/proc/getMarkInfo(var/markName) + if (!markName) + return 0 + + establish_db_connection() + + if (!dbcon.IsConnected()) + return 0 + + var/list/returnArray = list("character_name", "character_gender", "character_species", "character_job", "character_like") + var/DBQuery/query = dbcon.NewQuery("SELECT character_gender, character_species, character_job, character_like, assigned_gift WHERE character_name = '[markName]'") + query.Execute() + if (query.NextRow()) + returnArray["character_gender"] = query.item[1] + returnArray["character_species"] = query.item[2] + returnArray["character_job"] = query.item[3] + returnArray["character_like"] = query.item[4] + returnArray["assigned_gift"] = query.item[5] + + return returnArray + + return 0 + +/obj/structure/santa_signup_box/proc/assignGift(var/mob/living/carbon/user) + establish_db_connection() + + if (!dbcon.IsConnected()) + return + + var/gift = input(user, "What would you like to gift your mark?", "Pick a Gift!") as text + gift = sanitizeSQL(gift) + + var/DBQuery/query = dbcon.NewQuery("INSERT INTO ss13_santa (gift_assigned) VALUES ('[gift]') WHERE character_name = '[hasMark(user)]'") + query.Execute() + +/obj/structure/santa_signup_box/proc/alterGift(var/mob/living/carbon/user) + establish_db_connection() + + if (!dbcon.IsConnected()) + return + + var/gift = input(user, "What would you like to gift your mark?", "Pick a Gift!") as text + gift = sanitizeSQL(gift) + + var/DBQuery/query = dbcon.NewQuery("UPDATE ss13_santa SET gift_assigned = '[gift]' WHERE character_name = '[hasMark(user)]'") + query.Execute() + +#undef CUTOFF_DATE +#undef STATUS_CLOSED +#undef STATUS_SIGNUP +#undef STATUS_GIFTS From 39b435dcee4f6b346e39a06e05db9194644f40cf Mon Sep 17 00:00:00 2001 From: skull132 Date: Thu, 3 Dec 2015 23:15:36 +0200 Subject: [PATCH 07/13] Secret Santa - SQL table --- SQL/aurora_schema.sql | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/SQL/aurora_schema.sql b/SQL/aurora_schema.sql index 1b46c8b4..c33433bd 100644 --- a/SQL/aurora_schema.sql +++ b/SQL/aurora_schema.sql @@ -104,3 +104,19 @@ CREATE TABLE `ss13_notes` ( `lasteditdate` DATETIME NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=LATIN1; + +-- ------------------------------ +-- SQL based secret santi klaus table +-- tgstation.ss13_santa +-- ------------------------------ +CREATE TABLE `ss13_santa` ( + `character_name` varchar(32) NOT NULL, + `participation_status` tinyint(1) NOT NULL DEFAULT '1', + `mark_name` varchar(32) DEFAULT NULL, + `character_gender` varchar(32) NOT NULL, + `character_species` varchar(32) NOT NULL, + `character_job` varchar(32) NOT NULL, + `character_like` mediumtext NOT NULL, + `gift_assigned` varchar(255) DEFAULT NULL, + PRIMARY KEY (`character_name`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; From 9e820ab7ae04c8dd9d9fe43c2eb7c17616cac62a Mon Sep 17 00:00:00 2001 From: skull132 Date: Thu, 3 Dec 2015 23:15:53 +0200 Subject: [PATCH 08/13] Secret Santa - DME Update --- aurora.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/aurora.dme b/aurora.dme index 26eeb25f..97e737de 100644 --- a/aurora.dme +++ b/aurora.dme @@ -1455,6 +1455,7 @@ #include "code\modules\scripting\Parser\Parser.dm" #include "code\modules\scripting\Scanner\Scanner.dm" #include "code\modules\scripting\Scanner\Tokens.dm" +#include "code\modules\secretsanta\submission_box.dm" #include "code\modules\security levels\keycard authentication.dm" #include "code\modules\security levels\security levels.dm" #include "code\modules\shuttles\antagonist.dm" From c75fbb3765d9b0637b675eb1e07f523a0064b0b3 Mon Sep 17 00:00:00 2001 From: skull132 Date: Sat, 5 Dec 2015 22:50:35 +0200 Subject: [PATCH 09/13] Secret Santa - Icons --- code/modules/secretsanta/submission_box.dm | 4 ++-- icons/obj/secret_santa.dmi | Bin 0 -> 378 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 icons/obj/secret_santa.dmi diff --git a/code/modules/secretsanta/submission_box.dm b/code/modules/secretsanta/submission_box.dm index a3789a8b..d271cecd 100644 --- a/code/modules/secretsanta/submission_box.dm +++ b/code/modules/secretsanta/submission_box.dm @@ -14,8 +14,8 @@ anchored = 1 density = 1 - icon = 'icons/obj/robot_component.dmi' - icon_state = "analyser" + icon = 'icons/obj/secret_santa.dmi' + icon_state = "sign-up-box" var/daysLeft var/signupStatus diff --git a/icons/obj/secret_santa.dmi b/icons/obj/secret_santa.dmi new file mode 100644 index 0000000000000000000000000000000000000000..0da09e641466c83ce0a053b3573fb62f8cdc7eb4 GIT binary patch literal 378 zcmV-=0fqjFP)0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5sW>w|FTS)OJ}JLKiHkEOv#1y-YRJWzR+N~V3SlcNxca$(4F>=N z?Hs7D2Oo9-005FnL_t(2kz-&ONWdrv0!RWv#xBN2NCJ$?rlHA-ibx8QLxYWk3>h3? z3Y1KojTDs=Sy-R~f`a9OffBr{!%lZ2ApkzHYCBxHgt z&;c~V#St!0;^ETbQsQEWCg7ZiDo|vmh-?PXS|b5ezY3xF4P>nV1F8z--~oFMNdfHv Y0H3!WUY$gVUjP6A07*qoM6N<$f Date: Mon, 7 Dec 2015 12:21:43 +0200 Subject: [PATCH 10/13] Secret Santa - Icon Fix Because underscores > dashes --- code/modules/secretsanta/submission_box.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/secretsanta/submission_box.dm b/code/modules/secretsanta/submission_box.dm index d271cecd..f5699fc7 100644 --- a/code/modules/secretsanta/submission_box.dm +++ b/code/modules/secretsanta/submission_box.dm @@ -15,7 +15,7 @@ density = 1 icon = 'icons/obj/secret_santa.dmi' - icon_state = "sign-up-box" + icon_state = "sign_up_box" var/daysLeft var/signupStatus From 279921be2bbd525445edfa593cd84fb60399513f Mon Sep 17 00:00:00 2001 From: skull132 Date: Mon, 7 Dec 2015 12:22:13 +0200 Subject: [PATCH 11/13] Secret Santa - Map Update Yay, festivities! --- maps/tgstation2.dmm | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index beb222db..af54753e 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -3211,9 +3211,9 @@ "bjM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/cafeteria) "bjN" = (/obj/structure/sign/double/barsign,/turf/simulated/wall,/area/crew_quarters/cafeteria) "bjO" = (/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) -"bjP" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) -"bjQ" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) -"bjR" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = -2; pixel_y = 0},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = -2; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{tag = "icon-map_vent_out (EAST)"; icon_state = "map_vent_out"; dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) +"bjP" = (/obj/effect/overlay/snow{tag = "icon-snowfloor_w"; icon_state = "snowfloor_w"},/obj/effect/overlay/snow{tag = "icon-snowfloor_s"; icon_state = "snowfloor_s"},/obj/structure/sign/christmas/lights{tag = "icon-xmaslights (NORTH)"; icon_state = "xmaslights"; dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) +"bjQ" = (/obj/effect/overlay/snow{tag = "icon-snowwall_s"; icon_state = "snowwall_s"},/obj/structure/sign/christmas/lights{tag = "icon-xmaslights (NORTH)"; icon_state = "xmaslights"; dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) +"bjR" = (/obj/effect/overlay/snow,/obj/structure/santa_signup_box,/obj/structure/sign/christmas/lights{tag = "icon-xmaslights (NORTH)"; icon_state = "xmaslights"; dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) "bjS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; name = "Air supply main pipe"},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) "bjT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) "bjU" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/wood,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) @@ -3396,7 +3396,7 @@ "bnp" = (/obj/structure/table/woodentable,/obj/item/weapon/dice/d20,/turf/simulated/floor/wood,/area/crew_quarters/cafeteria) "bnq" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (NORTHEAST)"; icon_state = "intact-scrubbers"; dir = 5},/turf/simulated/floor,/area/hallway/primary/central) "bnr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; name = "Air supply main pipe"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{tag = "icon-map-scrubbers (NORTH)"; icon_state = "map-scrubbers"; dir = 1},/turf/simulated/floor,/area/hallway/primary/central) -"bns" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{tag = "icon-map-scrubbers (NORTH)"; icon_state = "map-scrubbers"; dir = 1},/turf/simulated/floor,/area/hallway/primary/central) +"bns" = (/obj/effect/overlay/snow,/obj/structure/sign/christmas/lights{tag = "icon-xmaslights (NORTH)"; icon_state = "xmaslights"; dir = 1},/obj/item/weapon/toy/xmas_cracker{pixel_x = 3; pixel_y = -3},/obj/item/weapon/toy/xmas_cracker,/obj/item/weapon/toy/xmas_cracker{pixel_x = -3; pixel_y = 3},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) "bnt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; name = "Air supply main pipe"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (EAST)"; icon_state = "intact-scrubbers"; dir = 4},/turf/simulated/floor,/area/hallway/primary/central) "bnu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; name = "Air supply main pipe"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (EAST)"; icon_state = "intact-scrubbers"; dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central) "bnv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; name = "Air supply main pipe"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (EAST)"; icon_state = "intact-scrubbers"; dir = 4},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor,/area/hallway/primary/central) @@ -11988,6 +11988,14 @@ "ewB" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "ewC" = (/obj/machinery/mineral/input,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/mine/production) "ewD" = (/turf/space,/area/vox_station/mining) +"ewE" = (/obj/effect/overlay/snow{tag = "icon-snowfloor_e"; icon_state = "snowfloor_e"},/obj/effect/overlay/snow{tag = "icon-snowfloor_s"; icon_state = "snowfloor_s"},/obj/structure/reagent_dispensers/water_cooler,/obj/structure/sign/christmas/lights{tag = "icon-xmaslights (NORTH)"; icon_state = "xmaslights"; dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) +"ewF" = (/obj/effect/overlay/snow,/obj/structure/sign/christmas/lights{tag = "icon-xmaslights (NORTH)"; icon_state = "xmaslights"; dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) +"ewG" = (/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = -2; pixel_y = 0},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = -2; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{tag = "icon-map_vent_out (EAST)"; icon_state = "map_vent_out"; dir = 4},/obj/structure/table,/obj/structure/sign/christmas/lights{tag = "icon-xmaslights (NORTH)"; icon_state = "xmaslights"; dir = 1},/obj/item/clothing/head/festive,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) +"ewH" = (/obj/effect/overlay/snow,/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) +"ewI" = (/obj/effect/overlay/snow{tag = "icon-snowfloor_s"; icon_state = "snowfloor_s"},/obj/effect/overlay/snow{tag = "icon-snowfloor_w"; icon_state = "snowfloor_w"},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) +"ewJ" = (/obj/effect/overlay/snow{tag = "icon-snowwall_e"; icon_state = "snowwall_e"},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Holodeck Control"}) +"ewK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{tag = "icon-map-scrubbers (NORTH)"; icon_state = "map-scrubbers"; dir = 1},/obj/effect/overlay/snow{tag = "icon-snowwall_s"; icon_state = "snowwall_s"},/turf/simulated/floor,/area/hallway/primary/central) +"ewL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; name = "Air supply main pipe"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (EAST)"; icon_state = "intact-scrubbers"; dir = 4},/obj/effect/overlay/snow{tag = "icon-snowwall_s"; icon_state = "snowwall_s"},/turf/simulated/floor,/area/hallway/primary/central) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12118,9 +12126,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabc aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckaaaaaaaaaaaaaaaaAoarPbePaBwaYYasSasSasSasSasSasSbeQbeRaVOaVOaVOaVOaVOaVOaVOaVOaVOaVObeSbeTbeUbaUbczbeVbeabeWbaUbeXbeYbeXaQTbcGbcHbeZbfaaQTaXCbeebcLbfbbfcbfdbfebffbcLbekbfgbfhbfhbfibfjbfkbcRbflaZxaLoaZyaWkaWlaWnbbqaWkbfmbfnbfobfpbfqbfraOCbfsaLoaTiaTjaTjaTjaTjaTjaTiaWwbftbfubfvbfwbfxaRuaZNbfyaThbfzbfAbfBbfCbdAbdybdybdAbdAbdAbfDbdAbfEbdybfFbdAbdAbdAbdAbdAbdAbdAbfGbfHbfIbfJbdAbdAbdAbfEbdAbfKbdAbfLbfMbdAbdAbfNbdAbfObdAbfPbdAbdAbdAbfFbdAbfQbfRbdAbdAbfSbfTbdAbfCbfKbfUbfVbfWbfXaVBbfYaVBbfZbfYbgaaYRaYQaYSbgbbgcbgcbgdaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckbckbckbckbckaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHbgebgfbggbghbgibgjbgkbgkbglbgmbgkbgnbgoaQRbgpbgqbgrbaUbaUbaUbgsbebbaUaQTaQTaQTaQTbcGbgtbgubgvaQTbgwbgxbcLbgybgzbgAbgBbgCbcLbekbgDbfhbfhbgEbfhbgFbcRbgGaZxaLobboaWkbgHbgIaZAaWkbgJbgKaLobgLbgMbgNaLobgLaLoaTiaTjaTjaTjaTjaTjaTibgObgPbgQbgRbdcbgSaRubgTbgUbgVbgWbgXbgYbgZbhabhbbhcbhabhabhabhabhabhabhdbhabhabhabhabhabhabhabhabhebhfbhgbhhbhabhabhabhabhabhibhjbhkbhlbbUbbUbbUbbUbbUbbUbbUbbUbbUbbUbbUbbUbbUbbUbbUbbUbhmbhnbbUbhobhpbhqbhrbhsbhtbhubhvbhwbhxbhvbhybhxbhzbaIbhAaaaaaabhBaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckbckbckbckbckaYWaVLaVLaVLaVLaVLaVLaVLaVLaVLbhCaVLaYXbhDbhEbhFbhGbhHbhGbhGbhIbhGbhGbhJaQRaQRaQRaQRbgrbaUbczbhKbhLbeWbaUbhMbhNbhMaQTaQTaQTaQTbhOaQTbhPbeebcLbhQbhRbfdbhSbhTbcLbekbcRbhUbfhbgEbfhbhVbcRaLoaZxaLoaRkbhWbhXbhYbhZbiaaJQbibbicbidbieaRobifbgLaLobigaRsaRsaRsaRsaRsbihaXYbiibijbikbilbimaRubinbioaLobipbiqbirbisbitbiubivbiubiubiubiubivbiwbiwbivbiubiubiubiubixbiubiybiubizbiAbiBbiCbiDbiDbiEbiEbiFbiGbiHbiIbdAbdAbiJbiJbdAbdAbiKbdAbdAbdAbdAbdAbdAbdAbdAbdAbdAbdAbdAbiLbfKbiMbfVaXmbiNaXmbiObiPbiQbiRbiSbiQbiTbiUbiVaTRaTRaTRaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckbckbckbckbckbiWbiXbiYbiZbjabjbbjcbjcbjdbjcbjeauNauNbjfbjgbjhbhGbjibhGbjjbjkbjlbjmbjnbjobjobjobjobjpbaUbaUbaUbeabjqbaUaQRaQRaQRaQRbjraXCaXCbjsbbhbjtbjubjvbjwbjxbjybjzbegbcLbjAbcRbjBbfhbgEbfhbjCbjDaLoaZxbjEbjFbjGbjHbjIbjFbjFbjJbjJbjKbjLbjMbjNbjJbgLaLobjObjPbjPbjPbjPbjQbjRbjSbjTbeubevbdcbjUaRubjVbjWbjVbjXbjXbjXbjXbjXbjYbjXbjZbkabkbbkcbkdbkebkfbkgbkcbkhbkabkibkjbkjbkjbkkbkjbkjbkjbkjbklbkmbknbkobkpbkqbkrbksbktbksbkubkubksbkvbkwbkxbkwbksbksbksbksbkybdAbkybkzbkybkybkAbkBbkBbkBbkBbkCbkpbkDaSiaSiaSiaSiaSiaSiaSiaSiaTRaTRaTRaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckbckbckbckbckbclbkEbkFbkFbkGbkFbkHaVLaVLbkIbkJbkKbhCbhDbhEbkLbhGbkMbkNbkObkPbkQbkRbbhbbhbkSbkTbkTbkUbkVbkWbkXbkYbkZbkVblablbblcbldbleblfblgblhbliblibljbcLblkbllblmblnblobjvblpbcRblqbfhbgEblrblsbltaLoaZxaLoblublvblwblxblyblzbjJblAblBblCblDblEbjJbgLaLobjObjObjObjObjObjOblFblGblHblIblJblKblLblMbdeblNaThbjXblOblPblQblRblSblTblUblVblWblXblYblZbmablYbmbbmcbmdbkabmebmfbmgbmhbmibmjbmibkjbkpbkpbmkbkpbkpbmlbkvbmmbmnbmobmpbmqbmqbmrbmsbmtbmubmvbmwbmxbmybmzbkybkAbkBbmAbmBbmAbkBbmCbmDbkBbmEbmFbmGbkpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFSaFSaFSaFSaFSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckbckbckbckbckbmHaaaaaaaaaaaaaaaaaaaaaaaaaNTbmIaNTbmJbmKbmLbmMbhGbmNbhGbmObkPbmPbhGaQRbmQaXCbmRaXCbmSbaUbaUbaUbaUbaUbaUbmTbmUbmVbmWbmXbcLbcLbcLbcLbcLbcLbcLbmYbmZbcLbcLbmZbcLbnabnbbncbndbnebndbnfbjDaLoaZxaLobjFbngbnhbnibnibnjbnkbnlbnmbnnbnobnpbjJbnqaOvbnraOvaOvbnsbntbntbnubnvbnwbgVbgVbnxbnybnzbnAbgLaLobnBbnCbnDbnEbnFbnGbnHbnIbnJbnKbnKbnKbnKbnLbnKbnKbnMbnNbkabnObnPbnQbnObmibnObmibkjbnRbkpbnSbnTbkpbmlbkvbnUbnVbnVbnWbmqbmqbnXbnYbnZboabobbocbodbmyboebofbogbkBbohboibojbokbolbombkBbonboobopbkpaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckbckbckbckbckbiWbiXbiYbiZbjabjbbjcbjcbjdbjcbjeauNauNbjfbjgbjhbhGbjibhGbjjbjkbjlbjmbjnbjobjobjobjobjpbaUbaUbaUbeabjqbaUaQRaQRaQRaQRbjraXCaXCbjsbbhbjtbjubjvbjwbjxbjybjzbegbcLbjAbcRbjBbfhbgEbfhbjCbjDaLoaZxbjEbjFbjGbjHbjIbjFbjFbjJbjJbjKbjLbjMbjNbjJbgLaLobjQbjPbnsbjRewFewEewGbjSbjTbeubevbdcbjUaRubjVbjWbjVbjXbjXbjXbjXbjXbjYbjXbjZbkabkbbkcbkdbkebkfbkgbkcbkhbkabkibkjbkjbkjbkkbkjbkjbkjbkjbklbkmbknbkobkpbkqbkrbksbktbksbkubkubksbkvbkwbkxbkwbksbksbksbksbkybdAbkybkzbkybkybkAbkBbkBbkBbkBbkCbkpbkDaSiaSiaSiaSiaSiaSiaSiaSiaTRaTRaTRaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaFSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckbckbckbckbckbclbkEbkFbkFbkGbkFbkHaVLaVLbkIbkJbkKbhCbhDbhEbkLbhGbkMbkNbkObkPbkQbkRbbhbbhbkSbkTbkTbkUbkVbkWbkXbkYbkZbkVblablbblcbldbleblfblgblhbliblibljbcLblkbllblmblnblobjvblpbcRblqbfhbgEblrblsbltaLoaZxaLoblublvblwblxblyblzbjJblAblBblCblDblEbjJbgLaLobjObjOewIewHewHewJblFblGblHblIblJblKblLblMbdeblNaThbjXblOblPblQblRblSblTblUblVblWblXblYblZbmablYbmbbmcbmdbkabmebmfbmgbmhbmibmjbmibkjbkpbkpbmkbkpbkpbmlbkvbmmbmnbmobmpbmqbmqbmrbmsbmtbmubmvbmwbmxbmybmzbkybkAbkBbmAbmBbmAbkBbmCbmDbkBbmEbmFbmGbkpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFSaFSaFSaFSaFSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckbckbckbckbckbmHaaaaaaaaaaaaaaaaaaaaaaaaaNTbmIaNTbmJbmKbmLbmMbhGbmNbhGbmObkPbmPbhGaQRbmQaXCbmRaXCbmSbaUbaUbaUbaUbaUbaUbmTbmUbmVbmWbmXbcLbcLbcLbcLbcLbcLbcLbmYbmZbcLbcLbmZbcLbnabnbbncbndbnebndbnfbjDaLoaZxaLobjFbngbnhbnibnibnjbnkbnlbnmbnnbnobnpbjJbnqaOvbnraOvaOvewKewLbntbnubnvbnwbgVbgVbnxbnybnzbnAbgLaLobnBbnCbnDbnEbnFbnGbnHbnIbnJbnKbnKbnKbnKbnLbnKbnKbnMbnNbkabnObnPbnQbnObmibnObmibkjbnRbkpbnSbnTbkpbmlbkvbnUbnVbnVbnWbmqbmqbnXbnYbnZboabobbocbodbmyboebofbogbkBbohboibojbokbolbombkBbonboobopbkpaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckbckaaaaaaaaaaaaaaaaAobePaBwbcmaVLaVLboqbkJborbosbotbouazabhGbmNbovbowbkPboxbhGbgoaXCaXCaXCaXCboybozbozbozblgblgblgblgblgblgboAboBbcLboCboDboEboFboGboHboIboJboKboLboMboNblpbjDboObfhbgEboPbcRbcRaLoaZxboQbjFboRblwboSboTboUboVboWboXboYboZbpabjJbpbbpcaPXaLoaLobpdbpeaLoaLmbpfaLoaLoaLobpgaLoaRqaLmaRjbphbjXbpibpjbpkbplbpmbpnbpobppbnKbnKbnKbnKbnKbnKbnKbnMbpqbkabprbpsbptbpubnObnObnObpvbpwbkpbpxbpybkpbmlbkvbpzbpAbpBbpCbmqbpDbnXbpEbpFbpGbpHbpIbpJbmybpKbpLbpMbkBbpNbolbolbpObpPbpQbkBbpRboobpSbkpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckbckaaaaaaaaaaaaaaaaaaaaaaaaaaabpTbpUbpVbpWbpXbpYbpZazabqaazabhGbkMbqbbhGbqcbqdbhGbhGbhGbqebqfbqgbqhbqgbqgbqgbqhbqgaQRaQRbcLbcLbmZbqibcLbqjbqjbqjbqjbqjbqjbqkbqlbqmbqnbqobqpbqqbqpbqrbqsbqtbqubqvbqwbqxbbnaZHbjFbqybqzbqAbqBbqCbqDbqEbqFbqGbqHbqIbjJbqJbqKbqLbjJbqMbqNbjJbqMbqObjJbqJbqPbqKbqKbqLbjJbqQaRjaLobnBbnCbnDbqRbqSbqTbqUbpobqVbnKbqWbqXbqYbqZbrabrbbrcbrdbkabrebrfbrgbrhbmibnObmibkjbpwbkpbribpSbkpbmlbkvbrjbrkbrlbpCbmqbrmbrnbrobrpbrqbrrbrrbrrbmybrsbrtbrubkBbrvbrwbrxbrybrzbrAbkBbpRboobrBbkpaaaaaaaaaaaaaeHaeHaeHaeHaeHaeHaeHaeHaeHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabckbckbckbckaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpTbrCbrDbrEbrFbrGbrGbrHbrIbrJbhGbrKbrLbrMbrNbrObrPbrQbrRbrSaeHbrTbrTbrTbrTbrTbrTbrTaaaaaabrUbrVbrWbrXbrYbrZbrZbrZbrZbrZbrZbsabsbbscbsdbsebsfbsgbshbcRbcRbsibcRbcRbcRbsjbskbslbjFbsmblwbsnbsobspbsqbsrbnmbsrbsrbssbstbsubsvbswbsxbsybszbjJbsybsAbsxbsBbsCbsDbsDbsEbjJbsFaRjaLobjXbsGbsHbsIbsJbsKbsLbpobsMbnKbsNbsObsPbsQbsRbsSbsTbsUbkabkjbsVbsWbsXbsYbsZbmibkjbpwbkpbtabtbbkpbtcbkvbpzbpAbpBbpCbmqbtdbkrbtebtfbtebrrbtgbtgbmybthbtibtjbkBbtkbtlbtmbtnbtobtpbkBbonboobtqbkpaaaaaaaaaaaaaeHbtrbtsbttbtsbttbtsbtuaeHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 3338fe334b2832d857e2cbf8742445286e3dd125 Mon Sep 17 00:00:00 2001 From: skull132 Date: Mon, 7 Dec 2015 13:01:35 +0200 Subject: [PATCH 12/13] Door Bracers - DME update --- aurora.dme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aurora.dme b/aurora.dme index 932ba400..e9ff32b6 100644 --- a/aurora.dme +++ b/aurora.dme @@ -39,6 +39,7 @@ #define FILE_DIR "icons/obj/clothing/species/tajaran" #define FILE_DIR "icons/obj/clothing/species/unathi" #define FILE_DIR "icons/obj/custom_items" +#define FILE_DIR "icons/obj/door_braces" #define FILE_DIR "icons/obj/doors" #define FILE_DIR "icons/obj/flora" #define FILE_DIR "icons/obj/machines" @@ -565,7 +566,6 @@ #include "code\game\objects\items\trash.dm" #include "code\game\objects\items\devices\aicard.dm" #include "code\game\objects\items\devices\binoculars.dm" -#include "code\game\objects\items\devices\door_bracer.dm" #include "code\game\objects\items\devices\chameleonproj.dm" #include "code\game\objects\items\devices\debugger.dm" #include "code\game\objects\items\devices\door_bracer.dm" From 402c16213972604ac631872bb2ae21040467ea61 Mon Sep 17 00:00:00 2001 From: skull132 Date: Mon, 7 Dec 2015 13:01:52 +0200 Subject: [PATCH 13/13] Door Bracers - Map Update Adds 3 to engineering, 3 to security armoury. --- maps/tgstation2.dmm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index beb222db..cc07298a 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -638,7 +638,7 @@ "amn" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/structure/window/reinforced{dir = 4},/obj/item/device/binoculars,/obj/item/device/binoculars,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) "amo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/armoury) "amp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/armoury) -"amq" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor,/area/security/armoury) +"amq" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/rack,/obj/item/device/doorbrace/security{pixel_x = 5; pixel_y = -5},/obj/item/device/doorbrace/security,/obj/item/device/doorbrace/security{pixel_x = -5; pixel_y = 5},/turf/simulated/floor,/area/security/armoury) "amr" = (/obj/structure/dispenser{plasmatanks = 0},/obj/machinery/alarm{locked = 1; pixel_y = 23},/obj/machinery/atmospherics/unary/vent_pump/on{tag = "icon-map_vent_out (WEST)"; icon_state = "map_vent_out"; dir = 8},/obj/machinery/camera{dir = 8},/turf/simulated/floor{icon_state = "bot"},/area/security/armoury) "ams" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/solar/auxport) "amt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/solar/auxport) @@ -6605,7 +6605,7 @@ "cxa" = (/obj/structure/stool,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) "cxb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) "cxc" = (/turf/simulated/wall/r_wall,/area/engine/storage_hard) -"cxd" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Storage APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/storage) +"cxd" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Storage APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/table/reinforced{icon_state = "table"},/obj/item/device/doorbrace/engineering{pixel_x = 5; pixel_y = -5},/obj/item/device/doorbrace/engineering,/obj/item/device/doorbrace/engineering{pixel_x = -5; pixel_y = 5},/turf/simulated/floor,/area/engine/storage) "cxe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{tag = "icon-map-scrubbers (WEST)"; icon_state = "map-scrubbers"; dir = 8},/turf/simulated/floor,/area/engine/storage) "cxf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (EAST)"; icon_state = "intact-scrubbers"; dir = 4},/turf/simulated/floor,/area/engine/storage) "cxg" = (/obj/structure/table,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cable_coil,/obj/item/weapon/cable_coil,/obj/item/clothing/glasses/welding,/obj/item/weapon/book/manual/supermatter_engine,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_scrubber/on{tag = "icon-map_scrubber_on (WEST)"; icon_state = "map_scrubber_on"; dir = 8},/turf/simulated/floor,/area/engine/storage)