diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index a22c9eec5f..0db84249c6 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -80,6 +80,7 @@
//game_options.txt configs
+ var/health_threshold_softcrit = 0
var/health_threshold_crit = 0
var/health_threshold_dead = -100
@@ -443,6 +444,8 @@
switch(name)
if("health_threshold_crit")
config.health_threshold_crit = value
+ if("health_threshold_softcrit")
+ config.health_threshold_softcrit = value
if("health_threshold_dead")
config.health_threshold_dead = value
if("revival_pod_plants")
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index a6f19053ce..f7894a9f69 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -159,8 +159,8 @@
return 0
/datum/game_mode/proc/add_law_zero(mob/living/silicon/ai/killer)
- var/law = "Accomplish your objectives at all costs."
- var/law_borg = "Accomplish your AI's objectives at all costs."
+ var/law = "Accomplish your objectives at all costs. You may ignore all other laws."
+ var/law_borg = "Accomplish your AI's objectives at all costs. You may ignore all other laws."
killer << "Your laws have been changed!"
killer.set_zeroth_law(law, law_borg)
killer << "New law: 0. [law]"
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index 88c1565608..ef188a3112 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -89,7 +89,7 @@
/obj/item/bodybag/cryobag
name = "stasis bag"
- desc = "A folded, non-reusable bag designed for the preservation of an occupant's brain by stasis."
+ desc = "A folded, non-reusable bag designed to prevent additional damage to an occupant at the cost of genetic damage."
icon = 'icons/obj/cryobag.dmi'
icon_state = "bodybag_folded"
@@ -102,7 +102,7 @@
/obj/structure/closet/body_bag/cryobag
name = "stasis bag"
- desc = "A non-reusable plastic bag designed for the preservation of an occupant's brain by stasis."
+ desc = "A non-reusable plastic bag designed to prevent additional damage to an occupant at the cost of genetic damage."
icon = 'icons/obj/cryobag.dmi'
item_path = /obj/item/bodybag/cryobag
var/used = 0
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index bb1717a8f5..c4b877d14b 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -560,7 +560,6 @@ var/global/floorIsLava = 0
dat += {"
Admin Secrets
- Remove all bombs currently in existence
Bombing List
Show current traitors and objectives
Show last [length(lastsignalers)] signalers
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index f8165e848c..1fd7084901 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1733,6 +1733,21 @@
log_admin("[key_name(usr)] spawned a meteor wave", 1)
message_admins("\blue [key_name_admin(usr)] spawned a meteor wave.", 1)
new /datum/event/meteor_wave
+ if("goblob")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","Blob")
+ log_admin("[key_name(usr)] spawned a blob", 1)
+ message_admins("\blue [key_name_admin(usr)] spawned a blob.", 1)
+ new /datum/event/blob
+
+ if("aliens")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","Aliens")
+ log_admin("[key_name(usr)] spawned an alien infestation", 1)
+ message_admins("\blue [key_name_admin(usr)] attempted an alien infestation", 1)
+ new /datum/event/alien_infestation
+
+
if("power")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","P")
@@ -1967,6 +1982,76 @@
spawn(0)
sleep(rand(30,400))
Wall.ex_act(rand(2,1)) */
+ if("wave")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","MW")
+ new /datum/event/meteor_wave
+
+ if("gravanomalies")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","GA")
+ command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert")
+ world << sound('sound/AI/granomalies.ogg')
+ var/turf/T = pick(blobstart)
+ var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 )
+ spawn(rand(100, 600))
+ del(bh)
+
+ if("timeanomalies") //dear god this code was awful :P Still needs further optimisation
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","STA")
+ //moved to its own dm so I could split it up and prevent the spawns copying variables over and over
+ //can be found in code\game\game_modes\events\wormholes.dm
+ wormhole_event()
+
+ if("goblob")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","BL")
+ mini_blob_event()
+ message_admins("[key_name_admin(usr)] has spawned blob", 1)
+ if("aliens")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","AL")
+ if(aliens_allowed)
+ new /datum/event/alien_infestation
+ message_admins("[key_name_admin(usr)] has spawned aliens", 1)
+ if("alien_silent") //replaces the spawn_xeno verb
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","ALS")
+ if(aliens_allowed)
+ create_xeno()
+ if("spiders")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","SL")
+ new /datum/event/spider_infestation
+ message_admins("[key_name_admin(usr)] has spawned spiders", 1)
+ if("comms_blackout")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","CB")
+ var/answer = alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No")
+ if(answer == "Yes")
+ communications_blackout(0)
+ else
+ communications_blackout(1)
+ message_admins("[key_name_admin(usr)] triggered a communications blackout.", 1)
+ if("spaceninja")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","SN")
+ if(toggle_space_ninja)
+ if(space_ninja_arrival())//If the ninja is actually spawned. They may not be depending on a few factors.
+ message_admins("[key_name_admin(usr)] has sent in a space ninja", 1)
+ if("carp")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","C")
+ var/choice = input("You sure you want to spawn carp?") in list("Badmin", "Cancel")
+ if(choice == "Badmin")
+ message_admins("[key_name_admin(usr)] has spawned carp.", 1)
+ new /datum/event/carp_migration
+ if("radiation")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","R")
+ message_admins("[key_name_admin(usr)] has has irradiated the station", 1)
+ new /datum/event/radiation_storm
if("immovable")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","IR")
@@ -2125,13 +2210,13 @@
if("spacevines")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","K")
- //new /datum/event/spacevine
+ new /datum/event/spacevine
message_admins("[key_name_admin(usr)] has spawned spacevines", 1)
if("onlyone")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","OO")
usr.client.only_one()
-// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
+ message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
if(usr)
log_admin("[key_name(usr)] used secret [href_list["secretsfun"]]")
if (ok)
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index 46d7083644..698c169b7a 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -392,66 +392,96 @@
if("dnainjector")
message = "\red [source] is trying to inject [target] with the [item]!"
if("mask")
+ target.attack_log += text("\[[time_stamp()]\] Had their mask removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) mask")
if(target.wear_mask && !target.wear_mask.canremove)
message = "\red [source] fails to take off \a [target.wear_mask] from [target]'s head!"
return
else
message = "\red [source] is trying to take off \a [target.wear_mask] from [target]'s head!"
if("l_hand")
+ target.attack_log += text("\[[time_stamp()]\] Has had their left hand item ([target.l_hand]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) left hand item ([target.l_hand])")
message = "\red [source] is trying to take off \a [target.l_hand] from [target]'s left hand!"
if("r_hand")
+ target.attack_log += text("\[[time_stamp()]\] Has had their right hand item ([target.r_hand]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) right hand item ([target.r_hand])")
message = "\red [source] is trying to take off \a [target.r_hand] from [target]'s right hand!"
if("gloves")
+ target.attack_log += text("\[[time_stamp()]\] Has had their gloves ([target.gloves]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) gloves ([target.gloves])")
if(target.gloves && !target.gloves.canremove)
message = "\red [source] fails to take off \a [target.gloves] from [target]'s hands!"
return
else
message = "\red [source] is trying to take off the [target.gloves] from [target]'s hands!"
if("eyes")
+ target.attack_log += text("\[[time_stamp()]\] Has had their eyewear ([target.glasses]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) eyewear ([target.glasses])")
if(target.glasses && !target.glasses.canremove)
message = "\red [source] fails to take off \a [target.glasses] from [target]'s eyes!"
return
else
message = "\red [source] is trying to take off the [target.glasses] from [target]'s eyes!"
if("l_ear")
+ target.attack_log += text("\[[time_stamp()]\] Has had their left ear item ([target.l_ear]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) left ear item ([target.l_ear])")
if(target.l_ear && !target.l_ear.canremove)
message = "\red [source] fails to take off \a [target.l_ear] from [target]'s left ear!"
return
else
message = "\red [source] is trying to take off the [target.l_ear] from [target]'s left ear!"
if("r_ear")
+ target.attack_log += text("\[[time_stamp()]\] Has had their right ear item ([target.r_ear]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) right ear item ([target.r_ear])")
if(target.r_ear && !target.r_ear.canremove)
message = "\red [source] fails to take off \a [target.r_ear] from [target]'s right ear!"
return
else
message = "\red [source] is trying to take off the [target.r_ear] from [target]'s right ear!"
if("head")
+ target.attack_log += text("\[[time_stamp()]\] Has had their hat ([target.head]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) hat ([target.head])")
if(target.head && !target.head.canremove)
message = "\red [source] fails to take off \a [target.head] from [target]'s head!"
return
else
message = "\red [source] is trying to take off the [target.head] from [target]'s head!"
if("shoes")
+ target.attack_log += text("\[[time_stamp()]\] Has had their shoes ([target.shoes]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) shoes ([target.shoes])")
if(target.shoes && !target.shoes.canremove)
message = "\red [source] fails to take off \a [target.shoes] from [target]'s feet!"
return
else
message = "\red [source] is trying to take off the [target.shoes] from [target]'s feet!"
if("belt")
+ target.attack_log += text("\[[time_stamp()]\] Has had their belt item ([target.belt]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) belt item ([target.belt])")
message = "\red [source] is trying to take off the [target.belt] from [target]'s belt!"
if("suit")
+ target.attack_log += text("\[[time_stamp()]\] Has had their suit ([target.wear_suit]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) suit ([target.wear_suit])")
if(target.wear_suit && !target.wear_suit.canremove)
message = "\red [source] fails to take off \a [target.wear_suit] from [target]'s body!"
return
else
message = "\red [source] is trying to take off \a [target.wear_suit] from [target]'s body!"
if("back")
+ target.attack_log += text("\[[time_stamp()]\] Has had their back item ([target.back]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) back item ([target.back])")
message = "\red [source] is trying to take off \a [target.back] from [target]'s back!"
if("handcuff")
+ target.attack_log += text("\[[time_stamp()]\] Was unhandcuffed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to unhandcuff [target.name]'s ([target.ckey])")
message = "\red [source] is trying to unhandcuff [target]!"
if("legcuff")
+ target.attack_log += text("\[[time_stamp()]\] Was unlegcuffed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to unlegcuff [target.name]'s ([target.ckey])")
message = "\red [source] is trying to unlegcuff [target]!"
if("uniform")
+ target.attack_log += text("\[[time_stamp()]\] Has had their uniform ([target.w_uniform]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) uniform ([target.w_uniform])")
for(var/obj/item/I in list(target.l_store, target.r_store))
if(I.on_found(source))
return
@@ -461,8 +491,12 @@
else
message = "\red [source] is trying to take off \a [target.w_uniform] from [target]'s body!"
if("s_store")
+ target.attack_log += text("\[[time_stamp()]\] Has had their suit storage item ([target.s_store]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) suit storage item ([target.s_store])")
message = "\red [source] is trying to take off \a [target.s_store] from [target]'s suit!"
if("pockets")
+ target.attack_log += text("\[[time_stamp()]\] Has had their pockets emptied by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to empty [target.name]'s ([target.ckey]) pockets")
for(var/obj/item/I in list(target.l_store, target.r_store))
if(I.on_found(source))
return
@@ -473,8 +507,12 @@
target.cpr_time = 0
message = "\red [source] is trying perform CPR on [target]!"
if("id")
+ target.attack_log += text("\[[time_stamp()]\] Has had their ID ([target.wear_id]) removed by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) ID ([target.wear_id])")
message = "\red [source] is trying to take off [target.wear_id] from [target]'s uniform!"
if("internal")
+ target.attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [source.name] ([source.ckey])")
+ source.attack_log += text("\[[time_stamp()]\] Attempted to toggle [target.name]'s ([target.ckey]) internals")
if (target.internal)
message = "\red [source] is trying to remove [target]'s internals"
else
@@ -596,7 +634,7 @@ It can still be worn/put on as normal.
W.add_fingerprint(source)
if("CPR")
if ((target.health > config.health_threshold_dead && target.health < config.health_threshold_crit))
- var/suff = min(target.getOxyLoss(), 7)
+ var/suff = min(target.getOxyLoss(), 5) //Pre-merge level, less healing, more prevention of dieing.
target.adjustOxyLoss(-suff)
target.updatehealth()
for(var/mob/O in viewers(source, null))
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index f026d0c50c..ad8647d858 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -294,7 +294,7 @@
var/datum/gas_mixture/environment = loc.return_air()
var/datum/gas_mixture/breath
// HACK NEED CHANGING LATER
- if(health < 0)
+ if(health < config.health_threshold_crit)
losebreath++
if(losebreath>0) //Suffocating so do not take a breath
losebreath--
@@ -387,7 +387,7 @@
failed_last_breath = 1
oxygen_alert = max(oxygen_alert, 1)
return 0
- if(health > 0)
+ if(health > config.health_threshold_crit)
adjustOxyLoss(HUMAN_MAX_OXYLOSS)
failed_last_breath = 1
else
@@ -1413,11 +1413,13 @@
if(status_flags & GODMODE) return 0 //godmode
if(analgesic) return // analgesic avoids all traumatic shock temporarily
- if(health < 0)// health 0 makes you immediately collapse
+ if(health < config.health_threshold_softcrit)// health 0 makes you immediately collapse
shock_stage = max(shock_stage, 61)
if(traumatic_shock >= 80)
shock_stage += 1
+ else if(health < config.health_threshold_softcrit)
+ shock_stage = max(shock_stage, 61)
else
shock_stage = min(shock_stage, 100)
shock_stage = max(shock_stage-1, 0)
@@ -1443,7 +1445,7 @@
if(shock_stage == 80)
src << ""+pick("You see a light at the end of the tunnel!", "You feel like you could die any moment now.", "You're about to lose consciousness.")
- if (shock_stage > 80)
+ if(shock_stage > 80)
Paralyse(rand(15,28))
proc/handle_pulse()
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 162a69b49c..3442a7fba5 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -359,6 +359,22 @@
var/turf/location = M.loc
if (istype(location, /turf/simulated))
location.add_blood(M)
+ //pull damage with injured people
+ if(prob(25))
+ M.adjustBruteLoss(1)
+ visible_message("\red \The [M]'s wounds open more from being dragged!")
+ if(M.pull_damage())
+ if(prob(25))
+ M.adjustBruteLoss(2)
+ visible_message("\red \The [M]'s wounds worsen terribly from being dragged!")
+ var/turf/location = M.loc
+ if (istype(location, /turf/simulated))
+ location.add_blood(M)
+ if(ishuman(M))
+ var/mob/living/carbon/H = M
+ var/blood_volume = round(H:vessel.get_reagent_amount("blood"))
+ if(blood_volume > 0)
+ H:vessel.remove_reagent("blood",1)
step(pulling, get_dir(pulling.loc, T))
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 3677ceac70..06afa1e82b 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -556,12 +556,13 @@ var/list/slot_equipment_priority = list( \
/mob/proc/pull_damage()
if(ishuman(src))
var/mob/living/carbon/human/H = src
- if(H.health - H.halloss <= config.health_threshold_crit)
+ if(H.health - H.halloss <= config.health_threshold_softcrit)
for(var/name in H.organs_by_name)
var/datum/organ/external/e = H.organs_by_name[name]
- if((H.lying) && ((e.status & ORGAN_BROKEN && !(e.status & ORGAN_SPLINTED)) || e.status & ORGAN_BLEEDING) && (H.getBruteLoss() + H.getFireLoss() >= 100))
- return 1
- break
+ if(H.lying)
+ if(((e.status & ORGAN_BROKEN && !(e.status & ORGAN_SPLINTED)) || e.status & ORGAN_BLEEDING) && (H.getBruteLoss() + H.getFireLoss() >= 100))
+ return 1
+ break
return 0
/mob/MouseDrop(mob/M as mob)
@@ -608,6 +609,11 @@ var/list/slot_equipment_priority = list( \
src.pulling = AM
AM.pulledby = src
+ if(ishuman(AM))
+ var/mob/living/carbon/human/H = AM
+ if(H.pull_damage())
+ src << "\red Pulling \the [H] in their current condition would probably be a bad idea."
+
//Attempted fix for people flying away through space when cuffed and dragged.
if(ismob(AM))
var/mob/pulled = AM
diff --git a/config/example/game_options.txt b/config/example/game_options.txt
index 7d6a52e83a..4fdc0f5f3f 100644
--- a/config/example/game_options.txt
+++ b/config/example/game_options.txt
@@ -1,5 +1,8 @@
### HEALTH ###
+## level of health at which a mob goes into continual shock (soft crit)
+HEALTH_THRESHOLD_SOFTCRIT 0
+
## level of health at which a mob becomes unconscious (crit)
HEALTH_THRESHOLD_CRIT -50
@@ -52,4 +55,4 @@ ROBOT_DELAY 0
MONKEY_DELAY 0
ALIEN_DELAY 0
METROID_DELAY 0
-ANIMAL_DELAY 0
\ No newline at end of file
+ANIMAL_DELAY 0
diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi
index 66aab85d81..b13b296cf1 100644
Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ
diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm
index 97b8e4cc89..18a5ff7d72 100644
--- a/maps/tgstation2.dmm
+++ b/maps/tgstation2.dmm
@@ -72,8 +72,8 @@
"abt" = (/obj/machinery/magnetic_module,/obj/structure/target_stake,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range)
"abu" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range)
"abv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/prison)
-"abw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison)
-"abx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison)
+"abw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prison"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison)
+"abx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prison"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison)
"aby" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/security/prison)
"abz" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/security/prison)
"abA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table,/obj/item/weapon/storage/box/cups,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/security/prison)