diff --git a/_maps/RandomRuins/SpaceRuins/skelter.dmm b/_maps/RandomRuins/SpaceRuins/skelter.dmm index 8dd0b3b5e1..694d093eeb 100644 --- a/_maps/RandomRuins/SpaceRuins/skelter.dmm +++ b/_maps/RandomRuins/SpaceRuins/skelter.dmm @@ -875,7 +875,8 @@ /area/service/cafeteria) "cj" = ( /obj/effect/decal/cleanable/blood/old, -/obj/item/clothing/suit/space/syndicate/orange, +/obj/item/clothing/suit/space/syndicate/green/dark, +/obj/item/clothing/head/helmet/space/syndicate/green/dark, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/skelter/sec) "ck" = ( @@ -1366,6 +1367,9 @@ dir = 1; icon_state = "trimline_fill" }, +/mob/living/simple_animal/hostile/syndicate/melee/sword/space{ + name = "Impostrous Commando" + }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/skelter/nav) "ds" = ( @@ -1895,6 +1899,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/item/clothing/head/helmet/space/syndicate/blue, /turf/open/floor/plating, /area/ruin/space/has_grav/skelter/engine/powerstorage) "eC" = ( @@ -2483,6 +2488,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/item/clothing/head/helmet/space/syndicate, /turf/open/floor/plating, /area/ruin/space/has_grav/skelter/engine/powerstorage) "fR" = ( @@ -2581,6 +2587,7 @@ /obj/item/clothing/suit/space/syndicate/orange{ desc = "Wait, don't these normally come with a helmet?" }, +/obj/item/clothing/head/helmet/space/syndicate/orange, /turf/open/floor/plating, /area/ruin/space/has_grav/skelter/forehall) "gg" = ( @@ -2726,6 +2733,7 @@ dir = 1; pixel_y = -24 }, +/obj/item/clothing/head/helmet/space/syndicate/green, /turf/open/floor/carpet, /area/ruin/space/has_grav/skelter/admin) "gx" = ( @@ -2823,6 +2831,10 @@ /area/ruin/space/has_grav/skelter/engine/lower) "gH" = ( /obj/structure/rack, +/obj/item/dnainjector/tonguespike{ + desc = "It's a little suspicious."; + name = "suspicious serum" + }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/skelter/sec) "gI" = ( @@ -2907,18 +2919,18 @@ /turf/open/floor/mineral/titanium/white, /area/ruin/space/has_grav/skelter/shields) "gT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8; - icon_state = "scrub_map_on-2" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, /obj/machinery/power/apc{ + cell_type = null; dir = 1; name = "Shield Room APC"; pixel_y = 23 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8 + }, /turf/open/floor/mineral/titanium/white, /area/ruin/space/has_grav/skelter/shields) "gU" = ( @@ -3136,7 +3148,9 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, -/turf/open/floor/mineral/titanium/white, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, /area/ruin/space/has_grav/skelter/shields) "hp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3325,7 +3339,9 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/turf/open/floor/mineral/titanium/white, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, /area/ruin/space/has_grav/skelter/shields) "hO" = ( /obj/machinery/shieldgen, @@ -3523,18 +3539,20 @@ /turf/open/floor/circuit, /area/ruin/space/has_grav/skelter/shields) "il" = ( -/turf/open/floor/mineral/titanium/white, +/obj/structure/lattice, +/turf/open/space/basic, /area/ruin/space/has_grav/skelter/shields) "im" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/light, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor/mineral/titanium/white, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1 + }, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, /area/ruin/space/has_grav/skelter/shields) "in" = ( /turf/open/floor/plasteel{ @@ -3722,10 +3740,6 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/uplink/old{ - pixel_x = -4; - pixel_y = 8 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4; icon_state = "scrub_map_on-2" @@ -3839,7 +3853,10 @@ /area/ruin/space/has_grav/skelter/comms) "iP" = ( /obj/structure/rack, -/obj/item/gun/ballistic/automatic/pistol, +/obj/item/book/granter/martial/cqc{ + name = "dusty manual"; + used = 1 + }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/skelter/sec) "iQ" = ( @@ -3874,20 +3891,6 @@ }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/skelter/storage) -"iU" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/telecomms/relay/preset/auto, -/turf/open/floor/plasteel/showroomfloor, -/area/ruin/space/has_grav/skelter/comms) "iV" = ( /obj/structure/chair/comfy/teal, /obj/effect/turf_decal/tile/blue, @@ -3917,6 +3920,7 @@ /obj/item/clothing/suit/space/syndicate/black{ desc = "Wait, don't these normally come with a helmet?" }, +/obj/item/clothing/head/helmet/space/syndicate/black, /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) "iX" = ( @@ -4078,7 +4082,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/telecomms/allinone, +/mob/living/simple_animal/hostile/syndicate/melee/space{ + name = "Impostrous Commando" + }, /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) "jo" = ( @@ -4146,12 +4152,6 @@ /obj/item/gun/ballistic/automatic/pistol/no_mag, /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) -"jw" = ( -/turf/open/space/basic, -/area/space/nearstation) -"jx" = ( -/turf/open/space/basic, -/area/template_noop) "jy" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -4166,6 +4166,66 @@ /obj/item/ammo_casing/c10mm, /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) +"sg" = ( +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/skelter/shields) +"vv" = ( +/mob/living/simple_animal/hostile/syndicate/melee/space{ + name = "Impostrous Commando" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"vz" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "singular" + }, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, +/area/ruin/space/has_grav/skelter/shields) +"AJ" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/space/has_grav/skelter/shields) +"AR" = ( +/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space{ + name = "Impostrous Commando" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"JR" = ( +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/ruin/space/has_grav/skelter/shields) +"Li" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/ruin/space/has_grav/skelter/shields) +"OA" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "singular" + }, +/turf/template_noop, +/area/template_noop) +"WM" = ( +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"Zs" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/obj/structure/fluff/broken_flooring{ + dir = 8; + icon_state = "pile" + }, +/turf/template_noop, +/area/template_noop) (1,1,1) = {" ah @@ -4483,7 +4543,7 @@ cF cF ex eW -cF +AR fN gj hJ @@ -4525,7 +4585,7 @@ iI iQ iY ji -jx +ah "} (13,1,1) = {" ah @@ -4549,7 +4609,7 @@ gj iP gl hx -hx +vv is hx eA @@ -4705,7 +4765,7 @@ fV hX jb jj -jw +ah "} (19,1,1) = {" ah @@ -4885,7 +4945,7 @@ gO iT jf jk -jw +ah "} (25,1,1) = {" ay @@ -4942,7 +5002,7 @@ hH ih iG iN -iU +iO ii jl ah @@ -5091,10 +5151,10 @@ hn hM ik iH -gA -bx -ae -ah +gz +bL +bL +ak ah "} (32,1,1) = {" @@ -5118,13 +5178,13 @@ ga gx gR ho -hM +Li +vz il -il -gA -ae -ah -ah +sg +bL +ak +ak ah "} (33,1,1) = {" @@ -5150,12 +5210,12 @@ gS hp hN im -gA -gU -ah -ah -ah -ah +sg +JR +ac +ak +ak +bq "} (34,1,1) = {" ah @@ -5179,13 +5239,13 @@ gz gT hq hO -gA -gU -ah -ah -ah -ah -ah +gz +sg +WM +ac +ak +ak +cl "} (35,1,1) = {" aS @@ -5207,15 +5267,15 @@ dV gd gA gU -gU -gU -gU -ah -ah -ah -ah -ah -ah +gz +AJ +gz +ac +ac +ac +ac +ak +aZ "} (36,1,1) = {" ah @@ -5237,15 +5297,15 @@ fI ge gB gV -jw -ah -ah -ah -ah -ah -ah -ah -ah +aZ +ac +ak +ak +ac +ac +ac +ac +aZ "} (37,1,1) = {" ah @@ -5267,15 +5327,15 @@ cR gf ct cR -ah -ah -ah -ah -ah -ah -ah -ah -ah +aZ +ak +ak +ak +ak +ac +ac +ac +Zs "} (38,1,1) = {" ah @@ -5296,16 +5356,16 @@ bx dV ct ct -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +aZ +aZ +ac +ak +ak +ak +ak +ak +ac +aZ "} (39,1,1) = {" ah @@ -5326,16 +5386,16 @@ cu cb ae ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +OA +cl +do +ac +ak +ak +ak +ac +aZ +aS "} (40,1,1) = {" ah @@ -5356,15 +5416,15 @@ fr cc ah ah +do +aS +bq ah +aZ +aZ ah -ah -ah -ah -ah -ah -ah -ah +aZ +aS ah "} (41,1,1) = {" @@ -5387,13 +5447,13 @@ cc ah ah ah +aZ +do ah ah -ah -ah -ah -ah -ah +do +aZ +ba ah ah "} @@ -5419,12 +5479,12 @@ ah ah ah ah +bF ah ah ah ah -ah -ah +aZ ah "} (43,1,1) = {" @@ -5445,15 +5505,15 @@ ce ce ce ah +aZ +cl ah ah ah +aZ +aS ah -ah -ah -ah -ah -ah +cl ah ah "} @@ -5476,7 +5536,7 @@ ah ah ah ah -ah +bq ah ah ah diff --git a/_maps/RandomZLevels/away_mission/moonoutpost19.dmm b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm index 177a7af984..f342f8e36b 100644 --- a/_maps/RandomZLevels/away_mission/moonoutpost19.dmm +++ b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm @@ -3664,7 +3664,8 @@ /area/awaymission/moonoutpost19/research) "hk" = ( /obj/structure/alien/weeds, -/obj/structure/alien/egg, +/obj/structure/bed/nest, +/obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid{ heat_capacity = 1e+006; initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251" @@ -26666,7 +26667,7 @@ ac ad ad ad -hk +ag ag ad ad @@ -26925,7 +26926,7 @@ ai ag ag ai -hk +ag ai ad ad @@ -27178,10 +27179,10 @@ ac ac ad ad -hk +ag ai ai -hk +ag aM ai ag @@ -27437,7 +27438,7 @@ ad ai ai aD -aj +hk ai ai aD @@ -27693,7 +27694,7 @@ ac ad ai ai -aj +hk ai aT av diff --git a/_maps/RandomZLevels/away_mission/research.dmm b/_maps/RandomZLevels/away_mission/research.dmm index e73fa81501..6acf819cc4 100644 --- a/_maps/RandomZLevels/away_mission/research.dmm +++ b/_maps/RandomZLevels/away_mission/research.dmm @@ -6417,7 +6417,6 @@ /area/awaymission/research/interior/maint) "Hs" = ( /obj/structure/table/wood, -/obj/item/book/granter/crafting_recipe/bone_bow, /turf/open/floor/mineral/plasma, /area/space/nearstation) "Km" = ( diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index ea760cd55a..028d531f17 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -65,9 +65,6 @@ }, /turf/open/floor/plasteel, /area/security/office) -"aai" = ( -/turf/closed/wall/r_wall, -/area/security/prison) "aam" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -258,16 +255,6 @@ name = "Prison Cafeteria" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -393,16 +380,6 @@ /turf/open/space, /area/space/nearstation) "aaU" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -495,7 +472,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/closed/wall, +/turf/closed/wall/r_wall, /area/security/execution/transfer) "abf" = ( /obj/effect/turf_decal/tile/neutral, @@ -1359,6 +1336,9 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, /turf/open/floor/plasteel/dark, /area/security/prison) "adb" = ( @@ -1571,7 +1551,7 @@ /area/security/office) "adD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, +/turf/closed/wall, /area/security/prison/cells) "adF" = ( /obj/machinery/door/airlock/security/glass{ @@ -1580,16 +1560,6 @@ req_access_txt = "2" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -1606,16 +1576,6 @@ req_access_txt = "2" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -1628,7 +1588,7 @@ /area/security/prison/upper) "adJ" = ( /obj/machinery/door/airlock/security/glass{ - name = "Permabrig Visitation"; + name = "Prison Visitation"; req_access_txt = "2" }, /obj/effect/turf_decal/tile/neutral, @@ -1812,33 +1772,12 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solars/starboard/fore) -"aeb" = ( -/obj/structure/table, -/obj/item/storage/box/handcuffs{ - pixel_y = 10 - }, -/obj/item/storage/box/prisoner{ - pixel_y = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "aed" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/obj/machinery/disposal/deliveryChute, +/obj/machinery/disposal/deliveryChute{ + name = "Prisoner Chute" + }, /obj/structure/plasticflaps/opaque{ name = "Prisoner Transfer" }, @@ -1881,6 +1820,9 @@ /obj/machinery/light{ dir = 1 }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, /turf/open/floor/plasteel, /area/security/prison) "aei" = ( @@ -1964,9 +1906,6 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 30 - }, /turf/open/floor/plasteel, /area/security/prison) "aep" = ( @@ -2785,14 +2724,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/showroomfloor, /area/security/brig) -"afJ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 1; - pixel_y = -27 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) "afK" = ( /obj/structure/table/glass, /obj/machinery/computer/med_data/laptop, @@ -4653,6 +4584,9 @@ }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, /turf/open/floor/plasteel/dark, /area/security/brig) "aiJ" = ( @@ -52010,9 +51944,22 @@ /obj/item/folder/blue, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"cRq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "cSp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, +/turf/closed/wall, /area/security/prison/upper) "cSA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52562,22 +52509,6 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"dfj" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) "dfL" = ( /obj/structure/reagent_dispensers/keg/gargle, /turf/open/floor/wood, @@ -52748,16 +52679,6 @@ name = "Prison Cafeteria" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -53114,6 +53035,17 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) +"efs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/security/prison/upper) "efO" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -53366,7 +53298,7 @@ }, /obj/machinery/camera{ c_tag = "Prison Forestry"; - dir = 4; + dir = 8; network = list("ss13","prison") }, /turf/open/floor/plasteel, @@ -53990,24 +53922,33 @@ }, /turf/open/floor/wood, /area/service/bar) -"fgd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) "fgl" = ( /obj/structure/closet/crate/bin, /obj/item/coin/silver, /turf/open/floor/carpet/arcade, /area/commons/arcade) +"fgy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "permacells3"; + name = "Privacy Shutters"; + pixel_y = -25 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "fhu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54996,16 +54937,6 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -55317,9 +55248,6 @@ }, /turf/open/floor/plating, /area/construction) -"gWo" = ( -/turf/closed/wall, -/area/security/range) "gXs" = ( /obj/structure/lattice, /turf/open/space/basic, @@ -55631,6 +55559,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/cafeteria, /area/security/prison/upper) +"hvJ" = ( +/obj/item/toy/plush/beeplushie, +/turf/open/floor/padded, +/area/security/execution/transfer) "hxg" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -55729,6 +55661,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/security/prison/upper) +"hJP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/execution/transfer) "hKo" = ( /obj/structure/cable{ icon_state = "0-2" @@ -56160,16 +56102,6 @@ /obj/machinery/door/airlock{ name = "Permabrig Showers" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -56499,6 +56431,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/command/heads_quarters/captain) +"jge" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/space/nearstation) "jgm" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -56612,8 +56548,6 @@ /area/commons/arcade) "jqK" = ( /obj/structure/rack, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, /obj/effect/spawner/lootdrop/prison_contraband, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -56702,16 +56636,6 @@ "jxx" = ( /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -56801,6 +56725,10 @@ dir = 4 }, /area/service/theater) +"jCV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/side, +/area/security/prison/upper) "jDr" = ( /obj/machinery/door/poddoor/preopen{ id = "atmos"; @@ -56956,13 +56884,6 @@ }, /turf/open/floor/wood, /area/maintenance/port/aft) -"jJP" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "jKc" = ( /obj/structure/closet/secure_closet/injection, /obj/machinery/firealarm{ @@ -56980,6 +56901,27 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) +"jKj" = ( +/obj/structure/table, +/obj/item/razor, +/obj/item/toy/plush/borgplushie{ + desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy."; + force = 1; + name = "dogborg plushie"; + throwforce = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "jKm" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -57047,16 +56989,6 @@ /turf/open/floor/plasteel, /area/security/prison) "jOB" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -57130,7 +57062,7 @@ /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/security/prison/upper) "jTy" = ( /obj/machinery/washing_machine, @@ -57275,9 +57207,9 @@ dir = 4 }, /obj/machinery/button/door{ - id = "permacells4"; + id = "permacells3"; name = "Privacy Shutters"; - pixel_y = 25 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/security/prison/cells) @@ -57542,10 +57474,6 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -58450,16 +58378,6 @@ /area/hallway/secondary/entry) "lBk" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -58778,6 +58696,9 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/prison/cells) "lZs" = ( @@ -58892,7 +58813,7 @@ /area/commons/fitness/pool) "mhv" = ( /obj/machinery/door/airlock/security/glass{ - name = "Visitation Observation"; + name = "Prison Visitation Observation"; req_access_txt = "2" }, /obj/effect/turf_decal/tile/neutral, @@ -59144,16 +59065,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Prison Common Room" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, @@ -60146,6 +60057,9 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/space, /area/space/nearstation) +"nZh" = ( +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "nZs" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -60439,6 +60353,9 @@ /obj/machinery/recharger, /obj/item/gun/energy/laser/practice, /obj/item/gun/energy/laser/practice, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, /turf/open/floor/plasteel, /area/security/range) "owa" = ( @@ -60701,7 +60618,7 @@ "oVL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/security/prison/upper) "oVN" = ( /obj/machinery/meter, @@ -60822,16 +60739,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Prison Common Room" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/security/prison/upper) @@ -60995,6 +60902,10 @@ /obj/machinery/gateway/centerstation, /turf/open/floor/plasteel/dark, /area/command/gateway) +"pta" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/space/nearstation) "pub" = ( /obj/machinery/light_switch{ pixel_x = -20 @@ -61093,9 +61004,9 @@ "pBd" = ( /obj/machinery/power/apc{ areastring = "/area/maintenance/prison/starboard"; - dir = 8; - name = "Prison Starboard Maintenance APC"; - pixel_x = -25 + dir = 4; + name = "Prison Central Maintenance APC"; + pixel_x = 24 }, /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, @@ -61219,7 +61130,7 @@ network = list("ss13","prison") }, /obj/structure/chair/stool, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/corner, /area/security/prison/upper) "pHO" = ( /obj/effect/turf_decal/tile/blue, @@ -61229,7 +61140,13 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "pIR" = ( -/obj/structure/closet/secure_closet/brig, +/obj/structure/table, +/obj/item/storage/box/handcuffs{ + pixel_y = 10 + }, +/obj/item/storage/box/prisoner{ + pixel_y = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -61243,7 +61160,6 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/effect/turf_decal/bot_white, /obj/machinery/camera{ c_tag = "Prison Hallway West"; network = list("ss13","prison") @@ -61328,21 +61244,37 @@ /area/hallway/primary/central) "pRi" = ( /obj/structure/table, -/obj/item/razor, -/obj/item/toy/plush/borgplushie{ - desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy."; - force = 1; - name = "dogborg plushie"; - throwforce = 1 +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = -4; + pixel_y = 1 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/item/reagent_containers/glass/bottle/chloralhydrate, +/obj/item/reagent_containers/glass/bottle/toxin{ + pixel_x = 6; + pixel_y = 8 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/glass/bottle/facid{ + name = "fluorosulfuric acid bottle"; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/reagent_containers/dropper, +/obj/machinery/airalarm/directional/west, +/obj/item/assembly/signaler{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) "pRj" = ( @@ -61555,9 +61487,6 @@ dir = 4 }, /obj/effect/turf_decal/tile/red, -/obj/machinery/light{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, @@ -62349,16 +62278,6 @@ /turf/open/floor/plasteel, /area/commons/dorms) "ruu" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -62664,11 +62583,6 @@ /obj/machinery/status_display/evac, /turf/closed/wall, /area/ai_monitored/command/storage/eva) -"rQy" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space/basic, -/area/space) "rQJ" = ( /obj/machinery/light/small{ dir = 8 @@ -63247,7 +63161,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/turf/closed/wall, +/turf/closed/wall/r_wall, /area/security/execution/transfer) "sKL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -63287,11 +63201,28 @@ /obj/item/storage/secure/briefcase, /turf/open/floor/plasteel, /area/commons/locker) +"sNg" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/security/execution/transfer) "sNj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/security/prison/upper) "sOs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63628,7 +63559,7 @@ /area/commons/cryopod) "tqk" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall, +/turf/closed/wall/r_wall, /area/security/execution/transfer) "tqB" = ( /obj/effect/turf_decal/stripes/line{ @@ -63945,10 +63876,6 @@ /turf/open/floor/wood, /area/service/theater) "tJE" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Isolation Cell"; - req_access_txt = "2" - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -63959,6 +63886,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/door/airlock/grunge{ + name = "Isolation Cell"; + req_access_txt = "2"; + wiretypepath = /datum/wires/airlock/security + }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) "tJK" = ( @@ -64040,6 +63972,10 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, /turf/open/floor/plasteel, /area/security/prison/cells) "tOq" = ( @@ -64150,6 +64086,18 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"tYd" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "tYg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -64762,7 +64710,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/security/prison/upper) "uUP" = ( /obj/structure/cable/white, @@ -65234,19 +65182,12 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "vCS" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, /obj/structure/cable{ icon_state = "4-8" }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) "vEi" = ( @@ -65547,6 +65488,11 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) +"wbw" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/floor/plating, +/area/space/nearstation) "wbE" = ( /obj/effect/turf_decal/tile/blue{ alpha = 255 @@ -65681,7 +65627,9 @@ dir = 8; light_color = "#e8eaff" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/security/prison/upper) "wlg" = ( /obj/structure/cable{ @@ -65920,10 +65868,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"wDq" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) "wGc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -66045,25 +65989,16 @@ }, /area/maintenance/starboard/aft) "wVq" = ( -/obj/machinery/door/airlock/security{ - name = "Prison Workshop" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/door/airlock/grunge{ + name = "Prison Workshop"; + wiretypepath = /datum/wires/airlock/security + }, /turf/open/floor/plasteel/dark, /area/security/prison/upper) "wVt" = ( @@ -66295,23 +66230,14 @@ /turf/open/floor/plating, /area/hallway/secondary/service) "xjU" = ( -/obj/machinery/door/airlock/security{ - name = "Permabrig Visitation" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Prison Visitation"; + wiretypepath = /datum/wires/airlock/security + }, /turf/open/floor/plasteel/dark, /area/security/prison/upper) "xkd" = ( @@ -66370,16 +66296,6 @@ req_access_txt = "2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) "xpH" = ( @@ -66804,21 +66720,6 @@ /obj/effect/landmark/carpspawn, /turf/open/space, /area/space/station_ruins) -"xUC" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) "xUL" = ( /obj/effect/turf_decal/bot_white/right, /obj/effect/turf_decal/tile/neutral{ @@ -66923,6 +66824,10 @@ /obj/item/seeds/ambrosia, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"ybb" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison/upper) "ycd" = ( /obj/structure/toilet/secret/low_loot{ dir = 4 @@ -66993,33 +66898,11 @@ /obj/machinery/status_display/evac, /turf/closed/wall, /area/hallway/primary/central) -"yeU" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/landmark/start/prisoner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "permacells5"; - name = "Privacy Shutters"; - pixel_y = 25 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison/cells) "yeZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/turf/closed/wall, +/turf/closed/wall/r_wall, /area/security/execution/transfer) "yfX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -82046,8 +81929,8 @@ aaf aaf aaa aaa -gXs aaa +gXs aaa ktS aaa @@ -82303,8 +82186,8 @@ aaa aaf aaa aaa -gXs aaa +gXs aaa ktS aaa @@ -82820,7 +82703,7 @@ aaa aaa gXs aaa -ktS +aaa aaa aaa ajV @@ -83848,7 +83731,7 @@ aaa aaa gXs aaa -ktS +aaa aaa aaa ajV @@ -84105,7 +83988,7 @@ aaa aaa gXs aaa -ktS +aaa aaa aaa aaa @@ -84613,14 +84496,14 @@ acW pry adA aaf -aaf +aba aaa aaa aaa aaa aaa -ktS -wDq +aaa +quT aaa aaa alU @@ -84876,8 +84759,8 @@ aaa aaa aaa aaa -ktS -rQy +aaa +eRz aaa aaa alU @@ -85132,7 +85015,7 @@ gXs gXs gXs gXs -gXs +quT eRz aaT aaf @@ -85390,7 +85273,7 @@ aaa aaa gXs aaa -ktS +aaa aaa aaa aaa @@ -86155,7 +86038,7 @@ aaa aaa aaa aaa -gXs +quT aaa aaa aaa @@ -86406,7 +86289,7 @@ aaa eRz eRz eRz -gXs +quT gXs aaa aaa @@ -86416,7 +86299,7 @@ eRz aaa aaa aaa -gXs +quT aaa aaa aaa @@ -86673,7 +86556,7 @@ eRz aaa aaa aaa -gXs +eRz aaa aaa aaa @@ -87174,7 +87057,7 @@ eRz aaa aaa aaa -gXs +quT aaa aaa aaa @@ -87183,7 +87066,7 @@ aaa aaa aaa aaa -eRz +wbw aaa aaa aaa @@ -87440,7 +87323,7 @@ aaa aae aaa aaa -eRz +jge aaa aaa aaa @@ -87697,7 +87580,7 @@ aaa aaa aaa aaa -gXs +jge aaa aaa aaa @@ -87950,11 +87833,11 @@ mbC mbC mbC mbC -gXs -jJP -gXs -gXs -gXs +mbC +hEL +mbC +mbC +jge gXs gXs gXs @@ -88204,18 +88087,18 @@ lJA mvV tso abc +hvJ dIZ -dIZ +abc +jvO +sNg +hJP mbC -abc -abc -hEL -abc +jge aaa aaa aaa -aaa -gXs +pta aaa aaa aaa @@ -88455,24 +88338,24 @@ wnX mAT mAT lJA -yeU +giE rBK lJA -giE +fgy rBK abc obs rBY -mbC -jvO -dfj -fgd abc -aaa -aaa -aaa -aaa +rgu +fbr +mCm +mbC +mbC gXs +gXs +gXs +jge aaa aaa aaa @@ -88720,16 +88603,16 @@ ejr abc tJE hEL +abc +tYd +cRq +gcX +jKj mbC -rgu -fbr -mCm -abc -abc abu abu abu -abc +mbC aaa aaa aaa @@ -88978,9 +88861,9 @@ xnF pFj kcB gyy -xUC +mCo vCS -gcX +nZh pRi rsn qIW @@ -89234,7 +89117,7 @@ lAD lJA lJA lJA -szn +lJA ili waX mCo @@ -89491,7 +89374,7 @@ wVt gSj vYF txs -szn +lJA jKc mjJ eJu @@ -89748,7 +89631,7 @@ xNV gxK dJu fbY -szn +lJA abd khO enB @@ -90005,7 +89888,7 @@ cCr lJA lJA lJA -szn +lJA noJ uql afu @@ -90014,7 +89897,7 @@ wdr itQ pgn tmO -gWo +sXV xUe aiU aiT @@ -90262,7 +90145,7 @@ lHK nRO vYF txs -szn +lJA ksa dQS afu @@ -90271,7 +90154,7 @@ pDe dly mnC mcp -gWo +sXV oDm ibK akb @@ -90519,7 +90402,7 @@ xNV oTx nko vFZ -szn +lJA noJ uql afw @@ -90759,7 +90642,7 @@ cTo ltm kkb xfW -aaN +ybb kMn rDc grd @@ -90776,8 +90659,8 @@ abt lJA lJA lJA -szn -aeb +lJA +noJ uql afv agf @@ -90785,7 +90668,7 @@ acd dly xxp mcp -gWo +sXV gDP lAH lNH @@ -91016,7 +90899,7 @@ kfG uJY vhC tLC -aaN +ybb uLB kGj acG @@ -91033,7 +90916,7 @@ wVt pZD vYF tCs -szn +lJA pIR aeL afy @@ -91547,7 +91430,7 @@ lJA lJA lJA lJA -szn +lJA aeg ryN afA @@ -92064,7 +91947,7 @@ aat adH aem ikv -afJ +adp sXV sXV sXV @@ -92303,7 +92186,7 @@ msp pHK wkU sNj -rDm +efs acG sAT rqq @@ -92318,7 +92201,7 @@ acd ozh abK acY -aai +acd aeh lJS ado @@ -92575,7 +92458,7 @@ abA jNN jRV hkA -aai +acd aek acp aav @@ -92814,7 +92697,7 @@ aaa aaa uKW tAS -tAS +jCV eoR tAS ooF @@ -92832,7 +92715,7 @@ aei fFR acE add -aai +acd aej aeQ adp @@ -93071,7 +92954,7 @@ gXs gXs uKW oIl -tAS +jCV eoR ecB dnX @@ -93089,7 +92972,7 @@ acG acG acG acG -adI +acG xKl omX afG @@ -93346,7 +93229,7 @@ etr tyb abL adb -adI +acG ael aeO afF @@ -93603,7 +93486,7 @@ oPY ncU lvc epG -adI +acG aen aeO afG @@ -93860,7 +93743,7 @@ eDf oXV acH adc -adI +acG aeo aev aeS @@ -94374,7 +94257,7 @@ xib acG acD cNi -adI +acG aeq aeV agj diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 9279c8f11b..5b5885aca6 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -95,49 +95,161 @@ /turf/open/floor/plating, /area/security/prison) "aaA" = ( -/obj/machinery/seed_extractor, -/obj/machinery/light/small{ - dir = 8 +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = -4; + pixel_y = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/item/reagent_containers/glass/bottle/chloralhydrate{ + name = "chloral hydrate bottle" + }, +/obj/item/reagent_containers/glass/bottle/toxin{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/glass/bottle/facid{ + name = "fluorosulfuric acid bottle"; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/reagent_containers/dropper, +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/button/ignition{ + id = "executionburn"; + name = "Justice Ignition Switch"; + pixel_x = -25; + pixel_y = 36 + }, +/obj/machinery/button/door{ + id = "executionfireblast"; + name = "Justice Area Lockdown"; + pixel_x = -25; + pixel_y = 26; + req_access_txt = "2" + }, +/obj/item/assembly/signaler{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/machinery/button/flasher{ + id = "justiceflash"; + name = "Justice Flash Control"; + pixel_x = -36; + pixel_y = 36; + req_access_txt = "1" + }, +/obj/machinery/button/door{ + id = "SecJusticeChamber"; + layer = 4; + name = "Justice Vent Control"; + pixel_x = -36; + pixel_y = 26; + req_access_txt = "3" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaB" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/table, +/obj/item/folder/red{ + pixel_x = 3 }, -/obj/item/kirbyplants{ - icon_state = "plant-03" +/obj/item/taperecorder{ + pixel_x = -3 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/item/storage/fancy/cigarettes, +/obj/item/assembly/flash/handheld, +/obj/item/reagent_containers/spray/pepper, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaC" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"aaD" = ( /obj/structure/sink/kitchen{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/area/security/prison) -"aaD" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/item/kirbyplants, -/turf/open/floor/plasteel, -/area/security/prison) -"aaE" = ( -/obj/machinery/biogenerator, -/obj/machinery/light/small{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/machinery/camera{ - c_tag = "Prison Hydroponics"; - network = list("ss13","prison") +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"aaE" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/execution/education"; + dir = 1; + name = "Prisoner Education Chamber APC"; + pixel_y = 23 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/structure/closet/secure_closet/injection{ + name = "educational injections"; + pixel_x = 2 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaF" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -146,82 +258,87 @@ /turf/open/floor/plating, /area/security/prison) "aaG" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/seeds/ambrosia, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -29 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaH" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/chair/office/dark{ + dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaI" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, /turf/open/floor/plasteel, /area/security/prison) -"aaJ" = ( -/obj/item/reagent_containers/glass/bucket, +"aaK" = ( /obj/structure/cable/yellow{ - icon_state = "4-8" + icon_state = "1-2" }, +/obj/machinery/light_switch{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"aaL" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/prison) -"aaK" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/seeds/glowshroom, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaL" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ icon_state = "0-8" }, /turf/open/floor/plating, /area/security/prison) -"aaP" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/cultivator, -/obj/item/seeds/carrot, -/turf/open/floor/plasteel, -/area/security/prison) "aaQ" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaR" = ( /turf/open/floor/plasteel, /area/security/prison) "aaS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"aaT" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/plant_analyzer, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"aaT" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -242,30 +359,6 @@ "aaZ" = ( /turf/closed/wall/r_wall, /area/security/execution/education) -"aba" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/cable/yellow, -/turf/open/floor/plating, -/area/security/prison) -"abb" = ( -/obj/machinery/door/airlock/public/glass{ - id_tag = "permahydro"; - name = "Hydroponics Module" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"abc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/prison) "abd" = ( /obj/machinery/vending/cola/random, /obj/structure/sign/poster/official/pda_ad600{ @@ -294,39 +387,22 @@ /turf/open/floor/plating, /area/security/execution/education) "abh" = ( -/obj/item/soap/nanotrasen, -/obj/item/bikehorn/rubberducky, -/obj/machinery/shower{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abi" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abj" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/easel, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/canvas/twentythreeXtwentythree, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/upper) +"abj" = ( +/obj/item/storage/bag/trash, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/prison) "abk" = ( /obj/structure/kitchenspike_frame, /obj/effect/decal/cleanable/blood/gibs/old, @@ -336,73 +412,105 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "abl" = ( -/obj/structure/table, -/obj/machinery/computer/libraryconsole/bookmanagement, -/turf/open/floor/plasteel, -/area/security/prison) -"abm" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = 32 - }, -/obj/machinery/vr_sleeper, -/turf/open/floor/plasteel, -/area/security/prison) -"abn" = ( -/obj/machinery/newscaster{ - pixel_y = 32 +/obj/effect/turf_decal/stripes/line, +/obj/machinery/camera{ + c_tag = "Prison Workshop"; + dir = 8; + network = list("ss13","prison") }, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/upper) "abo" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/item/tank/internals/oxygen/red{ + pixel_x = -4; + pixel_y = -1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/item/tank/internals/oxygen/red{ + pixel_x = 4; + pixel_y = -1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"abp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-8" +/obj/item/tank/internals/anesthetic{ + pixel_x = 2 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/item/wrench, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "abq" = ( -/obj/structure/holohoop{ - pixel_y = 29 +/obj/structure/table/glass, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_y = 6 }, -/obj/item/toy/beach_ball/holoball, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, /area/security/prison) "abr" = ( -/obj/machinery/status_display/evac{ - pixel_y = 32 +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/firealarm{ + pixel_y = 24 }, -/turf/open/floor/plasteel/cafeteria, +/turf/open/floor/plasteel/white, /area/security/prison) "abs" = ( -/obj/machinery/washing_machine, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/table/glass, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_y = 6 + }, +/obj/machinery/camera{ + c_tag = "Prison Sanitarium"; + network = list("ss13","prison") + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, +/turf/open/floor/plasteel/white, /area/security/prison) "abt" = ( /obj/machinery/vending/hydroseeds{ @@ -459,52 +567,31 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "abA" = ( -/obj/machinery/shower{ +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"abB" = ( +/turf/closed/wall, +/area/maintenance/prison) +"abC" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abB" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Unisex Showers" - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abC" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "abD" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/security/prison) -"abF" = ( -/obj/structure/table, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 5 +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 }, /turf/open/floor/plasteel, -/area/security/prison) -"abG" = ( -/obj/structure/table, -/obj/item/toy/cards/deck, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "abH" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -530,38 +617,36 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "abI" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/white, /area/security/prison) "abJ" = ( -/obj/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, +/turf/open/floor/plasteel/white, /area/security/prison) "abK" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, +/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/cafeteria, +/turf/open/floor/plasteel/white, /area/security/prison) "abL" = ( /turf/open/floor/plating, @@ -577,10 +662,10 @@ name = "Solar Maintenance"; req_access_txt = "10; 13" }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/solars/port/fore) "abV" = ( @@ -618,40 +703,35 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "abY" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restroom" +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abZ" = ( -/obj/structure/table, -/obj/item/book/manual/chef_recipes{ - pixel_x = 2; - pixel_y = 6 +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/item/clothing/head/chefhat, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/security/prison) -"aca" = ( -/obj/structure/table, +/area/security/prison/cells) +"abZ" = ( /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/toy/cards/deck, -/obj/item/toy/cards/deck, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "acb" = ( -/obj/structure/table, -/obj/item/storage/dice, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, /turf/open/floor/plasteel, -/area/security/prison) -"acc" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "acd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ @@ -663,50 +743,63 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "ace" = ( -/obj/machinery/vending/sustenance{ - desc = "A vending machine normally reserved for work camps."; - name = "\improper sustenance vendor"; - product_slogans = "Enjoy your meal.;Enough calories to support any worker." +/obj/item/folder/red, +/obj/item/pen, +/obj/structure/table/glass, +/obj/item/folder/white{ + pixel_x = -4; + pixel_y = 2 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, /area/security/prison) "acf" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/obj/structure/table, +/obj/item/storage/box/prisoner{ + pixel_y = 8 + }, +/obj/item/storage/box/prisoner, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "acg" = ( -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/structure/cable/yellow{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, /area/security/prison) "ach" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Security External Airlock"; - req_access_txt = "1" - }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/dark, /area/security/prison) "acj" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/closet/secure_closet/brig, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "ack" = ( /obj/structure/lattice/catwalk, @@ -739,514 +832,375 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "acp" = ( -/obj/machinery/light/small{ +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/structure/toilet/secret/prison{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) +/turf/open/floor/plasteel, +/area/security/prison/cells) "acq" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets{ - pixel_x = 2; - pixel_y = 1 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/security/prison) +/turf/open/floor/plasteel, +/area/security/prison/cells) "acr" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/prison) -"acs" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "act" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/holohoop{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Prison Yard"; + dir = 8; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/prison) +"acy" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/orange, +/obj/item/restraints/handcuffs, +/obj/item/reagent_containers/spray/pepper, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acD" = ( +/obj/structure/punching_bag, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/security/prison/cells) +"acF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison) +"acL" = ( +/obj/structure/table, +/obj/item/clothing/under/rank/prisoner/skirt{ + pixel_x = -13; + pixel_y = 5 + }, +/obj/item/clothing/under/rank/prisoner/skirt{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/prison) +"acN" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acO" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acR" = ( +/obj/structure/closet/secure_closet/brig, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/toilet{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"acW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"acX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Permanent Cell 3"; + wiretypepath = /datum/wires/airlock/security + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"acY" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"ada" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adb" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/security/prison/cells) +"adc" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/security/prison) +"add" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/prison/cells) +"ade" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"adf" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"adg" = ( /obj/structure/cable/yellow{ - icon_state = "1-8" + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"adh" = ( +/obj/structure/closet/secure_closet/brig, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"adi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, /obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acu" = ( -/obj/machinery/holopad, /obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acv" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"acw" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acx" = ( -/obj/machinery/cryopod{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acy" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod Two" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/security/prison) -"acA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acB" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acC" = ( -/obj/machinery/door/window/brigdoor{ - name = "Justice Chamber"; - req_access_txt = "3" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Justice Chamber"; - req_access_txt = "3" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acD" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/security/prison) -"acE" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/security/prison) -"acF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/security/prison) -"acG" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/item/kirbyplants{ - icon_state = "plant-13" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_y = -28; - prison_radio = 1 - }, -/obj/machinery/camera{ - c_tag = "Prison Chamber"; - dir = 1; - network = list("ss13","prison") - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acI" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"acL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/security/prison) -"acM" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/computer/cryopod{ - dir = 8; - pixel_x = 26 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acN" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_y = 6 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"acO" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/table/glass, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/reagent_containers/dropper, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"acR" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_y = 6 - }, -/obj/machinery/camera{ - c_tag = "Prison Sanitarium"; - network = list("ss13","prison") - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"acV" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/reagent_containers/glass/bottle/chloralhydrate{ - name = "chloral hydrate bottle" - }, -/obj/item/reagent_containers/glass/bottle/toxin{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/glass/bottle/facid{ - name = "fluorosulfuric acid bottle"; - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/reagent_containers/syringe{ - pixel_y = 5 - }, -/obj/item/reagent_containers/dropper, -/obj/machinery/airalarm/all_access{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/button/ignition{ - id = "executionburn"; - name = "Justice Ignition Switch"; - pixel_x = -25; - pixel_y = 36 - }, -/obj/machinery/button/door{ - id = "executionfireblast"; - name = "Justice Area Lockdown"; - pixel_x = -25; - pixel_y = 26; - req_access_txt = "2" - }, -/obj/item/assembly/signaler{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/machinery/button/flasher{ - id = "justiceflash"; - name = "Justice Flash Control"; - pixel_x = -36; - pixel_y = 36; - req_access_txt = "1" - }, -/obj/machinery/button/door{ - id = "SecJusticeChamber"; - layer = 4; - name = "Justice Vent Control"; - pixel_x = -36; - pixel_y = 26; - req_access_txt = "3" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acW" = ( -/obj/structure/table, -/obj/item/folder/red{ - pixel_x = 3 - }, -/obj/item/taperecorder{ - pixel_x = -3 - }, -/obj/item/storage/fancy/cigarettes, -/obj/item/assembly/flash/handheld, -/obj/item/reagent_containers/spray/pepper, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acX" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acY" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"ada" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/security/prison) -"adb" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell3"; - name = "Cell Shutters" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt3"; - name = "Cell 3" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) -"adc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/prison) -"add" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell2"; - name = "Cell Shutters" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt2"; - name = "Cell 2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) -"ade" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell1"; - name = "Cell Shutters" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt1"; - name = "Cell 1" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) -"adf" = ( -/obj/machinery/light/small{ - dir = 4 + icon_state = "0-8" }, /turf/open/floor/plating, /area/security/prison) -"adg" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/mask/muzzle, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adh" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adi" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/mask/muzzle, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/security/prison) "adk" = ( /obj/structure/sign/poster/contraband/scum{ pixel_y = -32 @@ -1264,156 +1218,210 @@ /turf/open/floor/plating, /area/maintenance/fore) "adm" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -29 +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"adn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/bed{ + dir = 8 + }, +/obj/item/bedsheet/red{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel/dark, -/area/security/execution/education) +/area/security/prison/cells) +"adn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/button/door{ + id = "permacells3"; + name = "Privacy Shutters"; + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "ado" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "permacells3"; + name = "Privacy Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison/cells) "adp" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/dark, /area/security/execution/education) "adq" = ( /obj/structure/cable/yellow{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 28 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, -/obj/machinery/light{ +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adr" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"ads" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adu" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adv" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adx" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ady" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + id_tag = "permaouter"; + name = "Permabrig Transfer"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/security/execution/education) -"adr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/security/execution/education) -"ads" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 3"; - network = list("ss13","prison") - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adt" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt3"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adu" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 2"; - network = list("ss13","prison") - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adv" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/plasteel, -/area/security/prison) -"adw" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt2"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/security/prison) -"adx" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 1"; - network = list("ss13","prison") - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ady" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt1"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/turf/open/floor/plasteel, /area/security/prison) "adz" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 }, +/turf/open/floor/plasteel, /area/security/prison) "adA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/light{ +/obj/structure/table, +/obj/item/storage/box/bodybags{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/pen, +/obj/item/storage/box/prisoner, +/obj/machinery/camera{ + c_tag = "Prison Hallway Aft"; + dir = 1; + network = list("ss13","prison") + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adB" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/computer/security/telescreen/prison{ + dir = 1; + pixel_y = -27 }, -/turf/open/floor/plasteel/white, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, /area/security/prison) "adC" = ( -/obj/machinery/flasher{ - id = "insaneflash"; - pixel_x = 26 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, +/obj/structure/cable/yellow, +/turf/open/floor/plating, /area/security/prison) "adD" = ( /obj/structure/lattice, @@ -1435,12 +1443,11 @@ /turf/open/space/basic, /area/space) "adG" = ( -/obj/docking_port/stationary/random{ - id = "pod_lavaland2"; - name = "lavaland" +/obj/machinery/door/airlock/external{ + name = "Escape Pod Two" }, -/turf/open/space, -/area/space/nearstation) +/turf/open/floor/plating, +/area/security/prison) "adI" = ( /obj/structure/rack, /obj/item/hatchet, @@ -1469,150 +1476,82 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/education) -"adK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"adL" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) "adM" = ( -/obj/machinery/button/door{ - id = "prisonereducation"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -25; - specialfunctions = 4 +/obj/machinery/computer/arcade/orion_trail{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "adN" = ( -/obj/machinery/light_switch{ - pixel_x = 26 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, +/obj/structure/chair/stool, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"adO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/flasher{ - id = "PCell 3"; - pixel_x = -28 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/security/prison) -"adP" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adQ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/prison) -"adR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/flasher{ - id = "PCell 2"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adS" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adT" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/prison) -"adU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/flasher{ - id = "PCell 1"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adV" = ( -/obj/item/folder/red, -/obj/item/pen, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adO" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/prison/upper"; + damage_deflection = 21; + desc = "A control terminal for the area's electrical systems. It's secured with a durable antitampering plasteel cage."; + dir = 2; + name = "Armored Prison Wing Cells APC"; + pixel_y = -26 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adP" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adQ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adR" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adW" = ( /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adS" = ( /obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adX" = ( -/obj/structure/bed/roller, -/obj/structure/bed/roller, -/obj/machinery/iv_drip, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/prison) +/turf/open/floor/plasteel, +/area/security/prison/cells) "adY" = ( /turf/closed/wall/r_wall, /area/security/warden) @@ -1621,12 +1560,12 @@ /turf/open/floor/plating, /area/maintenance/solars/port/fore) "aef" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) "aeg" = ( @@ -1664,84 +1603,72 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "aej" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - aiControlDisabled = 1; - id_tag = "prisonereducation"; - name = "Prisoner Education Chamber"; - req_access_txt = "3" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "permacells2"; + name = "Privacy Shutters" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ +/turf/open/floor/plating, +/area/security/prison/cells) +"aek" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/execution/education) -"aek" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Permanent Cell 2"; + wiretypepath = /datum/wires/airlock/security + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/security/prison) +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "ael" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "aem" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 3"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aen" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 2"; - req_access_txt = "2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeo" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 1"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aep" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Sanitarium"; - req_access_txt = "2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Permanent Cell 1"; + wiretypepath = /datum/wires/airlock/security + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"aen" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Visitation" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "aeq" = ( /turf/closed/wall/r_wall, /area/ai_monitored/security/armory) @@ -1836,38 +1763,6 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/education) -"aeI" = ( -/obj/item/tank/internals/oxygen/red{ - pixel_x = -4; - pixel_y = -1 - }, -/obj/item/tank/internals/oxygen/red{ - pixel_x = 4; - pixel_y = -1 - }, -/obj/item/tank/internals/anesthetic{ - pixel_x = 2 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/item/wrench, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) "aeJ" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 9 @@ -1886,275 +1781,162 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "aeK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeL" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'WARNING: Do Not Enter When Red Light Shows', detailing the penalties that any Nanotrasen employee or silicon will suffer if violating this rule."; - name = "WARNING: Do Not Enter When Red Light Shows"; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeM" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/button/door{ + id = "permacells2"; + name = "Privacy Shutters"; + pixel_x = -25 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"aeL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"aeN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "aeO" = ( -/obj/machinery/button/door{ - id = "permacell3"; - name = "Cell 3 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/button/flasher{ - id = "PCell 3"; - pixel_x = 6; - pixel_y = 24 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeP" = ( +/obj/effect/landmark/start/prisoner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = 30 - }, -/obj/machinery/camera{ - c_tag = "Prison Hallway Port"; - network = list("ss13","prison") - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeQ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeR" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeS" = ( /obj/machinery/button/door{ - id = "permacell2"; - name = "Cell 2 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" + id = "permacells1"; + name = "Privacy Shutters"; + pixel_x = 25 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id = "PCell 2"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "aeT" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = 30 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/light{ +/obj/machinery/camera{ + c_tag = "Security - EVA Storage"; dir = 1 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeW" = ( -/obj/machinery/button/door{ - id = "permacell1"; - name = "Cell 1 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security E.V.A. Storage"; + req_access_txt = "3" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id = "PCell 1"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeY" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeZ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = 26; + req_access_txt = "2" + }, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/structure/sign/warning/pods{ - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"afa" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/machinery/button/flasher{ - id = "insaneflash"; - pixel_y = 26 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"afb" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"afc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/security/prison) -"afd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/item/kirbyplants{ - icon_state = "plant-16" - }, -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'WARNING: Criminally Insane Inmates', describing the possible hazards of those contained within."; - name = "WARNING: Criminally Insane Inmates"; - pixel_y = 32 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, /turf/open/floor/plasteel, /area/security/prison) "aff" = ( @@ -2208,9 +1990,6 @@ }, /area/holodeck/rec_center) "afE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/door/airlock/external{ name = "Solar Maintenance"; req_access_txt = "10; 13" @@ -2218,133 +1997,95 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) "afF" = ( -/obj/item/kirbyplants{ - icon_state = "applebush" +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/bed, +/obj/item/bedsheet/red, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "afG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afH" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ +/obj/structure/toilet{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afI" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"afH" = ( +/turf/closed/wall, +/area/security/prison/cells) +"afI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afJ" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/structure/window/reinforced/tinted{ dir = 4 }, -/obj/machinery/newscaster/security_unit{ - pixel_y = -30 - }, -/obj/effect/turf_decal/tile/red{ +/obj/structure/toilet{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afK" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "afL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/obj/effect/decal/cleanable/dirt, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, /obj/effect/turf_decal/tile/red{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 + dir = 4; + pixel_x = -24 }, /turf/open/floor/plasteel, -/area/security/prison) -"afN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -30 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "afQ" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance"; @@ -2357,55 +2098,48 @@ /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "afR" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "1" }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, /area/security/prison) "afS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/prison) -"afT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/light, -/obj/effect/turf_decal/tile/red{ - dir = 1 +"afW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "1-8" }, -/turf/open/floor/plasteel, -/area/security/prison) -"afU" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ dir = 8 }, /obj/effect/turf_decal/tile/red{ dir = 1 }, /turf/open/floor/plasteel, -/area/security/prison) -"afV" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow, -/turf/open/floor/plating, -/area/security/prison) +/area/security/prison/cells) "afX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -2555,173 +2289,34 @@ icon_state = "platingdmg2" }, /area/maintenance/solars/port/fore) -"agE" = ( -/obj/structure/table, -/obj/item/folder/red{ - pixel_x = 3 - }, -/obj/item/folder/white{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agF" = ( -/obj/structure/rack, -/obj/item/restraints/handcuffs, -/obj/item/assembly/flash/handheld, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agG" = ( -/obj/structure/table, -/obj/item/storage/box/bodybags{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/pen, -/obj/item/storage/box/prisoner, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "agH" = ( -/obj/structure/closet/secure_closet/brig, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agI" = ( -/obj/structure/closet/secure_closet/brig, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agJ" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall, -/area/security/prison) -"agK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "1" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) +"agI" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "agL" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/prison) -"agM" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "1" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) "agN" = ( -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'WARNING: Dangerous Inmates'."; - name = "\improper WARNING: Dangerous Inmates" - }, /turf/closed/wall, -/area/security/prison) -"agO" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = -30 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agP" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) +/area/space) "agQ" = ( /obj/machinery/holopad{ pixel_y = -15 @@ -2844,83 +2439,22 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) -"ahu" = ( -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) "ahv" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ahw" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) "ahx" = ( /turf/closed/wall, /area/security/brig) -"ahy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "Security Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/brig) -"ahz" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "Security Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/brig) -"ahA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "Security Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/brig) "ahB" = ( /turf/closed/wall, /area/security/warden) @@ -3211,96 +2745,36 @@ /turf/open/floor/plating, /area/security/brig) "air" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/door/poddoor/shutters{ + id = "visitation"; + name = "Visitation Shutters" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/door/window/southright{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/security/brig) "ais" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/light/small, -/obj/machinery/camera{ - c_tag = "Security - EVA Storage"; +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) "ait" = ( -/obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ - name = "Security E.V.A. Storage"; - req_access_txt = "1" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aiu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aiv" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aiw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_x = 26; + name = "Prison Visitation"; req_access_txt = "2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/brig) "aix" = ( /obj/structure/closet{ @@ -3532,45 +3006,10 @@ "ajm" = ( /turf/closed/wall/r_wall, /area/security/brig) -"ajn" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) "ajo" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/brig) -"ajp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "1" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) "ajq" = ( /obj/structure/closet{ name = "Evidence Closet 2" @@ -8551,6 +7990,20 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"ayq" = ( +/obj/machinery/camera{ + c_tag = "Prison Central"; + dir = 8; + network = list("ss13","prison") + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "ayu" = ( /obj/machinery/door/window/northleft{ dir = 8; @@ -9615,6 +9068,16 @@ }, /turf/open/floor/plating, /area/maintenance/fore) +"aCJ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "aCM" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -9634,6 +9097,13 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) +"aDg" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "aDu" = ( /turf/closed/wall, /area/hallway/primary/fore) @@ -9873,6 +9343,10 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) +"aEv" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/station_ruins) "aEI" = ( /obj/machinery/airalarm{ dir = 4; @@ -11162,6 +10636,10 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) +"aME" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison/cells) "aMG" = ( /obj/structure/table, /obj/item/aiModule/core/full/asimov, @@ -14111,6 +13589,13 @@ }, /turf/open/floor/plasteel, /area/security/checkpoint/engineering) +"aZO" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison) "aZQ" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom{ @@ -15574,6 +15059,9 @@ /obj/structure/cable/yellow, /turf/open/floor/plating, /area/security/checkpoint/engineering) +"bgb" = ( +/turf/closed/wall/r_wall, +/area/security/prison/cells) "bgh" = ( /obj/structure/table/reinforced, /obj/item/paper_bin{ @@ -19505,6 +18993,15 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) +"bvX" = ( +/obj/item/stack/sticky_tape, +/obj/item/stack/sheet/cardboard{ + amount = 14 + }, +/obj/item/stack/packageWrap, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/security/prison/upper) "bvY" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -21883,11 +21380,6 @@ /obj/item/clothing/suit/hooded/wintercoat, /turf/open/floor/plating, /area/maintenance/department/science/xenobiology) -"bID" = ( -/obj/structure/cable, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "bIE" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -22836,6 +22328,14 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating, /area/maintenance/starboard) +"bQZ" = ( +/obj/structure/closet/crate, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/turf/open/floor/plating, +/area/security/prison/upper) "bRc" = ( /obj/structure/cable/yellow{ icon_state = "1-4" @@ -22892,6 +22392,13 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"bRR" = ( +/obj/item/soap/nanotrasen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "bSc" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -23175,6 +22682,22 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port) +"bTB" = ( +/obj/machinery/airalarm/directional/west, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "bTD" = ( /obj/machinery/vending/snack/random, /obj/machinery/newscaster{ @@ -41765,6 +41288,12 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"cKy" = ( +/obj/machinery/flasher{ + id = "visitorflash" + }, +/turf/closed/wall, +/area/security/brig) "cKz" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -45098,9 +44627,36 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/plasteel/white, /area/science/xenobiology) -"cUU" = ( -/obj/effect/landmark/start/prisoner, +"cUT" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, +/area/security/prison/upper) +"cUU" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "cUZ" = ( /obj/docking_port/stationary{ @@ -45801,6 +45357,18 @@ }, /turf/open/floor/circuit/telecomms, /area/science/xenobiology) +"dbx" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "dbG" = ( /obj/machinery/power/apc{ areastring = "/area/science/circuit"; @@ -48018,30 +47586,16 @@ }, /area/maintenance/starboard/fore) "dpy" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/security/prison"; - dir = 1; - name = "Prison Wing APC"; - pixel_x = 1; - pixel_y = 23 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/camera{ - c_tag = "Prison Hallway Starboard"; - network = list("ss13","prison") - }, -/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/prison) "dpF" = ( @@ -48206,6 +47760,15 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/maintenance/port/fore) +"dsC" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "dsL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, @@ -48395,6 +47958,16 @@ }, /turf/open/floor/plasteel/freezer, /area/commons/fitness/recreation) +"dve" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "dvg" = ( /obj/structure/chair/office/light{ dir = 8 @@ -48495,6 +48068,29 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) +"dwf" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + id_tag = "permaouter"; + name = "Permabrig Transfer"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "dwi" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -48601,6 +48197,17 @@ icon_state = "platingdmg3" }, /area/maintenance/port/aft) +"dxy" = ( +/obj/machinery/button/flasher{ + id = "IsolationFlash"; + pixel_x = -23; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "dxQ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -49045,6 +48652,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"dCu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison/upper) "dCx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -49184,13 +48795,10 @@ /turf/open/floor/plasteel/cafeteria, /area/service/kitchen) "dDj" = ( -/obj/structure/cable, -/obj/machinery/power/solar{ - id = "foreport"; - name = "Fore-Port Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solars/port/fore) +/obj/structure/lattice, +/obj/item/shard, +/turf/open/space/basic, +/area/space/nearstation) "dDo" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/white, @@ -49773,11 +49381,6 @@ }, /turf/open/floor/wood, /area/service/library) -"dSe" = ( -/obj/effect/landmark/xeno_spawn, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "dSm" = ( /obj/structure/table, /obj/machinery/microwave{ @@ -50112,6 +49715,15 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/service/chapel/main) +"eaE" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "eaK" = ( /obj/structure/chair/office/dark, /turf/open/floor/wood, @@ -50187,6 +49799,10 @@ }, /turf/open/floor/wood, /area/commons/vacant_room/office) +"edY" = ( +/obj/structure/window, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "eeb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -50356,6 +49972,13 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/port) +"eiU" = ( +/obj/structure/table, +/obj/item/pen, +/obj/item/instrument/harmonica, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "ejd" = ( /obj/structure/bookcase{ name = "Holy Bookcase" @@ -50532,6 +50155,10 @@ }, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"emo" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/security/prison/upper) "emB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -50779,6 +50406,22 @@ /obj/item/gps, /turf/open/floor/plating, /area/engineering/main) +"ewU" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + id_tag = "permaouter"; + name = "Permabrig Transfer"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "ewZ" = ( /obj/machinery/conveyor/inverted{ dir = 6; @@ -50792,6 +50435,19 @@ }, /turf/closed/wall/r_wall, /area/engineering/atmos) +"exz" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "exJ" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -51148,6 +50804,27 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"eEy" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) +"eFk" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "eFn" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/atmospherics/miner/oxygen, @@ -51552,6 +51229,14 @@ /obj/machinery/vending/coffee, /turf/open/floor/wood, /area/service/library) +"eSb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) "eSp" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -52041,6 +51726,15 @@ /obj/machinery/holopad/secure, /turf/open/floor/plasteel/cafeteria, /area/command/heads_quarters/cmo) +"fdl" = ( +/obj/machinery/door/airlock{ + name = "Prison Showers" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "fdE" = ( /obj/structure/chair/wood/wings{ dir = 1 @@ -52179,6 +51873,13 @@ }, /turf/open/floor/plasteel/cult, /area/service/chapel/main) +"fhs" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/space/basic, +/area/solars/port/fore) "fht" = ( /obj/structure/table/reinforced, /obj/item/flashlight/lamp, @@ -52189,6 +51890,18 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/closed/wall/r_wall, /area/engineering/atmos) +"fhK" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "fhO" = ( /obj/structure/closet/secure_closet/personal, /obj/item/clothing/under/misc/assistantformal, @@ -52482,6 +52195,19 @@ "fvo" = ( /turf/closed/wall, /area/service/chapel/main) +"fvV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "fwb" = ( /obj/item/soap/nanotrasen, /obj/machinery/light/small{ @@ -52669,6 +52395,12 @@ }, /turf/open/floor/plasteel, /area/service/hydroponics) +"fCR" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "fCZ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ dir = 1 @@ -52740,6 +52472,18 @@ }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/ce) +"fEV" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "fEX" = ( /turf/open/floor/wood, /area/service/library) @@ -52910,6 +52654,16 @@ }, /turf/open/floor/plasteel, /area/engineering/break_room) +"fKj" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "fKu" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -52918,6 +52672,15 @@ dir = 4 }, /area/service/chapel/main) +"fKv" = ( +/obj/machinery/door/airlock{ + name = "Cleaning Closet" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/prison) "fKG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -53056,6 +52819,22 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"fOe" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"fOG" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/airless, +/area/space/nearstation) "fOS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, @@ -53105,6 +52884,17 @@ /obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engineering/main) +"fRj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "permacells4"; + name = "Privacy Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison/cells) "fRo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, @@ -53174,6 +52964,11 @@ }, /turf/open/floor/plasteel, /area/engineering/gravity_generator) +"fUI" = ( +/obj/structure/bed, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/padded, +/area/security/prison) "fVa" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -53407,6 +53202,13 @@ }, /turf/open/floor/plasteel/white, /area/command/heads_quarters/rd) +"gcB" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/solars/port/fore) "gcE" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -53486,6 +53288,13 @@ }, /turf/open/floor/carpet, /area/command/corporate_showroom) +"gec" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "geK" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -53496,6 +53305,12 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"geU" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/obj/item/stack/rods, +/turf/open/space/basic, +/area/space/nearstation) "geY" = ( /obj/machinery/vending/cigarette, /turf/open/floor/wood, @@ -53635,6 +53450,17 @@ }, /turf/open/floor/wood, /area/service/bar) +"gjm" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "gjo" = ( /obj/machinery/door/airlock{ name = "Unisex Showers" @@ -53699,6 +53525,15 @@ }, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"gkG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "glc" = ( /turf/closed/wall, /area/service/library) @@ -53727,6 +53562,14 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"glz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "glJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -53771,6 +53614,20 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engineering/atmos) +"gmU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/security/prison) "gnZ" = ( /obj/item/radio/intercom{ pixel_y = -30 @@ -53849,19 +53706,21 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"grC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, +"grh" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil/red, /turf/open/space, -/area/solars/port/fore) +/area/space/nearstation) +"grC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "grX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 6 @@ -54022,6 +53881,36 @@ /obj/effect/spawner/lootdrop/techstorage/engineering, /turf/open/floor/plasteel/dark, /area/engineering/storage/tech) +"gwC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/prison/upper) +"gwI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Permanent Cell 4"; + wiretypepath = /datum/wires/airlock/security + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "gwR" = ( /obj/machinery/camera{ c_tag = "Teleporter Room"; @@ -54102,6 +53991,15 @@ }, /turf/open/floor/plasteel, /area/cargo/office) +"gyf" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "gyh" = ( /turf/closed/wall, /area/cargo/warehouse) @@ -54160,6 +54058,10 @@ }, /turf/open/floor/plating, /area/service/chapel/main) +"gzW" = ( +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) "gzX" = ( /obj/effect/spawner/structure/window, /obj/machinery/door/poddoor/preopen{ @@ -54446,6 +54348,11 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/engine/air, /area/engineering/atmos) +"gIi" = ( +/obj/structure/lattice, +/obj/item/stack/rods, +/turf/open/space/basic, +/area/space/nearstation) "gJm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -54927,6 +54834,16 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/main) +"haD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hbh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -55202,6 +55119,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/construction/storage_wing) +"hlO" = ( +/obj/structure/table/reinforced, +/obj/structure/reagent_dispensers/servingdish, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "hlQ" = ( /obj/item/folder/white{ pixel_x = 4; @@ -55225,6 +55147,22 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"hma" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hmh" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -55454,6 +55392,20 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"hsr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "hsv" = ( /obj/machinery/light/small{ dir = 1 @@ -55577,6 +55529,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/commons/dorms) +"hwd" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "hwv" = ( /obj/machinery/requests_console{ department = "Engineering"; @@ -55653,13 +55615,12 @@ /turf/closed/wall, /area/commons/toilet/auxiliary) "hyP" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod Two" +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/dark, /area/security/prison) "hyV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -55720,6 +55681,19 @@ }, /turf/open/floor/plasteel/grimy, /area/service/chapel/office) +"hzP" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hzS" = ( /obj/machinery/door/poddoor{ id = "Secure Storage"; @@ -55865,6 +55839,25 @@ }, /turf/open/floor/plasteel, /area/cargo/qm) +"hDB" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/security/prison) "hEm" = ( /obj/item/taperecorder, /obj/item/cartridge/lawyer, @@ -55973,6 +55966,9 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engineering/gravity_generator) +"hGz" = ( +/turf/open/floor/padded, +/area/security/prison) "hGX" = ( /turf/open/floor/engine/co2, /area/engineering/atmos) @@ -56059,6 +56055,13 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"hKk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "hKm" = ( /obj/item/folder/white{ pixel_x = 4; @@ -56500,6 +56503,12 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/break_room) +"hXi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hXr" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -56557,6 +56566,19 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"hXW" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/brig) "hYa" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -56613,6 +56635,15 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"hZd" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hZe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -56764,6 +56795,12 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"iei" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "ieA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -56839,6 +56876,10 @@ }, /turf/open/floor/plating/airless, /area/solars/starboard/aft) +"ihO" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/prison) "iiu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -56892,6 +56933,13 @@ dir = 5 }, /area/service/kitchen) +"ijq" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "ijr" = ( /turf/closed/wall, /area/ai_monitored/command/storage/eva) @@ -56922,6 +56970,14 @@ }, /turf/open/floor/plasteel, /area/command/heads_quarters/ce) +"ikj" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/security/execution/education) "ikm" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -57165,6 +57221,21 @@ }, /turf/open/floor/carpet, /area/command/heads_quarters/hop) +"itk" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "itH" = ( /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/tile/blue{ @@ -57410,6 +57481,17 @@ /obj/machinery/space_heater, /turf/open/floor/plasteel/dark, /area/engineering/atmos) +"iyp" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "iyy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -57463,6 +57545,9 @@ }, /turf/open/floor/wood, /area/command/heads_quarters/captain/private) +"izT" = ( +/turf/closed/wall/r_wall, +/area/security/prison/upper) "izZ" = ( /turf/open/floor/engine/n2o, /area/engineering/atmos) @@ -57516,10 +57601,31 @@ }, /turf/open/floor/engine, /area/engineering/main) +"iBL" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "iCn" = ( -/obj/machinery/vr_sleeper, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/structure/rack, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/prison"; + dir = 4; + name = "Prison Central Maintenance APC"; + pixel_x = 24 + }, +/obj/effect/spawner/lootdrop/prison_contraband, +/turf/open/floor/plating, +/area/maintenance/prison) "iDz" = ( /obj/structure/window/reinforced{ dir = 1; @@ -57991,6 +58097,18 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/plasteel, /area/cargo/warehouse) +"iRC" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Prison Forestry" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "iSt" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -58104,6 +58222,13 @@ /obj/structure/barricade/wooden, /turf/open/floor/plating, /area/commons/fitness/pool) +"iUN" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = -4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "iUY" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/tile/bar, @@ -58282,6 +58407,18 @@ }, /turf/open/floor/wood, /area/service/theater) +"jbJ" = ( +/obj/structure/table/reinforced, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "jbZ" = ( /obj/machinery/light_switch{ pixel_x = 27 @@ -58325,6 +58462,19 @@ }, /turf/open/floor/plasteel, /area/cargo/storage) +"jde" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solars/port/fore) "jdJ" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ dir = 1 @@ -58446,15 +58596,12 @@ /turf/closed/wall/r_wall, /area/command/teleporter) "jhu" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permahydro"; - name = "Recreation Module" - }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/structure/closet/crate/trashcart, +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/item/trash/chips, +/obj/item/trash/candy, +/turf/open/floor/plating, +/area/maintenance/prison) "jhw" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -58725,6 +58872,17 @@ }, /turf/open/floor/plasteel/dark, /area/commons/fitness/recreation) +"jpk" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/prison/upper) "jpq" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 10 @@ -58807,6 +58965,25 @@ /obj/item/clothing/mask/cigarette/cigar, /turf/open/floor/wood, /area/service/bar) +"jsO" = ( +/obj/structure/closet/crate, +/obj/item/reagent_containers/glass/bowl, +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/storage/box/drinkingglasses, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/box/drinkingglasses, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "jtn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/poddoor/preopen{ @@ -58853,6 +59030,19 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"jtG" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "jtI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58968,6 +59158,11 @@ }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) +"jxe" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "jxm" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, @@ -59334,6 +59529,11 @@ }, /turf/closed/wall, /area/commons/storage/art) +"jIF" = ( +/obj/machinery/plate_press, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/prison/upper) "jIS" = ( /obj/machinery/vending/autodrobe, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59341,6 +59541,16 @@ }, /turf/open/floor/wood, /area/service/theater) +"jIU" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "jJw" = ( /obj/structure/sign/map/left{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -59870,6 +60080,39 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/engineering/main) +"jVo" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/prison/cells"; + damage_deflection = 21; + desc = "A control terminal for the area's electrical systems. It's secured with a durable antitampering plasteel cage."; + dir = 8; + name = "Armored Upper Prison APC"; + pixel_x = -25 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"jVK" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "jVR" = ( /obj/structure/cable{ icon_state = "4-8" @@ -59955,6 +60198,13 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"kaM" = ( +/obj/structure/table, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/rice, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "kbg" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -60049,6 +60299,18 @@ "ker" = ( /turf/closed/wall, /area/service/chapel/office) +"keE" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "keY" = ( /obj/structure/table, /obj/item/folder/red, @@ -60109,11 +60371,6 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/cargo/storage) -"kfT" = ( -/obj/item/stack/cable_coil, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "kgv" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "kitchen"; @@ -60278,6 +60535,19 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/service/hydroponics/garden) +"kkC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solars/port/fore) "kkR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ @@ -60326,6 +60596,21 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"kmQ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/camera{ + c_tag = "Prison Forestry"; + dir = 8; + network = list("ss13","prison") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "kmT" = ( /obj/structure/table/reinforced, /obj/machinery/computer/security/telescreen/rd, @@ -60555,6 +60840,16 @@ }, /turf/open/floor/carpet, /area/command/heads_quarters/hop) +"kwe" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison) "kwq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -60660,6 +60955,19 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"kyV" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plating, +/area/security/prison) +"kze" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "kzn" = ( /obj/machinery/door/airlock/external{ name = "Departure Lounge Airlock" @@ -60836,6 +61144,16 @@ }, /turf/open/floor/wood, /area/service/theater) +"kCX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/solars/port/fore) "kDc" = ( /obj/machinery/reagentgrinder, /obj/structure/table/wood, @@ -60992,6 +61310,11 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) +"kGI" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "kGY" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -61132,6 +61455,11 @@ }, /turf/open/floor/carpet, /area/service/theater) +"kKH" = ( +/turf/open/floor/plating/airless{ + icon_state = "panelscorched" + }, +/area/space/nearstation) "kKR" = ( /obj/structure/window/reinforced, /obj/effect/turf_decal/tile/blue{ @@ -61309,6 +61637,30 @@ /obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"kQr" = ( +/obj/machinery/camera{ + c_tag = "Prison Cell Block 2"; + dir = 4; + network = list("ss13","prison") + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "kQJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -61338,10 +61690,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) -"kQW" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "kRE" = ( /obj/machinery/power/apc{ areastring = "/area/ai_monitored/turret_protected/ai"; @@ -61511,6 +61859,30 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/dark, /area/command/bridge) +"kUL" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"kUN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "kUS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -61535,6 +61907,16 @@ }, /turf/open/floor/carpet, /area/service/chapel/main) +"kVM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "kVZ" = ( /obj/item/paper_bin{ pixel_x = -2; @@ -61555,13 +61937,6 @@ /obj/machinery/vending/snack/random, /turf/open/floor/plasteel/dark, /area/command/bridge) -"kWh" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "kWW" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -61939,6 +62314,14 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"lha" = ( +/obj/machinery/hydroponics/soil, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/grass, +/area/security/prison/upper) "lhH" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -62100,6 +62483,28 @@ }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/ce) +"llF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"llY" = ( +/obj/machinery/suit_storage_unit/security, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "lmb" = ( /obj/machinery/power/port_gen/pacman, /obj/structure/cable/yellow, @@ -62414,6 +62819,47 @@ }, /turf/open/floor/plasteel, /area/cargo/sorting) +"lxV" = ( +/obj/structure/table, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -8 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/security/prison) "lyF" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -62510,6 +62956,11 @@ }, /turf/open/floor/plasteel, /area/security/checkpoint/supply) +"lAA" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "lAF" = ( /obj/structure/table/wood, /obj/item/paper_bin{ @@ -62671,6 +63122,23 @@ /obj/machinery/vending/clothing, /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) +"lFW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "lFY" = ( /obj/machinery/door/airlock/highsecurity{ name = "Gravity Generator Room"; @@ -62948,13 +63416,6 @@ }, /turf/open/floor/plating, /area/command/gateway) -"lPr" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/tracker, -/turf/open/floor/plating/airless, -/area/solars/port/fore) "lPE" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -62998,6 +63459,15 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"lQK" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "lQV" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -63063,6 +63533,13 @@ /obj/item/toy/poolnoodle/blue, /turf/open/floor/plating, /area/commons/fitness/pool) +"lSH" = ( +/obj/docking_port/stationary/random{ + id = "pod_2_lavaland"; + name = "lavaland" + }, +/turf/open/space, +/area/space) "lTr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -63095,6 +63572,11 @@ }, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) +"lUk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/security/prison/cells) "lUn" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63346,6 +63828,10 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/service/lawoffice) +"mak" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "maE" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -63647,6 +64133,26 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/engineering/gravity_generator) +"mgT" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"mhG" = ( +/obj/structure/sink{ + pixel_y = 29 + }, +/turf/open/floor/plating, +/area/maintenance/prison) +"mhW" = ( +/obj/item/stack/rods, +/turf/open/space/basic, +/area/space/nearstation) "mhX" = ( /obj/structure/table, /obj/item/weldingtool, @@ -63682,6 +64188,15 @@ icon_state = "wood-broken3" }, /area/command/corporate_showroom) +"mjl" = ( +/obj/machinery/vending/cola/red, +/obj/machinery/camera{ + c_tag = "Prison Cafeteria"; + dir = 8; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "mjp" = ( /obj/machinery/light, /obj/machinery/camera{ @@ -63780,6 +64295,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/commons/fitness/recreation) +"mlV" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mmy" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -63853,6 +64377,20 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"mpv" = ( +/obj/machinery/computer/security/telescreen/interrogation{ + name = "isolation room monitor"; + network = list("isolation"); + pixel_y = 31 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison) "mpx" = ( /obj/machinery/light{ dir = 4 @@ -64050,6 +64588,10 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"mud" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solars/port/fore) "muJ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -64069,9 +64611,22 @@ }, /turf/closed/wall, /area/hallway/secondary/service) +"mvI" = ( +/obj/machinery/computer/arcade/battle{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mvN" = ( /turf/closed/wall, /area/construction/storage_wing) +"mvS" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "mvY" = ( /obj/structure/window/reinforced{ dir = 4 @@ -64181,6 +64736,15 @@ }, /turf/open/floor/plasteel, /area/security/office) +"mxT" = ( +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/structure/closet/crate, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/turf/open/floor/plating, +/area/security/prison/upper) "myk" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -64312,6 +64876,19 @@ "mBW" = ( /turf/open/floor/plasteel, /area/commons/locker) +"mBZ" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mCa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/blue, @@ -64432,6 +65009,11 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"mFa" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/prison) "mFr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, @@ -64542,6 +65124,25 @@ }, /turf/open/space, /area/space/nearstation) +"mIR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "mIW" = ( /obj/machinery/computer/arcade, /obj/machinery/airalarm{ @@ -64634,13 +65235,12 @@ "mLk" = ( /turf/closed/wall, /area/command/heads_quarters/captain/private) -"mLH" = ( -/obj/structure/cable{ - icon_state = "0-2" +"mMf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) +/turf/open/floor/plating, +/area/maintenance/port/fore) "mMn" = ( /turf/open/floor/plasteel, /area/engineering/atmos) @@ -64707,6 +65307,16 @@ }, /turf/open/floor/carpet, /area/service/chapel/main) +"mOH" = ( +/obj/structure/table, +/obj/item/storage/dice, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/instrument/piano_synth, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mPm" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -64742,6 +65352,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/cargo/storage) +"mQt" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "mQW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64855,6 +65472,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/service/library) +"mUE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mUZ" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -65130,6 +65753,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/ai_monitored/command/storage/eva) +"ngt" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) "ngZ" = ( /obj/item/radio/intercom{ name = "Station Intercom (General)"; @@ -65158,6 +65785,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/port) +"nhI" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/security/execution/education) "nhL" = ( /obj/machinery/airalarm{ pixel_y = 28 @@ -65295,6 +65930,22 @@ }, /turf/open/space, /area/solars/starboard/aft) +"nlq" = ( +/obj/structure/closet/secure_closet/brig, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/security/prison) "nlr" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -65344,15 +65995,11 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) "nmO" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/solar{ - id = "foreport"; - name = "Fore-Port Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solars/port/fore) +/obj/machinery/hydroponics/soil, +/obj/item/cultivator, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/security/prison/upper) "nnB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65379,6 +66026,19 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"nnO" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/prison) "noG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -65417,6 +66077,12 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer, /turf/open/floor/plasteel, /area/engineering/atmos) +"npY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "nqx" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/machinery/light_switch{ @@ -65478,6 +66144,16 @@ }, /turf/open/floor/plasteel, /area/commons/toilet/auxiliary) +"nsg" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solars/port/fore) "nsA" = ( /mob/living/simple_animal/cow{ name = "Betsy"; @@ -65631,6 +66307,13 @@ }, /turf/open/floor/plating, /area/cargo/sorting) +"nAj" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "nAl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/lattice/catwalk, @@ -65702,6 +66385,22 @@ "nDn" = ( /turf/closed/wall/r_wall, /area/command/corporate_showroom) +"nEa" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "nEw" = ( /obj/machinery/power/terminal{ dir = 1 @@ -65724,6 +66423,10 @@ /obj/machinery/bookbinder, /turf/open/floor/wood, /area/service/library) +"nEC" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/security/prison/upper) "nFz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -65737,6 +66440,10 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"nFN" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "nFS" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ @@ -65838,6 +66545,17 @@ }, /turf/open/floor/plasteel, /area/service/hydroponics/garden) +"nJo" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "nJr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, @@ -65926,6 +66644,16 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/storage/tech) +"nLC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "nLQ" = ( /obj/structure/cable{ icon_state = "1-8" @@ -65958,6 +66686,21 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/engineering/main) +"nNO" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "nOm" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -66018,6 +66761,14 @@ dir = 5 }, /area/service/kitchen) +"nPH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/security/prison/upper) "nPJ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -66267,6 +67018,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"nWG" = ( +/obj/machinery/hydroponics/soil, +/obj/item/shovel/spade, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/security/prison/upper) "nWX" = ( /obj/machinery/shower{ dir = 8 @@ -66508,6 +67265,13 @@ }, /turf/open/floor/plating, /area/construction/storage_wing) +"oaH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "oaZ" = ( /obj/effect/turf_decal/tile/green{ dir = 1 @@ -66780,12 +67544,35 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/cargo/storage) +"ofK" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) "ogf" = ( /obj/structure/table/wood, /obj/item/stamp/captain, /obj/machinery/computer/security/wooden_tv, /turf/open/floor/wood, /area/command/heads_quarters/captain/private) +"ohf" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "ohj" = ( /obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/debugger, @@ -66825,6 +67612,17 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"ojh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "ojs" = ( /obj/structure/table/wood, /obj/machinery/newscaster/security_unit{ @@ -67082,6 +67880,20 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/command/heads_quarters/rd) +"oqC" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison/upper) +"oqD" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "oqK" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -67229,10 +68041,29 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/storage/tech) +"ovd" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/padded, +/area/security/prison) "ovB" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/commons/storage/primary) +"ovU" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/prison/starboard"; + dir = 4; + name = "Prison Wing APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/prison) "owz" = ( /obj/structure/chair{ dir = 1 @@ -67497,6 +68328,14 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"oEN" = ( +/obj/machinery/camera{ + c_tag = "Prison Isolation Cell"; + dir = 8; + network = list("ss13","prison","isolation") + }, +/turf/open/floor/padded, +/area/security/prison) "oFv" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Gas to Cold Loop" @@ -67532,6 +68371,15 @@ }, /turf/open/floor/plasteel, /area/security/office) +"oGG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "permacells1"; + name = "Privacy Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/prison/cells) "oHW" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/bot, @@ -67585,6 +68433,22 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"oKe" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "oKf" = ( /obj/item/wrench, /obj/item/clothing/suit/apron, @@ -67601,6 +68465,25 @@ /obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) +"oKu" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"oKD" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) "oKY" = ( /obj/machinery/light/small{ dir = 4 @@ -67984,6 +68867,25 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/cargo/storage) +"oUR" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"oVt" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) "oVF" = ( /obj/structure/window/reinforced{ dir = 1 @@ -68313,6 +69215,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) +"pdH" = ( +/obj/machinery/hydroponics/soil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/security/prison/upper) "pdZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -68692,6 +69599,16 @@ /obj/machinery/light/small, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"png" = ( +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "1" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) "pnA" = ( /obj/machinery/light_switch{ pixel_x = 28 @@ -68730,6 +69647,16 @@ /obj/machinery/vending/cigarette, /turf/open/floor/carpet, /area/service/bar) +"poR" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 26 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4; + pixel_x = -3 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "poT" = ( /obj/structure/cable/yellow{ icon_state = "0-2" @@ -68783,6 +69710,33 @@ }, /turf/open/floor/plasteel, /area/commons/storage/primary) +"pqv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/closet/crate/trashcart/laundry, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_y = 8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_y = 8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_y = 8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "pqG" = ( /obj/structure/chair{ dir = 4 @@ -68934,6 +69888,14 @@ }, /turf/open/floor/wood, /area/command/heads_quarters/hop) +"pvy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/security/brig) "pvA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -69035,6 +69997,16 @@ dir = 1 }, /area/engineering/atmos) +"pxQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "pxS" = ( /obj/machinery/light/small, /obj/machinery/libraryscanner, @@ -69108,6 +70080,13 @@ }, /turf/open/floor/plasteel, /area/command/gateway) +"pzy" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "pzF" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -69149,6 +70128,19 @@ }, /turf/open/floor/engine/vacuum, /area/engineering/atmos) +"pAw" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "pAA" = ( /obj/item/flashlight/lamp, /obj/machinery/newscaster{ @@ -69215,6 +70207,19 @@ dir = 1 }, /area/command/gateway) +"pCQ" = ( +/obj/machinery/computer/arcade/minesweeper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"pCS" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/prison/upper) "pCV" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -69455,6 +70460,37 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"pJv" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/prison/cells) +"pJX" = ( +/obj/structure/table, +/obj/item/storage/box/hug{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/razor{ + pixel_x = -8; + pixel_y = 3 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"pKa" = ( +/obj/structure/lattice, +/obj/item/stack/rods{ + amount = 25 + }, +/turf/open/space/basic, +/area/space/nearstation) "pKe" = ( /obj/structure/cable{ icon_state = "0-2" @@ -69793,6 +70829,16 @@ }, /turf/open/floor/wood, /area/service/bar) +"pUL" = ( +/obj/structure/rack, +/obj/item/restraints/handcuffs, +/obj/item/assembly/flash/handheld, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "pUZ" = ( /obj/structure/window/reinforced, /obj/machinery/computer/atmos_control/tank/oxygen_tank{ @@ -70191,6 +71237,25 @@ }, /turf/open/floor/plasteel/dark, /area/commons/fitness/recreation) +"qhO" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/paper/guides/jobs/hydroponics, +/obj/item/seeds/onion, +/obj/item/seeds/garlic, +/obj/item/seeds/potato, +/obj/item/seeds/tomato, +/obj/item/seeds/carrot, +/obj/item/seeds/grass, +/obj/item/seeds/ambrosia, +/obj/item/seeds/wheat, +/obj/item/seeds/pumpkin, +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "qin" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -70205,6 +71270,22 @@ }, /turf/open/floor/plating, /area/command/heads_quarters/hos) +"qiz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Prison Laundry"; + dir = 8; + network = list("ss13","prison") + }, +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "qiA" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -70311,6 +71392,12 @@ }, /turf/open/floor/plasteel, /area/construction/storage_wing) +"qle" = ( +/obj/structure/sign/warning/electricshock{ + pixel_x = 32 + }, +/turf/open/space/basic, +/area/space) "qlI" = ( /obj/structure/table/glass, /obj/item/lightreplacer{ @@ -70408,6 +71495,13 @@ }, /turf/open/floor/plasteel, /area/cargo/storage) +"qmP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/solars/port/fore) "qnv" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -70559,6 +71653,19 @@ }, /turf/open/floor/plasteel, /area/science/mixing) +"qqj" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "qqK" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -70587,6 +71694,21 @@ "qrc" = ( /turf/open/floor/plasteel/chapel, /area/service/chapel/main) +"qrs" = ( +/obj/item/reagent_containers/glass/bucket, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/security/prison/upper) "qrH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -70999,6 +72121,32 @@ }, /turf/open/floor/plasteel/white, /area/command/heads_quarters/rd) +"qEk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 4; + name = "Prisoner Chute" + }, +/obj/structure/plasticflaps/opaque{ + name = "Prisoner Transfer" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"qES" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Visitation" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "qFr" = ( /obj/structure/toilet/secret/low_loot{ pixel_y = 13 @@ -71013,6 +72161,9 @@ }, /turf/open/floor/plasteel/white, /area/command/heads_quarters/captain/private) +"qFN" = ( +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "qGg" = ( /obj/structure/sink{ dir = 8; @@ -71121,6 +72272,11 @@ }, /turf/open/floor/plasteel, /area/engineering/gravity_generator) +"qIB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "qID" = ( /obj/structure/sign/warning/securearea, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -71196,6 +72352,21 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/cargo/storage) +"qKq" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "qKC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, @@ -71341,6 +72512,23 @@ }, /turf/open/space, /area/space/nearstation) +"qRZ" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Sanitarium"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "qSc" = ( /obj/machinery/vr_sleeper, /obj/effect/turf_decal/tile/neutral{ @@ -71403,6 +72591,27 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/command/teleporter) +"qTc" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"qTq" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "qTB" = ( /obj/item/paper_bin{ pixel_x = -2; @@ -71447,6 +72656,14 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"qTV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/prison/cells) "qTW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, @@ -71461,6 +72678,20 @@ dir = 1 }, /area/engineering/atmos) +"qUm" = ( +/obj/structure/bed/roller, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/security/prison) "qUy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -71472,6 +72703,15 @@ /obj/structure/sign/warning/nosmoking, /turf/closed/wall/r_wall, /area/engineering/main) +"qUX" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "qUY" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law{ @@ -71548,6 +72788,13 @@ dir = 1 }, /area/command/gateway) +"qWm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "qWu" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -71578,6 +72825,28 @@ }, /turf/open/floor/plasteel, /area/commons/dorms) +"qXt" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"qXS" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space/station_ruins) "qXX" = ( /obj/effect/landmark/start/lawyer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -71690,12 +72959,6 @@ }, /turf/open/floor/plasteel/dark, /area/command/teleporter) -"ram" = ( -/obj/machinery/computer/arcade{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) "rbc" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ dir = 1 @@ -72015,6 +73278,13 @@ /obj/machinery/atmospherics/pipe/layer_manifold, /turf/open/floor/plating, /area/engineering/atmos) +"rif" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "rii" = ( /obj/machinery/vending/tool, /obj/effect/turf_decal/tile/brown{ @@ -72167,13 +73437,6 @@ }, /turf/open/floor/plasteel, /area/security/office) -"roa" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) "rom" = ( /obj/structure/bed/roller, /obj/machinery/vending/wallmed{ @@ -72219,6 +73482,20 @@ "roz" = ( /turf/open/floor/plasteel/dark, /area/engineering/main) +"rpQ" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"rqn" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "rqx" = ( /obj/machinery/airalarm{ dir = 8; @@ -72301,6 +73578,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, /area/command/heads_quarters/hos) +"rub" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "ruc" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -72347,6 +73631,28 @@ }, /turf/open/floor/plasteel, /area/command/gateway) +"rvO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/toilet{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "rvU" = ( /obj/machinery/power/apc/highcap/ten_k{ areastring = "/area/engineering/main"; @@ -72553,6 +73859,22 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"rCq" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "rCx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -72561,6 +73883,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood, /area/service/lawoffice) +"rCF" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Prison Common Room" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "rCH" = ( /obj/machinery/door/airlock{ name = "Kitchen Cold Room"; @@ -72729,6 +74061,26 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"rIe" = ( +/obj/structure/table, +/obj/structure/window, +/obj/item/reagent_containers/food/condiment/saltshaker{ + layer = 3.1; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/enzyme{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/book/manual/chef_recipes, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "rIw" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/firealarm{ @@ -72814,6 +74166,18 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) +"rLx" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/prison) "rLB" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -72863,16 +74227,10 @@ /turf/open/floor/plasteel, /area/commons/locker) "rLV" = ( -/obj/structure/table, -/obj/item/folder, -/obj/item/paper/guides/jobs/hydroponics, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/item/pen, -/obj/item/storage/crayons, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/upper) "rMx" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/tile/neutral{ @@ -73046,6 +74404,16 @@ }, /turf/open/floor/plasteel/white, /area/medical/virology) +"rRB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/prison/cells) "rRZ" = ( /obj/item/folder, /obj/item/folder, @@ -73057,6 +74425,17 @@ /obj/item/tape, /turf/open/floor/wood, /area/service/library) +"rSi" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "rSx" = ( /obj/structure/cable{ icon_state = "1-2" @@ -73265,6 +74644,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall, /area/command/bridge) +"rYP" = ( +/obj/machinery/door/window/southleft{ + name = "Permabrig Kitchen" + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "rZb" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/tile/brown, @@ -73333,6 +74718,22 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"sbg" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "sbs" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/machinery/airalarm{ @@ -73418,6 +74819,21 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/office) +"sck" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"scs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/execution/education) "scx" = ( /obj/structure/plasticflaps, /obj/machinery/conveyor{ @@ -73661,6 +75077,13 @@ /obj/item/clothing/under/suit/burgundy, /turf/open/floor/carpet, /area/commons/dorms) +"sja" = ( +/obj/item/toy/plush/beeplushie{ + desc = "Maybe hugging this will make you feel better about yourself."; + name = "Therabee" + }, +/turf/open/floor/padded, +/area/security/prison) "sjK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -73896,13 +75319,6 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) -"spA" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "spG" = ( /obj/structure/closet/crate/rcd{ pixel_y = 4 @@ -73972,6 +75388,16 @@ luminosity = 2 }, /area/ai_monitored/command/nuke_storage) +"ssE" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/solars/port/fore) "stk" = ( /obj/machinery/camera{ c_tag = "Captain's Office"; @@ -74017,6 +75443,39 @@ }, /turf/open/floor/plasteel, /area/construction/storage_wing) +"suZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + id_tag = "prisonereducation"; + name = "Prisoner Education Chamber"; + req_access_txt = "3" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"svu" = ( +/obj/structure/table, +/obj/item/folder, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt, +/obj/item/camera, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "swu" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -74049,6 +75508,28 @@ }, /turf/open/floor/plasteel, /area/command/heads_quarters/hop) +"swH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "permacells4"; + name = "Privacy Shutters"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "swK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/blue{ @@ -74096,6 +75577,48 @@ }, /turf/open/floor/wood, /area/service/bar) +"syL" = ( +/obj/machinery/door/window/brigdoor{ + name = "Justice Chamber"; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Justice Chamber"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"szt" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "szz" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, @@ -74273,15 +75796,14 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "sFR" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/hydroponics/soil, +/obj/effect/decal/cleanable/dirt, +/obj/item/plant_analyzer, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) +/turf/open/floor/grass, +/area/security/prison/upper) "sGh" = ( /obj/structure/cable{ icon_state = "1-2" @@ -74387,6 +75909,10 @@ "sIL" = ( /turf/open/floor/plasteel/dark, /area/command/bridge) +"sIN" = ( +/obj/structure/bookcase/random, +/turf/open/floor/plasteel, +/area/security/prison/upper) "sIP" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -74486,6 +76012,9 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"sMe" = ( +/turf/closed/wall, +/area/security/prison/upper) "sMk" = ( /obj/machinery/power/apc{ areastring = "/area/service/janitor"; @@ -74505,6 +76034,16 @@ "sMN" = ( /turf/closed/wall/r_wall, /area/commons/storage/primary) +"sMT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "sNj" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -74711,6 +76250,12 @@ }, /turf/open/floor/plasteel, /area/commons/dorms) +"sUd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "sUI" = ( /obj/structure/table, /obj/machinery/chem_dispenser/drinks/beer, @@ -74869,13 +76414,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/maintenance/port) -"sZQ" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "sZV" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, @@ -74924,16 +76462,6 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/commons/vacant_room/office) -"tbc" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "tbN" = ( /obj/machinery/status_display/ai{ pixel_y = 32 @@ -75769,6 +77297,19 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"tDM" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "tDZ" = ( /obj/machinery/computer/cryopod{ dir = 4; @@ -75974,6 +77515,22 @@ }, /turf/open/floor/plating, /area/maintenance/department/science/xenobiology) +"tJI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "tJQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -76300,6 +77857,13 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"tSe" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/solars/port/fore) "tTX" = ( /obj/structure/cable/yellow{ icon_state = "1-4" @@ -76545,6 +78109,15 @@ }, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"uam" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "uar" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -76569,6 +78142,25 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"ubD" = ( +/obj/structure/bed/roller, +/obj/machinery/camera{ + c_tag = "Prison Hallway Fore"; + dir = 2; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ubH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "ubJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ @@ -76843,6 +78435,14 @@ }, /turf/open/floor/plasteel/dark, /area/commons/dorms) +"uiA" = ( +/obj/machinery/door/airlock/security{ + id_tag = "IsolationCell"; + name = "Isolation Cell"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "uiF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -76899,12 +78499,29 @@ }, /turf/open/floor/plasteel, /area/commons/dorms) +"ulp" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "ulG" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/table, /obj/item/flashlight, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"ulI" = ( +/obj/machinery/biogenerator, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) +"ulQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "umv" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -77013,6 +78630,15 @@ }, /turf/open/floor/plasteel/airless/solarpanel, /area/solars/starboard/fore) +"upD" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "upN" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -77033,6 +78659,32 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"upX" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + id_tag = "permaouter"; + name = "Permabrig Transfer"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "uqh" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -77213,6 +78865,23 @@ }, /turf/open/floor/wood, /area/service/library) +"uvn" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Prison Cafeteria" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) +"uvz" = ( +/obj/item/clothing/suit/straight_jacket, +/obj/item/electropack, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/security/prison) "uvH" = ( /obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, @@ -77256,6 +78925,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/construction/storage_wing) +"uxR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/prison/upper) "uxT" = ( /obj/machinery/door/window/eastright{ base_state = "left"; @@ -77330,6 +79005,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/service/bar) +"uBA" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison) "uBW" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -77633,6 +79317,13 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"uNg" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "uOc" = ( /obj/effect/landmark/start/captain, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -77651,6 +79342,13 @@ }, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"uOr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "uOv" = ( /obj/structure/sign/directions/evac, /obj/structure/sign/directions/medical{ @@ -77661,6 +79359,10 @@ }, /turf/closed/wall, /area/service/library) +"uOH" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/security/execution/education) "uPN" = ( /obj/machinery/light{ dir = 8 @@ -77746,6 +79448,14 @@ }, /turf/open/floor/plating, /area/engineering/gravity_generator) +"uTQ" = ( +/obj/structure/table/reinforced, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "uTS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -77772,6 +79482,26 @@ }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/ce) +"uUK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"uUN" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "uVj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/navbeacon{ @@ -77992,6 +79722,18 @@ }, /turf/open/floor/plasteel, /area/command/gateway) +"vbH" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "vbR" = ( /obj/structure/cable{ icon_state = "4-8" @@ -78098,6 +79840,16 @@ /obj/machinery/suit_storage_unit/hos, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) +"ven" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) "veq" = ( /obj/structure/window/reinforced{ dir = 4 @@ -78309,6 +80061,12 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"viX" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "vjq" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -78319,13 +80077,6 @@ /obj/effect/landmark/xmastree, /turf/open/floor/carpet, /area/service/chapel/main) -"vjC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "vjL" = ( /obj/item/paper_bin{ pixel_y = 7 @@ -78347,6 +80098,16 @@ dir = 5 }, /area/command/heads_quarters/rd) +"vjV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "vkg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -78365,6 +80126,19 @@ }, /turf/open/floor/plasteel/grimy, /area/service/chapel/office) +"vkq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "vkY" = ( /obj/machinery/requests_console{ announcementConsole = 1; @@ -78387,30 +80161,9 @@ /turf/open/floor/plasteel/dark, /area/command/bridge) "vla" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/execution/education"; - dir = 1; - name = "Prisoner Education Chamber APC"; - pixel_y = 23 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/closet/secure_closet/injection{ - name = "educational injections"; - pixel_x = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) "vls" = ( /obj/machinery/door/airlock{ id_tag = "AuxToilet3"; @@ -78639,6 +80392,15 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) +"vtn" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "vtZ" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -78872,6 +80634,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/carpet, /area/command/heads_quarters/captain/private) +"vCh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space/basic, +/area/solars/port/fore) "vCi" = ( /obj/effect/landmark/start/botanist, /obj/effect/turf_decal/tile/green, @@ -79278,6 +81045,25 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"vRz" = ( +/obj/machinery/button/flasher{ + id = "visitorflash"; + pixel_x = -6; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "visitation"; + name = "Visitation Shutters"; + pixel_x = -6; + pixel_y = 36; + req_access_txt = "2" + }, +/obj/machinery/camera{ + c_tag = "Prison Visitation"; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel, +/area/security/brig) "vSm" = ( /obj/machinery/power/emitter, /turf/open/floor/plating, @@ -79314,6 +81100,24 @@ dir = 5 }, /area/service/kitchen) +"vSH" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"vSL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "vTo" = ( /obj/structure/cable/yellow{ icon_state = "1-8" @@ -79447,6 +81251,17 @@ }, /turf/open/floor/plating, /area/command/heads_quarters/rd) +"vXi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "vXk" = ( /obj/structure/chair{ dir = 4 @@ -79659,6 +81474,24 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"wcj" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 8; + name = "Prisoner Outlet" + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "wcl" = ( /obj/structure/chair{ dir = 1 @@ -79811,6 +81644,15 @@ }, /turf/open/floor/plasteel, /area/commons/toilet/auxiliary) +"wgf" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wgw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -80075,6 +81917,13 @@ }, /turf/open/floor/plasteel, /area/command/teleporter) +"wol" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space/basic, +/area/solars/port/fore) "wox" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -80297,6 +82146,12 @@ }, /turf/open/floor/plating, /area/engineering/main) +"wtO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison) "wtU" = ( /obj/structure/chair/wood/wings{ dir = 8 @@ -80418,13 +82273,15 @@ }, /turf/open/floor/plasteel, /area/commons/dorms) -"wwD" = ( -/obj/structure/cable{ - icon_state = "0-8" +"wwa" = ( +/obj/machinery/door/airlock/grunge{ + name = "Prison Workshop" }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "wxd" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/structure/extinguisher_cabinet{ @@ -80474,6 +82331,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/service/chapel/main) +"wyf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wyt" = ( /obj/machinery/washing_machine, /obj/effect/turf_decal/tile/blue{ @@ -80494,6 +82358,18 @@ /obj/machinery/atmospherics/components/trinary/filter/flipped/critical, /turf/open/floor/engine, /area/engineering/main) +"wzi" = ( +/obj/machinery/camera{ + c_tag = "Prison Common Room"; + dir = 1; + network = list("ss13","prison") + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wzm" = ( /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -80554,6 +82430,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/engineering/main) +"wBB" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "wBE" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/camera{ @@ -80665,6 +82545,32 @@ }, /turf/open/floor/plasteel/chapel, /area/service/chapel/main) +"wDM" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/item/trash/sosjerky, +/obj/item/trash/boritos, +/obj/item/trash/can, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_x = -27; + pixel_y = -27; + prison_radio = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wDZ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/button/door{ @@ -80826,6 +82732,16 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, /area/ai_monitored/command/nuke_storage) +"wHw" = ( +/obj/machinery/door/poddoor/shutters{ + id = "visitation"; + name = "Visitation Shutters" + }, +/obj/machinery/door/window/southleft{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "wIf" = ( /obj/effect/landmark/blobstart, /obj/machinery/power/apc{ @@ -80837,6 +82753,9 @@ /obj/structure/cable/yellow, /turf/open/floor/plating, /area/maintenance/central) +"wIu" = ( +/turf/open/floor/plasteel, +/area/security/prison/cells) "wIw" = ( /turf/open/floor/carpet, /area/command/heads_quarters/captain/private) @@ -80899,6 +82818,20 @@ }, /turf/open/floor/plasteel/grimy, /area/security/office) +"wKG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solars/port/fore) +"wKX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) "wKY" = ( /obj/machinery/light_switch{ pixel_y = 28 @@ -80965,6 +82898,19 @@ }, /turf/open/floor/plasteel, /area/cargo/storage) +"wNK" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wNL" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment, @@ -81279,6 +83225,12 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/carpet, /area/commons/dorms) +"wWN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wWO" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -81323,13 +83275,6 @@ }, /turf/open/floor/plating, /area/command/bridge) -"wXA" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/plasteel, -/area/security/prison) "wXC" = ( /obj/machinery/light_switch{ pixel_y = 28 @@ -81466,11 +83411,11 @@ /turf/open/floor/plasteel, /area/cargo/storage) "wZC" = ( +/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/solars/port/fore) "wZK" = ( /obj/structure/table, @@ -81494,6 +83439,13 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"wZR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/space/basic, +/area/solars/port/fore) "wZX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -81736,6 +83688,15 @@ }, /turf/open/floor/wood, /area/commons/dorms) +"xhP" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) "xiO" = ( /obj/structure/cable{ icon_state = "4-8" @@ -81969,6 +83930,21 @@ }, /turf/open/floor/plasteel, /area/engineering/break_room) +"xpx" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "xpy" = ( /obj/effect/landmark/xeno_spawn, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -82141,6 +84117,15 @@ /obj/effect/landmark/carpspawn, /turf/open/space, /area/space/station_ruins) +"xuu" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "xuF" = ( /obj/structure/chair/comfy/black, /obj/effect/landmark/start/assistant, @@ -82168,6 +84153,25 @@ }, /turf/open/floor/plating, /area/engineering/gravity_generator) +"xvj" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"xvm" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/airless{ + icon_state = "panelscorched" + }, +/area/space/nearstation) "xwg" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering{ @@ -82190,6 +84194,11 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/storage/tech) +"xwj" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) "xww" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -82312,6 +84321,23 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/service/library) +"xAw" = ( +/obj/machinery/seed_extractor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) +"xAI" = ( +/obj/machinery/hydroponics/soil, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/grass, +/area/security/prison/upper) +"xAO" = ( +/turf/open/floor/plasteel, +/area/security/prison/upper) "xAR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/white, @@ -82389,6 +84415,15 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"xDA" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "xDD" = ( /obj/machinery/door/airlock{ id_tag = "AuxShower"; @@ -82517,6 +84552,11 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/command/corporate_showroom) +"xGl" = ( +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/space/nearstation) "xGp" = ( /obj/structure/rack, /obj/item/storage/toolbox/mechanical{ @@ -82650,14 +84690,14 @@ /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) "xIi" = ( +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/item/reagent_containers/glass/bottle/ammonia, /obj/structure/cable/yellow{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plating, +/area/maintenance/prison) "xIv" = ( /obj/item/radio/intercom{ name = "Station Intercom (General)"; @@ -82678,6 +84718,25 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, /area/science/xenobiology) +"xJb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "xJf" = ( /obj/structure/window/reinforced{ dir = 8 @@ -82893,6 +84952,10 @@ /obj/structure/kitchenspike, /turf/open/floor/plasteel/showroomfloor, /area/service/kitchen) +"xOh" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "xOk" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -83124,6 +85187,16 @@ "xUO" = ( /turf/open/space, /area/space/nearstation) +"xUR" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solars/port/fore) "xVh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -83218,6 +85291,13 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"xXN" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison/upper) "xXR" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -83346,6 +85426,22 @@ }, /turf/open/floor/plasteel, /area/security/office) +"yaL" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "yaS" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -83418,6 +85514,16 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"ydu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "ydB" = ( /obj/structure/showcase/machinery/microwave{ dir = 1; @@ -83688,24 +85794,18 @@ }, /turf/open/floor/plasteel, /area/cargo/warehouse) +"ykn" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Prison Common Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "yko" = ( /obj/structure/table/wood, /obj/item/paicard, /turf/open/floor/wood, /area/service/library) -"ykx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "ykE" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -83739,6 +85839,22 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"ylY" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) (1,1,1) = {" oRp @@ -87128,7 +89244,7 @@ oRp oRp oRp oRp -oRp +xyp oRp oRp oRp @@ -94593,17 +96709,17 @@ oRp oRp oRp oRp -xyp -oRp -oRp -oRp -oRp -oRp +aaa oRp oRp oRp oRp oRp +rpQ +xwj +rpQ +rpQ +rpQ oRp oRp oRp @@ -94856,11 +96972,11 @@ oRp oRp oRp oRp +rpQ oRp oRp oRp -oRp -oRp +xwj oRp oRp oRp @@ -95113,11 +97229,11 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp +rpQ +aaf +gcB +aaf +lMJ oRp oRp oRp @@ -95362,33 +97478,33 @@ oRp oRp oRp oRp +xwj +rpQ +xwj +rpQ +rpQ +xGl +xwj +rpQ +lMJ oRp +wKG oRp +rpQ +rpQ +xvm +rpQ +rpQ +rpQ +xvm +anT +xvm +anT oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa +anT +xvm +anT +anT anS anS anS @@ -95619,6 +97735,17 @@ oRp oRp oRp oRp +xvm +oRp +lMJ +oRp +oRp +oRp +oRp +oRp +oRp +qXS +wKG oRp oRp oRp @@ -95626,23 +97753,12 @@ oRp oRp oRp oRp +aaf oRp oRp +lMJ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp +lMJ aaa aaa aaa @@ -95876,30 +97992,30 @@ oRp oRp oRp oRp +rpQ +oRp +lMJ +oRp +xUR +xUR +xUR +xUR +xUR +lMJ +fhs +aaf +xUR +xUR +xUR +xUR +xUR +oRp +aaf oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp +lMJ aaa aaa aaa @@ -96122,41 +98238,41 @@ oRp oRp oRp oRp +aaa +aaa +aaa +aaa +aaa oRp oRp oRp oRp oRp oRp +lMJ +aaf +lMJ +aaf +kCX +kkC +kkC +kkC +kkC +vCh +mud +wol +jde +jde +jde +jde +ssE +aaf +aaf +aaf +aaf +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp +lMJ aaa aaa aaa @@ -96379,6 +98495,10 @@ oRp oRp oRp oRp +aaa +aaa +aaa +aaa oRp oRp oRp @@ -96386,34 +98506,30 @@ oRp oRp oRp oRp +rpQ +oRp +lMJ +oRp +nsg +nsg +nsg +nsg +nsg +lMJ +mud +lMJ +nsg +nsg +nsg +nsg +nsg +oRp +aaf oRp oRp +lMJ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -xtS -oRp -oRp -oRp -oRp -oRp -oRp +rpQ aaa aaa aaa @@ -96636,41 +98752,41 @@ oRp oRp oRp oRp +aaa +aaa +aaa +aaa +aaa oRp oRp oRp oRp oRp oRp +rpQ +oRp +lMJ +oRp +aEv +aEv +aEv oRp oRp oRp +mud +oRp +aEv oRp oRp +aEv oRp oRp +aaf +aaf +aaf +lMJ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp +lMJ aaa aaa aaa @@ -96893,45 +99009,45 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp aaa aaa aaa +aaa +aaa +oRp +oRp +oRp +oRp +oRp +oRp +rpQ +oRp +lMJ +oRp +xUR +xUR +xUR +xUR +xUR +lMJ +mud aaf +xUR +xUR +xUR +xUR +xUR +oRp +aaf +oRp +oRp +xwj +oRp +lMJ +aaa +aaa +aaa +xvm dne dne aip @@ -97150,45 +99266,45 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp aaa aaa aaa +aaa +aaa +oRp +oRp +oRp +oRp +oRp +oRp +rpQ aaf +lMJ +lMJ +kCX +kkC +kkC +kkC +kkC +vCh +mud +wol +jde +jde +jde +jde +ssE +xwj +rpQ +aqB +anT +anT +oRp +anT +aqB +anT +xvm +anT dne aqC arW @@ -97407,27 +99523,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -97437,11 +99532,32 @@ aaa aaa aaa aaa +lMJ +aaa +rpQ +aaa +lMJ +aaa +nsg +nsg +nsg +nsg +nsg +lMJ +mud +lMJ +nsg +nsg +nsg +nsg +nsg aaa aaa aaa aaa +xwj aaa +lMJ aaa aaa aaa @@ -97664,25 +99780,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -97694,11 +99791,30 @@ aaa aaa aaa aaa +xwj +aaa +lMJ +mhW +aaa +aaf +aaf +aaf +lMJ +aaa +mud +aaa +gIi +aaf +aaf +aaf +aaf aaa aaa aaa aaa +rpQ aaa +lMJ aaa aaa aaa @@ -97921,9 +100037,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa aaa aaa aaa @@ -97951,11 +100064,14 @@ aaa aaa aaa aaa +rpQ aaa aaa aaa aaa +rpQ aaa +lMJ aaa aaa aaa @@ -98178,11 +100294,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa aaa aaa aaa @@ -98202,6 +100313,7 @@ aaa aaa aaa aaa +lMJ aaa aaa aaa @@ -98214,10 +100326,14 @@ aaa aaa aaa aaa +lMJ +aaa +rpQ aaa aaa aaa aaa +aaf aqF doJ atq @@ -98435,7 +100551,6 @@ oRp oRp oRp oRp -oRp aaa aaa aaa @@ -98446,16 +100561,8 @@ aaa aaa aaa aaa -aaf aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaf +lMJ aaa aaa aaa @@ -98469,11 +100576,20 @@ aaa aaa aaa aaa +geU aaa aaa aaa aaa aaa +aaa +lMJ +aaa +lMJ +lMJ +lMJ +lMJ +lMJ aaf aqF doJ @@ -98692,29 +100808,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaj -aag -aag -aag -aai -aag -aag -aag -aaj -aag -aag -aai -aag -aag -aaf aaa aaa aaa @@ -98730,7 +100823,30 @@ aaa aaa aaa aaa -aaf +aaa +aaa +aaa +aaa +mhW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +lMJ +aaa +xwj +aaa +aaa +aaa +aaa aaf aqF doJ @@ -98949,29 +101065,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aac -aaa -aaa -aai -aaa -aaf -aaf -aaf -aaa -aaf -aaf -aaf -aaa -aaf -aaf -aaa -aaa -aag -aaf aaa aaa aaa @@ -98988,6 +101081,29 @@ aaa aaa aaa aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +lMJ +aaa +xwj +lMJ +lMJ +lMJ +lMJ aaf aqF doJ @@ -99206,32 +101322,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaj -aaa -nmO -tbc -dDj -aaa -nmO -tbc -dDj -aaa -nmO -tbc -dDj -aaf -aag -aaf -aaa -aaa -aaf aaa aaa aaa @@ -99244,7 +101334,33 @@ aaa aaa aaa aaa -aaf +aaa +aaa +aaa +aaa +aaa +lMJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +gIi +aaa +aaa +aaa +aaa +lMJ +aaa +lMJ +aaa +aaa +aaa +aaa aaf aqF doJ @@ -99463,42 +101579,42 @@ oRp oRp oRp oRp -oRp aaa aaa aaa aaa aaa aaa -aag -aaf -nmO -ykx -dDj -aaa -nmO -ykx -dDj -aaa -nmO -ykx -dDj -aaf -aaf -aaf -aaf -aaf -aaf aaa aaa aaa aaa aaa aaa -aaf aaa aaa aaa +mhW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +xwj +aaa +lMJ +aaa aaa aaa aaa @@ -99720,41 +101836,41 @@ oRp oRp oRp oRp -oRp aaa aaa aaa aaa aaa -aaf -aag -aaf -nmO -ykx +aaa +aaa +aaa +lMJ +aaa +aaa +rpQ +aaa +lMJ +aaa +aaa +aaa +aaa +aaa dDj -aaf -nmO -ykx -dDj -aaf -nmO -ykx -dDj -aaf aaa -aaf +mud +aaa +geU aaa aaa -aaf +aaa +mhW aaa aaa aaa aaa +aqB aaf -aaf -aaf -aaa -aaf +anT aaf aaf aaf @@ -99977,44 +102093,44 @@ oRp oRp oRp oRp -oRp aaa aaa aaa aaa aaa -aaf aaa aaa -nmO -ykx -dDj -aaa -nmO -ykx -dDj -aaa -nmO -ykx -dDj -aaf -aaa -aaf aaa aaa -aaf -aaf -aaf aaa aaa -aaf +rpQ aaa -aaf +lMJ +aaa +xUR +xUR +xUR +xUR +xUR +pKa +mud +grh +xUR +xUR +xUR +xUR +xUR +aaa +aaa +aaa +aaa +anT +aaa +anT aaa -aaf aaa aaa -aaf aaa aip dnO @@ -100234,38 +102350,38 @@ oRp oRp oRp oRp -oRp aaa aaa aaa -aaj -aag -aaj aaa aaa -nmO -ykx -dDj aaa -nmO -ykx -dDj aaa -nmO -ykx -dDj -aaf -aaf -aaf -aaf -aaf -aaf aaa +aaa +aaa +aaa +rpQ aaf +lMJ +lMJ +kCX +kkC +kkC +kkC +kkC +vCh +mud +wol +jde +jde +jde +jde +ssE +rpQ +rpQ aaf -aaf -aaf -aaf +aqB ahp aif ahp @@ -100490,38 +102606,38 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aag aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +rpQ +aaa +lMJ +aaa +nsg +nsg +nsg +nsg +nsg aaf -aaa -aaa -aaf -wwD -aaf -aaf -aaf -wwD -aaf -aaa -aaf -wwD -aaf -aaa +wZR aaf +nsg +nsg +nsg +nsg +nsg aaa aaa aaa -aaf -aaa -aaa -aaa -aaa -aaf aaa ahp aig @@ -100747,38 +102863,38 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aai aaa -lPr -wZC -wZC -bID -kQW -kQW -kQW -kfT -kQW -kQW -dSe -kQW -kQW -kQW -mLH -wZC -wZC -wZC -wZC -sZQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +rpQ +aaa +lMJ aaa aaa aaf +aaa +aaa +aaa +aaa +wKG +aaa aaf -aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa ahq ahq @@ -101004,39 +103120,39 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aag aaa -aaf aaa -aaf -aaf -spA -aaf aaa -aaf -spA -aaf aaa -aaf -spA -aaf +aaa +aaa +aaa +aaa +aaa +xwj +aaa +lMJ +aaa aaa aaf aaa aaa +lMJ aaa -vjC +wKG +aaa +lMJ aaf -aaa aaf -aaa aaf -aaa +lMJ +lMJ +rpQ +rpQ +xwj ahq aih ajd @@ -101261,39 +103377,39 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aai -aaj -aaj -aaa -aaf -nmO -grC -dDj -aaa -nmO -grC -dDj -aaa -nmO -grC -dDj -aaa -aaf aaa aaa aaa -vjC aaa aaa aaa aaa +aaa +aaa +rpQ +aaa +lMJ +aaa +aaa aaf aaa +aaa +lMJ +aaa +qmP +wZC +tSe +aaa +aaf +aaa +lMJ +aaa +lMJ +aaa +aaa ahq aii ajg @@ -101518,8 +103634,6 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa @@ -101528,28 +103642,30 @@ aaa aaa aaa aaa -nmO -grC -dDj -aaf -nmO -grC -dDj -aaa -nmO -grC -dDj -aaa -aaf aaa aaa aaa -vjC +aaa +lMJ +aaa +lMJ aaf aaf aaf aaf aaf +lMJ +aaa +lMJ +aaa +wKG +aaa +aaf +aaa +lMJ +aaa +lMJ +aaa aaa ahq aij @@ -101775,39 +103891,39 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa aaa aaa aaa -aag -aaf -nmO -grC -dDj -aaa -nmO -grC -dDj -aaf -nmO -grC -dDj -aaf -aaf -aaf -aaf -aaf -vjC aaa aaa aaa +aaa +aaa +aaa +xwj +aaa +lMJ +aaa +aaa +aaa +aaa +aaa +lMJ +qle +lMJ +aaa +wKG +aaa aaf -aaf -aaf +aaa +lMJ +aaa +lMJ +aaa +aaa ahq aik anZ @@ -102032,37 +104148,37 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa aaa aaa aaa -aai -aaf -nmO +aaa +aaa +aaa +aaa +aaa +aaa +rpQ +aaa +lMJ +aaa +aaa +nLC grC -dDj -aaf -nmO grC -dDj +vjV +izT +izT aaa -nmO -grC -dDj -aaa -aaf -aaa -aaa -aaa -vjC +wKG aaa aaf aaf +lMJ aaf +lMJ aee bbo bbo @@ -102289,34 +104405,34 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa aaa aaa aaa -aaj aaa +aaa +aaa +aaa +aaa +aaa +rpQ +aaa +lMJ +aaa +nLC +gwC nmO sFR -dDj +lha +nWG +izT aaa -nmO -sFR -dDj -aaa -nmO -sFR -dDj +wKG aaa aaf aaa -aaa -aaa -vjC -aaa aee aee aee @@ -102546,33 +104662,33 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa +xvm +rpQ +rpQ +xwj +rpQ +xwj +rpQ +rpQ +aaf +xGl aaa +lMJ aaa -aaa -aaj +ubH +ulI +vbH +jVK +fOe +jpk +izT aaf -aaa -aaf -aaf -aaa -aaf -aaa -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -kWh +qmP +wZC +wZC wZC abN aef @@ -102803,31 +104919,31 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aaa -aaa -aaa -aaa -aaf -aai -aag -aai -aag -aaj -aag -aai -aaj +lMJ aaa aaa aaf aaa +lMJ aaa +aaa +aaa +lMJ aaf +lMJ aaa +gec +xAw +wgf +sUd +pCS +jtG +izT +izT +aaf aaa aaf aaa @@ -103060,37 +105176,37 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaf +lMJ aaa aaa aaf aaa +lMJ aaa -aaf aaa +aaa +rpQ +aaa +lMJ aaf +izT +qhO +qrs +kmQ +qUX +xvj +pdH +izT +xwj +gzW +gzW +rpQ +lMJ aaf -aaf +lMJ aee bbo bbo @@ -103317,37 +105433,37 @@ oRp oRp oRp oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa aaa aaa aaa +rpQ aaa aaa aaf -aaf -aaf aaa -aaf +izT +hKk +izT +izT +izT +izT +izT +izT +izT +sMe +sMe +sMe +qTc +xvj +pdH +hKk +aaa +xwj aaa aaa +lMJ aaa -aaf -aaf -aaa -aaf -aaa -aaa -aaf -aaf -aaf -aaa -aaf +lMJ aaf aaf aaf @@ -103573,38 +105689,38 @@ oRp oRp oRp oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf +rpQ +xvm +rpQ +lMJ +xwj aaf aaf +nLC +vjV +izT +svu +sMe +lAA +jsO +edY +ulp +uTQ +hlO +hlO +jbJ +sMe +eFk +hma +xAI +nPH +aaa +gzW aaa aaa +rpQ aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaf -aaa -aaf -aaa -aaa +lMJ aaf aaa aaf @@ -103830,39 +105946,39 @@ oRp oRp oRp oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +rpQ aaa aaa aaf aaa aaa aaa -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ +gec +lQK +oUR +xDA +sMe +jIU +qFN +rYP +qFN +qFN +kze +rif +nFN +sMe +oqC +iRC +afH +bgb +bgb +bgb +bgb +bgb +bgb +lMJ +lMJ +aaa aaa aaf aio @@ -104087,39 +106203,39 @@ oRp oRp oRp oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaf -abg -abx -abV -acm -acA +rpQ +lMJ +oKD +izT +oaH +vjV +izT +izT +sIN +xAO +haD +sMe +jxe +kaM +rIe +mjl +qTq +iei +mvS +xOh +nEC +itk +ylY +afH +adm +rvO +afH acV adm -adJ -aeg -aeH -aaZ +bgb +aaf +aaa +aaa aaa aaf aio @@ -104344,39 +106460,39 @@ oRp oRp oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -abg -aby -abW -acn -acB +izT +izT +wNK +rqn +nEC +pCQ +xAO +xAO +wzi +sMe +sMe +sMe +sMe +sMe +kGI +iei +mvS +xOh +nEC +cUT +xvj +afH +swH +lFW +afH acW adn -adK -aeh -aeI -aaZ +bgb +aaf +aaf +aaa aaf aaf aaf @@ -104601,40 +106717,40 @@ oRp oRp oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaa -aaa -aaa -aaf -abg -abz -abX -aco -acC +izT +oqD +mUE +sck +nEC +emo +xAO +hXi +viX +dCu +pAw +jVo +wDM +sMe +sMe +uvn +xXN +nEC +sMe +rCq +xvj +afH +fRj +gwI +afH acX ado -adL -aei -aeJ -aaZ -aaa +bgb +bgb +aaf +aaf +aaf aaa aaf aaf @@ -104858,40 +106974,40 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aai -aaa -aaf -aaa -aaa -aaa -aax -aax -aax -aax -aax -aax +rpQ +lMJ +izT +poR +mUE +oKu +rCF +wyf +mOH +gjm +fKj +gyf +hzP +nEa +oKe +bTB +hzP +sbg +vkq +hzP +nNO +qqj +xpx +upD +qXt acY -adp +kQr +acY +ofK adM -aax -aax -aax -aax +bgb +bgb +bgb +bgb aaa aaa aaf @@ -105115,41 +107231,41 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaj -aaf -aaf -aaa -aaa -aaf -aay +xwj +lMJ +izT +dsC +mUE +mlV +ykn +mak +eiU +dbx +mak +uam +ayq +abh +xuu +yaL +abh +xuu +fEV +abh +fhK +rSi abh abA abY acp -aax +uUN vla adq adN aej aeK afF -aax -aax +bgb +aaa aaa aaf aaa @@ -105372,41 +107488,41 @@ oRp oRp oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aai -aaa -aaf -aaf -aaf -aaf -aax -abi +izT +ijq +mUE +eaE +nEC +emo +xAO +wWN +xAO +pxQ +sMe +sMe +fdl +uxR +sMe +wwa +uxR +sMe +sMe abB -abe -abe -aax +abB +abB +exz +wIu +gkG ada -adr +ven adr aek aeL afG -agE -aax +bgb +aaa aaa aaf aaf @@ -105629,41 +107745,41 @@ oRp oRp oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaf -aaa -aax -aax -aaF -aax -aax +izT +izT +mBZ +hZd +nEC +mvI +pzy +xAO +xAO +wcj +sMe +fCR +npY +eEy +sMe +wWN +ulQ +jIF +sMe +mhG abj -aaR +fKv abZ acq acD -abe +szt ads adO -ael -aeM afH -agF -afW +afH +afH +bgb +aaf aaf aaf aaa @@ -105886,41 +108002,41 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaf -aaf -aay +kKH +lMJ +oKD +izT +oaH +gwC +izT +izT +izT +pqv +sMT +sMT +sMe +glz +bRR +qWm +sMe +mxT rLV -xIi -abC +bvX +sMe jhu xIi -abC +abB abC acr acE adb -cUU -aaR +ven +adr aem aeN afI -agG -aax +bgb +aaa aaa aaf aaa @@ -106144,40 +108260,40 @@ oRp oRp oRp oRp +lMJ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa aaf -aaa -aax +oRp +oRp +aaf +oRp +izT +qiz +iBL +iBL +sMe +iUN +iUN +iUN +sMe +bQZ abl -roa -ram -aax +jIF +sMe +ihO iCn -aaR -aaR -aaI +abB +llF +uOr acF -abe -adt +qTV +adq adP -abe +oGG aeO -afJ -aax -aax +afF +bgb +aaa aaa aaf aaa @@ -106401,42 +108517,42 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aax -aax -aax -aax -aax -abm -aaR -aaR -aaI -acG -adc -adc -adQ -adc -aeP -afK -agH -aax -aaa aaf +rpQ +xwj +xGl +rpQ +xvm +rpQ +izT +izT +izT +izT +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +vXi +aME +acG +qTV +vtn +adQ +afH +afH +afH +bgb +rRB +lUk +bgb dne dne dne @@ -106669,34 +108785,34 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaf -aaa -aax +nhI +abg +abx +abV +acm +xJb aaA aaG -aaP -aax -abn -aaR +adJ +aeg +aeH +aaZ abD -acs -acH -abe +aME +acG +qTV adu adR -abe -aeQ +qES +agI afL agI afW -aaf -aaf -dne +dve +bgb alL anb +mMf aok aox aqV @@ -106926,34 +109042,34 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaf -aaf -aay +uOH +abg +aby +abW +acn +mIR aaB aaH aaQ -aba +aeh abo -abF -aca +aaZ +abD act -acI +acG add adv adS aen -aeR -afG agH -aax -aaf -aaf -dne +agH +agH +hsr +ohf +bgb alL anc +aRG aol apD aqW @@ -107183,30 +109299,30 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaf -aaa -aax +ikj +abg +abz +abX +aco +syL aaC -aaI -aaR -abb -wXA -abG +uNg +kUL +aei +aeJ +aaZ acb acu acJ -abe +pJv adw -adT -adc -aeS -afM -abe aax -aiq +aax +aax +aax +wBB +cKy +qIB ajm ajm ajm @@ -107435,36 +109551,36 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aay +rpQ +fOG +siF +siF +siF +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ aaD -aaJ +adp aaS -abc -abp -acc -acc -acv +aaZ +aaZ +aaZ +aax +aax acK -abe -abe -abe -abe +dwf +upX +aax +llY aeT -afN -abe -ahu +aax +wHw +ajm air -ahx +ajm akt alM and @@ -107692,33 +109808,33 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaf -aaa +lMJ +lMJ +lMJ +lMJ +lMJ +lMJ +lMJ aax +hGz +sja +aaZ aaE aaK aaT -aax +aaZ abq abI -abC +nnO acw acL -abe +kUN adx -adU +abe ael aeU -afO abe +hXW ahv ais ahx @@ -107954,30 +110070,30 @@ oRp oRp oRp aaa +vLD aaa -aaa -aaa -aaf -aaf -aax -aax -aaL -aax aax +ovd +hGz +aaZ +aaZ +scs +suZ +aaZ abr abJ -aaR -aaR -aaR +qUm +gmU +lxV ade cUU -aaR -aeo -aeV -afP abe -ahw -air +llY +aeV +abe +vRz +aws +aws ahx akv alO @@ -108211,29 +110327,29 @@ oRp oRp oRp aaa +vLD aaa -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aay +aax +fUI +oEN +hGz +uiA +dxy +vSH +abe abs abK ace -acx +aax acM -abe +ewU ady -adT -adc +abe +abe aeW -afK -agJ -ahx +abe +pvy +pvy ait ahx akw @@ -108468,32 +110584,32 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaa +ack +lMJ urv aax aax +aZO +kwe +mpv +rLx +abe +aay +qRZ +eSb aax -aax -aax -abe -abe -abe -abe -abe +qEk +hDB +oVt +fvV +tJI dpy afR -agK -ahy -aiu -ajn akx +anh +anh +anh +anh alQ anh aor @@ -108729,28 +110845,28 @@ aaa aaa aaa aaa -aaa -aaf -aaa -aaa -aaa -aaa wOY abL +aax +uUK +uBA +nAj +nAj +nJo acf acy -abL +iyp adf adz -acf +agL hyP aeY -afG agL -ahz -aiv -ajo aky +azE +azE +azE +azE akg ani aos @@ -108982,32 +111098,32 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaa -aaa -aaa -adG +lSH aaa aaa aaa abu abM +adG +wtO +mgT +ydu +mQt +tDM acg -aax -abe -abe -abe -abe -abe +keE +ojh +qKq +rub +kVM +vSL aeZ afS -agM -ahA -aiw -ajp akz +wKX +wKX +wKX +wKX ajQ egm aot @@ -109243,23 +111359,23 @@ aaa aaa aaa aaa -aaf -aaf -aaa -aaa -aaa -aaa wOY -abe -ach +mFa aax +ubD +aaI +ovU +aaR +aDg +ach +pUL acN adg adA -adV +aax adc -afa -afT +aax +aax agN ahB ahB @@ -109496,29 +111612,29 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa +ngt +lMJ urv -abe -abe -abe -abL aax +aax +aax +aax +uvz +pJX +abe +png +abe +aCJ +hwd acO adh -adB -adW -aep -afb -afU -agO -ahB +aaF +aax +aaf +aaf +aaf +aaf +adY aNA ajq aix @@ -109755,27 +111871,27 @@ oRp aaa aaa aaa +vLD aaa aaa aaa -aaf -aaf -aaa -aaa -aaf -aaa +aax +aay +aaL +abe +kyV abe acj -aax +nlq acR adi adC -adX -ael -afd -afV -agP -ahB +aaa +aaa +aaa +aaa +aaf +adY aiy dBZ ajr @@ -110012,26 +112128,26 @@ oRp aaa aaa aaa +vLD +vLD +vLD +vLD +vLD aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf +vLD +aax +xhP abe -wiZ aax aax +aay aaL -aax -aax -aax -afc -afW -aax +aaa +aaa +aaa +aaa +aaa +aaf adY aiz ajt @@ -110269,22 +112385,22 @@ oRp aaa aaa aaa +vLD aaa aaa aaa +vLD aaa +vLD +aax +wiZ +aax aaf aaa aaa -aaf aaa aaa -ack aaa -aaa -aaf -aaa -aaf aaf aaf aaf @@ -110526,21 +112642,21 @@ oRp aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -ack +vLD +vLD +vLD +vLD +vLD +vLD +vLD +ngt +ngt +ngt aaf aaf aaf aaf +aaa aaf aaf aeq @@ -110797,7 +112913,7 @@ aaa aaa aaa aaf -aaa +aaf aaf aeq aeq @@ -112075,7 +114191,7 @@ oRp oRp oRp oRp -aav +oRp oRp aaa aaa @@ -112312,7 +114428,7 @@ oRp oRp oRp oRp -xtS +oRp oRp oRp oRp @@ -114387,7 +116503,7 @@ oRp oRp oRp oRp -aav +oRp oRp oRp aaa diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 1355aab9a6..e731786ed2 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -1978,13 +1978,6 @@ /obj/structure/stone_tile, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"DQ" = ( -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/item/book/granter/crafting_recipe/bone_bow, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "Ef" = ( /obj/structure/stone_tile/block/cracked, /turf/open/lava/smooth{ @@ -2306,7 +2299,6 @@ }, /obj/structure/table/wood, /obj/item/kitchen/knife/combat/bone, -/obj/item/book/granter/crafting_recipe/bone_bow, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "TN" = ( @@ -2401,7 +2393,6 @@ /area/ruin/unpowered/ash_walkers) "WA" = ( /obj/structure/stone_tile/block/cracked, -/obj/item/book/granter/crafting_recipe/bone_bow, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "WL" = ( @@ -57296,7 +57287,7 @@ jS jS KV ab -DQ +jx aa aa ab diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index d3c8c90947..b475f38338 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2750,7 +2750,6 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel/freezer, /area/security/prison) "agP" = ( @@ -61341,10 +61340,6 @@ }, /turf/open/floor/plasteel/dark, /area/security/courtroom) -"tVZ" = ( -/obj/effect/landmark/start/prisoner, -/turf/open/floor/plasteel/dark, -/area/security/prison) "tXn" = ( /obj/structure/sink{ dir = 4; @@ -83604,7 +83599,7 @@ aaa aem aeq aeE -tVZ +aeU afo afD aga diff --git a/_maps/map_files/PubbyStation/job_changes.dm b/_maps/map_files/PubbyStation/job_changes.dm new file mode 100644 index 0000000000..dfef9491ed --- /dev/null +++ b/_maps/map_files/PubbyStation/job_changes.dm @@ -0,0 +1,25 @@ +#define JOB_MODIFICATION_MAP_NAME "PubbyStation" + +/datum/job/hos/New() + ..() + MAP_JOB_CHECK + access += ACCESS_CREMATORIUM + minimal_access += ACCESS_CREMATORIUM + +/datum/job/warden/New() + ..() + MAP_JOB_CHECK + access += ACCESS_CREMATORIUM + minimal_access += ACCESS_CREMATORIUM + +/datum/job/officer/New() + ..() + MAP_JOB_CHECK + access += ACCESS_CREMATORIUM + minimal_access += ACCESS_CREMATORIUM + +/datum/job/prisoner/New() + ..() + MAP_JOB_CHECK + total_positions = 0 + spawn_positions = 2 diff --git a/_maps/shuttles/emergency_nature.dmm b/_maps/shuttles/emergency_nature.dmm index 51a14594fb..a7fcc12f1a 100644 --- a/_maps/shuttles/emergency_nature.dmm +++ b/_maps/shuttles/emergency_nature.dmm @@ -145,12 +145,9 @@ /turf/open/floor/plating, /area/shuttle/escape) "eS" = ( -/obj/effect/turf_decal/trimline/red/filled/end{ - dir = 1 - }, /obj/structure/table/reinforced, /obj/machinery/recharger, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "eY" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -240,9 +237,6 @@ /turf/open/floor/grass, /area/shuttle/escape) "ht" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, /obj/structure/chair/comfy/shuttle, /obj/machinery/light{ dir = 8 @@ -250,19 +244,7 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_y = 28 }, -/turf/open/floor/plasteel/dark, -/area/shuttle/escape) -"hC" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/structure/chair/comfy/shuttle{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "hJ" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -287,10 +269,10 @@ /turf/open/floor/grass, /area/shuttle/escape) "it" = ( -/mob/living/carbon/monkey, /obj/structure/flora/grass/jungle/b{ icon_state = "bushb3" }, +/mob/living/carbon/monkey, /turf/open/floor/grass, /area/shuttle/escape) "iD" = ( @@ -333,21 +315,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/shuttle/escape) -"jX" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/escape) -"jZ" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/escape) "ke" = ( /obj/item/shovel/spade, /turf/open/floor/grass, @@ -385,13 +352,10 @@ }, /area/shuttle/escape) "lS" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, /obj/structure/chair/comfy/shuttle{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "lT" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -428,9 +392,9 @@ /turf/open/floor/plasteel/white, /area/shuttle/escape) "mq" = ( -/mob/living/carbon/monkey, /obj/machinery/light/floor, /obj/structure/flora/ausbushes/sparsegrass, +/mob/living/carbon/monkey, /turf/open/floor/grass, /area/shuttle/escape) "mw" = ( @@ -557,13 +521,10 @@ /turf/open/floor/plasteel/white, /area/shuttle/escape) "tL" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "uc" = ( /obj/effect/turf_decal/weather/dirt{ @@ -595,15 +556,12 @@ /turf/open/floor/grass, /area/shuttle/escape) "vt" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 - }, /obj/structure/table/reinforced, /obj/item/restraints/handcuffs{ pixel_y = 7 }, /obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "vx" = ( /obj/effect/turf_decal/stripes/line{ @@ -612,13 +570,9 @@ /turf/open/floor/plating, /area/shuttle/escape) "vP" = ( -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "vW" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, /obj/structure/table/reinforced, /obj/item/storage/box/handcuffs{ pixel_y = 5 @@ -626,7 +580,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "wg" = ( /obj/effect/turf_decal/trimline/green/filled/end{ @@ -713,7 +667,7 @@ name = "Brig"; req_access_txt = "63; 42" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "Ai" = ( /obj/effect/turf_decal/weather/dirt{ @@ -926,8 +880,8 @@ /turf/open/floor/plasteel/white, /area/shuttle/escape) "Ia" = ( -/mob/living/carbon/monkey, /obj/structure/flora/ausbushes/sparsegrass, +/mob/living/carbon/monkey, /turf/open/floor/grass, /area/shuttle/escape) "Io" = ( @@ -1549,7 +1503,7 @@ gx WE VU Yu -jX +tL tL vt Yu @@ -1582,8 +1536,8 @@ gx VU Yu ht -jZ -WL +vP +vP vP zE HV @@ -1614,7 +1568,7 @@ WE (7,1,1) = {" VI eS -hC +lS lS lS vW diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index c39531971c..20c68c015b 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -32,6 +32,9 @@ #define MEDAL_VOID_ASCENSION "Void" #define MEDAL_TOOLBOX_SOUL "Toolsoul" #define MEDAL_CHEM_TUT "Beginner Chemist" +#define MEDAL_HOT_DAMN "Hot Damn!" +#define MEDAL_CAYENNE_DISK "Very Important Piscis" +#define MEDAL_TRAM_SURFER "Tram Surfer" //Skill medal hub IDs #define MEDAL_LEGENDARY_MINER "Legendary Miner" @@ -106,3 +109,19 @@ // DB ID for amount of consumed maintenance pills #define MAINTENANCE_PILL_SCORE "Maintenance Pill Score" + +// DB ID for intento score +#define INTENTO_SCORE "Intento Score" + +// Tourist related achievements and scores + +//centcom grades (achievement) + +#define MEDAL_BAD_SERVICE "Bad Service" +#define MEDAL_OKAY_SERVICE "Okay Service" +#define MEDAL_GOOD_SERVICE "Good Service" + +//scores + +#define CHEF_TOURISTS_SERVED "Tourists Served As Chef" +#define BARTENDER_TOURISTS_SERVED "Tourists Served As Bartender" diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index db78144689..04c91cfb9d 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -59,3 +59,4 @@ #define COLOR_SILVER "#C0C0C0" #define COLOR_GRAY "#808080" #define COLOR_HALF_TRANSPARENT_BLACK "#0000007A" +#define COLOR_BRIGHT_BLUE "#2CB2E8" diff --git a/code/__DEFINES/configuration.dm b/code/__DEFINES/configuration.dm index 9915563cab..8c9b270f43 100644 --- a/code/__DEFINES/configuration.dm +++ b/code/__DEFINES/configuration.dm @@ -24,3 +24,11 @@ #define POLICYCONFIG_ON_PYROCLASTIC_SENTIENT "PYROCLASTIC_SLIME" /// Displayed to pAIs on spawn #define POLICYCONFIG_PAI "PAI_SPAWN" +/// displayed to lavaland elites on spawn, overriding the default if set +#define POLICYCONFIG_ELITE_SPAWN "ELITE_FAUNA_SPAWN" +/// displayed to lavaland elites on sentience potion, overriding the default if set +#define POLICYCONFIG_ELITE_SENTIENCE "ELITE_FAUNA_SENTIENCE" +/// displayed to lavaland elites on winning the fight, overriding the default if set +#define POLICYCONFIG_ELITE_WIN "ELITE_FAUNA_WIN" +/// displayed to prisoners on spawn, overriding the default if set +#define POLICYCONFIG_JOB_PRISONER "JOB_PRISONER" diff --git a/code/__DEFINES/cooldowns.dm b/code/__DEFINES/cooldowns.dm index 29c7a25dad..92231d3998 100644 --- a/code/__DEFINES/cooldowns.dm +++ b/code/__DEFINES/cooldowns.dm @@ -28,6 +28,11 @@ //INDEXES #define COOLDOWN_EMPLOYMENT_CABINET "employment cabinet" +//car cooldowns +#define COOLDOWN_CAR_HONK "car_honk" + +//clown car cooldowns +#define COOLDOWN_CLOWNCAR_RANDOMNESS "clown_car_randomness" //TIMER COOLDOWN MACROS diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 72543970ba..e315152252 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -81,7 +81,8 @@ #define SPACE list('sound/ambience/ambispace.ogg', 'sound/ambience/ambispace2.ogg', 'sound/ambience/title2.ogg', 'sound/ambience/ambiatmos.ogg') #define MAINTENANCE list('sound/ambience/ambimaint1.ogg', 'sound/ambience/ambimaint2.ogg', 'sound/ambience/ambimaint3.ogg', 'sound/ambience/ambimaint4.ogg',\ - 'sound/ambience/ambimaint5.ogg', 'sound/voice/lowHiss2.ogg', 'sound/voice/lowHiss3.ogg', 'sound/voice/lowHiss4.ogg', 'sound/ambience/ambitech2.ogg' ) + 'sound/ambience/ambimaint5.ogg', 'sound/voice/lowHiss2.ogg', 'sound/voice/lowHiss3.ogg', 'sound/voice/lowHiss4.ogg', 'sound/ambience/ambitech2.ogg',\ + 'sound/ambience/ambimaint10.ogg' ) #define AWAY_MISSION list('sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiruin.ogg',\ 'sound/ambience/ambiruin2.ogg', 'sound/ambience/ambiruin3.ogg', 'sound/ambience/ambiruin4.ogg',\ diff --git a/code/__DEFINES/vehicles.dm b/code/__DEFINES/vehicles.dm index 48383546b9..1ff14f9506 100644 --- a/code/__DEFINES/vehicles.dm +++ b/code/__DEFINES/vehicles.dm @@ -1,9 +1,20 @@ -//Vehicle control flags +//Vehicle control flags. control flags describe access to actions in a vehicle. -#define VEHICLE_CONTROL_PERMISSION 1 -#define VEHICLE_CONTROL_DRIVE 2 -#define VEHICLE_CONTROL_KIDNAPPED 4 //Can't leave vehicle voluntarily, has to resist. +///controls the vehicles movement +#define VEHICLE_CONTROL_DRIVE (1<<0) +///Can't leave vehicle voluntarily, has to resist. +#define VEHICLE_CONTROL_KIDNAPPED (1<<1) +///melee attacks/shoves a vehicle may have +#define VEHICLE_CONTROL_MELEE (1<<2) +///using equipment/weapons on the vehicle +#define VEHICLE_CONTROL_EQUIPMENT (1<<3) +///changing around settings and the like. +#define VEHICLE_CONTROL_SETTINGS (1<<4) +//car_traits flags +///Will this car kidnap people by ramming into them? +#define CAN_KIDNAP (1<<0) -//Car trait flags -#define CAN_KIDNAP 1 +#define CLOWN_CANNON_INACTIVE 0 +#define CLOWN_CANNON_BUSY 1 +#define CLOWN_CANNON_READY 2 diff --git a/code/_globalvars/lists/typecache.dm b/code/_globalvars/lists/typecache.dm index 1ec3de0bc5..d380816bbf 100644 --- a/code/_globalvars/lists/typecache.dm +++ b/code/_globalvars/lists/typecache.dm @@ -12,3 +12,16 @@ GLOBAL_LIST_INIT(typecache_stack, typecacheof(/obj/item/stack)) GLOBAL_LIST_INIT(typecache_machine_or_structure, typecacheof(list(/obj/machinery, /obj/structure))) GLOBAL_LIST_INIT(freezing_objects, typecacheof(list(/obj/structure/closet/crate/freezer, /obj/structure/closet/secure_closet/freezer, /obj/structure/bodycontainer, /obj/item/autosurgeon, /obj/machinery/smartfridge/organ))) //list of all cold objects, that freeze organs when inside + +GLOBAL_LIST_EMPTY(typecaches) + +/** + * Makes a typecache of a single typecache + * + * Obviously in BYOND we don't have the efficiency around here to have proper enforcement so + * If you use this you better know what you're doing. The list you get back is globally cached and if it's modified, you might break multiple things. + */ +/proc/single_path_typecache_immutable(path) + if(!GLOB.typecaches[path]) + GLOB.typecaches[path] = typecacheof(path) + return GLOB.typecaches[path] diff --git a/code/datums/achievements/_achievement_data.dm b/code/datums/achievements/_achievement_data.dm index 80f544a965..12c8256c74 100644 --- a/code/datums/achievements/_achievement_data.dm +++ b/code/datums/achievements/_achievement_data.dm @@ -109,7 +109,7 @@ /datum/achievement_data/ui_data(mob/user) var/ret_data = list() // screw standards (qustinnus you must rename src.data ok) - ret_data["categories"] = list("Bosses", "Misc", "Mafia", "Scores") + ret_data["categories"] = list("Bosses", "Jobs", "Misc", "Mafia", "Scores") ret_data["achievements"] = list() ret_data["user_key"] = user.ckey diff --git a/code/datums/achievements/_awards.dm b/code/datums/achievements/_awards.dm index 77485de8ba..22296b90f5 100644 --- a/code/datums/achievements/_awards.dm +++ b/code/datums/achievements/_awards.dm @@ -2,7 +2,7 @@ ///Name of the achievement, If null it won't show up in the achievement browser. (Handy for inheritance trees) var/name var/desc = "You did it." - ///Found in UI_Icons/Achievements + ///Found in ui_icons/achievements var/icon = "default" var/category = "Normal" @@ -78,7 +78,7 @@ /datum/award/achievement/on_unlock(mob/user) . = ..() - to_chat(user, "Achievement unlocked: [name]!") + to_chat(user, span_greenannounce("Achievement unlocked: [name]!")) ///Scores are for leaderboarded things, such as killcount of a specific boss /datum/award/score diff --git a/code/datums/achievements/boss_achievements.dm b/code/datums/achievements/boss_achievements.dm index 104a369405..f2ff90945f 100644 --- a/code/datums/achievements/boss_achievements.dm +++ b/code/datums/achievements/boss_achievements.dm @@ -12,7 +12,7 @@ name = "Boss Killer" desc = "You've come a long ways from asking how to switch hands." database_id = "Boss Killer" - // icon = "firstboss" + icon = "firstboss" /datum/award/achievement/boss/blood_miner_kill name = "Blood-Drunk Miner Killer" diff --git a/code/datums/achievements/job_achievements.dm b/code/datums/achievements/job_achievements.dm new file mode 100644 index 0000000000..13a68462ed --- /dev/null +++ b/code/datums/achievements/job_achievements.dm @@ -0,0 +1,34 @@ + +/datum/award/achievement/jobs + category = "Jobs" + icon = "basemisc" + +//chemistry + +/datum/award/achievement/jobs/chemistry_tut + name = "Perfect chemistry blossom" + desc = "Passed the chemistry tutorial with perfect purity!" + database_id = MEDAL_CHEM_TUT + icon = "chem_tut" + +//all of service! hip hip! + +/datum/award/achievement/jobs/service_bad + name = "Centcom Grade: Shitty Service" + desc = "Well, you at least tried. How about trying harder?" + database_id = MEDAL_BAD_SERVICE + icon = "chem_tut" + +/datum/award/achievement/jobs/service_okay + name = "Centcom Grade: Acceptable Service" + desc = "Well, it'll do! You and your department did just fine." + database_id = MEDAL_OKAY_SERVICE + icon = "chem_tut" + +/datum/award/achievement/jobs/service_good + name = "Centcom Grade: Exemplary Service" + desc = "Centcom is very impressed with your department!" + database_id = MEDAL_GOOD_SERVICE + icon = "chem_tut" + +//civilian achievies! while not recognized by the code, it is recognized by our hearts diff --git a/code/datums/achievements/job_scores.dm b/code/datums/achievements/job_scores.dm new file mode 100644 index 0000000000..d860c7e21a --- /dev/null +++ b/code/datums/achievements/job_scores.dm @@ -0,0 +1,14 @@ + +//chef + +/datum/award/score/chef_tourist_score + name = "Tourists Served as Chef Highscore" + desc = "Your highscore on serving tourist bots as chef." + database_id = CHEF_TOURISTS_SERVED + +//bartender + +/datum/award/score/bartender_tourist_score + name = "Tourists Served as Bartender Highscore" + desc = "Your highscore on serving tourist bots as bartender." + database_id = BARTENDER_TOURISTS_SERVED diff --git a/code/datums/achievements/misc_achievements.dm b/code/datums/achievements/misc_achievements.dm index 0da38df8f3..5ad337445b 100644 --- a/code/datums/achievements/misc_achievements.dm +++ b/code/datums/achievements/misc_achievements.dm @@ -154,8 +154,20 @@ database_id = MEDAL_TOOLBOX_SOUL icon = "toolbox_soul" -/datum/award/achievement/misc/chemistry_tut - name = "Perfect chemistry blossom" - desc = "Passed the chemistry tutorial with perfect purity!" - database_id = MEDAL_CHEM_TUT - icon = "chem_tut" +/datum/award/achievement/misc/hot_damn + name = "Hot Damn!" + desc = "Sometimes you need to make some noise to make a point." + database_id = MEDAL_HOT_DAMN + icon = "hotdamn" + +/datum/award/achievement/misc/cayenne_disk + name = "Very Important Piscis" + desc = "You can rest well now." + database_id = MEDAL_CAYENNE_DISK + icon = "cayenne_disk" + +/datum/award/achievement/misc/tram_surfer + name = "Tram Surfer" + desc = "Lights out, guerilla radio!" + database_id = MEDAL_TRAM_SURFER + icon = "tram_surfer" diff --git a/code/datums/achievements/misc_scores.dm b/code/datums/achievements/misc_scores.dm index 7ffc50c015..067cd68d7d 100644 --- a/code/datums/achievements/misc_scores.dm +++ b/code/datums/achievements/misc_scores.dm @@ -9,3 +9,9 @@ name = "Maintenance Pills Consumed" desc = "Wait why?" database_id = MAINTENANCE_PILL_SCORE + +///How high of a score on the Intento did we get? +/datum/award/score/intento_score + name = "Intento Score" + desc = "A blast from the future?" + database_id = INTENTO_SCORE diff --git a/code/datums/atmosphere/planetary.dm b/code/datums/atmosphere/planetary.dm index a8b77f7394..69abba85e5 100644 --- a/code/datums/atmosphere/planetary.dm +++ b/code/datums/atmosphere/planetary.dm @@ -20,7 +20,7 @@ minimum_pressure = HAZARD_LOW_PRESSURE + 10 maximum_pressure = LAVALAND_EQUIPMENT_EFFECT_PRESSURE - 1 - minimum_temp = BODYTEMP_COLD_DAMAGE_LIMIT + 1 + minimum_temp = 270 maximum_temp = 320 /datum/atmosphere/icemoon diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index 279118d877..8010f5dc6f 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -83,13 +83,19 @@ return if(HAS_TRAIT(owner, TRAIT_FEARLESS)) return + + var/matches = FALSE + var/mainsource for(var/word in trigger_words) - var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") + var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "ig") if(findtext(hearing_args[HEARING_RAW_MESSAGE], reg)) - addtimer(CALLBACK(src, .proc/freak_out, null, word), 10) //to react AFTER the chat message - hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "$1") - break + hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "$0") + matches = TRUE + mainsource = word + + if(matches) + addtimer(CALLBACK(src, .proc/freak_out, null, mainsource), 10) //to react AFTER the chat message /datum/brain_trauma/mild/phobia/handle_speech(datum/source, list/speech_args) if(HAS_TRAIT(owner, TRAIT_FEARLESS)) diff --git a/code/datums/components/crafting/recipes/recipes_primal.dm b/code/datums/components/crafting/recipes/recipes_primal.dm index aaae94df1d..73401a4198 100644 --- a/code/datums/components/crafting/recipes/recipes_primal.dm +++ b/code/datums/components/crafting/recipes/recipes_primal.dm @@ -93,7 +93,6 @@ /datum/crafting_recipe/quiver name = "Quiver" - always_availible = FALSE result = /obj/item/storage/belt/quiver time = 80 reqs = list(/obj/item/stack/sheet/leather = 3, @@ -104,19 +103,18 @@ name = "Bone Bow" result = /obj/item/gun/ballistic/bow/ashen time = 120 // 80+120 = 200 - always_availible = FALSE reqs = list(/obj/item/stack/sheet/bone = 8, /obj/item/stack/sheet/sinew = 4) category = CAT_PRIMAL -/datum/crafting_recipe/bow_tablet +/*/datum/crafting_recipe/bow_tablet name = "Sandstone Bow Making Manual" result = /obj/item/book/granter/crafting_recipe/bone_bow time = 200 //Scribing // don't care always_availible = FALSE reqs = list(/obj/item/stack/rods = 1, /obj/item/stack/sheet/mineral/sandstone = 4) - category = CAT_PRIMAL + category = CAT_PRIMAL*/ /datum/crafting_recipe/rib name = "Collosal Rib" @@ -154,3 +152,158 @@ /obj/item/shovel/spade = 1) result = /obj/item/shovel/serrated category = CAT_PRIMAL + +/datum/crafting_recipe/bone_screwdriver + name = "Bone Screwdriver" + result = /obj/item/screwdriver/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_crowbar + name = "Bone Crowbar" + result = /obj/item/crowbar/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_cutters + name = "Bone Wirecutters" + result = /obj/item/wirecutters/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_wrench + name = "Bone Wrench" + result = /obj/item/wrench/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/necropolis_welding + name = "Necropolis Welding Torch" + result = /obj/item/weldingtool/experimental/ashwalker + time = 120 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/organ/regenerative_core = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/tribalbelt + name = "Hunter's Belt" + result = /obj/item/storage/belt/mining/primitive + time = 80 + reqs = list(/obj/item/stack/sheet/sinew = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/goliath_gloves + name = "Goliath Gloves" + result = /obj/item/clothing/gloves/tackler/combat/goliath + time = 80 + reqs = list(/obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 2, + /obj/item/stack/sheet/cloth = 2, + /obj/item/stack/sheet/leather = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/goliath_drapes + name = "Goliath Drapes" + result = /obj/item/surgical_drapes/goliath + time = 80 + reqs = list(/obj/item/stack/sheet/sinew = 1, + /obj/item/stack/sheet/animalhide/goliath_hide = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/diamond_scalpel + name = "Diamond Scalpel" + result = /obj/item/scalpel/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1, + /obj/item/stack/sheet/mineral/diamond = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_retractor + name = "Bone Retractor" + result = /obj/item/retractor/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/diamond_bonesaw + name = "Diamond Bonesaw" + result = /obj/item/circular_saw/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1, + /obj/item/organ/regenerative_core = 1, + /obj/item/stack/sheet/mineral/diamond = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/femurstat + name = "Bone Hemostat" + result = /obj/item/hemostat/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_bonesetter + name = "Bone Bonersetter" + result = /obj/item/bonesetter/bone + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/coretery + name = "Necropolis Cautery" + result = /obj/item/cautery/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/animalhide/goliath_hide = 1, + /obj/item/organ/regenerative_core = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_spade + name = "Bone Spade" + result = /obj/item/shovel/spade/bone + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_hatchet + name = "Bone Hatchet" + result = /obj/item/hatchet/bone + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_cultivator + name = "Bone Cultivator" + result = /obj/item/cultivator/bone + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_glaive + name = "Necropolis Glaive" + result = /obj/item/kinetic_crusher/glaive/bone + time = 120 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/mineral/wood = 4, + /obj/item/stack/sheet/sinew = 4, + /obj/item/organ/regenerative_core = 2, + /obj/item/stack/sheet/mineral/diamond = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 2, + /obj/item/stack/sheet/leather = 2) + category = CAT_PRIMAL diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index 01ad269a8e..87ec5cdaab 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -335,7 +335,6 @@ name = "Bone Arrow" result = /obj/item/ammo_casing/caseless/arrow/bone time = 5 - always_availible = FALSE reqs = list(/obj/item/stack/sheet/bone = 1, /obj/item/stack/sheet/sinew = 1, /obj/item/ammo_casing/caseless/arrow/ash = 1) @@ -347,7 +346,6 @@ result = /obj/item/ammo_casing/caseless/arrow/ash tools = list(TOOL_WELDER) time = 10 // 1.5 seconds minimum per actually worthwhile arrow excluding interface lag - always_availible = FALSE reqs = list(/obj/item/ammo_casing/caseless/arrow/wood = 1) category = CAT_WEAPONRY subcategory = CAT_AMMO diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 4a9c558d39..433e57abbe 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -206,6 +206,9 @@ GLOBAL_LIST_EMPTY(uplinks) return data /datum/component/uplink/ui_act(action, params) + . = ..() + if(.) + return if(!active) return switch(action) diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 64b8692ccd..7a57e50364 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -331,6 +331,12 @@ name = "Space Diner" description = "Come, traveler of the bluespace planes. Sit, enjoy a drink and take one of the fair maidens for a night. The exit is the way you came in, via that teleporter thingy, but do remember to stay safe." +/datum/map_template/ruin/space/suspicious + id = "helterskelter" + suffix = "skelter.dmm" + name = "Helter Skelter" + description = "You're looking mighty suspicious. Why don't you go and take a seat over in that driver?" + //Space ruins for the station z /datum/map_template/ruin/spacenearstation prefix = "_maps/RandomRuins/SpaceRuinsStation/" diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index d059d492ae..281538e7a8 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -23,6 +23,8 @@ /obj/item/storage/backpack, /obj/item/storage/belt ) + /// Temporary messages + var/temp /obj/machinery/gear_painter/Initialize(mapload) . = ..() @@ -69,6 +71,8 @@ if(!QDELETED(H)) H.release() insert_mob(victim, user) + temp = "[victim] has been inserted." + SStgui.update_uis(src) if(is_type_in_list(I, allowed_types) && is_operational()) if(!user.transferItemToLoc(I, src)) @@ -80,6 +84,9 @@ inserted = I update_icon() + temp = "[I] has been inserted." + SStgui.update_uis(src) + else return ..() @@ -101,137 +108,159 @@ /obj/machinery/gear_painter/AltClick(mob/user) . = ..() - if(!user.CanReach(src)) + drop_item() + +/obj/machinery/gear_painter/proc/drop_item() + if(!usr.CanReach(src)) return if(!inserted) return - to_chat(user, "You remove [inserted] from [src]") + to_chat(usr, "You remove [inserted] from [src]") inserted.forceMove(drop_location()) + var/mob/living/user = usr + if(istype(user)) + user.put_in_hands(inserted) inserted = null update_icon() - updateUsrDialog() + SStgui.update_uis(src) -/obj/machinery/gear_painter/ui_interact(mob/user) - if(!is_operational()) - return - user.set_machine(src) - var/list/dat = list("Color Mate Control Panel
") - if(!inserted) - dat += "No item inserted." +/obj/machinery/gear_painter/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Colormate", src.name) + ui.set_autoupdate(FALSE) //This might be a bit intensive, better to not update it every few ticks + ui.open() + +/obj/machinery/gear_painter/ui_data(mob/user) + . = list() + .["matrixactive"] = matrix_mode + .["matrixcolors"] = list( + "rr" = color_matrix_last[1], + "rg" = color_matrix_last[2], + "rb" = color_matrix_last[3], + "gr" = color_matrix_last[4], + "gg" = color_matrix_last[5], + "gb" = color_matrix_last[6], + "br" = color_matrix_last[7], + "bg" = color_matrix_last[8], + "bb" = color_matrix_last[9], + "cr" = color_matrix_last[10], + "cg" = color_matrix_last[11], + "cb" = color_matrix_last[12] + ) + if(temp) + .["temp"] = temp + if(inserted) + .["item"] = list() + .["item"]["name"] = inserted.name + .["item"]["sprite"] = icon2base64(getFlatIcon(inserted,defdir=SOUTH,no_anim=TRUE)) + .["item"]["preview"] = icon2base64(build_preview()) else - dat += "Item inserted: [inserted]
" - dat += "Matrix mode: [matrix_mode? "On" : "Off"]" - if(!matrix_mode) - dat += "Select new color.
" - dat += "Color: " - dat += "Apply new color.

" + .["item"] = null + +/obj/machinery/gear_painter/ui_act(action, params) + . = ..() + if(.) + return + if(inserted) + switch(action) + if("switch_modes") + matrix_mode = text2num(params["mode"]) + return TRUE + if("choose_color") + var/chosen_color = input(usr, "Choose a color: ", "Colormate color picking", activecolor) as color|null + if(chosen_color) + activecolor = chosen_color + return TRUE + if("paint") + if(!check_valid_color(activecolor, usr)) + return TRUE + inserted.add_atom_colour(activecolor, FIXED_COLOUR_PRIORITY) + playsound(src, 'sound/effects/spray3.ogg', 50, 1) + temp = "Painted Successfully!" + return TRUE + if("drop") + temp = "Ejected \the [inserted]!" + drop_item() + return TRUE + if("clear") + inserted.remove_atom_colour(FIXED_COLOUR_PRIORITY) + playsound(src, 'sound/effects/spray3.ogg', 50, 1) + temp = "Cleared Successfully!" + return TRUE + if("set_matrix_color") + color_matrix_last[params["color"]] = params["value"] + return TRUE + if("matrix_paint") + var/list/cm = rgb_construct_color_matrix( + text2num(color_matrix_last[1]), + text2num(color_matrix_last[2]), + text2num(color_matrix_last[3]), + text2num(color_matrix_last[4]), + text2num(color_matrix_last[5]), + text2num(color_matrix_last[6]), + text2num(color_matrix_last[7]), + text2num(color_matrix_last[8]), + text2num(color_matrix_last[9]), + text2num(color_matrix_last[10]), + text2num(color_matrix_last[11]), + text2num(color_matrix_last[12]) + ) + if(!check_valid_color(cm, usr)) + return TRUE + inserted.add_atom_colour(cm, FIXED_COLOUR_PRIORITY) + playsound(src, 'sound/effects/spray3.ogg', 50, 1) + temp = "Matrix Painted Successfully!" + return TRUE + +/// Produces the preview image of the item, used in the UI, the way the color is not stacking is a sin. +/obj/machinery/gear_painter/proc/build_preview() + if(inserted) //sanity + if(matrix_mode) + var/list/cm = rgb_construct_color_matrix( + text2num(color_matrix_last[1]), + text2num(color_matrix_last[2]), + text2num(color_matrix_last[3]), + text2num(color_matrix_last[4]), + text2num(color_matrix_last[5]), + text2num(color_matrix_last[6]), + text2num(color_matrix_last[7]), + text2num(color_matrix_last[8]), + text2num(color_matrix_last[9]), + text2num(color_matrix_last[10]), + text2num(color_matrix_last[11]), + text2num(color_matrix_last[12]) + ) + if(!check_valid_color(cm, usr)) + temp = "Failed to generate preview: Invalid color!" + return getFlatIcon(inserted, defdir=SOUTH, no_anim=TRUE) + + var/cur_color = inserted.color + inserted.color = null + inserted.color = cm + var/icon/preview = getFlatIcon(inserted, defdir=SOUTH, no_anim=TRUE) + inserted.color = cur_color + + . = preview + else - // POGGERS -#define MATRIX_FIELD(field, default) " " - dat += "
" - dat += "" - dat += "[cm] is far too dark (min lightness [minimum_normal_lightness]!") + temp = "[cm] is far too dark (min lightness [minimum_normal_lightness]!" return FALSE return TRUE else // matrix @@ -245,6 +274,6 @@ COLORTEST("FFFFFF", cm) #undef COLORTEST if(passed < minimum_matrix_tests) - to_chat(user, "[english_list(color)] is not allowed (pased [passed] out of 4, minimum [minimum_matrix_tests], minimum lightness [minimum_matrix_lightness]).") + temp = "[english_list(color)] is not allowed (passed [passed] out of 4, minimum [minimum_matrix_tests], minimum lightness [minimum_matrix_lightness])." return FALSE return TRUE diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index a2d32e0d4f..abca9db109 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -17,12 +17,8 @@ /obj/machinery/computer/Initialize(mapload, obj/item/circuitboard/C) . = ..() - power_change() -/obj/machinery/computer/Destroy() - . = ..() - /obj/machinery/computer/process() if(stat & (NOPOWER|BROKEN)) return FALSE @@ -119,6 +115,9 @@ A.circuit = circuit // Circuit removal code is handled in /obj/machinery/Exited() circuit.forceMove(A) + // no it's not 4head the circuit's in nullspace which means this won't be called!! + circuit = null + component_parts -= circuit A.set_anchored(TRUE) if(stat & BROKEN) if(user) diff --git a/code/game/machinery/computer/arcade/minesweeper.dm b/code/game/machinery/computer/arcade/minesweeper.dm index cd6ff2359c..1027ab1815 100644 --- a/code/game/machinery/computer/arcade/minesweeper.dm +++ b/code/game/machinery/computer/arcade/minesweeper.dm @@ -176,15 +176,6 @@ table[y1][x1] -= 10 else if(table[y1][x1] < 0) //If flagged, remove the flag table[y1][x1] += 10 - if(href_list["same_board"]) //Reset the board... kinda - if(game_status != MINESWEEPER_GAME_PLAYING) - mine_sound = TRUE - game_status = MINESWEEPER_GAME_PLAYING - if(table[y1][x1] >= 10) //If revealed, become unrevealed! - if(mine_sound) - playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, FALSE, extrarange = -3) - mine_sound = FALSE - table[y1][x1] -= 10 if(table[y1][x1] > 10 && !reset_board) safe_squares_revealed += 1 var/y2 = y1 @@ -274,10 +265,10 @@ prizevend(user, dope_prizes) if(game_status == MINESWEEPER_GAME_WON) - web += "[(rows < 10 || columns < 10) ? "You won, but your board was too small! Pick a bigger board next time!" : "Congratulations, you have won!"]
Want to play again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Play on the same board
Return to Main Menu
" + web += "[(rows < 10 || columns < 10) ? "You won, but your board was too small! Pick a bigger board next time!" : "Congratulations, you have won!"]
Want to play again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Return to Main Menu
" if(game_status == MINESWEEPER_GAME_LOST) - web += "You have lost!
Try again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Play on the same board
Return to Main Menu
" + web += "You have lost!
Try again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Return to Main Menu
" if(game_status == MINESWEEPER_GAME_PLAYING) web += "Return to Main Menu
" diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 47343ea58f..c18d146e90 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -151,6 +151,7 @@ new_computer.RefreshParts() new_computer.on_construction() + new_computer.circuit.moveToNullspace() qdel(src) return diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 19da4f75d8..bf690398a4 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -200,6 +200,9 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) return b["totaldam"] - a["totaldam"] /datum/crewmonitor/ui_act(action,params) + . = ..() + if(.) + return var/mob/living/silicon/ai/AI = usr if(!istype(AI)) return diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 9876206724..808dc4877b 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -86,6 +86,9 @@ .["machine"]["chang_freq_value"] = change_freq_value /obj/machinery/telecomms/ui_act(action, params, datum/tgui/ui) + . = ..() + if(.) + return if(!canInteract(usr)) if(ui) ui.close() //haha no. diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 3ef4cb0307..58a3eb312b 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -269,6 +269,10 @@ GLOBAL_LIST_INIT(channel_tokens, list( . = ..() AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES) +/obj/item/radio/headset/silicon/pai/emp_act(severity) + . = ..() + return EMP_PROTECT_SELF + /obj/item/radio/headset/silicon/ai name = "\proper Integrated Subspace Transceiver " keyslot2 = new /obj/item/encryptionkey/ai diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index bbc493672f..53b0860def 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -17,6 +17,11 @@ /obj/item/dice/d100 ) +/obj/item/storage/dice/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.can_hold = single_path_typecache_immutable(/obj/item/dice) + /obj/item/storage/dice/PopulateContents() new /obj/item/dice/d4(src) new /obj/item/dice/d6(src) diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 6ab12b7e39..d1450c2685 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -535,13 +535,13 @@ oneuse = FALSE remarks = list("Looks like these would sell much better in a plasma fire...", "Using glass bowls rather then cones?", "Mixing soda and ice-cream?", "Tall glasses with of liquids and solids...", "Just add a bit of icecream and cherry on top?") -/obj/item/book/granter/crafting_recipe/bone_bow //Bow crafting for non-ashwalkers +/*/obj/item/book/granter/crafting_recipe/bone_bow //Bow crafting for non-ashwalkers name = "bowyery sandstone slab" // this is an actual word desc = "A sandstone slab with inscriptions describing the Ash Walkers of Lavaland's bowyery." crafting_recipe_types = list(/datum/crafting_recipe/bone_arrow, /datum/crafting_recipe/bone_bow, /datum/crafting_recipe/ashen_arrow, /datum/crafting_recipe/quiver, /datum/crafting_recipe/bow_tablet) icon_state = "stone_tablet" oneuse = FALSE - remarks = list("Sticking burning arrows into the sand makes them stronger...", "Breaking the bone apart to get shards, not sharpening the bone...", "Sinew is just like rope...") + remarks = list("Sticking burning arrows into the sand makes them stronger...", "Breaking the bone apart to get shards, not sharpening the bone...", "Sinew is just like rope...")*/ /obj/item/book/granter/crafting_recipe/under_the_oven //Illegal cook book name = "Under The Oven" diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 59464d25a7..683232b540 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -238,72 +238,73 @@ return return ..() -/obj/item/toy/plush/proc/love(obj/item/toy/plush/Kisser, mob/living/user) //~<3 - var/chance = 100 //to steal a kiss, surely there's a 100% chance no-one would reject a plush such as I? - var/concern = 20 //perhaps something might cloud true love with doubt - var/loyalty = 30 //why should another get between us? - var/duty = 50 //conquering another's is what I live for +/obj/item/toy/plush/proc/love(obj/item/toy/plush/Kisser, mob/living/user) //~<3 + var/chance = 100 //to steal a kiss, surely there's a 100% chance no-one would reject a plush such as I? + var/concern = 20 //perhaps something might cloud true love with doubt + var/loyalty = 30 //why should another get between us? + var/duty = 50 //conquering another's is what I live for //we are not catholic if(young == TRUE || Kisser.young == TRUE) - user.show_message("[src] plays tag with [Kisser].", MSG_VISUAL, - "They're happy.", 0) + user.show_message(span_notice("[src] plays tag with [Kisser]."), MSG_VISUAL, + span_notice("They're happy."), NONE) Kisser.cheer_up() cheer_up() //never again else if(Kisser in scorned) //message, visible, alternate message, neither visible nor audible - user.show_message("[src] rejects the advances of [Kisser]!", MSG_VISUAL, - "That didn't feel like it worked.", 0) + user.show_message(span_notice("[src] rejects the advances of [Kisser]!"), MSG_VISUAL, + span_notice("That didn't feel like it worked."), NONE) else if(src in Kisser.scorned) - user.show_message("[Kisser] realises who [src] is and turns away.", MSG_VISUAL, - "That didn't feel like it worked.", 0) + user.show_message(span_notice("[Kisser] realises who [src] is and turns away."), MSG_VISUAL, + span_notice("That didn't feel like it worked."), NONE) //first comes love - else if(Kisser.lover != src && Kisser.partner != src) //cannot be lovers or married - if(Kisser.lover) //if the initiator has a lover - Kisser.lover.heartbreak(Kisser) //the old lover can get over the kiss-and-run whilst the kisser has some fun - chance -= concern //one heart already broken, what does another mean? - if(lover) //if the recipient has a lover - chance -= loyalty //mustn't... but those lips - if(partner) //if the recipient has a partner - chance -= duty //do we mate for life? + else if(Kisser.lover != src && Kisser.partner != src) //cannot be lovers or married + if(Kisser.lover) //if the initiator has a lover + Kisser.lover.heartbreak(Kisser) //the old lover can get over the kiss-and-run whilst the kisser has some fun + chance -= concern //one heart already broken, what does another mean? + if(lover) //if the recipient has a lover + chance -= loyalty //mustn't... but those lips + if(partner) //if the recipient has a partner + chance -= duty //do we mate for life? - if(prob(chance)) //did we bag a date? - user.visible_message("[user] makes [Kisser] kiss [src]!", - "You make [Kisser] kiss [src]!") - if(lover) //who cares for the past, we live in the present + if(prob(chance)) //did we bag a date? + user.visible_message(span_notice("[user] makes [Kisser] kiss [src]!"), + span_notice("You make [Kisser] kiss [src]!")) + if(lover) //who cares for the past, we live in the present lover.heartbreak(src) new_lover(Kisser) Kisser.new_lover(src) else - user.show_message("[src] rejects the advances of [Kisser], maybe next time?", MSG_VISUAL, - "That didn't feel like it worked, this time.", 0) + user.show_message(span_notice("[src] rejects the advances of [Kisser], maybe next time?"), MSG_VISUAL, + span_notice("That didn't feel like it worked, this time."), NONE) //then comes marriage - else if(Kisser.lover == src && Kisser.partner != src) //need to be lovers (assumes loving is a two way street) but not married (also assumes similar) - user.visible_message("[user] pronounces [Kisser] and [src] married! D'aw.", - "You pronounce [Kisser] and [src] married!") + else if(Kisser.lover == src && Kisser.partner != src) //need to be lovers (assumes loving is a two way street) but not married (also assumes similar) + user.visible_message(span_notice("[user] pronounces [Kisser] and [src] married! D'aw."), + span_notice("You pronounce [Kisser] and [src] married!")) new_partner(Kisser) Kisser.new_partner(src) //then comes a baby in a baby's carriage, or an adoption in an adoption's orphanage - else if(Kisser.partner == src && !plush_child) //the one advancing does not take ownership of the child and we have a one child policy in the toyshop - user.visible_message("[user] is going to break [Kisser] and [src] by bashing them like that.", - "[Kisser] passionately embraces [src] in your hands. Look away you perv!") + else if(Kisser.partner == src && !plush_child) //the one advancing does not take ownership of the child and we have a one child policy in the toyshop + user.visible_message(span_notice("[user] is going to break [Kisser] and [src] by bashing them like that."), + span_notice("[Kisser] passionately embraces [src] in your hands. Look away you perv!")) + user.client.give_award(/datum/award/achievement/misc/rule8, user) if(plop(Kisser)) - user.visible_message("Something drops at the feet of [user].", - "The miracle of oh god did that just come out of [src]?!") + user.visible_message(span_notice("Something drops at the feet of [user]."), + span_notice("The miracle of oh god did that just come out of [src]?!")) //then comes protection, or abstinence if we are catholic else if(Kisser.partner == src && plush_child) - user.visible_message("[user] makes [Kisser] nuzzle [src]!", - "You make [Kisser] nuzzle [src]!") + user.visible_message(span_notice("[user] makes [Kisser] nuzzle [src]!"), + span_notice("You make [Kisser] nuzzle [src]!")) //then oh fuck something unexpected happened else - user.show_message("[Kisser] and [src] don't know what to do with one another.", 0) + user.show_message(span_warning("[Kisser] and [src] don't know what to do with one another."), NONE) /obj/item/toy/plush/proc/heartbreak(obj/item/toy/plush/Brutus) if(lover != Brutus) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 74efe3a196..f1691e5eb9 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -78,7 +78,7 @@ animate(effect, alpha = 0, pixel_x = px * 1.5, pixel_y = py * 1.5, time = 3, flags = ANIMATION_PARALLEL | ANIMATION_RELATIVE) /obj/item/shield/proc/bash_target(mob/living/user, mob/living/target, bashdir, harmful) - if(!(target.status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE)) // should probably add stun absorption check at some point I guess.. + if(!(HAS_TRAIT(target, CANKNOCKDOWN)) || HAS_TRAIT(target, TRAIT_STUNIMMUNE)) // should probably add stun absorption check at some point I guess.. // unified stun absorption system when lol target.visible_message("[user] slams [target] with [src], but [target] doesn't falter!", "[user] slams you with [src], but it barely fazes you!") return FALSE diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 9c3d776b56..e30ec783bf 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -312,7 +312,7 @@ /obj/item/storage/belt/mining/primitive/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 5 + STR.max_items = 8 /obj/item/storage/belt/soulstone name = "soul stone belt" diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 7a067257cb..56cf50993b 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -79,6 +79,8 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "mechanical toolbox" icon_state = "blue" item_state = "toolbox_blue" + /// If FALSE, someone with a ensouled soulstone can sacrifice a spirit to change the sprite of this toolbox. + var/has_soul = FALSE /obj/item/storage/toolbox/mechanical/PopulateContents() new /obj/item/screwdriver(src) @@ -93,6 +95,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) icon_state = "toolbox_blue_old" has_latches = FALSE can_rubberify = FALSE + has_soul = TRUE /obj/item/storage/toolbox/mechanical/old/heirloom name = "old, robust toolbox" //this will be named "X family toolbox" @@ -126,7 +129,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) /obj/item/storage/toolbox/mechanical/old/clean/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) calc_damage() ..() - + /obj/item/storage/toolbox/mechanical/old/clean/PopulateContents() new /obj/item/screwdriver(src) new /obj/item/wrench(src) diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index f481cab91f..93f8915f95 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -41,6 +41,13 @@ /obj/item/crowbar/brass/family toolspeed = 1 +/obj/item/crowbar/ashwalker + name = "bone crowbar" + desc = "A rudimentary crowbar made of bones." + icon = 'icons/obj/mining.dmi' + icon_state = "crowbar_bone" + toolspeed = 0.75 + /obj/item/crowbar/bronze name = "bronze plated crowbar" desc = "A bronze plated crowbar." diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 920afb8d14..9f393a7fcb 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -93,6 +93,14 @@ /obj/item/screwdriver/brass/family toolspeed = 1 +/obj/item/screwdriver/ashwalker + name = "bone screwdriver" + desc = "A rudimentary screwdriver made of carved bones." + icon = 'icons/obj/mining.dmi' + icon_state = "screwdriver_bone" + toolspeed = 0.75 + random_color = FALSE + /obj/item/screwdriver/bronze name = "bronze screwdriver" desc = "A screwdriver plated with bronze." diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 98889485b6..13c3c100b5 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -385,6 +385,16 @@ icon_state = "clockwelder" item_state = "brasswelder" +/obj/item/weldingtool/experimental/ashwalker + name = "necropolis welding torch" + desc = "A mysterious welding tool with its origins in the depths of the necropolis. A mysterious force keeps replenishing its fuel." + resistance_flags = FIRE_PROOF | ACID_PROOF + refueling_interval = 5 + toolspeed = 0.75 + max_fuel = 20 + icon = 'icons/obj/mining.dmi' + icon_state = "ashwelder" + /obj/item/weldingtool/abductor name = "alien welding tool" desc = "An alien welding tool. Whatever fuel it uses, it never runs out." diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index 51bb046290..cbca26e63c 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -90,6 +90,14 @@ /obj/item/wirecutters/brass/family toolspeed = 1 +/obj/item/wirecutters/ashwalker + name = "bone wirecutters" + desc = "Rudimentary wirecutters made out of sharpened bones and sinew." + icon = 'icons/obj/mining.dmi' + icon_state = "cutters_bone" + toolspeed = 0.75 + random_color = FALSE + /obj/item/wirecutters/bronze name = "bronze plated wirecutters" desc = "A pair of wirecutters plated with bronze." diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index 6199e7fc76..9a0db3b92b 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -44,6 +44,13 @@ /obj/item/wrench/brass/family toolspeed = 1 +/obj/item/wrench/ashwalker + name = "bone wrench" + desc = "A shoddy wrench made out of bent bones and sinew." + icon = 'icons/obj/mining.dmi' + icon_state = "wrench_bone" + toolspeed = 0.75 + /obj/item/wrench/bronze name = "bronze plated wrench" desc = "A bronze plated wrench." diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 78a5c9ece9..15fd102878 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -22,7 +22,7 @@ //returns the damage value of the attack after processing the obj's various armor protections /obj/proc/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir, armour_penetration = 0) - if(damage_flag == MELEE && damage_amount < damage_deflection) + if(damage_flag == "melee" && damage_amount < damage_deflection) // TODO: Refactor armor datums and types entirely jfc return 0 switch(damage_type) if(BRUTE) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index f5746d6ae7..40af75002f 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -66,12 +66,6 @@ //Ash walkers on birth understand how to make bone bows, bone arrows and ashen arrows - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bone_arrow) - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bone_bow) - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/ashen_arrow) - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/quiver) - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bow_tablet) - if(ishuman(new_spawn)) var/mob/living/carbon/human/H = new_spawn H.underwear = "Nude" @@ -634,9 +628,9 @@ log_game("[key_name(user)] has successfully pried open [src] and disabled a space pirate spawner.") W.play_tool_sound(src) playsound(src.loc, 'modular_citadel/sound/voice/scream_skeleton.ogg', 50, 1, 4, 1.2) - if(rank == "Captain") + if(rank == "Captain") new /obj/effect/mob_spawn/human/pirate/corpse/captain(get_turf(src)) - else + else new /obj/effect/mob_spawn/human/pirate/corpse(get_turf(src)) qdel(src) else diff --git a/code/game/world.dm b/code/game/world.dm index 14a85bb619..44e9fe9e14 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -2,8 +2,6 @@ GLOBAL_VAR(restart_counter) -GLOBAL_VAR_INIT(tgs_initialized, FALSE) - GLOBAL_VAR(topic_status_lastcache) GLOBAL_LIST(topic_status_cache) @@ -76,7 +74,6 @@ GLOBAL_LIST(topic_status_cache) /world/proc/InitTgs() TgsNew(new /datum/tgs_event_handler/impl, TGS_SECURITY_TRUSTED) GLOB.revdata.load_tgs_info() - GLOB.tgs_initialized = TRUE /world/proc/HandleTestRun() //trigger things to run the whole process diff --git a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm index 023be4b3e7..15ac8a6cb6 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm @@ -226,16 +226,16 @@ user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shed_human_form) if(!ishuman(user)) return - var/mob/living/carbon/human/H = user - H.physiology.brute_mod *= 0.5 - H.physiology.burn_mod *= 0.5 - var/datum/antagonist/heretic/heretic = user.mind.has_antag_datum(/datum/antagonist/heretic) - var/datum/eldritch_knowledge/flesh_grasp/ghoul1 = heretic.get_knowledge(/datum/eldritch_knowledge/flesh_grasp) - ghoul1.ghoul_amt *= 3 - var/datum/eldritch_knowledge/flesh_ghoul/ghoul2 = heretic.get_knowledge(/datum/eldritch_knowledge/flesh_ghoul) - ghoul2.max_amt *= 3 + var/mob/living/carbon/human/lord_of_arms = user + lord_of_arms.physiology.brute_mod *= 0.5 + lord_of_arms.physiology.burn_mod *= 0.5 + lord_of_arms.client?.give_award(/datum/award/achievement/misc/flesh_ascension, lord_of_arms) + var/datum/antagonist/heretic/heretic_datum = user.mind.has_antag_datum(/datum/antagonist/heretic) + var/datum/eldritch_knowledge/flesh_grasp/grasp_ghoul = heretic_datum.get_knowledge(/datum/eldritch_knowledge/flesh_grasp) + grasp_ghoul.ghoul_amt *= 3 + var/datum/eldritch_knowledge/flesh_ghoul/better_ghoul = heretic_datum.get_knowledge(/datum/eldritch_knowledge/flesh_ghoul) + better_ghoul.max_amt *= 3 - return ..() /datum/eldritch_knowledge/flesh_blade_upgrade_2 name = "Remembrance" diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm index 509c35261e..733b2725cb 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm @@ -181,13 +181,13 @@ var/mob/living/carbon/human/H = user H.physiology.brute_mod *= 0.5 H.physiology.burn_mod *= 0.5 + H.client?.give_award(/datum/award/achievement/misc/rust_ascension, H) priority_announce("$^@&#*$^@(#&$(@&#^$&#^@# Fear the decay, for the Rustbringer, [user.real_name] has ascended! None shall escape the corrosion! $^@&#*$^@(#&$(@&#^$&#^@#","#$^@&#*$^@(#&$(@&#^$&#^@#", 'sound/announcer/classic/spanomalies.ogg') new /datum/rust_spread(loc) var/datum/antagonist/heretic/ascension = H.mind.has_antag_datum(/datum/antagonist/heretic) ascension.ascended = TRUE return ..() - /datum/eldritch_knowledge/final/rust_final/on_life(mob/user) . = ..() if(!finished) diff --git a/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm index 97b5af0f4d..dcbc01b046 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm @@ -183,14 +183,14 @@ var/datum/weather/void_storm/storm /datum/eldritch_knowledge/final/void_final/on_finished_recipe(mob/living/user, list/atoms, loc) - var/mob/living/carbon/human/H = user - user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/eldritch) - H.physiology.brute_mod *= 0.5 - H.physiology.burn_mod *= 0.5 - ADD_TRAIT(H, TRAIT_RESISTLOWPRESSURE, MAGIC_TRAIT) - priority_announce("$^@&#*$^@(#&$(@&#^$&#^@# The nobleman of void [H.real_name] has arrived, step along the Waltz that ends worlds! $^@&#*$^@(#&$(@&#^$&#^@#","#$^@&#*$^@(#&$(@&#^$&#^@#", 'sound/announcer/classic/spanomalies.ogg') - - sound_loop = new(list(user),TRUE,TRUE) + var/mob/living/carbon/human/waltzing = user + waltzing.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/eldritch) + waltzing.physiology.brute_mod *= 0.5 + waltzing.physiology.burn_mod *= 0.5 + ADD_TRAIT(waltzing, TRAIT_RESISTLOWPRESSURE, MAGIC_TRAIT) + waltzing.client?.give_award(/datum/award/achievement/misc/void_ascension, waltzing) + priority_announce("$^@&#*$^@(#&$(@&#^$&#^@# The nobleman of void [waltzing.real_name] has arrived, step along the Waltz that ends worlds! $^@&#*$^@(#&$(@&#^$&#^@#","#$^@&#*$^@(#&$(@&#^$&#^@#", 'sound/announcer/classic/spanomalies.ogg') + sound_loop = new(user, TRUE, TRUE) return ..() /datum/eldritch_knowledge/final/void_final/on_death() diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index d4d70cd053..fe9770e64a 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -50,6 +50,14 @@ A.death() return ..() +/obj/item/soulstone/proc/hot_potato(mob/living/user) + to_chat(user, span_userdanger("Holy magics residing in \the [src] burn your hand!")) + var/obj/item/bodypart/affecting = user.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + affecting.receive_damage( 0, 10 ) // 10 burn damage + user.emote("scream") + user.update_damage_overlays() + user.dropItemToGround(src) + //////////////////////////////Capturing//////////////////////////////////////////////////////// /obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user) @@ -94,6 +102,35 @@ to_chat(A, "You have been released from your prison, but you are still bound to the cult's will. Help them succeed in their goals at all costs.") was_used() +/obj/item/soulstone/pre_attack(atom/A, mob/living/user, params) + var/mob/living/simple_animal/hostile/construct/shade/occupant = (locate() in src) + var/obj/item/storage/toolbox/mechanical/target_toolbox = A + if(!occupant || !istype(target_toolbox) || target_toolbox.has_soul) + return ..() + + if(iscultist(user)) + hot_potato(user) + return + if(!iscultist(user, TRUE) && !iswizard(user) && !usability) + user.Unconscious(10 SECONDS) + to_chat(user, span_userdanger("Your body is wracked with debilitating pain!")) + return + + user.visible_message("[user] holds [src] above [user.p_their()] head and forces it into [target_toolbox] with a flash of light!", \ + span_notice("You hold [src] above your head briefly, then force it into [target_toolbox], transferring the [occupant]'s soul!"), ignored_mobs = occupant) + to_chat(occupant, span_userdanger("[user] holds you up briefly, then forces you into [target_toolbox]!")) + to_chat(occupant, span_deadsay("Your eternal soul has been sacrificed to restore the soul of a toolbox. Them's the breaks!")) + + occupant.client?.give_award(/datum/award/achievement/misc/toolbox_soul, occupant) + occupant.deathmessage = "shrieks out in unholy pain as [occupant.p_their()] soul is absorbed into [target_toolbox]!" + release_shades(user, TRUE) + occupant.death() + + target_toolbox.name = "soulful toolbox" + target_toolbox.icon_state = "toolbox_blue_old" + target_toolbox.has_soul = TRUE + target_toolbox.has_latches = FALSE + ///////////////////////////Transferring to constructs///////////////////////////////////////////////////// /obj/structure/constructshell name = "empty shell" diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm index 221febbe14..94c7630bd9 100644 --- a/code/modules/asset_cache/asset_list.dm +++ b/code/modules/asset_cache/asset_list.dm @@ -11,6 +11,10 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset var/_abstract = /datum/asset + var/cached_url_mappings + + /// Whether or not this asset should be loaded in the "early assets" SS + var/early = FALSE /datum/asset/New() GLOB.asset_datums[type] = src @@ -19,6 +23,13 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset/proc/get_url_mappings() return list() +/// Returns a cached tgui message of URL mappings +/datum/asset/proc/get_serialized_url_mappings() + if (isnull(cached_url_mappings)) + cached_url_mappings = TGUI_CREATE_MESSAGE("asset/mappings", get_url_mappings()) + + return cached_url_mappings + /datum/asset/proc/register() return @@ -169,6 +180,8 @@ GLOBAL_LIST_EMPTY(asset_datums) I = icon(I, icon_state=icon_state, dir=dir, frame=frame, moving=moving) if (!I || !length(icon_states(I))) // that direction or state doesn't exist return + //any sprite modifications we want to do (aka, coloring a greyscaled asset) + I = ModifyInserted(I) var/size_id = "[I.Width()]x[I.Height()]" var/size = sizes[size_id] @@ -185,6 +198,15 @@ GLOBAL_LIST_EMPTY(asset_datums) sizes[size_id] = size = list(1, I, null) sprites[sprite_name] = list(size_id, 0) +/** + * A simple proc handing the Icon for you to modify before it gets turned into an asset. + * + * Arguments: + * * I: icon being turned into an asset + */ +/datum/asset/spritesheet/proc/ModifyInserted(icon/pre_asset) + return pre_asset + /datum/asset/spritesheet/proc/InsertAll(prefix, icon/I, list/directions) if (length(prefix)) prefix = "[prefix]-" @@ -217,6 +239,19 @@ GLOBAL_LIST_EMPTY(asset_datums) var/size_id = sprite[SPR_SIZE] return {"[name][size_id] [sprite_name]"} +/** + * Returns the size class (ex design32x32) for a given sprite's icon + * + * Arguments: + * * sprite_name - The sprite to get the size of + */ +/datum/asset/spritesheet/proc/icon_size_id(sprite_name) + var/sprite = sprites[sprite_name] + if (!sprite) + return null + var/size_id = sprite[SPR_SIZE] + return "[name][size_id]" + #undef SPR_SIZE #undef SPR_IDX #undef SPRSZ_COUNT @@ -224,6 +259,24 @@ GLOBAL_LIST_EMPTY(asset_datums) #undef SPRSZ_STRIPPED +/datum/asset/changelog_item + _abstract = /datum/asset/changelog_item + var/item_filename + +/datum/asset/changelog_item/New(date) + item_filename = sanitize_filename("[date].yml") + SSassets.transport.register_asset(item_filename, file("html/changelogs/archive/" + item_filename)) + +/datum/asset/changelog_item/send(client) + if (!item_filename) + return + . = SSassets.transport.send_assets(client, item_filename) + +/datum/asset/changelog_item/get_url_mappings() + if (!item_filename) + return + . = list("[item_filename]" = SSassets.transport.get_asset_url(item_filename)) + /datum/asset/spritesheet/simple _abstract = /datum/asset/spritesheet/simple var/list/assets @@ -315,3 +368,28 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset/simple/namespaced/proc/get_htmlloader(filename) return url2htmlloader(SSassets.transport.get_asset_url(filename, assets[filename])) +/// A subtype to generate a JSON file from a list +/datum/asset/json + _abstract = /datum/asset/json + /// The filename, will be suffixed with ".json" + var/name + +/datum/asset/json/send(client) + return SSassets.transport.send_assets(client, "data/[name].json") + +/datum/asset/json/get_url_mappings() + return list( + "[name].json" = SSassets.transport.get_asset_url("data/[name].json"), + ) + +/datum/asset/json/register() + var/filename = "data/[name].json" + fdel(filename) + text2file(json_encode(generate()), filename) + SSassets.transport.register_asset(filename, fcopy_rsc(filename)) + fdel(filename) + +/// Returns the data that will be JSON encoded +/datum/asset/json/proc/generate() + SHOULD_CALL_PARENT(FALSE) + CRASH("generate() not implemented for [type]!") diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 15c6475033..868c5dafa3 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -235,7 +235,7 @@ . += "can-open" if(connected_port) . += "can-connector" - var/pressure = air_contents.return_pressure() + var/pressure = air_contents?.return_pressure() if(pressure >= 40 * ONE_ATMOSPHERE) . += "can-o3" else if(pressure >= 10 * ONE_ATMOSPHERE) @@ -295,6 +295,7 @@ density = FALSE playsound(src.loc, 'sound/effects/spray.ogg', 10, TRUE, -3) investigate_log("was destroyed.", INVESTIGATE_ATMOS) + update_icon_state() if(holding) holding.forceMove(T) diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index c973ceed26..42cd1dccea 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -211,11 +211,6 @@ unit_name = "arrow" export_types = list(/obj/item/ammo_casing/caseless/arrow, /obj/item/ammo_casing/caseless/arrow/bone, /obj/item/ammo_casing/caseless/arrow/ash) -/datum/export/weapon/bow_teaching - cost = 500 - unit_name = "bowyery tablet" - export_types = list(/obj/item/book/granter/crafting_recipe/bone_bow) - /datum/export/weapon/quiver cost = 100 unit_name = "quiver" diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm index 1c9c21e0d7..c065c387c5 100644 --- a/code/modules/cargo/expressconsole.dm +++ b/code/modules/cargo/expressconsole.dm @@ -128,6 +128,9 @@ return data /obj/machinery/computer/cargo/express/ui_act(action, params, datum/tgui/ui) + . = ..() + if(.) + return switch(action) if("LZCargo") usingBeacon = FALSE diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index eda36ea12f..30e9d487e0 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -67,6 +67,20 @@ resistance_flags = NONE strip_mod = 1.2 // because apparently black gloves had this +/obj/item/clothing/gloves/tackler/combat/goliath + name = "goliath gloves" + desc = "Rudimentary tackling gloves. The goliath hide makes it great for grappling with targets, while also being fireproof." + icon = 'icons/obj/mining.dmi' + icon_state = "goligloves" + item_state = "goligloves" + + tackle_stam_cost = 25 + base_knockdown = 1 SECONDS + tackle_range = 5 + tackle_speed = 2 + min_distance = 2 + skill_mod = 1 + /obj/item/clothing/gloves/tackler/combat/insulated name = "guerrilla gloves" desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 35cb2fa1e5..10dbb9e2bf 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -427,25 +427,30 @@ desc = "Comfy and supposedly flammable." icon_state = "flannel" item_state = "flannel" - -/obj/item/clothing/suit/jacket/flannel/red +/obj/item/clothing/suit/toggle/jacket/flannel/red name = "red flannel jacket" desc = "Comfy and supposedly flammable." icon_state = "flannel_red" item_state = "flannel_red" - -/obj/item/clothing/suit/jacket/flannel/aqua + togglename = "buttons" +/obj/item/clothing/suit/toggle/jacket/flannel/aqua name = "aqua flannel jacket" desc = "Comfy and supposedly flammable." icon_state = "flannel_aqua" item_state = "flannel_aqua" - -/obj/item/clothing/suit/jacket/flannel/brown + togglename = "buttons" +/obj/item/clothing/suit/toggle/jacket/flannel/brown name = "brown flannel jacket" desc = "Comfy and supposedly flammable." icon_state = "flannel_brown" item_state = "flannel_brown" - + togglename = "buttons" +/obj/item/clothing/suit/toggle/jacket/whitehoodie + name = "soft hoodie" + desc = "A soft hoodie with a TailorCo brand on the tag." + icon_state = "white_hoodie" + item_state = "white_hoodie" + togglename = "zipper" /obj/item/clothing/suit/jacket/purplehoodie name = "purple hoodie" desc = "A soft purple hoodie with a TailorCo brand on the tag." @@ -482,6 +487,24 @@ icon_state = "gothic_shirtcross" item_state = "gothic_shirtcross" +/obj/item/clothing/suit/jacket/gentlecoat + name = "grey jacket" + desc = "A grey coat with a TailorCo brand on the tag. Looks expensive." + icon_state = "gentlecoat" + item_state = "gentlecoat" + +/obj/item/clothing/suit/toggle/jacket/greenjacket + name = "green outdoorsmans jacket" + desc = "A green jacket with a TailorCo brand on the tag. Looks expensive." + icon_state = "coatar" + item_state = "coatar" + togglename = "zipper" +/obj/item/clothing/suit/toggle/jacket/fancytrench + name = "grey trenchcoat" + desc = "A custom-tailored trenchcoat with a TailorCo brand on the tag." + icon_state = "fancytrench" + item_state = "fancytrench" + togglename = "buttons" /obj/item/clothing/suit/jacket/leather name = "leather jacket" desc = "Pompadour not included." diff --git a/code/modules/events/anomaly.dm b/code/modules/events/anomaly.dm index 438904466c..926ff87c1d 100644 --- a/code/modules/events/anomaly.dm +++ b/code/modules/events/anomaly.dm @@ -24,7 +24,8 @@ /area/holodeck, /area/shuttle, /area/maintenance, - /area/science/test_area) + /area/science/test_area, + /area/commons/cryopod) ) //Subtypes from the above that actually should explode. diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index b032b84a77..798cd9a2f6 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -84,6 +84,12 @@ user.visible_message("[user] is scratching [user.p_their()] back as hard as [user.p_they()] can with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) +/obj/item/cultivator/bone + name = "bone cultivator" + desc = "A handle and a few bones tied together to resemble a hoe. Should work for removing weeds." + icon = 'icons/obj/mining.dmi' + icon_state = "cultivator_bone" + /obj/item/hatchet name = "hatchet" desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." @@ -112,6 +118,12 @@ playsound(src, 'sound/weapons/bladeslice.ogg', 50, 1, -1) return (BRUTELOSS) +/obj/item/hatchet/bone + name = "bone hatchet" + desc = "A primitive hatchet made out of mostly bone, with some sinew to keep it together. It just might do for cutting logs into planks." + icon = 'icons/obj/mining.dmi' + icon_state = "hatchet_bone" + /obj/item/scythe icon_state = "scythe0" lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' diff --git a/code/modules/instruments/instrument_data/hardcoded.dm b/code/modules/instruments/instrument_data/hardcoded.dm index 757fea08a8..5db7e8b3bb 100644 --- a/code/modules/instruments/instrument_data/hardcoded.dm +++ b/code/modules/instruments/instrument_data/hardcoded.dm @@ -7,11 +7,11 @@ instrument_flags = INSTRUMENT_LEGACY volume_multiplier = 1 //not as loud as synth'd -/datum/instrument/hardcoded/accordian - name = "Accordian" - id = "accordian" +/datum/instrument/hardcoded/accordion + name = "Accordion" + id = "accordion" legacy_instrument_ext = "mid" - legacy_instrument_path = "accordian" + legacy_instrument_path = "accordion" /datum/instrument/hardcoded/bikehorn name = "Bike Horn" diff --git a/code/modules/instruments/instrument_data/organ.dm b/code/modules/instruments/instrument_data/organ.dm index 25da740998..edf9de9485 100644 --- a/code/modules/instruments/instrument_data/organ.dm +++ b/code/modules/instruments/instrument_data/organ.dm @@ -19,8 +19,8 @@ "60"='sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg', "72"='sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg') -/datum/instrument/organ/crisis_accordian - name = "Crisis Accordian" +/datum/instrument/organ/crisis_accordion + name = "Crisis Accordion" id = "crack" real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg', "48"='sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg', @@ -34,8 +34,8 @@ "60"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg', "72"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg') -/datum/instrument/organ/crisis_tango_accordian - name = "Crisis Tango Accordian" +/datum/instrument/organ/crisis_tango_accordion + name = "Crisis Tango Accordion" id = "crtango" real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg', "48"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg', diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm index 3cd6585af2..ef2ad0fc27 100644 --- a/code/modules/jobs/job_types/prisoner.dm +++ b/code/modules/jobs/job_types/prisoner.dm @@ -13,6 +13,15 @@ display_order = JOB_DISPLAY_ORDER_PRISONER +/datum/job/prisoner/after_spawn(mob/living/carbon/human/H, mob/M) + var/list/policies = CONFIG_GET(keyed_list/policy) + var/policy = policies[POLICYCONFIG_JOB_PRISONER] + if(policy) + var/mob/found = (M?.client && M) || (H?.client && H) + to_chat(found, "
!!READ THIS!!
The following is server-specific policy configuration and overrides anything said above if conflicting.") + to_chat(found, "

") + to_chat(found, "[policy]") + /datum/outfit/job/prisoner name = "Prisoner" jobtype = /datum/job/prisoner diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm index 0d312c485a..fd268a7774 100644 --- a/code/modules/library/soapstone.dm +++ b/code/modules/library/soapstone.dm @@ -232,6 +232,9 @@ return data /obj/structure/chisel_message/ui_act(action, params, datum/tgui/ui) + . = ..() + if(.) + return var/mob/user = usr var/is_admin = check_rights_for(user.client, R_ADMIN) var/is_creator = user.ckey == creator_key diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index ddec9232ce..45f1b1d94e 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -228,6 +228,13 @@ /obj/item/kinetic_crusher/glaive/update_icon_state() item_state = "crusher[wielded]-glaive" // this is not icon_state and not supported by 2hcomponent +/obj/item/kinetic_crusher/glaive/bone + name = "necropolis bone glaive" + desc = "Tribals trying to immitate technology have spent a long time to somehow assemble bits and pieces to work together just like the real thing. \ + Although it does take a lot of effort and luck to create, it was a success." + icon_state = "crusher-bone" + item_state = "crusher0-bone" + //destablizing force /obj/item/projectile/destabilizer name = "destabilizing force" diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index 31ee37c3b0..bb0ac0f957 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -179,6 +179,12 @@ custom_materials = list(/datum/material/iron=50) w_class = WEIGHT_CLASS_SMALL +/obj/item/shovel/spade/bone + name = "bone spade" + desc = "A bone spade, suitable for digging and moving dirt." + icon_state = "spade_bone" + toolspeed = 0.75 + /obj/item/shovel/serrated name = "serrated bone shovel" desc = "A wicked tool that cleaves through dirt just as easily as it does flesh. The design was styled after ancient lavaland tribal designs." diff --git a/code/modules/mob/living/brain/life.dm b/code/modules/mob/living/brain/life.dm index 6d06da41ae..823d47dee2 100644 --- a/code/modules/mob/living/brain/life.dm +++ b/code/modules/mob/living/brain/life.dm @@ -25,9 +25,6 @@ else emp_damage = max(emp_damage-1, 0) -/mob/living/brain/handle_status_effects() - return - /mob/living/brain/handle_traits() return diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 65e59d0e29..e98ddf5954 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -22,7 +22,7 @@ /mob/living/carbon/Moved() . = ..() - if(. && (movement_type & FLOATING)) //floating is easy + if(. && !CHECK_BITFIELD(movement_type, FLOATING)) //floating is easy if(HAS_TRAIT(src, TRAIT_NOHUNGER)) set_nutrition(NUTRITION_LEVEL_FED - 1) //just less than feeling vigorous else if(nutrition && stat != DEAD) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d13a0f1149..5edc52376e 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -83,6 +83,33 @@ . += "Chemical Storage: [changeling.chem_charges]/[changeling.chem_storage]" . += "Absorbed DNA: [changeling.absorbedcount]" + //NINJACODE + if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)) //Only display if actually a ninja. + var/obj/item/clothing/suit/space/space_ninja/SN = wear_suit + . += "SpiderOS Status: [SN.s_initialized ? "Initialized" : "Disabled"]" + . += "Current Time: [STATION_TIME_TIMESTAMP("hh:mm:ss", world.time)]" + if(SN.s_initialized) + //Suit gear + . += "Energy Charge: [round(SN.cell.charge/100)]%" + //Ninja status + . += "Fingerprints: [md5(dna.uni_identity)]" + . += "Unique Identity: [dna.unique_enzymes]" + . += "Overall Status: [stat > 1 ? "dead" : "[health]% healthy"]" + . += "Nutrition Status: [nutrition]" + . += "Oxygen Loss: [getOxyLoss()]" + . += "Toxin Levels: [getToxLoss()]" + . += "Burn Severity: [getFireLoss()]" + . += "Brute Trauma: [getBruteLoss()]" + . += "Radiation Levels: [radiation] rad" + . += "Body Temperature: [bodytemperature-T0C] degrees C ([bodytemperature*1.8-459.67] degrees F)" + + //Diseases + if(length(diseases)) + . += "Viruses:" + for(var/thing in diseases) + var/datum/disease/D = thing + . += "* [D.name], Type: [D.spread_text], Stage: [D.stage]/[D.max_stages], Possible Cure: [D.cure_text]" + /mob/living/carbon/human/show_inv(mob/user) user.set_machine(src) var/has_breathable_mask = istype(wear_mask, /obj/item/clothing/mask) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 8464e15328..21554f25b4 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1397,7 +1397,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //////////// /datum/species/proc/handle_digestion(mob/living/carbon/human/H) - if(HAS_TRAIT(src, TRAIT_NOHUNGER)) + if(HAS_TRAIT(H, TRAIT_NOHUNGER)) return //hunger is for BABIES //The fucking TRAIT_FAT mutation is the dumbest shit ever. It makes the code so difficult to work with diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 6f0f5453da..a839a0dd83 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -570,24 +570,15 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put else SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "jittery") - if(stuttering) - stuttering = max(stuttering-1, 0) + if(druggy) + adjust_drugginess(-1) - if(slurring || drunkenness) - slurring = max(slurring-1,0,drunkenness) - - if(cultslurring) - cultslurring = max(cultslurring-1, 0) - - if(clockcultslurring) - clockcultslurring = max(clockcultslurring-1, 0) + if(drunkenness) + drunkenness = max(drunkenness-1,0) if(silent) silent = max(silent-1, 0) - if(druggy) - adjust_drugginess(-1) - if(hallucination) handle_hallucinations() diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 43a5d9c2c8..0c73c623d1 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -150,11 +150,26 @@ /mob/living/proc/handle_stomach() return -//this updates all special effects: knockdown, druggy, stuttering, etc.. +/* + * this updates some effects: mostly old stuff such as drunkness, druggy, stuttering, etc. + * that should be converted to status effect datums one day. + */ /mob/living/proc/handle_status_effects() if(confused) confused = max(0, confused - 1) + if(stuttering) + stuttering = max(stuttering-1, 0) + + if(slurring) + slurring = max(slurring-1,0) + + if(cultslurring) + cultslurring = max(cultslurring-1, 0) + + if(clockcultslurring) + clockcultslurring = max(clockcultslurring-1, 0) + /mob/living/proc/handle_traits() //Eyes if(eye_blind) //blindness, heals slowly over time diff --git a/code/modules/mob/living/living_blocking_parrying.dm b/code/modules/mob/living/living_blocking_parrying.dm index 0ccc03982a..bdc44ab356 100644 --- a/code/modules/mob/living/living_blocking_parrying.dm +++ b/code/modules/mob/living/living_blocking_parrying.dm @@ -166,7 +166,7 @@ GLOBAL_LIST_EMPTY(block_parry_data) /// Clickdelay duration post-parry if you fail to parry an attack var/parry_failed_clickcd_duration = 0 SECONDS /// Parry cooldown post-parry if failed. This is ADDED to parry_cooldown!!! - var/parry_failed_cooldown_duration = 0 SECONDS + var/parry_failed_cooldown_duration = 3.5 SECONDS // Advanced /// Flags added to return value diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index c339aa920f..ca5d3ce459 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -1,5 +1,3 @@ -#define PAI_EMP_SILENCE_DURATION 3 MINUTES - /mob/living/silicon/pai/blob_act(obj/structure/blob/B) return FALSE @@ -9,7 +7,7 @@ return take_holo_damage(severity/2) DefaultCombatKnockdown(severity*4) - silent = max(silent, (PAI_EMP_SILENCE_DURATION) / SSmobs.wait / severity) + short_radio() if(holoform) fold_in(force = TRUE) emitter_next_use = world.time + emitter_emp_cd diff --git a/code/modules/mob/living/simple_animal/gremlin/gremlin.dm b/code/modules/mob/living/simple_animal/gremlin/gremlin.dm index 61436cea1c..a6312b9ddf 100644 --- a/code/modules/mob/living/simple_animal/gremlin/gremlin.dm +++ b/code/modules/mob/living/simple_animal/gremlin/gremlin.dm @@ -66,6 +66,7 @@ GLOBAL_LIST(bad_gremlin_items) /mob/living/simple_animal/hostile/gremlin/Initialize() . = ..() AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + ADD_TRAIT(src, TRAIT_SHOCKIMMUNE, INNATE_TRAIT) access_card = new /obj/item/card/id(src) var/datum/job/captain/C = new /datum/job/captain access_card.access = C.get_access() diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 8388d6501a..747abb4b19 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -95,20 +95,78 @@ /mob/living/simple_animal/hostile/carp/cayenne name = "Cayenne" + real_name = "Cayenne" desc = "A failed Syndicate experiment in weaponized space carp technology, it now serves as a lovable mascot." gender = FEMALE - regen_amount = 8 - speak_emote = list("squeaks") - maxHealth = 90 - health = 90 - gold_core_spawnable = NO_SPAWN - faction = list(ROLE_SYNDICATE, "carp") //They are still a carp AIStatus = AI_OFF + gold_core_spawnable = NO_SPAWN + faction = list(ROLE_SYNDICATE) + /// Keeping track of the nuke disk for the functionality of storing it. + var/obj/item/disk/nuclear/disky + /// Location of the file storing disk overlays + // var/icon/disk_overlay_file = 'icons/mob/carp.dmi' + /// Colored disk mouth appearance for adding it as a mouth overlay + var/mutable_appearance/colored_disk_mouth - harm_intent_damage = 12 - obj_damage = 70 - melee_damage_lower = 15 - melee_damage_upper = 18 +/mob/living/simple_animal/hostile/carp/cayenne/Initialize() + . = ..() + // AddElement(/datum/element/pet_bonus, "bloops happily!") + // colored_disk_mouth = mutable_appearance(SSgreyscale.GetColoredIconByType(/datum/greyscale_config/carp/disk_mouth, greyscale_colors), "disk_mouth") + ADD_TRAIT(src, TRAIT_DISK_VERIFIER, INNATE_TRAIT) //carp can verify disky + +/mob/living/simple_animal/hostile/carp/cayenne/IsAdvancedToolUser() + return TRUE //carp SMART + +/mob/living/simple_animal/hostile/carp/cayenne/death(gibbed) + if(disky) + disky.forceMove(drop_location()) + disky = null + return ..() + +/mob/living/simple_animal/hostile/carp/cayenne/Destroy(force) + QDEL_NULL(disky) + return ..() + +/mob/living/simple_animal/hostile/carp/cayenne/examine(mob/user) + . = ..() + if(disky) + . += span_notice("Wait... is that [disky] in [p_their()] mouth?") + +/mob/living/simple_animal/hostile/carp/cayenne/AttackingTarget(atom/attacked_target) + if(istype(attacked_target, /obj/item/disk/nuclear)) + var/obj/item/disk/nuclear/potential_disky = attacked_target + if(potential_disky.anchored) + return + potential_disky.forceMove(src) + disky = potential_disky + to_chat(src, span_nicegreen("YES!! You manage to pick up [disky]. (Click anywhere to place it back down.)")) + update_icon() + if(!disky.fake) + client.give_award(/datum/award/achievement/misc/cayenne_disk, src) + return + if(disky) + if(isopenturf(attacked_target)) + to_chat(src, span_notice("You place [disky] on [attacked_target]")) + disky.forceMove(attacked_target.drop_location()) + disky = null + update_icon() + else + disky.melee_attack_chain(src, attacked_target) + return + return ..() + +/mob/living/simple_animal/hostile/carp/cayenne/Exited(atom/movable/gone, direction) + . = ..() + if(disky == gone) + disky = null + update_icon() + +/mob/living/simple_animal/hostile/carp/cayenne/update_overlays() + . = ..() + if(!disky || stat == DEAD) + return + // . += colored_disk_mouth + // . += mutable_appearance(disk_overlay_file, "disk_overlay") #undef REGENERATION_DELAY diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 869f29951b..938483be84 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -32,6 +32,9 @@ Difficulty: Hard wander = FALSE del_on_death = TRUE blood_volume = BLOOD_VOLUME_NORMAL + achievement_type = /datum/award/achievement/boss/wendigo_kill + crusher_achievement_type = /datum/award/achievement/boss/wendigo_crusher + score_achievement_type = /datum/award/score/wendigo_score deathmessage = "falls, shaking the ground around it" deathsound = 'sound/effects/gravhit.ogg' attack_action_types = list(/datum/action/innate/megafauna_attack/heavy_stomp, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index d677f59440..de6b858f79 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -176,6 +176,12 @@ While using this makes the system rely on OnFire, it still gives options for tim elitemind = pick(candidates) elitemind.playsound_local(get_turf(elitemind), 'sound/effects/magic.ogg', 40, 0) to_chat(elitemind, "You have been chosen to play as a Lavaland Elite.\nIn a few seconds, you will be summoned on Lavaland as a monster to fight your activator, in a fight to the death.\nYour attacks can be switched using the buttons on the top left of the HUD, and used by clicking on targets or tiles similar to a gun.\nWhile the opponent might have an upper hand with powerful mining equipment and tools, you have great power normally limited by AI mobs.\nIf you want to win, you'll have to use your powers in creative ways to ensure the kill. It's suggested you try using them all as soon as possible.\nShould you win, you'll receive extra information regarding what to do after. Good luck!") + var/list/policies = CONFIG_GET(keyed_list/policy) + var/policy = policies[POLICYCONFIG_ELITE_SPAWN] + if(policy) + to_chat(elitemind, "
!!READ THIS!!
The following is server-specific policy configuration and overrides anything said above if conflicting.") + to_chat(elitemind, "

") + to_chat(elitemind, "[policy]") addtimer(CALLBACK(src, .proc/spawn_elite, elitemind), 100) else visible_message("The stirring stops, and nothing emerges. Perhaps try again later.") @@ -304,6 +310,12 @@ While using this makes the system rely on OnFire, it still gives options for tim to_chat(mychild, "As the life in the activator's eyes fade, the forcefield around you dies out and you feel your power subside.\nDespite this inferno being your home, you feel as if you aren't welcome here anymore.\nWithout any guidance, your purpose is now for you to decide.") to_chat(mychild, "Your max health has been halved, but can now heal by standing on your tumor. Note, it's your only way to heal.\nBear in mind, if anyone interacts with your tumor, you'll be resummoned here to carry out another fight. In such a case, you will regain your full max health.\nAlso, be weary of your fellow inhabitants, they likely won't be happy to see you!") to_chat(mychild, "Note that you are a lavaland monster, and thus not allied to the station. You should not cooperate or act friendly with any station crew unless under extreme circumstances!") + var/list/policies = CONFIG_GET(keyed_list/policy) + var/policy = policies[POLICYCONFIG_ELITE_WIN] + if(policy) + to_chat(mychild, "
!!READ THIS!!
The following is server-specific policy configuration and overrides anything said above if conflicting.") + to_chat(mychild, "

") + to_chat(mychild, "[policy]") /obj/item/tumor_shard name = "tumor shard" @@ -332,6 +344,12 @@ While using this makes the system rely on OnFire, it still gives options for tim E.playsound_local(get_turf(E), 'sound/effects/magic.ogg', 40, 0) to_chat(E, "You have been revived by [user]. While you can't speak to them, you owe [user] a great debt. Assist [user.p_them()] in achieving [user.p_their()] goals, regardless of risk.Note that you now share the loyalties of [user]. You are expected not to intentionally sabotage their faction unless commanded to!") + var/list/policies = CONFIG_GET(keyed_list/policy) + var/policy = policies[POLICYCONFIG_ELITE_SENTIENCE] + if(policy) + to_chat(E, "
!!READ THIS!!
The following is server-specific policy configuration and overrides anything said above if conflicting.") + to_chat(E, "

") + to_chat(E, "[policy]") E.maxHealth = E.maxHealth * 0.5 E.health = E.maxHealth E.desc = "[E.desc] However, this one appears appears less wild in nature, and calmer around people." diff --git a/code/modules/mob/living/simple_animal/hostile/plaguerat.dm b/code/modules/mob/living/simple_animal/hostile/plaguerat.dm index 2b92894317..497359829e 100644 --- a/code/modules/mob/living/simple_animal/hostile/plaguerat.dm +++ b/code/modules/mob/living/simple_animal/hostile/plaguerat.dm @@ -136,7 +136,7 @@ GLOBAL_LIST_EMPTY(plague_rats) if(LAZYLEN(GLOB.plague_rats) >= cap) visible_message("[src] gnaws into its food, [cap] rats are now on the station!") return - var/mob/living/newmouse = new /mob/living/simple_animal/hostile/plaguerat(loc) + new /mob/living/simple_animal/hostile/plaguerat(loc) visible_message("[src] gnaws into its food, attracting another rat!") /mob/living/simple_animal/hostile/plaguerat/proc/exit_vents() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 65c553b11d..dc892364c4 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -195,12 +195,6 @@ stat = CONSCIOUS med_hud_set_status() - -/mob/living/simple_animal/handle_status_effects() - ..() - if(stuttering) - stuttering = 0 - /mob/living/simple_animal/proc/handle_automated_action() set waitfor = FALSE return diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 7e857a4e0d..153d7dd973 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -113,6 +113,7 @@ multiplicative_slowdown = CRAWLING_ADD_SLOWDOWN movetypes = CRAWLING flags = IGNORE_NOSLOW + priority = 20000 /datum/movespeed_modifier/mob_config_speedmod variable = TRUE diff --git a/code/modules/ninja/__ninjaDefines.dm b/code/modules/ninja/__ninjaDefines.dm index 3f5db48407..0cfd1a4895 100644 --- a/code/modules/ninja/__ninjaDefines.dm +++ b/code/modules/ninja/__ninjaDefines.dm @@ -15,7 +15,6 @@ //Defines for the suit's unique abilities #define IS_NINJA_SUIT_INITIALIZATION(action) (istype(action, /datum/action/item_action/initialize_ninja_suit)) -#define IS_NINJA_SUIT_STATUS(action) (istype(action, /datum/action/item_action/ninjastatus)) #define IS_NINJA_SUIT_BOOST(action) (istype(action, /datum/action/item_action/ninjaboost)) #define IS_NINJA_SUIT_EMP(action) (istype(action, /datum/action/item_action/ninjapulse)) #define IS_NINJA_SUIT_STAR_CREATION(action) (istype(action, /datum/action/item_action/ninjastar)) diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm index 0bedd31c72..33e6b1ae26 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm @@ -5,35 +5,3 @@ button_icon_state = "health" icon_icon = 'icons/obj/device.dmi' var/action_background_icon_state = "bg_default_on" - -/** - * Proc called to put a status readout to the ninja in chat. - * - * Called put some information about the ninja's current status into chat. - * This information used to be displayed constantly on the status tab screen - * when the suit was on, but was turned into this as to remove the code from - * human.dm - */ -/obj/item/clothing/suit/space/space_ninja/proc/ninjastatus() - var/mob/living/carbon/human/ninja = affecting - var/list/info_list = list() - info_list += "SpiderOS Status: [s_initialized ? "Initialized" : "Disabled"]\n" - //Ninja status - info_list += "Fingerprints: [md5(ninja.dna.uni_identity)]\n" - info_list += "Unique Identity: [ninja.dna.unique_enzymes]\n" - info_list += "Overall Status: [ninja.stat > 1 ? "dead" : "[ninja.health]% healthy"]\n" - info_list += "Nutrition Status: [ninja.nutrition]\n" - info_list += "Oxygen Loss: [ninja.getOxyLoss()]\n" - info_list += "Toxin Levels: [ninja.getToxLoss()]\n" - info_list += "Burn Severity: [ninja.getFireLoss()]\n" - info_list += "Brute Trauma: [ninja.getBruteLoss()]\n" - info_list += "Radiation Levels: [ninja.radiation] rad\n" - info_list += "Body Temperature: [ninja.bodytemperature-T0C] degrees C ([ninja.bodytemperature*1.8-459.67] degrees F)\n" - - //Diseases - if(length(ninja.diseases)) - info_list += "Viruses:" - for(var/datum/disease/ninja_disease in ninja.diseases) - info_list += "* [ninja_disease.name], Type: [ninja_disease.spread_text], Stage: [ninja_disease.stage]/[ninja_disease.max_stages], Possible Cure: [ninja_disease.cure_text]\n" - - to_chat(ninja, "[info_list.Join()]") diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index 66d9a85290..d9d362c43c 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -121,9 +121,6 @@ if(s_coold > 0) to_chat(user, "ERROR: suit is on cooldown.") return FALSE - if(IS_NINJA_SUIT_STATUS(action)) - ninjastatus() - return TRUE if(IS_NINJA_SUIT_BOOST(action)) ninjaboost() return TRUE diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm index 659d9ae2c7..95ba17c733 100644 --- a/code/modules/projectiles/boxes_magazines/external/lmg.dm +++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm @@ -23,4 +23,10 @@ /obj/item/ammo_box/magazine/mm712x82/match name = "box magazine (Match 7.12x82mm)" + icon_state = "a762-50" ammo_type = /obj/item/ammo_casing/mm712x82/match + max_ammo = 50 + +/obj/item/ammo_box/magazine/mm712x82/update_icon() + ..() + icon_state = "a762-[round(ammo_count(),10)]" diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 3e7e2c9e9c..eea16ac636 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -24,6 +24,7 @@ playsound(user, 'sound/weapons/shotguninsert.ogg', 60, 1) A.update_icon() update_icon() + user.SetNextAction(CLICK_CD_MELEE) /obj/item/gun/ballistic/shotgun/process_chamber(mob/living/user, empty_chamber = 0) return ..() //changed argument value @@ -240,7 +241,7 @@ /obj/item/gun/ballistic/shotgun/automatic/combat/compact name = "warden's combat shotgun" - desc = "A modified version of the semi automatic combat shotgun with a collapsible stock. For close encounters." + desc = "A modified version of the semi-automatic combat shotgun with a collapsible stock and a safety that prevents firing while folded. For close encounters." icon_state = "cshotgunc" mag_type = /obj/item/ammo_box/magazine/internal/shot/com w_class = WEIGHT_CLASS_NORMAL @@ -250,7 +251,7 @@ /obj/item/gun/ballistic/shotgun/automatic/combat/compact/AltClick(mob/living/user) . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)) || item_flags && IN_STORAGE) return toggle_stock(user) return TRUE @@ -276,6 +277,14 @@ /obj/item/gun/ballistic/shotgun/automatic/combat/compact/update_icon_state() icon_state = "[current_skin ? unique_reskin[current_skin] : "cshotgun"][stock ? "" : "c"]" +/obj/item/gun/ballistic/shotgun/automatic/combat/compact/afterattack(atom/target, mob/living/user, flag, params) + if(!stock) + shoot_with_empty_chamber(user) + to_chat(user, "[src] won't fire with a folded stock!") + else + . = ..() + update_icon() + //Dual Feed Shotgun /obj/item/gun/ballistic/shotgun/automatic/dual_tube diff --git a/code/modules/projectiles/guns/magic/motivation.dm b/code/modules/projectiles/guns/magic/motivation.dm index 0eaeea4418..a33165b28b 100644 --- a/code/modules/projectiles/guns/magic/motivation.dm +++ b/code/modules/projectiles/guns/magic/motivation.dm @@ -1,6 +1,6 @@ /obj/item/gun/magic/staff/motivation name = "Motivation" - desc = "Rumored to have the ability to open up a portal the depths of Lavaland." + desc = "Rumored to have the ability to open up a portal to the depths of Lavaland." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "motivation" item_state = "motivation" @@ -21,15 +21,15 @@ recharge_rate = 5 var/datum/action/judgement_cut/judgementcut = new/datum/action/judgement_cut() block_parry_data = /datum/block_parry_data/motivation - + //to get this to toggle correctly /obj/item/gun/magic/staff/motivation/Initialize() . = ..() judgementcut = new(src) -//lets the user know that their judgment cuts are recharging +//lets the user know that their judgement cuts are recharging /obj/item/gun/magic/staff/motivation/shoot_with_empty_chamber(mob/living/user as mob|obj) - to_chat(user, "Judgment Cut is recharging.") + to_chat(user, "Judgement Cut is recharging.") //action button to toggle judgement cuts on/off /datum/action/judgement_cut @@ -47,7 +47,7 @@ /obj/item/gun/magic/staff/motivation/can_trigger_gun(mob/living/user) . = ..() if(!judgementcut.judgement_toggled) - to_chat(user, " Judgment Cut is disabled.") + to_chat(user, "Judgement Cut is disabled.") return FALSE //adds/removes judgement cut and judgement cut end upon pickup/drop diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 02c8a9802c..f59e45ff01 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -84,6 +84,7 @@ else reagents.trans_to(D, amount_per_transfer_from_this, 1/range) D.add_atom_colour(mix_color_from_reagents(D.reagents.reagent_list), TEMPORARY_COLOUR_PRIORITY) + playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) last_spray = world.time INVOKE_ASYNC(D, /obj/effect/decal/chempuff/proc/run_puff, A) diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm index fe9ffe2035..fbfd626ae7 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm @@ -37,7 +37,7 @@ build_path = /obj/item/storage/bag/tray category = list("initial","Dinnerware") -/datum/design/tray +/datum/design/cafeteria_tray name = "Cafeteria Tray" id = "foodtray" build_type = AUTOLATHE diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index 81a837504a..e3cc63c3a0 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -242,13 +242,24 @@ sleep(30) playsound(C, 'sound/machines/defib_zap.ogg', 50, FALSE) if(check_revivable()) + var/tplus = world.time - C.timeofdeath playsound(C, 'sound/machines/defib_success.ogg', 50, FALSE) C.set_heartattack(FALSE) + var/oxydamage = C.getOxyLoss() + if(C.health < HEALTH_THRESHOLD_FULLCRIT && oxydamage) + var/diff = C.health - HEALTH_THRESHOLD_FULLCRIT + C.adjustOxyLoss(diff) //Heal their oxydamage up to hardcrit (or if less, as much as they have, since the proc has sanity) C.revive(full_heal = FALSE, admin_revive = FALSE) C.emote("gasp") C.Jitter(100) SEND_SIGNAL(C, COMSIG_LIVING_MINOR_SHOCK) - log_game("[C] has been successfully defibrillated by nanites.") + var/list/policies = CONFIG_GET(keyed_list/policy) + var/timelimit = CONFIG_GET(number/defib_cmd_time_limit) * 10 //the config is in seconds, not deciseconds + var/late = timelimit && (tplus > timelimit) + var/policy = late? policies[POLICYCONFIG_ON_DEFIB_LATE] : policies[POLICYCONFIG_ON_DEFIB_INTACT] + if(policy) + to_chat(C, policy) + C.log_message("has been successfully defibrillated by nanites, [tplus] deciseconds from time of death, considered [late? "late" : "memory-intact"] revival under configured policy limits.", LOG_GAME) else playsound(C, 'sound/machines/defib_failed.ogg', 50, FALSE) diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm index 3a08a764d3..e66f14da93 100644 --- a/code/modules/surgery/bodyparts/parts.dm +++ b/code/modules/surgery/bodyparts/parts.dm @@ -59,13 +59,13 @@ one though." icon_state = "default_human_l_arm" attack_verb = list("slapped", "punched") - max_damage = 150 + max_damage = 50 disable_threshold = 75 max_stamina_damage = 50 body_zone = BODY_ZONE_L_ARM body_part = ARM_LEFT aux_icons = list(BODY_ZONE_PRECISE_L_HAND = HANDS_PART_LAYER, "l_hand_behind" = BODY_BEHIND_LAYER) - body_damage_coeff = 0.25 + body_damage_coeff = 0.75 held_index = 1 px_x = -6 px_y = 0 @@ -121,12 +121,12 @@ among humans missing their right arm." icon_state = "default_human_r_arm" attack_verb = list("slapped", "punched") - max_damage = 150 + max_damage = 50 disable_threshold = 75 body_zone = BODY_ZONE_R_ARM body_part = ARM_RIGHT aux_icons = list(BODY_ZONE_PRECISE_R_HAND = HANDS_PART_LAYER, "r_hand_behind" = BODY_BEHIND_LAYER) - body_damage_coeff = 0.25 + body_damage_coeff = 0.75 held_index = 2 px_x = 6 px_y = 0 @@ -184,11 +184,11 @@ luck. In this instance, it probably would not have helped." icon_state = "default_human_l_leg" attack_verb = list("kicked", "stomped") - max_damage = 150 + max_damage = 50 disable_threshold = 75 body_zone = BODY_ZONE_L_LEG body_part = LEG_LEFT - body_damage_coeff = 0.25 + body_damage_coeff = 0.75 px_x = -2 px_y = 12 stam_heal_tick = STAM_RECOVERY_LIMB @@ -243,11 +243,10 @@ // alternative spellings of 'pokey' are availible icon_state = "default_human_r_leg" attack_verb = list("kicked", "stomped") - max_damage = 150 - disable_threshold = 75 + max_damage = 50 body_zone = BODY_ZONE_R_LEG body_part = LEG_RIGHT - body_damage_coeff = 0.25 + body_damage_coeff = 0.75 px_x = 2 px_y = 12 max_stamina_damage = 50 diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 0f1004221c..5c7b71b779 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -48,6 +48,13 @@ w_class = WEIGHT_CLASS_TINY toolspeed = 0.5 +/obj/item/retractor/ashwalker + name = "bontractor" + desc = "Kinda looks like a chicken bone." + icon = 'icons/obj/mining.dmi' + icon_state = "retractor_bone" + toolspeed = 0.85 + /obj/item/hemostat name = "hemostat" desc = "You think you have seen this before." @@ -78,6 +85,14 @@ toolspeed = 0.5 attack_verb = list("attacked", "pinched") +/obj/item/hemostat/ashwalker + name = "femurstat" + desc = "Bones that are strapped together with sinews. Used to stop bleeding." + icon = 'icons/obj/mining.dmi' + icon_state = "hemostat_bone" + toolspeed = 0.85 + + /obj/item/cautery name = "cautery" desc = "This stops bleeding." @@ -108,6 +123,13 @@ toolspeed = 0.5 attack_verb = list("burnt") +/obj/item/cautery/ashwalker + name = "coretery" + desc = "A legion core strapped to a bone. It can close wounds." + icon = 'icons/obj/mining.dmi' + icon_state = "cautery_bone" + toolspeed = 0.85 + /obj/item/surgicaldrill name = "surgical drill" desc = "You can drill using this item. You dig?" @@ -257,6 +279,14 @@ user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) +/obj/item/scalpel/ashwalker + name = "diamond scalpel" + desc = "Bones and a Diamond tied together to make a scalpel." + icon = 'icons/obj/mining.dmi' + icon_state = "scalpel_bone" + force = 12 + toolspeed = 0.85 + /obj/item/circular_saw name = "circular saw" desc = "For heavy duty cutting." @@ -309,6 +339,14 @@ attack_verb = list("attacked", "slashed", "sawed", "cut") sharpness = SHARP_EDGED +/obj/item/circular_saw/ashwalker + name = "diamond bonesaw" + desc = "Bones designed like a skull, with diamond teeth to cut through bones." + icon = 'icons/obj/mining.dmi' + icon_state = "saw_bone" + force = 12 + toolspeed = 0.85 + /obj/item/surgical_drapes name = "surgical drapes" desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control." @@ -341,6 +379,13 @@ prototype = SSresearch.techweb_design_by_id(id) . |= prototype.surgery + +/obj/item/surgical_drapes/goliath + name = "goliath drapes" + desc = "Probably not the most hygienic but what the heck else are you gonna use?" + icon = 'icons/obj/mining.dmi' + icon_state = "surgical_drapes_goli" + /obj/item/organ_storage //allows medical cyborgs to manipulate organs without hands name = "organ storage bag" desc = "A container for holding body parts." @@ -433,3 +478,10 @@ to_chat(user, "You refrain from hitting [L] with [src], as you are in help intent.") return return ..() + +/obj/item/bonesetter/bone + name = "bone bonesetter" + desc = "A bonesetter made of bones... for setting bones with... bones?" + icon = 'icons/obj/mining.dmi' + icon_state = "bone setter_bone" + toolspeed = 0.85 diff --git a/code/modules/tgui/external.dm b/code/modules/tgui/external.dm index 565c595473..d858c2d6bf 100644 --- a/code/modules/tgui/external.dm +++ b/code/modules/tgui/external.dm @@ -74,7 +74,7 @@ * return bool If the user's input has been handled and the UI should update. */ /datum/proc/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - // SHOULD_CALL_PARENT(TRUE) + SHOULD_CALL_PARENT(TRUE) // If UI is not interactive or usr calling Topic is not the UI user, bail. if(!ui || ui.status != UI_INTERACTIVE) return TRUE @@ -145,6 +145,7 @@ * client/verb/uiclose(), which closes the ui window */ /datum/proc/ui_close(mob/user) + SIGNAL_HANDLER /** * verb diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 55497b150a..a0c39258b9 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -58,11 +58,16 @@ src.interface = interface if(title) src.title = title - src.state = src_object.ui_state() + src.state = src_object.ui_state(user) // Deprecated if(ui_x && ui_y) src.window_size = list(ui_x, ui_y) +/datum/tgui/Destroy() + user = null + src_object = null + return ..() + /** * public * diff --git a/code/modules/tgui/tgui_alert.dm b/code/modules/tgui/tgui_alert.dm index d144588ad9..83a26c2963 100644 --- a/code/modules/tgui/tgui_alert.dm +++ b/code/modules/tgui/tgui_alert.dm @@ -8,8 +8,9 @@ * * title - The of the alert modal, shown on the top of the TGUI window. * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. + * * autofocus - The bool that controls if this alert should grab window focus. */ -/proc/tgui_alert(mob/user, message = null, title = null, list/buttons = list("Ok"), timeout = 0) +/proc/tgui_alert(mob/user, message = null, title = null, list/buttons = list("Ok"), timeout = 0, autofocus = TRUE) if (!user) user = usr if (!istype(user)) @@ -18,7 +19,7 @@ user = client.mob else return - var/datum/tgui_modal/alert = new(user, message, title, buttons, timeout) + var/datum/tgui_modal/alert = new(user, message, title, buttons, timeout, autofocus) alert.ui_interact(user) alert.wait() if (alert) @@ -36,8 +37,9 @@ * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * callback - The callback to be invoked when a choice is made. * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Disabled by default, can be set to seconds otherwise. + * * autofocus - The bool that controls if this alert should grab window focus. */ -/proc/tgui_alert_async(mob/user, message = null, title = null, list/buttons = list("Ok"), datum/callback/callback, timeout = 0) +/proc/tgui_alert_async(mob/user, message = null, title = null, list/buttons = list("Ok"), datum/callback/callback, timeout = 0, autofocus = TRUE) if (!user) user = usr if (!istype(user)) @@ -46,7 +48,7 @@ user = client.mob else return - var/datum/tgui_modal/async/alert = new(user, message, title, buttons, callback, timeout) + var/datum/tgui_modal/async/alert = new(user, message, title, buttons, callback, timeout, autofocus) alert.ui_interact(user) /** @@ -68,13 +70,16 @@ var/start_time /// The lifespan of the tgui_modal, after which the window will close and delete itself. var/timeout + /// The bool that controls if this modal should grab window focus + var/autofocus /// Boolean field describing if the tgui_modal was closed by the user. var/closed -/datum/tgui_modal/New(mob/user, message, title, list/buttons, timeout) +/datum/tgui_modal/New(mob/user, message, title, list/buttons, timeout, autofocus) src.title = title src.message = message src.buttons = buttons.Copy() + src.autofocus = autofocus if (timeout) src.timeout = timeout start_time = world.time @@ -110,7 +115,8 @@ . = list( "title" = title, "message" = message, - "buttons" = buttons + "buttons" = buttons, + "autofocus" = autofocus ) if(timeout) @@ -140,8 +146,8 @@ /// The callback to be invoked by the tgui_modal upon having a choice made. var/datum/callback/callback -/datum/tgui_modal/async/New(mob/user, message, title, list/buttons, callback, timeout) - ..(user, message, title, buttons, timeout) +/datum/tgui_modal/async/New(mob/user, message, title, list/buttons, callback, timeout, autofocus) + ..(user, message, title, buttons, timeout, autofocus) src.callback = callback /datum/tgui_modal/async/Destroy(force, ...) diff --git a/code/modules/tgui/tgui_input_list.dm b/code/modules/tgui/tgui_input_list.dm index 242b69a934..a02dfac5f5 100644 --- a/code/modules/tgui/tgui_input_list.dm +++ b/code/modules/tgui/tgui_input_list.dm @@ -82,6 +82,7 @@ src.message = message src.buttons = list() src.buttons_map = list() + var/list/repeat_buttons = list() // Gets rid of illegal characters var/static/regex/whitelistedWords = regex(@{"([^\u0020-\u8000]+)"}) @@ -89,6 +90,9 @@ for(var/i in buttons) var/string_key = whitelistedWords.Replace("[i]", "") + //avoids duplicated keys E.g: when areas have the same name + string_key = avoid_assoc_duplicate_keys(string_key, repeat_buttons) + src.buttons += string_key src.buttons_map[string_key] = i @@ -144,7 +148,7 @@ if("choose") if (!(params["choice"] in buttons)) return - choice = buttons_map[params["choice"]] + set_choice(buttons_map[params["choice"]]) SStgui.close_uis(src) return TRUE if("cancel") @@ -152,6 +156,9 @@ closed = TRUE return TRUE +/datum/tgui_list_input/proc/set_choice(choice) + src.choice = choice + /** * # async tgui_list_input * @@ -162,23 +169,17 @@ var/datum/callback/callback /datum/tgui_list_input/async/New(mob/user, message, title, list/buttons, callback, timeout) - ..(user, title, message, buttons, timeout) + ..(user, message, title, buttons, timeout) src.callback = callback /datum/tgui_list_input/async/Destroy(force, ...) QDEL_NULL(callback) . = ..() -/datum/tgui_list_input/async/ui_close(mob/user) +/datum/tgui_list_input/async/set_choice(choice) . = ..() - qdel(src) - -/datum/tgui_list_input/async/ui_act(action, list/params) - . = ..() - if (!. || choice == null) - return - callback.InvokeAsync(choice) - qdel(src) + if(!isnull(src.choice)) + callback?.InvokeAsync(src.choice) /datum/tgui_list_input/async/wait() return diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index ae54b2dd3f..af6b5bdc74 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -258,7 +258,7 @@ if(istype(asset, /datum/asset/spritesheet)) var/datum/asset/spritesheet/spritesheet = asset send_message("asset/stylesheet", spritesheet.css_filename()) - send_message("asset/mappings", asset.get_url_mappings()) + send_raw_message(asset.get_serialized_url_mappings()) /** * private diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm index f13d11736f..0032f83d09 100644 --- a/code/modules/uplink/uplink_items/uplink_dangerous.dm +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -292,7 +292,5 @@ desc = "An ancient blade said to have ties with Lavaland's most inner demons. \ Allows you to cut from a far distance!" item = /obj/item/gun/magic/staff/motivation - cost = 20 - player_minimum = 20 + cost = 10 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) - cant_discount = TRUE diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm index 12e9f365d0..d0144269b7 100644 --- a/code/modules/vehicles/_vehicle.dm +++ b/code/modules/vehicles/_vehicle.dm @@ -91,9 +91,9 @@ /obj/vehicle/proc/after_add_occupant(mob/M) auto_assign_occupant_flags(M) -/obj/vehicle/proc/auto_assign_occupant_flags(mob/M) //override for each type that needs it. Default is assign driver if drivers is not at max. +/obj/vehicle/proc/auto_assign_occupant_flags(mob/M) //override for each type that needs it. Default is assign driver if drivers is not at max. if(driver_amount() < max_drivers) - add_control_flags(M, VEHICLE_CONTROL_DRIVE|VEHICLE_CONTROL_PERMISSION) + add_control_flags(M, VEHICLE_CONTROL_DRIVE) /obj/vehicle/proc/remove_occupant(mob/M) if(!istype(M)) diff --git a/code/modules/vehicles/cars/car.dm b/code/modules/vehicles/cars/car.dm index 08a7986fa3..0196abe82c 100644 --- a/code/modules/vehicles/cars/car.dm +++ b/code/modules/vehicles/cars/car.dm @@ -16,7 +16,7 @@ . = ..() initialize_controller_action_type(/datum/action/vehicle/sealed/remove_key, VEHICLE_CONTROL_DRIVE) if(car_traits & CAN_KIDNAP) - initialize_controller_action_type(/datum/action/vehicle/sealed/DumpKidnappedMobs, VEHICLE_CONTROL_DRIVE) + initialize_controller_action_type(/datum/action/vehicle/sealed/dump_kidnapped_mobs, VEHICLE_CONTROL_DRIVE) /obj/vehicle/sealed/car/driver_move(mob/user, direction) if(key_type && !is_key(inserted_key)) diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 0b75dbf4db..c4da65a902 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -1,6 +1,6 @@ /obj/vehicle/sealed/car/clowncar name = "clown car" - desc = "How someone could even fit in there is beyond me." + desc = "How someone could even fit in there is byond me." icon_state = "clowncar" max_integrity = 150 armor = list("melee" = 70, "bullet" = 40, "laser" = 40, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) @@ -10,25 +10,36 @@ car_traits = CAN_KIDNAP key_type = /obj/item/bikehorn key_type_exact = FALSE - var/droppingoil = FALSE - var/RTDcooldown = 150 - var/lastRTDtime = 0 + ///list of headlight colors we use to pick through when we have party mode due to emag + var/headlight_colors = list(COLOR_RED, COLOR_ORANGE, COLOR_YELLOW, COLOR_LIME, COLOR_BRIGHT_BLUE, COLOR_CYAN, COLOR_PURPLE) + ///Cooldown time inbetween [/obj/vehicle/sealed/car/clowncar/proc/roll_the_dice()] usages + var/dice_cooldown_time = 150 + ///How many times kidnappers in the clown car said thanks + var/thankscount = 0 + ///Current status of the cannon, alternates between CLOWN_CANNON_INACTIVE, CLOWN_CANNON_BUSY and CLOWN_CANNON_READY + var/cannonmode = CLOWN_CANNON_INACTIVE + var/light_on = TRUE + +/obj/vehicle/sealed/car/clowncar/Initialize() + . = ..() + START_PROCESSING(SSobj,src) + +/obj/vehicle/sealed/car/clowncar/process() + if(light_on && (obj_flags & EMAGGED)) + set_light_color(pick(headlight_colors)) /obj/vehicle/sealed/car/clowncar/generate_actions() . = ..() - initialize_controller_action_type(/datum/action/vehicle/sealed/horn/clowncar, VEHICLE_CONTROL_DRIVE) - -/obj/vehicle/sealed/car/clowncar/driver_move(mob/user, direction) //Prevent it from moving onto space - if(isspaceturf(get_step(src, direction))) - return FALSE - else - return ..() + initialize_controller_action_type(/datum/action/vehicle/sealed/horn, VEHICLE_CONTROL_DRIVE) + initialize_controller_action_type(/datum/action/vehicle/sealed/thank, VEHICLE_CONTROL_KIDNAPPED) /obj/vehicle/sealed/car/clowncar/auto_assign_occupant_flags(mob/M) if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.mind && HAS_TRAIT(H.mind, TRAIT_CLOWN_MENTALITY)) //Ensures only clowns can drive the car. (Including more at once) - add_control_flags(M, VEHICLE_CONTROL_DRIVE|VEHICLE_CONTROL_PERMISSION) + add_control_flags(H, VEHICLE_CONTROL_DRIVE) + RegisterSignal(H, COMSIG_MOB_CLICKON, .proc/fire_cannon_at) + M.log_message("has entered [src] as a possible driver", LOG_ATTACK) return add_control_flags(M, VEHICLE_CONTROL_KIDNAPPED) @@ -36,106 +47,195 @@ . = ..() playsound(src, pick('sound/vehicles/clowncar_load1.ogg', 'sound/vehicles/clowncar_load2.ogg'), 75) +/obj/vehicle/sealed/car/clowncar/after_add_occupant(mob/M, control_flags) + . = ..() + if(return_controllers_with_flag(VEHICLE_CONTROL_KIDNAPPED).len >= 30) + for(var/mob/voreman as anything in return_drivers()) + voreman.client.give_award(/datum/award/achievement/misc/round_and_full, voreman) + +/obj/vehicle/sealed/car/clowncar/attack_animal(mob/living/simple_animal/user, list/modifiers) + if((user.loc != src) || user.environment_smash & (ENVIRONMENT_SMASH_WALLS|ENVIRONMENT_SMASH_RWALLS)) + return ..() + +/obj/vehicle/sealed/car/clowncar/mob_exit(mob/M, silent = FALSE, randomstep = FALSE) + . = ..() + UnregisterSignal(M, COMSIG_MOB_CLICKON) + /obj/vehicle/sealed/car/clowncar/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) . = ..() if(prob(33)) - visible_message("[src] spews out a ton of space lube!") + visible_message(span_danger("[src] spews out a ton of space lube!")) new /obj/effect/particle_effect/foam(loc) //YEET -/obj/vehicle/sealed/car/clowncar/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) +/obj/vehicle/sealed/car/clowncar/attacked_by(obj/item/I, mob/living/user) . = ..() - if(istype(I, /obj/item/reagent_containers/food/snacks/grown/banana)) - var/obj/item/reagent_containers/food/snacks/grown/banana/banana = I - obj_integrity += min(banana.seed.potency, max_integrity-obj_integrity) - to_chat(user, "You use the [banana] to repair the [src]!") - qdel(banana) + if(!istype(I, /obj/item/reagent_containers/food/snacks/grown/banana)) + return + var/obj/item/reagent_containers/food/snacks/grown/banana/banana = I + obj_integrity += min(banana.seed.potency, max_integrity-obj_integrity) + to_chat(user, span_danger("You use the [banana] to repair the [src]!")) + qdel(banana) -/obj/vehicle/sealed/car/clowncar/Bump(atom/movable/M) +/obj/vehicle/sealed/car/clowncar/Bump(atom/bumped) . = ..() - if(isliving(M)) - if(ismegafauna(M)) + if(isliving(bumped)) + if(ismegafauna(bumped)) return - var/mob/living/L = M - if(iscarbon(L)) - var/mob/living/carbon/C = L - C.DefaultCombatKnockdown(40) //I play to make sprites go horizontal - L.visible_message("[src] rams into [L] and sucks him up!") //fuck off shezza this isn't ERP. - mob_forced_enter(L) + var/mob/living/hittarget_living = bumped + if(iscarbon(hittarget_living)) + var/mob/living/carbon/carb = hittarget_living + carb.DefaultCombatKnockdown(40) //I play to make sprites go horizontal + hittarget_living.visible_message(span_warning("[src] rams into [hittarget_living] and sucks [hittarget_living.p_them()] up!")) //fuck off shezza this isn't ERP. + mob_forced_enter(hittarget_living) playsound(src, pick('sound/vehicles/clowncar_ram1.ogg', 'sound/vehicles/clowncar_ram2.ogg', 'sound/vehicles/clowncar_ram3.ogg'), 75) - else if(istype(M, /turf/closed) || istype(M, /obj/machinery/door/airlock/external)) - visible_message("[src] rams into [M] and crashes!") - playsound(src, pick('sound/vehicles/clowncar_crash1.ogg', 'sound/vehicles/clowncar_crash2.ogg'), 75) - playsound(src, 'sound/vehicles/clowncar_crashpins.ogg', 75) - DumpMobs(TRUE) + log_combat(src, hittarget_living, "sucked up") + return + if(!istype(bumped, /turf/closed)) + return + visible_message(span_warning("[src] rams into [bumped] and crashes!")) + playsound(src, pick('sound/vehicles/clowncar_crash1.ogg', 'sound/vehicles/clowncar_crash2.ogg'), 75) + playsound(src, 'sound/vehicles/clowncar_crashpins.ogg', 75) + DumpMobs(TRUE) + log_combat(src, bumped, "crashed into", null, "dumping all passengers") /obj/vehicle/sealed/car/clowncar/emag_act(mob/user) . = ..() if(obj_flags & EMAGGED) return obj_flags |= EMAGGED - to_chat(user, "You scramble the clowncar child safety lock and a panel with 6 colorful buttons appears!") - initialize_controller_action_type(/datum/action/vehicle/sealed/RollTheDice, VEHICLE_CONTROL_DRIVE) + to_chat(user, span_danger("You scramble \the [src]'s child safety lock, and a panel with six colorful buttons appears!")) + initialize_controller_action_type(/datum/action/vehicle/sealed/roll_the_dice, VEHICLE_CONTROL_DRIVE) + initialize_controller_action_type(/datum/action/vehicle/sealed/cannon, VEHICLE_CONTROL_DRIVE) return TRUE -/obj/vehicle/sealed/car/clowncar/Destroy() +/obj/vehicle/sealed/car/clowncar/obj_destruction(damage_flag) playsound(src, 'sound/vehicles/clowncar_fart.ogg', 100) + STOP_PROCESSING(SSobj,src) return ..() -/obj/vehicle/sealed/car/clowncar/after_move(direction) - . = ..() - if(droppingoil) - new /obj/effect/decal/cleanable/oil/slippery(loc) - -/obj/vehicle/sealed/car/clowncar/proc/RollTheDice(mob/user) - if(world.time - lastRTDtime < RTDcooldown) - to_chat(user, "The button panel is currently recharging.") +/** + * Plays a random funky effect + * Only available while car is emagged + * Possible effects: + * * Spawn bananapeel + * * Spawn random reagent foam + * * Make the clown car look like a singulo temporarily + * * Spawn Laughing chem gas + * * Drop oil + * * Fart and make everyone nearby laugh + */ +/obj/vehicle/sealed/car/clowncar/proc/roll_the_dice(mob/user) + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_CLOWNCAR_RANDOMNESS)) + to_chat(user, span_notice("The button panel is currently recharging.")) return - lastRTDtime = world.time - var/randomnum = rand(1,6) - switch(randomnum) + TIMER_COOLDOWN_START(src, COOLDOWN_CLOWNCAR_RANDOMNESS, dice_cooldown_time) + switch(rand(1,6)) if(1) - visible_message("[user] has pressed one of the colorful buttons on [src] and a special banana peel drops out of it.") + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and a special banana peel drops out of it.")) new /obj/item/grown/bananapeel/specialpeel(loc) if(2) - visible_message("[user] has pressed one of the colorful buttons on [src] and unknown chemicals flood out of it.") - var/datum/reagents/R = new/datum/reagents(300) - R.my_atom = src - R.add_reagent(get_random_reagent_id(), 100) + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and unknown chemicals flood out of it.")) + var/datum/reagents/randomchems = new/datum/reagents(300) + randomchems.my_atom = src + randomchems.add_reagent(get_random_reagent_id(), 100) var/datum/effect_system/foam_spread/foam = new - foam.set_up(200, loc, R) + foam.set_up(200, loc, randomchems) foam.start() if(3) - visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car turns on its singularity disguise system.") + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and the clown car turns on its singularity disguise system.")) icon = 'icons/obj/singularity.dmi' icon_state = "singularity_s1" - addtimer(CALLBACK(src, .proc/ResetIcon), 100) + addtimer(CALLBACK(src, .proc/reset_icon), 10 SECONDS) if(4) - visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car spews out a cloud of laughing gas.") - var/datum/reagents/R = new/datum/reagents(300) - R.my_atom = src - R.add_reagent(/datum/reagent/consumable/superlaughter, 50) + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and the clown car spews out a cloud of laughing gas.")) + var/datum/reagents/funnychems = new/datum/reagents(300) + funnychems.my_atom = src + funnychems.add_reagent(/datum/reagent/consumable/superlaughter, 50) var/datum/effect_system/smoke_spread/chem/smoke = new() - smoke.set_up(R, 4) + smoke.set_up(funnychems, 4) smoke.attach(src) smoke.start() if(5) - visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car starts dropping an oil trail.") - droppingoil = TRUE - addtimer(CALLBACK(src, .proc/StopDroppingOil), 30) + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and the clown car starts dropping an oil trail.")) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/cover_in_oil) + addtimer(CALLBACK(src, .proc/stop_dropping_oil), 3 SECONDS) if(6) - visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car lets out a comedic toot.") + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and the clown car lets out a comedic toot.")) playsound(src, 'sound/vehicles/clowncar_fart.ogg', 100) for(var/mob/living/L in orange(loc, 6)) L.emote("laughs") - for(var/mob/living/L in occupants) + for(var/mob/living/L as anything in occupants) L.emote("laughs") -/obj/vehicle/sealed/car/clowncar/proc/ResetIcon() +///resets the icon and iconstate of the clowncar after it was set to singulo states +/obj/vehicle/sealed/car/clowncar/proc/reset_icon() icon = initial(icon) icon_state = initial(icon_state) -/obj/vehicle/sealed/car/clowncar/proc/StopDroppingOil() - droppingoil = FALSE +///Deploys oil when the clowncar moves in oil deploy mode +/obj/vehicle/sealed/car/clowncar/proc/cover_in_oil() + SIGNAL_HANDLER + new /obj/effect/decal/cleanable/oil/slippery(loc) + +///Stops dropping oil after the time has run up +/obj/vehicle/sealed/car/clowncar/proc/stop_dropping_oil() + UnregisterSignal(src, COMSIG_MOVABLE_MOVED) + +///Toggles the on and off state of the clown cannon that shoots random kidnapped people +/obj/vehicle/sealed/car/clowncar/proc/toggle_cannon(mob/user) + if(cannonmode == CLOWN_CANNON_BUSY) + to_chat(user, span_notice("Please wait for the vehicle to finish its current action first.")) + return + if(cannonmode) //canon active, deactivate + flick("clowncar_fromfire", src) + icon_state = "clowncar" + addtimer(CALLBACK(src, .proc/deactivate_cannon), 2 SECONDS) + playsound(src, 'sound/vehicles/clowncar_cannonmode2.ogg', 75) + visible_message(span_danger("The [src] starts going back into mobile mode.")) + else + canmove = FALSE //anchor and activate canon + flick("clowncar_tofire", src) + icon_state = "clowncar_fire" + visible_message(span_danger("The [src] opens up and reveals a large cannon.")) + addtimer(CALLBACK(src, .proc/activate_cannon), 2 SECONDS) + playsound(src, 'sound/vehicles/clowncar_cannonmode1.ogg', 75) + cannonmode = CLOWN_CANNON_BUSY + +///Finalizes canon activation +/obj/vehicle/sealed/car/clowncar/proc/activate_cannon() + // mouse_pointer = 'icons/effects/mouse_pointers/mecha_mouse.dmi' + cannonmode = CLOWN_CANNON_READY + for(var/mob/living/driver as anything in return_controllers_with_flag(VEHICLE_CONTROL_DRIVE)) + driver.update_mouse_pointer() + +///Finalizes canon deactivation +/obj/vehicle/sealed/car/clowncar/proc/deactivate_cannon() + canmove = TRUE + // mouse_pointer = null + cannonmode = CLOWN_CANNON_INACTIVE + for(var/mob/living/driver as anything in return_controllers_with_flag(VEHICLE_CONTROL_DRIVE)) + driver.update_mouse_pointer() + +///Fires the cannon where the user clicks +/obj/vehicle/sealed/car/clowncar/proc/fire_cannon_at(mob/user, atom/A, params) + SIGNAL_HANDLER + if(cannonmode != CLOWN_CANNON_READY || !length(return_controllers_with_flag(VEHICLE_CONTROL_KIDNAPPED))) + return NONE + var/mob/living/unlucky_sod = pick(return_controllers_with_flag(VEHICLE_CONTROL_KIDNAPPED)) + mob_exit(unlucky_sod, TRUE) + flick("clowncar_recoil", src) + playsound(src, pick('sound/vehicles/carcannon1.ogg', 'sound/vehicles/carcannon2.ogg', 'sound/vehicles/carcannon3.ogg'), 75) + unlucky_sod.throw_at(A, 10, 2) + log_combat(user, unlucky_sod, "fired", src, "towards [A]") //this doesn't catch if the mob hits something between the car and the target + return COMSIG_MOB_CANCEL_CLICKON + +///Increments the thanks counter every time someone thats been kidnapped thanks the driver +/obj/vehicle/sealed/car/clowncar/proc/increment_thanks_counter() + thankscount++ + if(thankscount < 100) + return + for(var/mob/busdriver as anything in return_drivers()) + busdriver.client.give_award(/datum/award/achievement/misc/the_best_driver, busdriver) /obj/vehicle/sealed/car/clowncar/twitch_plays key_type = null @@ -144,12 +244,10 @@ /obj/vehicle/sealed/car/clowncar/twitch_plays/Initialize() . = ..() AddComponent(/datum/component/twitch_plays/simple_movement) - START_PROCESSING(SSfastprocess, src) GLOB.poi_list |= src notify_ghosts("Twitch Plays: Clown Car") /obj/vehicle/sealed/car/clowncar/twitch_plays/Destroy() - STOP_PROCESSING(SSfastprocess, src) GLOB.poi_list -= src return ..() @@ -158,3 +256,4 @@ if(!dir) return driver_move(null, dir) + ..() diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index 5de2c8961f..8b2c72008c 100644 --- a/code/modules/vehicles/vehicle_actions.dm +++ b/code/modules/vehicles/vehicle_actions.dm @@ -126,44 +126,70 @@ desc = "Honk your classy horn." button_icon_state = "car_horn" var/hornsound = 'sound/items/carhorn.ogg' - var/last_honk_time /datum/action/vehicle/sealed/horn/Trigger() - if(world.time - last_honk_time > 20) - vehicle_entered_target.visible_message("[vehicle_entered_target] loudly honks") - to_chat(owner, "You press the vehicle's horn.") - playsound(vehicle_entered_target, hornsound, 75) - last_honk_time = world.time + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_CAR_HONK)) + return + TIMER_COOLDOWN_START(src, COOLDOWN_CAR_HONK, 2 SECONDS) + vehicle_entered_target.visible_message(span_danger("[vehicle_entered_target] loudly honks!")) + to_chat(owner, span_notice("You press [vehicle_entered_target]'s horn.")) + if(istype(vehicle_target.inserted_key, /obj/item/bikehorn)) + vehicle_target.inserted_key.attack_self(owner) //The bikehorn plays a sound instead + return + playsound(vehicle_entered_target, hornsound, 75) -/datum/action/vehicle/sealed/horn/clowncar/Trigger() - if(world.time - last_honk_time > 20) - vehicle_entered_target.visible_message("[vehicle_entered_target] loudly honks") - to_chat(owner, "You press the vehicle's horn.") - last_honk_time = world.time - if(vehicle_target.inserted_key) - vehicle_target.inserted_key.attack_self(owner) //The key plays a sound - else - playsound(vehicle_entered_target, hornsound, 75) - -/datum/action/vehicle/sealed/DumpKidnappedMobs - name = "Dump kidnapped mobs" +/datum/action/vehicle/sealed/dump_kidnapped_mobs + name = "Dump Kidnapped Mobs" desc = "Dump all objects and people in your car on the floor." button_icon_state = "car_dump" -/datum/action/vehicle/sealed/DumpKidnappedMobs/Trigger() - vehicle_entered_target.visible_message("[vehicle_entered_target] starts dumping the people inside of it.") +/datum/action/vehicle/sealed/dump_kidnapped_mobs/Trigger() + vehicle_entered_target.visible_message(span_danger("[vehicle_entered_target] starts dumping the people inside of it.")) vehicle_entered_target.DumpSpecificMobs(VEHICLE_CONTROL_KIDNAPPED) -/datum/action/vehicle/sealed/RollTheDice - name = "Press a colorful button" +/datum/action/vehicle/sealed/roll_the_dice + name = "Press Colorful Button" desc = "Press one of those colorful buttons on your display panel!" button_icon_state = "car_rtd" -/datum/action/vehicle/sealed/RollTheDice/Trigger() - if(istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) - var/obj/vehicle/sealed/car/clowncar/C = vehicle_entered_target - C.RollTheDice(owner) +/datum/action/vehicle/sealed/roll_the_dice/Trigger() + if(!istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) + return + var/obj/vehicle/sealed/car/clowncar/C = vehicle_entered_target + C.roll_the_dice(owner) + +/datum/action/vehicle/sealed/cannon + name = "Toggle Siege Mode" + desc = "Destroy them with their own fodder!" + button_icon_state = "car_cannon" + +/datum/action/vehicle/sealed/cannon/Trigger() + if(!istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) + return + var/obj/vehicle/sealed/car/clowncar/C = vehicle_entered_target + C.toggle_cannon(owner) + + +/datum/action/vehicle/sealed/thank + name = "Thank the Clown Car Driver" + desc = "They're just doing their job." + button_icon_state = "car_thanktheclown" + COOLDOWN_DECLARE(thank_time_cooldown) + + +/datum/action/vehicle/sealed/thank/Trigger() + if(!istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) + return + if(!COOLDOWN_FINISHED(src, thank_time_cooldown)) + return + COOLDOWN_START(src, thank_time_cooldown, 6 SECONDS) + var/obj/vehicle/sealed/car/clowncar/clown_car = vehicle_entered_target + var/mob/living/carbon/human/clown = pick(clown_car.return_drivers()) + if(!clown) + return + owner.say("Thank you for the fun ride, [clown.name]!") + clown_car.increment_thanks_counter() /datum/action/vehicle/ridden/scooter/skateboard/ollie @@ -197,7 +223,9 @@ L.Move(landing_turf, vehicle_target.dir) passtable_off(L, VEHICLE_TRAIT) V.pass_flags &= ~PASSTABLE - if(locate(/obj/structure/table) in V.loc.contents) + if((locate(/obj/structure/table) in V.loc.contents) || (locate(/obj/structure/fluff/railing) in V.loc.contents)) + if(locate(/obj/structure/fluff/railing) in V.loc.contents) + L.client.give_award(/datum/award/achievement/misc/tram_surfer, L) V.grinding = TRUE V.icon_state = "[V.board_icon]-grind" addtimer(CALLBACK(V, /obj/vehicle/ridden/scooter/skateboard/.proc/grind), 2) diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 6adc9d38e6..8822ef2ff0 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -15,9 +15,9 @@ /obj/item/clothing/glasses/monocle = 3, /obj/item/clothing/suit/jacket = 4, /obj/item/clothing/suit/jacket/flannel = 4, - /obj/item/clothing/suit/jacket/flannel/red = 4, - /obj/item/clothing/suit/jacket/flannel/aqua = 4, - /obj/item/clothing/suit/jacket/flannel/brown = 4, + /obj/item/clothing/suit/toggle/jacket/flannel/red = 4, + /obj/item/clothing/suit/toggle/jacket/flannel/aqua = 4, + /obj/item/clothing/suit/toggle/jacket/flannel/brown = 4, /obj/item/clothing/suit/jacket/puffer/vest = 4, /obj/item/clothing/suit/jacket/puffer = 4, /obj/item/clothing/suit/hooded/cloak/david = 4, @@ -219,7 +219,17 @@ /obj/item/clothing/under/misc/corporateuniform = 5, /obj/item/clothing/suit/hooded/wintercoat/polychromic = 5, /obj/item/clothing/suit/toggle/wbreakpoly/polychromic = 5, - /obj/item/clothing/shoes/sneakers/poly/polychromic = 10) + /obj/item/clothing/shoes/sneakers/poly/polychromic = 10, + /obj/item/clothing/suit/toggle/jacket/fancytrench = 4, + /obj/item/clothing/suit/toggle/jacket/greenjacket = 4, + /obj/item/clothing/suit/jacket/gentlecoat = 4, + /obj/item/clothing/suit/jacket/gothicshirtcross = 4, + /obj/item/clothing/suit/jacket/gothicshirt = 4, + /obj/item/clothing/suit/jacket/gothiccoat = 4, + /obj/item/clothing/suit/jacket/heartcoat = 4, + /obj/item/clothing/suit/jacket/purplehoodie = 4, + /obj/item/clothing/suit/jacket/bluehoodie = 4, + /obj/item/clothing/suit/toggle/jacket/whitehoodie = 4) refill_canister = /obj/item/vending_refill/clothing default_price = PRICE_CHEAP extra_price = PRICE_BELOW_NORMAL diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index a1d9bc1691..7664a191c8 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -10,7 +10,9 @@ /obj/item/toy/cards/deck/unum = 3, /obj/item/cardpack/series_one = 10, /obj/item/dyespray=3, - /obj/item/tcgcard_binder = 5) + /obj/item/tcgcard_binder = 5, + /obj/item/canvas = 3, + /obj/item/toy/crayon/spraycan = 3) contraband = list(/obj/item/dice/fudge = 9) premium = list(/obj/item/melee/skateboard/pro = 3, /obj/item/melee/skateboard/hoverboard = 1) diff --git a/config/spaceRuinBlacklist.txt b/config/spaceRuinBlacklist.txt index 969e4135f6..c62408b90c 100644 --- a/config/spaceRuinBlacklist.txt +++ b/config/spaceRuinBlacklist.txt @@ -53,3 +53,4 @@ #_maps/RandomRuins/SpaceRuins/spacehermit.dmm #_maps/RandomRuins/SpaceRuins/advancedlab.dmm #_maps/RandomRuins/SpaceRuins/spacediner.dmm +#_maps/RandomRuins/SpaceRuins/skelter.dmm diff --git a/html/changelog.html b/html/changelog.html index dabd4e7704..8a0b3baf6d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,165 @@ -->
+

30 September 2021

+

Hatterhat updated:

+
    +
  • The xenomorph infestation on Moon Outpost 19 is significantly less prone to outbreaks, theoretically.
  • +
+

Putnam3145 updated:

+
    +
  • Minesweeper's "play on same board"
  • +
+ +

29 September 2021

+

Ghommie updated:

+
    +
  • Animals are no loner n(e)igh-immune to stuttering.
  • +
  • Silicons and animals won't keep stuttering or slurring forever after being struck by something that made them like that in the first place (such as a Blue Space Artillery).
  • +
+

Hatterhat updated:

+
    +
  • Reports from other stations' Wardens blasting themselves in sensitive places due to mishandled firearms has led to the introduction of a folding-stock safety for their shotgun, rendering it inoperable while the stock is folded.
  • +
  • Compact combat shotguns now stay compact when stored, by virtue of being unable to be extended while in a bag.
  • +
  • Reloading a shotgun with a shell clip now inflicts melee click delay.
  • +
+

LetterN updated:

+
    +
  • clowncar railgun- i mean gun
  • +
  • more achivements
  • +
  • syndie carp can pick up the disky (and is smart now)
  • +
  • hooks most of the achivements, all of the heretics work now
  • +
+

Putnam3145 updated:

+
    +
  • Lavaland can no longer be too cold for its natives to surivive
  • +
+

buffyuwu updated:

+
    +
  • flannels can now be toggled in style from buttoned to unbuttoned
  • +
  • ports more rp and existing tg assets with minor edits into loadout selection
  • +
+

keronshb updated:

+
    +
  • Ninja status back in the status menu
  • +
+

zeroisthebiggay updated:

+
    +
  • the monkey shuttle brig
  • +
  • meta gets a prison
  • +
  • the floating fire extinguisher
  • +
  • fucks the motivation's cost.
  • +
  • a new maintenance ambience
  • +
+ +

28 September 2021

+

zeroisthebiggay updated:

+
    +
  • helter skelter loot insanity
  • +
  • helter skelter comms insanity
  • +
+ +

27 September 2021

+

zeroisthebiggay updated:

+
    +
  • helter skelter actually spawns
  • +
  • code\modules\mob\living\simple_animal\hostile\plaguerat.dm:139:warning: newmouse: variable defined but not used
  • +
+ +

25 September 2021

+

buffyuwu updated:

+
    +
  • fixes accordions
  • +
+ +

24 September 2021

+

zeroisthebiggay updated:

+
    +
  • gremlins become shock immune
  • +
+ +

23 September 2021

+

KrabSpider updated:

+
    +
  • cryogenics ain't a candidate for anomaly spawns anymore.
  • +
+

buffyuwu updated:

+
    +
  • canvas and spray can are now sold in the fun vendor
  • +
+ +

22 September 2021

+

silicons updated:

+
    +
  • dice bags can only hold dice
  • +
  • limb damage changes reverted
  • +
  • crawling can't be adrenals'd
  • +
+ +

20 September 2021

+

BlueWildrose updated:

+
    +
  • Slime regenerative extracts now require five seconds of wait before they are used. They add 25 disgust when used.
  • +
+

DeltaFire15 updated:

+
    +
  • Catsurgeons should now spawn at more reasonable locations if possible.
  • +
  • carded AIs can now be converted by conversion sigils (clockcult)
  • +
  • There is now a way to acquire nanite storage protocols (bepis, like the other protocols), as opposed to them existing with no way to acquire them.
  • +
  • Plastic golems are back to ventcrawler_nude instead of ventcrawler_always
  • +
+

Putnam3145 updated:

+
    +
  • monstermos config added, disabled
  • +
+

buffyuwu updated:

+
    +
  • fixed medihound sleeper ui display
  • +
  • Adds 4 redesigned jackets and 2 redesigned shirts to loadout
  • +
  • Holoparasites no long rename and recolor on relog
  • +
+

dapnee updated:

+
    +
  • attaches an air vent that was just there on the AI sat, changes some areas to what they'd logically be
  • +
+

keronshb updated:

+
    +
  • Plague Rats will no longer spawn thousands of dirt decals
  • +
  • Plague Rats will no longer spawn thousands of corpses
  • +
  • Plague Rats can't spawn or transform off station z anymore
  • +
  • Plague Rats shouldn't explosively grow instantly
  • +
  • Plague Rats won't spawn infinite miasma anymore.
  • +
  • Plague Rats health is now 100.
  • +
  • Plague Rats can now ventcrawl through everything to prevent farming.
  • +
  • Slaughter Demons Slam will now wound again on hit.
  • +
  • Damage for demons back up to 30
  • +
  • Wound Bonus for demons now at 0. image_add: Adds a sprite for the action bar
  • +
  • Changed the CTRL+SHIFT Click to an action button. People can see the cooldown now too.
  • +
  • PAIs can be emagged to reset master
  • +
+

qweq12yt updated:

+
    +
  • Fixed space heaters not being able to be interacted/turned on in non powered areas
  • +
+

timothyteakettle updated:

+
    +
  • removes passkey from access circuits as its not used anymore
  • +
  • a new mild trauma, **[REDACTED]**
  • +
+

zeroisthebiggay updated:

+
    +
  • glass has do_after
  • +
  • box perma has power
  • +
  • missing madness mask sprites
  • +
  • The Spider Clan has recently taken up the Space Ninja project again along with the Syndicate. Space Ninjas have been drastically changed as a result, becoming much weaker and more stealth oriented. As a result of cutting costs per ninja, more ninjas were able to be hired. Expect to see them around more often.
  • +
  • prisoners cannot latejoin anymore
  • +
  • bone satchel onmob sprites
  • +
  • new tips
  • +
  • old tips
  • +
  • all medipens get inhands
  • +
  • some more brainhurt lines
  • +
+

18 September 2021

kiwedespars updated:

    @@ -382,134 +541,6 @@
    • organs decay again
    - -

    04 August 2021

    -

    BlueWildrose updated:

    -
      -
    • The debrained overlay actually shows for brainless corpses now instead of showing a blue error.
    • -
    -

    timothyteakettle updated:

    -
      -
    • legs are no longer awful
    • -
    - -

    03 August 2021

    -

    zeroisthebiggay updated:

    -
      -
    • tempgun is a laser
    • -
    • bake mode is useful
    • -
    • tempgun has less shots
    • -
    • tempgun has more sprites
    • -
    - -

    02 August 2021

    -

    TripleShades updated:

    -
      -
    • Decorative (read: Station-safe) water tile in the code
    • -
    • Pubby's new water feature wont kill atmosphere anymore
    • -
    - -

    31 July 2021

    -

    MrJWhit updated:

    -
      -
    • Fixes some minor mistakes around space near boxstation.
    • -
    -

    TripleShades updated:

    -
      -
    • Fountain area to public mining station-side tweak: Moved around the tables and chairs and monitor at public mining station-side
    • -
    -

    WanderingFox95 updated:

    -
      -
    • Added new ruin maps: The Bathhouse, The Library, The Engineering outpost, The Hotsprings(un-cursed), Lust, Wrath and an alternate spawn for the BDM in the form of a mining outpost, based on the same Ruins on the Ice Moon. removed: A lot of the fun items within the ice moon-based ruins that would break mining even more and trading cards.
    • -
    • Yes, this includes that the lavaland version of the hot spring is literally just water and not cursed. tweak: Also "fixed" that only one version of the BDM ruin ever spawns. Not sure it needed fixing but even locally hosted, only blooddrunk2.dmm would spawn. Since I added another spawn for the BDM, I fixed that too.
    • -
    - -

    29 July 2021

    -

    EmeraldSundisk updated:

    -
      -
    • Adds decals between Virology and the general Medbay to provide clarity
    • -
    • Adds an airlock with access to the Engineering Cooling Loop
    • -
    • The Maintenance Theater now has a suitable amount of dust
    • -
    • Removed an errant entertainment monitor left in the morgue
    • -
    • Removed redundant scrubber piping in and around the bar and kitchen tweak: Slightly readjusts an airpipe to take advantage of newfound space tweak: The Toxins Lab has received (predominantly) visual adjustments as to render it more in line with the general science department tweak: Toxins Storage is no longer its own area and as such needn't worry about APCs
    • -
    • Hydroponics now has a proper APC as intended
    • -
    - -

    27 July 2021

    -

    Putnam3145 updated:

    -
      -
    • Generic fires work now
    • -
    • A knock-on effect of the HE pipe change is that space cooling is ~8.4x as powerful
    • -
    - -

    26 July 2021

    -

    SandPoot updated:

    -
      -
    • Removes a sneaky transform button on the vore panel.
    • -
    - -

    24 July 2021

    -

    MrJWhit updated:

    -
      -
    • Replaces the northwest maint room on box with a sadness room
    • -
    • Replaces bar stripper room with an arcade on boxstation
    • -
    • Squished the west bathrooms a bit and made a room to sell things on boxstation.
    • -
    • Southeast maint hallway on box is now ziggy and zaggier.
    • -
    • Fixed pipes being not connected with the recent map PR for boxstation.
    • -
    -

    Putnam3145 updated:

    -
      -
    • hallucination now bottoms out at 0
    • -
    • supermatter now causes only half the hallucinations
    • -
    -

    cadyn updated:

    -
      -
    • auxmos bump for dependencies.sh
    • -
    - -

    23 July 2021

    -

    silicons updated:

    -
      -
    • Batons are slightly more powerful.
    • -
    - -

    19 July 2021

    -

    Arturlang updated:

    -
      -
    • The crafting button should no longer silently make more copies of itself on reconects
    • -
    • There are no longer two copies of the crafting component.
    • -
    • There is no longer a rogue d in tracer.dm tweak: Everything in Misc was moved to Miscelanious in the crafting menu, and Misc was nuked from orbit. Nobody will miss you.
    • -
    -

    MrJWhit updated:

    -
      -
    • Fixes a memory leak, there's a good chance that it's the same one that killed kilo.
    • -
    -

    SandPoot updated:

    -
      -
    • Put back mob vore with a pref.
    • -
    • Taken some stuff from tg for tgui_alert.
    • -
    • Refactored a lot of code on vore panel.
    • -
    -

    WanderingFox95 updated:

    -
      -
    • custom plasteel kegs
    • -
    -

    YakumoChen updated:

    -
      -
    • You can now wear the suffering of others on your head with just a sheet of human skin!
    • -
    • Human skin hats
    • -
    -

    keronshb updated:

    -
      -
    • Stripping/equipping things to a conscious braindead person (AKA a human owned by a disconnected player) will now give them a message with your visible name and roughly how long ago you touched their stuff when they login again. Touching someone's pockets or adjusting their gear other than equipping/unequipping is not logged. After 5 minutes, you'll have forgotten both their name and exactly how long ago past those 5 minutes it happened. (Credit to Ryll-Ryll)
    • -
    • LAZYNULL
    • -
    • Breaking mirrors now gives you a bad omen
    • -
    -

    timothyteakettle updated:

    -
      -
    • anthros can now select the cow tail
    • -
    • new quirk that allows you to eat trash
    • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index e4e1fba1c6..3bce254157 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -30003,3 +30003,120 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-09-18: kiwedespars: - balance: blacklisted morphine and haloperidol from dart guns +2021-09-20: + BlueWildrose: + - balance: Slime regenerative extracts now require five seconds of wait before they + are used. They add 25 disgust when used. + DeltaFire15: + - bugfix: Catsurgeons should now spawn at more reasonable locations if possible. + - balance: carded AIs can now be converted by conversion sigils (clockcult) + - bugfix: There is now a way to acquire nanite storage protocols (bepis, like the + other protocols), as opposed to them existing with no way to acquire them. + - bugfix: Plastic golems are back to ventcrawler_nude instead of ventcrawler_always + Putnam3145: + - config: monstermos config added, disabled + buffyuwu: + - bugfix: fixed medihound sleeper ui display + - rscadd: Adds 4 redesigned jackets and 2 redesigned shirts to loadout + - bugfix: Holoparasites no long rename and recolor on relog + dapnee: + - bugfix: attaches an air vent that was just there on the AI sat, changes some areas + to what they'd logically be + keronshb: + - bugfix: Plague Rats will no longer spawn thousands of dirt decals + - bugfix: Plague Rats will no longer spawn thousands of corpses + - bugfix: Plague Rats can't spawn or transform off station z anymore + - bugfix: Plague Rats shouldn't explosively grow instantly + - bugfix: Plague Rats won't spawn infinite miasma anymore. + - balance: Plague Rats health is now 100. + - balance: Plague Rats can now ventcrawl through everything to prevent farming. + - bugfix: Slaughter Demons Slam will now wound again on hit. + - balance: Damage for demons back up to 30 + - balance: 'Wound Bonus for demons now at 0. image_add: Adds a sprite for the action + bar' + - refactor: Changed the CTRL+SHIFT Click to an action button. People can see the + cooldown now too. + - rscadd: PAIs can be emagged to reset master + qweq12yt: + - bugfix: Fixed space heaters not being able to be interacted/turned on in non powered + areas + timothyteakettle: + - bugfix: removes passkey from access circuits as its not used anymore + - rscadd: a new mild trauma, **[REDACTED]** + zeroisthebiggay: + - balance: glass has do_after + - bugfix: box perma has power + - bugfix: missing madness mask sprites + - balance: The Spider Clan has recently taken up the Space Ninja project again along + with the Syndicate. Space Ninjas have been drastically changed as a result, + becoming much weaker and more stealth oriented. As a result of cutting costs + per ninja, more ninjas were able to be hired. Expect to see them around more + often. + - bugfix: prisoners cannot latejoin anymore + - bugfix: bone satchel onmob sprites + - rscadd: new tips + - rscdel: old tips + - imageadd: all medipens get inhands + - rscadd: some more brainhurt lines +2021-09-22: + silicons: + - bugfix: dice bags can only hold dice + - rscdel: limb damage changes reverted + - bugfix: crawling can't be adrenals'd +2021-09-23: + KrabSpider: + - code_imp: cryogenics ain't a candidate for anomaly spawns anymore. + buffyuwu: + - rscadd: canvas and spray can are now sold in the fun vendor +2021-09-24: + zeroisthebiggay: + - balance: gremlins become shock immune +2021-09-25: + buffyuwu: + - bugfix: fixes accordions +2021-09-27: + zeroisthebiggay: + - bugfix: helter skelter actually spawns + - bugfix: 'code\modules\mob\living\simple_animal\hostile\plaguerat.dm:139:warning: + newmouse: variable defined but not used' +2021-09-28: + zeroisthebiggay: + - balance: helter skelter loot insanity + - bugfix: helter skelter comms insanity +2021-09-29: + Ghommie: + - rscdel: Animals are no loner n(e)igh-immune to stuttering. + - bugfix: Silicons and animals won't keep stuttering or slurring forever after being + struck by something that made them like that in the first place (such as a Blue + Space Artillery). + Hatterhat: + - balance: Reports from other stations' Wardens blasting themselves in sensitive + places due to mishandled firearms has led to the introduction of a folding-stock + safety for their shotgun, rendering it inoperable while the stock is folded. + - balance: Compact combat shotguns now stay compact when stored, by virtue of being + unable to be extended while in a bag. + - balance: Reloading a shotgun with a shell clip now inflicts melee click delay. + LetterN: + - rscadd: clowncar railgun- i mean gun + - rscadd: more achivements + - rscadd: syndie carp can pick up the disky (and is smart now) + - code_imp: hooks most of the achivements, all of the heretics work now + Putnam3145: + - bugfix: Lavaland can no longer be too cold for its natives to surivive + buffyuwu: + - bugfix: flannels can now be toggled in style from buttoned to unbuttoned + - rscadd: ports more rp and existing tg assets with minor edits into loadout selection + keronshb: + - refactor: Ninja status back in the status menu + zeroisthebiggay: + - bugfix: the monkey shuttle brig + - rscadd: meta gets a prison + - bugfix: the floating fire extinguisher + - balance: fucks the motivation's cost. + - soundadd: a new maintenance ambience +2021-09-30: + Hatterhat: + - rscdel: The xenomorph infestation on Moon Outpost 19 is significantly less prone + to outbreaks, theoretically. + Putnam3145: + - rscdel: Minesweeper's "play on same board" diff --git a/html/changelogs/AutoChangeLog-pr-14219.yml b/html/changelogs/AutoChangeLog-pr-14219.yml deleted file mode 100644 index 1bef269e5a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14219.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - balance: "The Spider Clan has recently taken up the Space Ninja project again along with the Syndicate. Space Ninjas have been drastically changed as a result, becoming much weaker and more stealth oriented. As a result of cutting costs per ninja, more ninjas were able to be hired. Expect to see them around more often." diff --git a/html/changelogs/AutoChangeLog-pr-15074.yml b/html/changelogs/AutoChangeLog-pr-15074.yml deleted file mode 100644 index 5da0c10a10..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15074.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - rscadd: "PAIs can be emagged to reset master" diff --git a/html/changelogs/AutoChangeLog-pr-15084.yml b/html/changelogs/AutoChangeLog-pr-15084.yml deleted file mode 100644 index 6c99cc159d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15084.yml +++ /dev/null @@ -1,10 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - bugfix: "Plague Rats will no longer spawn thousands of dirt decals" - - bugfix: "Plague Rats will no longer spawn thousands of corpses" - - bugfix: "Plague Rats can't spawn or transform off station z anymore" - - bugfix: "Plague Rats shouldn't explosively grow instantly" - - bugfix: "Plague Rats won't spawn infinite miasma anymore." - - balance: "Plague Rats health is now 100." - - balance: "Plague Rats can now ventcrawl through everything to prevent farming." diff --git a/html/changelogs/AutoChangeLog-pr-15094.yml b/html/changelogs/AutoChangeLog-pr-15094.yml deleted file mode 100644 index 21dcf75960..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15094.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - balance: "glass has do_after" diff --git a/html/changelogs/AutoChangeLog-pr-15119.yml b/html/changelogs/AutoChangeLog-pr-15119.yml deleted file mode 100644 index ee7100fd9b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15119.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - bugfix: "Slaughter Demons Slam will now wound again on hit." - - balance: "Damage for demons back up to 30" - - balance: "Wound Bonus for demons now at 0. -image_add: Adds a sprite for the action bar" - - refactor: "Changed the CTRL+SHIFT Click to an action button. People can see the cooldown now too." diff --git a/html/changelogs/AutoChangeLog-pr-15133.yml b/html/changelogs/AutoChangeLog-pr-15133.yml deleted file mode 100644 index 3bc023735f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15133.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - rscadd: "new tips" - - rscdel: "old tips" diff --git a/html/changelogs/AutoChangeLog-pr-15134.yml b/html/changelogs/AutoChangeLog-pr-15134.yml deleted file mode 100644 index 2a71bd9aa0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15134.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - rscadd: "some more brainhurt lines" diff --git a/html/changelogs/AutoChangeLog-pr-15137.yml b/html/changelogs/AutoChangeLog-pr-15137.yml deleted file mode 100644 index eef278a6ea..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15137.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - balance: "carded AIs can now be converted by conversion sigils (clockcult)" diff --git a/html/changelogs/AutoChangeLog-pr-15139.yml b/html/changelogs/AutoChangeLog-pr-15139.yml deleted file mode 100644 index 001897e223..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15139.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Catsurgeons should now spawn at more reasonable locations if possible." diff --git a/html/changelogs/AutoChangeLog-pr-15143.yml b/html/changelogs/AutoChangeLog-pr-15143.yml deleted file mode 100644 index d4e2141937..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15143.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - bugfix: "box perma has power" diff --git a/html/changelogs/AutoChangeLog-pr-15144.yml b/html/changelogs/AutoChangeLog-pr-15144.yml deleted file mode 100644 index 860f1a60cc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15144.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - bugfix: "bone satchel onmob sprites" diff --git a/html/changelogs/AutoChangeLog-pr-15147.yml b/html/changelogs/AutoChangeLog-pr-15147.yml deleted file mode 100644 index 09f98404fd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15147.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - config: "monstermos config added, disabled" diff --git a/html/changelogs/AutoChangeLog-pr-15154.yml b/html/changelogs/AutoChangeLog-pr-15154.yml deleted file mode 100644 index 756cc2bfb7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15154.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "qweq12yt" -delete-after: True -changes: - - bugfix: "Fixed space heaters not being able to be interacted/turned on in non powered areas" diff --git a/html/changelogs/AutoChangeLog-pr-15156.yml b/html/changelogs/AutoChangeLog-pr-15156.yml deleted file mode 100644 index 4d74820ca3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15156.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - bugfix: "missing madness mask sprites" diff --git a/html/changelogs/AutoChangeLog-pr-15157.yml b/html/changelogs/AutoChangeLog-pr-15157.yml deleted file mode 100644 index b3f0b8eaba..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15157.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "There is now a way to acquire nanite storage protocols (bepis, like the other protocols), as opposed to them existing with no way to acquire them." diff --git a/html/changelogs/AutoChangeLog-pr-15160.yml b/html/changelogs/AutoChangeLog-pr-15160.yml deleted file mode 100644 index da0d68f52f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15160.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "removes passkey from access circuits as its not used anymore" diff --git a/html/changelogs/AutoChangeLog-pr-15162.yml b/html/changelogs/AutoChangeLog-pr-15162.yml deleted file mode 100644 index 926f0898d1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15162.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - bugfix: "prisoners cannot latejoin anymore" diff --git a/html/changelogs/AutoChangeLog-pr-15163.yml b/html/changelogs/AutoChangeLog-pr-15163.yml deleted file mode 100644 index 3fe5ba69ee..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15163.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "buffyuwu" -delete-after: True -changes: - - rscadd: "Adds 4 redesigned jackets and 2 redesigned shirts to loadout" diff --git a/html/changelogs/AutoChangeLog-pr-15167.yml b/html/changelogs/AutoChangeLog-pr-15167.yml deleted file mode 100644 index 1c13dfc56f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15167.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - balance: "Slime regenerative extracts now require five seconds of wait before they are used. They add 25 disgust when used." diff --git a/html/changelogs/AutoChangeLog-pr-15168.yml b/html/changelogs/AutoChangeLog-pr-15168.yml deleted file mode 100644 index 4f040b4580..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15168.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "dapnee" -delete-after: True -changes: - - bugfix: "attaches an air vent that was just there on the AI sat, changes some areas to what they'd logically be" diff --git a/html/changelogs/AutoChangeLog-pr-15169.yml b/html/changelogs/AutoChangeLog-pr-15169.yml deleted file mode 100644 index f3af23ac39..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15169.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "a new mild trauma, **[REDACTED]**" diff --git a/html/changelogs/AutoChangeLog-pr-15171.yml b/html/changelogs/AutoChangeLog-pr-15171.yml deleted file mode 100644 index 958d61e87c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15171.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Plastic golems are back to ventcrawler_nude instead of ventcrawler_always" diff --git a/html/changelogs/AutoChangeLog-pr-15174.yml b/html/changelogs/AutoChangeLog-pr-15174.yml deleted file mode 100644 index 79b3b9400f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15174.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "buffyuwu" -delete-after: True -changes: - - bugfix: "Holoparasites no long rename and recolor on relog" diff --git a/html/changelogs/AutoChangeLog-pr-15176.yml b/html/changelogs/AutoChangeLog-pr-15176.yml deleted file mode 100644 index 3335997a85..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15176.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "buffyuwu" -delete-after: True -changes: - - bugfix: "fixed medihound sleeper ui display" diff --git a/html/changelogs/AutoChangeLog-pr-15178.yml b/html/changelogs/AutoChangeLog-pr-15178.yml deleted file mode 100644 index 3f4debbc45..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15178.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - imageadd: "all medipens get inhands" diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 28f28edaca..38f1d8e0af 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index 48759bf81c..c3502badc9 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/inhands/weapons/hammers_lefthand.dmi b/icons/mob/inhands/weapons/hammers_lefthand.dmi index 023dfeed89..988d64fde3 100644 Binary files a/icons/mob/inhands/weapons/hammers_lefthand.dmi and b/icons/mob/inhands/weapons/hammers_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/hammers_righthand.dmi b/icons/mob/inhands/weapons/hammers_righthand.dmi index f87d8c9b46..1e0e7c91bf 100644 Binary files a/icons/mob/inhands/weapons/hammers_righthand.dmi and b/icons/mob/inhands/weapons/hammers_righthand.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index ab6cea5a3b..8e60dc7066 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index b84b195d14..f70f110078 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 58ba5fadd8..0f1ec3712d 100755 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 92d94a41e8..066bcf14c7 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -27,22 +27,22 @@ /datum/gear/suit/jacketflannelblack // all of these are reskins of bomber jackets but with the vibe to make you look like a true lumberjack name = "Black flannel jacket" - path = /obj/item/clothing/suit/jacket/flannel + path = /obj/item/clothing/suit/toggle/jacket/flannel subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS /datum/gear/suit/jacketflannelred name = "Red flannel jacket" - path = /obj/item/clothing/suit/jacket/flannel/red + path = /obj/item/clothing/suit/toggle/jacket/flannel/red subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS /datum/gear/suit/jacketflannelaqua name = "Aqua flannel jacket" - path = /obj/item/clothing/suit/jacket/flannel/aqua + path = /obj/item/clothing/suit/toggle/jacket/flannel/aqua subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS /datum/gear/suit/jacketflannelbrown name = "Brown flannel jacket" - path = /obj/item/clothing/suit/jacket/flannel/brown + path = /obj/item/clothing/suit/toggle/jacket/flannel/brown subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS /datum/gear/suit/jacketleather @@ -97,6 +97,12 @@ name = "Brass winter coat" path = /obj/item/clothing/suit/hooded/wintercoat/ratvar/fake +/datum/gear/suit/whitehoodie + name = "Soft hoodie" + path = /obj/item/clothing/suit/toggle/jacket/whitehoodie + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION + subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS + /datum/gear/suit/jacketbluehoodie name = "Blue hoodie" path = /obj/item/clothing/suit/jacket/bluehoodie @@ -132,6 +138,25 @@ loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION subcategory = LOADOUT_SUBCATEGORY_SUIT_GENERAL +/datum/gear/suit/gentlecoat + name = "Grey coat" + path = /obj/item/clothing/suit/jacket/gentlecoat + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION + subcategory = LOADOUT_SUBCATEGORY_SUIT_COATS + +/datum/gear/suit/greenjacket + name = "Green outdoorsman jacket" + path = /obj/item/clothing/suit/toggle/jacket/greenjacket + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION + subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS + +/datum/gear/suit/fancytrench + name = "Grey trenchcoat" + path = /obj/item/clothing/suit/toggle/jacket/fancytrench + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION + subcategory = LOADOUT_SUBCATEGORY_SUIT_COATS + + /datum/gear/suit/coat/polycoat name = "Polychromic winter coat" path = /obj/item/clothing/suit/hooded/wintercoat/polychromic diff --git a/sound/ambience/ambimaint10.ogg b/sound/ambience/ambimaint10.ogg new file mode 100644 index 0000000000..769f95f93d Binary files /dev/null and b/sound/ambience/ambimaint10.ogg differ diff --git a/sound/vehicles/carcannon1.ogg b/sound/vehicles/carcannon1.ogg new file mode 100644 index 0000000000..751fa6f754 Binary files /dev/null and b/sound/vehicles/carcannon1.ogg differ diff --git a/sound/vehicles/carcannon2.ogg b/sound/vehicles/carcannon2.ogg new file mode 100644 index 0000000000..7bc86d7cbc Binary files /dev/null and b/sound/vehicles/carcannon2.ogg differ diff --git a/sound/vehicles/carcannon3.ogg b/sound/vehicles/carcannon3.ogg new file mode 100644 index 0000000000..80407e553f Binary files /dev/null and b/sound/vehicles/carcannon3.ogg differ diff --git a/sound/vehicles/clowncar_cannonmode1.ogg b/sound/vehicles/clowncar_cannonmode1.ogg new file mode 100644 index 0000000000..aa21c8f990 Binary files /dev/null and b/sound/vehicles/clowncar_cannonmode1.ogg differ diff --git a/sound/vehicles/clowncar_cannonmode2.ogg b/sound/vehicles/clowncar_cannonmode2.ogg new file mode 100644 index 0000000000..931e146422 Binary files /dev/null and b/sound/vehicles/clowncar_cannonmode2.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 204b69a11b..86814261c5 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -458,6 +458,8 @@ #include "code\datums\achievements\_awards.dm" #include "code\datums\achievements\boss_achievements.dm" #include "code\datums\achievements\boss_scores.dm" +#include "code\datums\achievements\job_achievements.dm" +#include "code\datums\achievements\job_scores.dm" #include "code\datums\achievements\mafia_achievements.dm" #include "code\datums\achievements\misc_achievements.dm" #include "code\datums\achievements\misc_scores.dm" @@ -1759,8 +1761,8 @@ #include "code\modules\antagonists\slaughter\slaughter.dm" #include "code\modules\antagonists\slaughter\slaughter_antag.dm" #include "code\modules\antagonists\slaughter\slaughterevent.dm" -#include "code\modules\antagonists\space_ninja\space_ninja.dm" #include "code\modules\antagonists\space_dragon\space_dragon.dm" +#include "code\modules\antagonists\space_ninja\space_ninja.dm" #include "code\modules\antagonists\survivalist\survivalist.dm" #include "code\modules\antagonists\swarmer\swarmer.dm" #include "code\modules\antagonists\swarmer\swarmer_event.dm" @@ -2132,8 +2134,8 @@ #include "code\modules\events\radiation_storm.dm" #include "code\modules\events\sentience.dm" #include "code\modules\events\shuttle_loan.dm" -#include "code\modules\events\space_ninja.dm" #include "code\modules\events\space_dragon.dm" +#include "code\modules\events\space_ninja.dm" #include "code\modules\events\spacevine.dm" #include "code\modules\events\spider_infestation.dm" #include "code\modules\events\spontaneous_appendicitis.dm" diff --git a/tgui/packages/tgui/interfaces/Colormate.js b/tgui/packages/tgui/interfaces/Colormate.js new file mode 100644 index 0000000000..f376547102 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Colormate.js @@ -0,0 +1,286 @@ +import { useBackend } from '../backend'; +import { Button, Flex, Icon, NoticeBox, NumberInput, Section, Tabs } from '../components'; +import { Window } from '../layouts'; + +export const Colormate = (props, context) => { + const { act, data } = useBackend(context); + const { matrixactive, temp } = data; + const item = data.item || []; + return ( + + + {temp ? ( + {temp} + ) : (null)} + {Object.keys(item).length ? ( + <> + +
+
Item:
+ +
+
+
Preview:
+ +
+
+
+ + act('switch_modes', { + mode: "0", + })} > + Regular coloring + + act('switch_modes', { + mode: "1", + })} > + Matrixed coloring + + + {matrixactive ? ( + <> +
Coloring: {item.name}
+ + + ) : ( + <> +
Coloring: {item.name}
+ + + )} +
+ + ) : ( +
+
No item inserted.
+
+ )} +
+
+ ); +}; + +export const ColormateNoMatrix = (props, context) => { + const { act, data } = useBackend(context); + return ( +
+ + +
+ ); +}; + +export const ColormateMatrix = (props, context) => { + const { act, data } = useBackend(context); + const matrixcolors = data.matrixcolors || []; + return ( +
+ + +
+ ); +};