diff --git a/LICENSE-AGPLv3.txt b/LICENSE similarity index 100% rename from LICENSE-AGPLv3.txt rename to LICENSE diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 621ed9b00f..02d381f16c 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -109,9 +109,7 @@ /obj/item/stack/sheet/mineral/plastitanium{ amount = 30 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/structure/table/reinforced, /turf/open/floor/plasteel/podhatch{ dir = 9 @@ -195,12 +193,8 @@ }, /area/ruin/powered/syndicate_lava_base) "aB" = ( -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/structure/table/reinforced, /obj/item/wrench, /turf/open/floor/plasteel/podhatch{ @@ -1304,9 +1298,7 @@ /obj/item/stack/sheet/mineral/plastitanium{ amount = 30 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/structure/table/reinforced, /obj/machinery/light{ dir = 4 @@ -1338,9 +1330,7 @@ }, /area/ruin/powered/syndicate_lava_base) "dk" = ( -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/grenade/chem_grenade, /obj/item/grenade/chem_grenade, /obj/item/grenade/chem_grenade, diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm index 96f6d35326..6a859fccdc 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation.dmm @@ -55,8 +55,7 @@ /area/ruin/space/djstation) "an" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/smes/magical{ desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; @@ -66,16 +65,13 @@ /area/ruin/space/djstation) "ao" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, /area/ruin/space/djstation) "ap" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/power/apc{ dir = 0; @@ -86,8 +82,6 @@ /area/ruin/space/djstation) "aq" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/storage/box/lights/mixed, @@ -101,8 +95,6 @@ /area/ruin/space/djstation) "ar" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, @@ -311,9 +303,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/rack{ - dir = 4 - }, +/obj/structure/rack, /obj/item/clothing/under/soviet, /obj/item/clothing/head/ushanka, /turf/open/floor/plasteel/cafeteria, diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index cc960def1c..e65b6552eb 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -13,16 +13,13 @@ "ad" = ( /obj/machinery/power/tracker, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/airless, /area/solar/derelict_starboard) "ae" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/template_noop, @@ -35,8 +32,7 @@ /area/solar/derelict_starboard) "ag" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/airless{ icon_state = "damaged5" @@ -48,8 +44,7 @@ name = "Derelict Solar Array" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/airless, /area/solar/derelict_starboard) @@ -60,13 +55,9 @@ "aj" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/template_noop, @@ -74,8 +65,6 @@ "ak" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/template_noop, @@ -83,18 +72,12 @@ "al" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/template_noop, @@ -102,13 +85,9 @@ "am" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/template_noop, @@ -116,18 +95,12 @@ "an" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/template_noop, @@ -135,13 +108,9 @@ "ao" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/template_noop, @@ -162,8 +131,7 @@ "ar" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/template_noop, /area/solar/derelict_starboard) @@ -179,8 +147,6 @@ name = "External Engineering" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -188,8 +154,6 @@ "av" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -197,8 +161,6 @@ "aw" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -220,8 +182,6 @@ /area/ruin/space/derelict/solar_control) "aB" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, @@ -229,15 +189,13 @@ "aC" = ( /obj/machinery/power/smes, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/solar_control) "aD" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/solar_control{ id = "derelictsolar"; @@ -263,16 +221,12 @@ dir = 8 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/solar_control) "aH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -282,15 +236,12 @@ dir = 1 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/solar_control) "aJ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/light/small{ @@ -318,8 +269,6 @@ /area/ruin/space/derelict/solar_control) "aN" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -357,15 +306,12 @@ }, /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/solar_control) "aU" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel, @@ -390,20 +336,15 @@ "aZ" = ( /obj/machinery/computer/monitor, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/solar_control) "ba" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/light/small, @@ -411,8 +352,6 @@ /area/ruin/space/derelict/solar_control) "bb" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -448,8 +387,6 @@ req_access_txt = "10" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -473,8 +410,6 @@ "bm" = ( /obj/machinery/door/window, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -678,15 +613,12 @@ pixel_x = -24 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/bridge/ai_upload) "bX" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating/airless, @@ -712,8 +644,6 @@ /area/template_noop) "cc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, @@ -724,24 +654,18 @@ /area/ruin/space/derelict/bridge/ai_upload) "ce" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/closed/wall/r_wall, /area/ruin/space/derelict/bridge/ai_upload) "cf" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/closed/wall/r_wall, /area/ruin/space/derelict/bridge/ai_upload) "cg" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/closed/wall/r_wall, @@ -754,16 +678,12 @@ /area/template_noop) "cj" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/closed/wall/r_wall, /area/ruin/space/derelict/bridge/ai_upload) "ck" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, @@ -802,8 +722,6 @@ /area/ruin/space/derelict/gravity_generator) "cr" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/closed/wall, @@ -814,8 +732,6 @@ "ct" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -880,8 +796,6 @@ /area/ruin/space/derelict/bridge/access) "cF" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -904,45 +818,33 @@ /area/template_noop) "cJ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/closed/wall, /area/ruin/space/derelict/bridge/access) "cK" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/bridge/access) "cL" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/bridge/access) "cM" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/bridge/access) "cN" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel, @@ -1001,8 +903,6 @@ req_access_txt = "18" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -1017,8 +917,6 @@ "cX" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -1063,36 +961,28 @@ /area/ruin/unpowered/no_grav) "df" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/item/wallframe/apc, /turf/open/floor/plating/airless, /area/ruin/space/derelict/gravity_generator) "dg" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/ruin/space/derelict/gravity_generator) "dh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating/airless, /area/ruin/space/derelict/gravity_generator) "di" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/frame/machine, @@ -1114,21 +1004,15 @@ /area/ruin/space/derelict/bridge/access) "dm" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, /area/ruin/space/derelict/bridge/access) "dn" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -1136,8 +1020,6 @@ "do" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -1145,8 +1027,6 @@ "dp" = ( /obj/machinery/door/airlock/glass, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -1154,8 +1034,6 @@ "dq" = ( /obj/item/reagent_containers/food/drinks/beer, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -1173,8 +1051,6 @@ /area/ruin/space/derelict/gravity_generator) "dt" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, @@ -1209,8 +1085,6 @@ "dy" = ( /obj/structure/window/reinforced, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -1232,8 +1106,6 @@ req_access_txt = "10" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, @@ -1261,8 +1133,7 @@ "dH" = ( /obj/structure/frame/computer, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/bridge) @@ -1334,8 +1205,6 @@ /area/ruin/space/derelict/singularity_engine) "dS" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, @@ -1346,16 +1215,12 @@ req_access_txt = "10" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/gravity_generator) "dU" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -1376,8 +1241,6 @@ /area/ruin/space/derelict/singularity_engine) "dY" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -1472,8 +1335,6 @@ /area/ruin/space/derelict/singularity_engine) "ep" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/window/reinforced, @@ -1532,8 +1393,6 @@ /area/ruin/space/derelict/singularity_engine) "eA" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -1576,21 +1435,15 @@ /area/ruin/space/derelict/singularity_engine) "eH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/bridge/access) "eI" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -1600,32 +1453,24 @@ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/bridge/access) "eK" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/bridge) "eL" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/bridge) "eM" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel, @@ -1653,8 +1498,6 @@ /area/ruin/space/derelict/bridge) "eR" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -1935,8 +1778,6 @@ "fK" = ( /obj/machinery/door/window, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -1993,8 +1834,6 @@ /area/ruin/space/derelict/bridge/access) "fT" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless, @@ -2049,8 +1888,6 @@ /area/ruin/space/derelict/hallway/primary) "gb" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -2059,37 +1896,27 @@ /area/ruin/space/derelict/hallway/primary) "gc" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "gd" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/ruin/space/derelict/bridge/access) "ge" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/bridge/access) "gf" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/airless, @@ -2119,8 +1946,6 @@ /area/ruin/space/derelict/hallway/primary) "gl" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, @@ -2184,16 +2009,12 @@ /area/ruin/space/derelict/singularity_engine) "gx" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating/airless, /area/ruin/space/derelict/hallway/primary) "gy" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, @@ -2334,8 +2155,6 @@ /area/ruin/space/derelict/singularity_engine) "ha" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating/airless, @@ -2545,8 +2364,6 @@ /area/ruin/space/derelict/singularity_engine) "hO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, @@ -2795,8 +2612,6 @@ /area/ruin/unpowered/no_grav) "iF" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless{ @@ -2951,8 +2766,6 @@ /area/ruin/unpowered/no_grav) "jc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless, @@ -2967,16 +2780,12 @@ /area/ruin/space/derelict/medical/chapel) "jf" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "jg" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/window/reinforced{ @@ -2986,8 +2795,6 @@ /area/ruin/space/derelict/medical) "jh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless/white, @@ -3048,8 +2855,6 @@ /area/ruin/unpowered/no_grav) "jq" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless, @@ -3098,8 +2903,7 @@ pixel_x = 24 }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/medical/chapel) @@ -3181,8 +2985,6 @@ "jM" = ( /obj/machinery/door/window, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless, @@ -3190,8 +2992,6 @@ "jN" = ( /obj/machinery/door/window/southleft, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless/white, @@ -3202,21 +3002,15 @@ /area/ruin/space/derelict/medical) "jP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "jQ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/research{ @@ -3235,8 +3029,6 @@ /area/ruin/unpowered/no_grav) "jS" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, @@ -3270,8 +3062,6 @@ /area/ruin/space/derelict/hallway/primary) "jX" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless{ @@ -3295,16 +3085,12 @@ /area/ruin/space/derelict/hallway/primary) "kb" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/airless, /area/ruin/unpowered/no_grav) "kc" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, @@ -3324,16 +3110,12 @@ "kf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/ruin/unpowered/no_grav) "kg" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/window/fulltile, @@ -3341,8 +3123,6 @@ /area/ruin/unpowered/no_grav) "kh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/research{ @@ -3353,24 +3133,18 @@ /area/ruin/space/derelict/arrival) "ki" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/derelict/arrival) "kj" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/ruin/space/derelict/arrival) "kk" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel, @@ -3427,16 +3201,12 @@ /area/ruin/space/derelict/arrival) "kt" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/ruin/space/derelict/hallway/primary) "ku" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -3445,8 +3215,6 @@ /area/ruin/space/derelict/hallway/primary) "kv" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, @@ -3458,50 +3226,36 @@ icon_state = "right" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "kx" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "ky" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "kz" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "kA" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/airless, @@ -3520,8 +3274,6 @@ /area/ruin/space/derelict/hallway/primary) "kE" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/airless, @@ -3533,31 +3285,24 @@ icon_state = "right" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "kG" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/primary) "kH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/airless, @@ -3609,8 +3354,6 @@ req_access_txt = "1" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless, @@ -3807,8 +3550,6 @@ /area/ruin/unpowered/no_grav) "lB" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/window/reinforced, @@ -3892,8 +3633,6 @@ /area/ruin/space/derelict/atmospherics) "lQ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless, @@ -4106,8 +3845,6 @@ "mC" = ( /obj/item/wirecutters, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/airless, @@ -4141,8 +3878,6 @@ /area/ruin/unpowered/no_grav) "mI" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless, @@ -4215,8 +3950,7 @@ /area/ruin/space/derelict/hallway/secondary) "mX" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable, /obj/machinery/power/apc{ @@ -4252,23 +3986,18 @@ pixel_y = 24 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/atmospherics) "nd" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/secondary) "ne" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -4280,8 +4009,6 @@ dir = 1 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -4290,8 +4017,6 @@ /area/ruin/space/derelict/hallway/secondary) "ng" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -4300,8 +4025,6 @@ /area/ruin/space/derelict/hallway/secondary) "nh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -4310,8 +4033,6 @@ /area/ruin/space/derelict/hallway/secondary) "ni" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -4320,8 +4041,6 @@ /area/ruin/space/derelict/hallway/secondary) "nj" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -4330,8 +4049,6 @@ /area/ruin/space/derelict/hallway/secondary) "nk" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -4343,8 +4060,6 @@ dir = 1 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -4353,21 +4068,15 @@ /area/ruin/space/derelict/hallway/secondary) "nm" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/hallway/secondary) "nn" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/airless, @@ -4437,8 +4146,6 @@ /area/ruin/space/derelict/se_solar) "nC" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/engineering{ @@ -4460,8 +4167,6 @@ /area/ruin/space/derelict/hallway/secondary) "nF" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -4483,29 +4188,21 @@ /area/ruin/unpowered/no_grav) "nJ" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/closed/wall/r_wall, /area/ruin/space/derelict/se_solar) "nK" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/closed/wall/r_wall, /area/ruin/space/derelict/se_solar) "nL" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/door/airlock/engineering{ @@ -4529,8 +4226,6 @@ /area/ruin/space/derelict/se_solar) "nP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless, @@ -4564,8 +4259,7 @@ dir = 1 }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/item/drone_shell/dusty, /turf/open/floor/plasteel/airless, @@ -4583,8 +4277,7 @@ /area/ruin/space/derelict/se_solar) "nY" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable, /obj/machinery/power/solar_control{ @@ -4643,8 +4336,6 @@ icon_state = "right" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless, @@ -4674,8 +4365,6 @@ /area/ruin/space/derelict/se_solar) "ok" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/external, @@ -4688,16 +4377,14 @@ /area/solar/derelict_aft) "om" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/structure/lattice/catwalk, /turf/template_noop, /area/solar/derelict_aft) "on" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/solar{ id = "derelictsolar"; @@ -4707,8 +4394,6 @@ /area/solar/derelict_aft) "oo" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/lattice/catwalk, @@ -4716,8 +4401,7 @@ /area/solar/derelict_aft) "op" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/solar{ id = "derelictsolar"; @@ -4736,13 +4420,9 @@ "or" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/template_noop, @@ -4750,18 +4430,12 @@ "os" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/template_noop, @@ -4769,26 +4443,18 @@ "ot" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/template_noop, /area/solar/derelict_aft) "ou" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/lattice/catwalk, @@ -4797,18 +4463,12 @@ "ov" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/template_noop, @@ -4816,13 +4476,9 @@ "ow" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/template_noop, @@ -4847,21 +4503,15 @@ "oA" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/template_noop, /area/solar/derelict_aft) "oB" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/lattice/catwalk, @@ -4870,13 +4520,9 @@ "oC" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/template_noop, diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index 66c738fb77..70cfbe72ba 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -9,16 +9,13 @@ power = 1 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/abandonedzoo) "ac" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -30,12 +27,9 @@ power = 1 }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating/airless, @@ -47,13 +41,10 @@ power = 1 }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/abandonedzoo) @@ -64,7 +55,6 @@ power = 1 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating/airless, @@ -86,8 +76,6 @@ "ak" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -192,8 +180,6 @@ /area/ruin/space/has_grav/abandonedzoo) "aD" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/highsecurity{ @@ -211,30 +197,21 @@ power = 1 }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, /area/ruin/space/has_grav/abandonedzoo) "aF" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/closed/wall/r_wall, @@ -242,8 +219,6 @@ "aG" = ( /obj/structure/table/reinforced, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/gun/energy/floragun, @@ -253,8 +228,6 @@ /area/ruin/space/has_grav/abandonedzoo) "aH" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/darkgreen, @@ -263,8 +236,6 @@ /obj/structure/table/reinforced, /obj/machinery/computer/med_data/laptop, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -278,17 +249,12 @@ power = 1 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -306,8 +272,6 @@ /area/ruin/space/has_grav/abandonedzoo) "aM" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/closed/wall/r_wall, @@ -358,8 +322,7 @@ pixel_x = -24 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/structure/rack, /obj/item/melee/baton/cattleprod, @@ -370,13 +333,9 @@ /area/ruin/space/has_grav/abandonedzoo) "aT" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/rack, @@ -463,8 +422,6 @@ /area/ruin/space/has_grav/abandonedzoo) "bc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/darkgreen, @@ -472,8 +429,6 @@ "bd" = ( /obj/machinery/power/terminal, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/darkgreen, @@ -491,8 +446,6 @@ }, /obj/structure/cable, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -568,19 +521,13 @@ power = 1 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -606,8 +553,6 @@ /obj/structure/table/reinforced, /obj/machinery/microwave, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -616,17 +561,12 @@ /area/ruin/space/has_grav/abandonedzoo) "bs" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/shieldwallgen, @@ -634,7 +574,6 @@ /area/ruin/space/has_grav/abandonedzoo) "bt" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/shieldwallgen, @@ -764,8 +703,6 @@ power = 1 }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable, @@ -780,8 +717,6 @@ /area/space) "bS" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable, diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index da3185effc..504be30a14 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -59,8 +59,6 @@ /area/ruin/space/has_grav/derelictoutpost/cargobay) "an" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, @@ -73,7 +71,6 @@ pixel_x = 24 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel, @@ -107,8 +104,6 @@ /area/ruin/space/has_grav/derelictoutpost/dockedship) "au" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -301,8 +296,7 @@ "bb" = ( /obj/machinery/power/smes, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/powerstorage) @@ -310,13 +304,9 @@ /obj/structure/table, /obj/item/stock_parts/cell/hyper, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, @@ -324,7 +314,6 @@ "bd" = ( /obj/machinery/power/smes, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel, @@ -467,8 +456,6 @@ /area/ruin/space/has_grav/derelictoutpost/powerstorage) "bs" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -736,13 +723,9 @@ /area/ruin/space/has_grav/derelictoutpost/powerstorage) "bZ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, @@ -756,7 +739,6 @@ pixel_y = 2 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel, @@ -790,8 +772,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -837,8 +817,6 @@ /area/ruin/space/has_grav/derelictoutpost) "cj" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, @@ -851,7 +829,6 @@ pixel_y = -24 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel, @@ -892,8 +869,6 @@ /area/ruin/space/has_grav/derelictoutpost/powerstorage) "cp" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, @@ -901,8 +876,6 @@ "cq" = ( /obj/structure/barricade/wooden, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -914,24 +887,18 @@ }, /obj/structure/barricade/wooden, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/powerstorage) "cs" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/cargobay) "ct" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel, @@ -963,13 +930,9 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, @@ -981,8 +944,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -994,8 +955,6 @@ name = "checkpoint security doors" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -1003,8 +962,6 @@ /area/ruin/space/has_grav/derelictoutpost) "cz" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -1016,16 +973,12 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost) "cB" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -1104,16 +1057,12 @@ opened = 1 }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/cargobay) "cI" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/janitorialcart, @@ -1126,8 +1075,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/mop, @@ -1145,8 +1092,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -1163,8 +1108,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -1177,8 +1120,6 @@ }, /obj/structure/glowshroom/single, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -1190,13 +1131,9 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -1356,8 +1293,6 @@ }, /obj/machinery/light, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, @@ -1374,8 +1309,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -1397,8 +1330,6 @@ name = "pried-open airlock" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -1418,8 +1349,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -1515,8 +1444,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -1639,8 +1566,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -1725,8 +1650,6 @@ name = "gelatinous floor" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -1777,8 +1700,6 @@ dir = 9 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -1947,8 +1868,6 @@ name = "dried blood trail" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -2012,9 +1931,7 @@ pixel_x = 24 }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/cargostorage) @@ -2072,8 +1989,6 @@ /area/ruin/space/has_grav/derelictoutpost/cargostorage) "eu" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -2120,8 +2035,6 @@ dir = 5 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -2186,8 +2099,6 @@ dir = 10 }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, @@ -2204,8 +2115,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -2217,8 +2126,6 @@ dir = 6 }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, diff --git a/_maps/RandomRuins/SpaceRuins/bus.dmm b/_maps/RandomRuins/SpaceRuins/bus.dmm index 701e8247e2..9d25a8024e 100644 --- a/_maps/RandomRuins/SpaceRuins/bus.dmm +++ b/_maps/RandomRuins/SpaceRuins/bus.dmm @@ -21,9 +21,7 @@ /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "ag" = ( -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/stock_parts/manipulator/femto, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) @@ -333,9 +331,7 @@ }, /area/ruin/unpowered/no_grav) "bb" = ( -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index 4f118ee7fe..e1ef887172 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -110,8 +110,6 @@ /area/awaymission/BMPship/Midship) "ay" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating/airless, @@ -119,8 +117,6 @@ "az" = ( /obj/structure/table/optable, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, @@ -128,7 +124,6 @@ "aA" = ( /obj/machinery/computer/operating, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating/airless, @@ -202,8 +197,6 @@ /area/awaymission/BMPship/Midship) "aL" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, @@ -296,8 +289,6 @@ /area/awaymission/BMPship/Midship) "bc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/item/clothing/glasses/regular/hipster, @@ -305,8 +296,6 @@ /area/awaymission/BMPship/Midship) "bd" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, @@ -314,16 +303,12 @@ "be" = ( /obj/machinery/door/unpowered/shuttle, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Midship) "bf" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -333,8 +318,6 @@ /area/awaymission/BMPship/Aft) "bg" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -387,8 +370,6 @@ /area/awaymission/BMPship/Fore) "br" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -461,16 +442,12 @@ /area/awaymission/BMPship/Midship) "bD" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, /area/awaymission/BMPship/Aft) "bE" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/hand_labeler, @@ -478,16 +455,12 @@ /area/awaymission/BMPship/Aft) "bF" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/BMPship/Aft) "bG" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/storage/box, @@ -583,8 +556,6 @@ /area/awaymission/BMPship/Aft) "bT" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -603,8 +574,7 @@ /area/awaymission/BMPship/Fore) "bW" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc{ dir = 1; @@ -718,8 +688,6 @@ /area/awaymission/BMPship/Midship) "cn" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/poddoor/shutters{ @@ -729,8 +697,6 @@ /area/awaymission/BMPship/Aft) "co" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -792,8 +758,6 @@ /area/awaymission/BMPship/Aft) "cD" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -809,16 +773,12 @@ /area/awaymission/BMPship/Fore) "cH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/carpet, /area/awaymission/BMPship/Fore) "cI" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/carpet, @@ -838,9 +798,7 @@ "cM" = ( /obj/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/barber, /area/awaymission/BMPship/Midship) @@ -861,9 +819,7 @@ /area/awaymission/BMPship/Midship) "cQ" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/showroomfloor, /area/awaymission/BMPship/Aft) @@ -895,9 +851,7 @@ /area/awaymission/BMPship/Aft) "cW" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc{ dir = 1; @@ -933,8 +887,6 @@ /area/awaymission/BMPship/Fore) "db" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -961,37 +913,27 @@ /area/awaymission/BMPship/Midship) "dg" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) "dh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) "di" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) "dj" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/showroomfloor, @@ -1001,55 +943,39 @@ /area/awaymission/BMPship/Aft) "dl" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) "dm" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/BMPship/Aft) "dn" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, /area/awaymission/BMPship/Aft) "do" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, /area/awaymission/BMPship/Aft) "dp" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/light/small{ @@ -1093,8 +1019,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -1107,24 +1031,18 @@ /area/awaymission/BMPship/Midship) "dx" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) "dy" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) "dz" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/bar, @@ -1155,16 +1073,12 @@ /area/awaymission/BMPship/Aft) "dE" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) "dF" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -1184,13 +1098,9 @@ /area/awaymission/BMPship/Fore) "dI" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/carpet, @@ -1198,16 +1108,12 @@ "dJ" = ( /obj/machinery/door/airlock/silver, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/BMPship/Fore) "dK" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/bar, @@ -1215,28 +1121,22 @@ "dL" = ( /obj/machinery/shieldwallgen, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating, /area/awaymission/BMPship/Midship) "dM" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) "dN" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc{ dir = 1; @@ -1286,8 +1186,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/bar, @@ -1333,8 +1231,6 @@ /area/awaymission/BMPship/Aft) "dZ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/hydrofloor, @@ -1345,20 +1241,17 @@ name = "power storage unit" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/BMPship/Aft) "eb" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/power/terminal{ dir = 8 @@ -1367,13 +1260,9 @@ /area/awaymission/BMPship/Aft) "ec" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -1450,8 +1339,6 @@ /area/awaymission/BMPship/Aft) "ep" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -1491,8 +1378,6 @@ /area/awaymission/BMPship/Aft) "eu" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -1502,24 +1387,18 @@ /area/awaymission/BMPship/Aft) "ev" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/carpet, /area/awaymission/BMPship/Fore) "ew" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/BMPship/Fore) "ex" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/carpet, @@ -1531,39 +1410,27 @@ /area/awaymission/BMPship/Midship) "ez" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) "eA" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) "eB" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/bar, @@ -1634,34 +1501,24 @@ /area/awaymission/BMPship/Midship) "eM" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/bar, /area/awaymission/BMPship/Midship) "eN" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/showroomfloor, /area/awaymission/BMPship/Aft) "eO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/showroomfloor, @@ -1684,8 +1541,6 @@ /area/awaymission/BMPship/Aft) "eR" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/line{ @@ -1739,8 +1594,6 @@ /area/awaymission/BMPship/Aft) "fa" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/item/stock_parts/cell/high, @@ -1756,8 +1609,6 @@ /area/awaymission/BMPship/Fore) "fd" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/unpowered/shuttle, @@ -1870,8 +1721,6 @@ /area/awaymission/BMPship/Fore) "fw" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating/airless, @@ -1881,16 +1730,12 @@ icon_state = "small" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Fore) "fy" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless{ @@ -1899,8 +1744,6 @@ /area/awaymission/BMPship/Fore) "fz" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating/airless{ @@ -1909,8 +1752,6 @@ /area/awaymission/BMPship/Fore) "fA" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/item/kitchen/knife, @@ -1924,24 +1765,18 @@ /area/awaymission/BMPship/Midship) "fC" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/showroomfloor, /area/awaymission/BMPship/Aft) "fD" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/showroomfloor, /area/awaymission/BMPship/Aft) "fE" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/showroomfloor, @@ -1986,16 +1821,12 @@ /area/awaymission/BMPship/Fore) "fM" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Fore) "fN" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/bar, @@ -2015,8 +1846,6 @@ /area/awaymission/BMPship/Aft) "fR" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -2065,8 +1894,6 @@ locked = 1 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -2074,8 +1901,6 @@ "ga" = ( /obj/machinery/door/unpowered/shuttle, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -2091,8 +1916,6 @@ /area/awaymission/BMPship) "gd" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/silver, @@ -2216,41 +2039,30 @@ "gA" = ( /obj/effect/decal/remains/human, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) "gB" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) "gC" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) "gD" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/item/wallframe/apc, @@ -2309,8 +2121,6 @@ /obj/item/bedsheet, /obj/item/storage/wallet/random, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -2340,15 +2150,12 @@ /area/awaymission/BMPship/Midship) "gU" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Midship) "gV" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, @@ -2356,24 +2163,18 @@ "gW" = ( /obj/machinery/door/unpowered/shuttle, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/closed/wall/mineral/titanium/interior, /area/awaymission/BMPship/Midship) "gX" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Aft) "gY" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index cfc78c0dbf..06b5407fbc 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -200,8 +200,6 @@ /area/ruin/space/has_grav/deepstorage/crusher) "aC" = ( /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating{ @@ -210,8 +208,6 @@ /area/ruin/space/has_grav/deepstorage/crusher) "aD" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating{ @@ -220,7 +216,6 @@ /area/ruin/space/has_grav/deepstorage/crusher) "aE" = ( /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -299,55 +294,35 @@ /area/ruin/space/has_grav/deepstorage/storage) "aK" = ( /obj/structure/closet/cardboard, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/storage) "aL" = ( /obj/structure/closet/cardboard, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/stack/sheet/plasteel{ amount = 10 }, @@ -389,8 +364,6 @@ req_access_txt = "200" }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -566,8 +539,6 @@ /area/ruin/space/has_grav/deepstorage/kitchen) "be" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -752,8 +723,6 @@ /area/ruin/space/has_grav/deepstorage/kitchen) "by" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light{ @@ -838,8 +807,6 @@ "bJ" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/cafeteria{ @@ -851,8 +818,6 @@ dir = 6 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/cafeteria{ @@ -864,8 +829,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/cafeteria{ @@ -877,8 +840,6 @@ dir = 9 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/cafeteria{ @@ -887,7 +848,6 @@ /area/ruin/space/has_grav/deepstorage/kitchen) "bN" = ( /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -908,8 +868,6 @@ /area/ruin/space/has_grav/deepstorage/kitchen) "bP" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/firealarm{ @@ -1001,8 +959,6 @@ "bY" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -1022,13 +978,9 @@ /area/ruin/space/has_grav/deepstorage/kitchen) "ca" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, @@ -1039,8 +991,6 @@ "cb" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -1049,8 +999,6 @@ /area/ruin/space/has_grav/deepstorage) "cc" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -1062,8 +1010,6 @@ "cd" = ( /obj/structure/table, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/hydrofloor{ @@ -1072,8 +1018,6 @@ /area/ruin/space/has_grav/deepstorage/hydroponics) "ce" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/hydrofloor{ @@ -1082,8 +1026,6 @@ /area/ruin/space/has_grav/deepstorage/hydroponics) "cf" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, @@ -1093,7 +1035,6 @@ /area/ruin/space/has_grav/deepstorage/hydroponics) "cg" = ( /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc/highcap/five_k{ @@ -1179,8 +1120,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/bar{ @@ -1231,8 +1170,6 @@ /area/ruin/space/has_grav/deepstorage) "ct" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -1333,8 +1270,6 @@ dir = 5 }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/floorgrime{ @@ -1350,8 +1285,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -1364,8 +1297,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -1410,8 +1341,6 @@ "cK" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/bar{ @@ -1455,8 +1384,6 @@ "cP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -1477,8 +1404,6 @@ "cR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/computer/arcade, @@ -1513,8 +1438,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/bar{ @@ -1555,7 +1478,6 @@ /area/ruin/space/has_grav/deepstorage) "da" = ( /obj/structure/cable/yellow{ - d2 = 2; icon_state = "0-2" }, /obj/machinery/door/firedoor, @@ -1625,9 +1547,7 @@ "dh" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 + icon_state = "1-4" }, /obj/machinery/computer/arcade, /turf/open/floor/plasteel/floorgrime{ @@ -1639,8 +1559,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/chair/stool, @@ -1654,13 +1572,9 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/floorgrime{ @@ -1672,8 +1586,6 @@ dir = 10 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -1682,13 +1594,9 @@ /area/ruin/space/has_grav/deepstorage) "dl" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/floorgrime{ @@ -1697,8 +1605,6 @@ /area/ruin/space/has_grav/deepstorage) "dm" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -1708,13 +1614,9 @@ "dn" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -1749,13 +1651,9 @@ "dr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/floorgrime{ @@ -1764,12 +1662,9 @@ /area/ruin/space/has_grav/deepstorage) "ds" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/door/firedoor, @@ -1791,14 +1686,11 @@ /area/ruin/space/has_grav/deepstorage/armory) "dv" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/stack/cable_coil, /obj/item/stack/cable_coil, /obj/machinery/firealarm{ @@ -1880,8 +1772,6 @@ "dC" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light{ @@ -1904,8 +1794,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -1926,8 +1814,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -1969,8 +1855,6 @@ "dL" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -2033,8 +1917,6 @@ dir = 6 }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/floorgrime{ @@ -2046,8 +1928,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -2061,8 +1941,6 @@ "dT" = ( /obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -2095,9 +1973,7 @@ "dW" = ( /obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, /obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 + icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/floorgrime{ @@ -2109,8 +1985,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -2122,13 +1996,9 @@ dir = 1 }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -2141,8 +2011,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -2152,8 +2020,6 @@ "ea" = ( /obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -2165,8 +2031,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -2180,18 +2044,12 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/floorgrime{ @@ -2201,8 +2059,6 @@ "ed" = ( /obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -2218,8 +2074,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/black{ @@ -2231,8 +2085,6 @@ dir = 10 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/black{ @@ -2241,8 +2093,6 @@ /area/ruin/space/has_grav/deepstorage/armory) "eg" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/black{ @@ -2255,7 +2105,6 @@ pixel_y = 5 }, /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc/highcap/five_k{ @@ -2304,8 +2153,6 @@ "em" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -2352,8 +2199,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -2369,13 +2214,9 @@ "et" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/light{ @@ -2387,12 +2228,9 @@ /area/ruin/space/has_grav/deepstorage) "eu" = ( /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/door/firedoor, @@ -2479,8 +2317,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -2574,14 +2410,10 @@ }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 + icon_state = "1-4" }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2593,8 +2425,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/firealarm{ @@ -2609,7 +2439,6 @@ dir = 10 }, /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -2683,8 +2512,6 @@ "eQ" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light{ @@ -2714,12 +2541,9 @@ id = "bunkershutter" }, /obj/structure/cable/yellow{ - d2 = 4; icon_state = "0-4" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/door/firedoor, @@ -2733,8 +2557,6 @@ dir = 8 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -2743,8 +2565,6 @@ /area/ruin/space/has_grav/deepstorage/airlock) "eV" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -2779,8 +2599,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -2832,8 +2650,6 @@ "fe" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/extinguisher_cabinet{ @@ -2892,8 +2708,6 @@ "fl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -3006,12 +2820,9 @@ "fx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - d2 = 2; icon_state = "0-2" }, /obj/machinery/power/apc{ @@ -3246,8 +3057,6 @@ /area/ruin/space/has_grav/deepstorage) "fW" = ( /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -3259,8 +3068,6 @@ /area/ruin/space/has_grav/deepstorage/power) "fX" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -3278,8 +3085,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -3294,8 +3099,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -3374,14 +3177,10 @@ /area/ruin/space/has_grav/deepstorage/dorm) "gh" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 + icon_state = "1-4" }, /obj/machinery/light/small{ dir = 8 @@ -3398,7 +3197,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d2 = 4; icon_state = "0-4" }, /turf/open/floor/plating{ @@ -3408,8 +3206,6 @@ "gj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -3470,9 +3266,7 @@ /area/ruin/space/has_grav/deepstorage/power) "gq" = ( /obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 + icon_state = "1-4" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -3481,7 +3275,6 @@ "gr" = ( /obj/machinery/power/smes/engineering, /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /obj/structure/sign/electricshock{ @@ -3496,8 +3289,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -3507,13 +3298,9 @@ "gt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -3584,8 +3371,6 @@ dir = 8 }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -3663,8 +3448,6 @@ dir = 8 }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating{ @@ -3673,13 +3456,9 @@ /area/ruin/space/has_grav/deepstorage/power) "gK" = ( /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating{ @@ -3692,8 +3471,6 @@ req_access_txt = "200" }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating{ @@ -3703,8 +3480,6 @@ "gM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -3750,8 +3525,6 @@ "gR" = ( /obj/structure/grille, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating{ @@ -3761,13 +3534,9 @@ "gS" = ( /obj/structure/grille, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/door/firedoor, @@ -3823,8 +3592,6 @@ "gX" = ( /obj/machinery/power/rtg/advanced, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow, @@ -3924,8 +3691,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/corner{ @@ -3940,8 +3705,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/firealarm{ @@ -3962,8 +3725,6 @@ "hl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/firealarm{ @@ -4002,7 +3763,6 @@ "hp" = ( /obj/machinery/power/smes/engineering, /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating{ diff --git a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm index dab408a8b1..069f27eb3e 100644 --- a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm @@ -50,8 +50,7 @@ pixel_y = 26 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating/airless, /area/tcommsat/chamber) @@ -60,8 +59,6 @@ dir = 1 }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating/airless, @@ -107,8 +104,6 @@ /area/template_noop) "au" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index ecbbb20daa..3a0da1bf0c 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -15,8 +15,7 @@ "ae" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel/twenty, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ pixel_x = 3; pixel_y = 3 }, @@ -235,8 +234,7 @@ start_charge = 0 }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/comm) @@ -281,8 +279,6 @@ "aU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -436,7 +432,7 @@ /area/ruin/space/has_grav/ancientstation/hivebot) "bq" = ( /turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "br" = ( /turf/closed/wall/rust, /area/template_noop) @@ -475,8 +471,6 @@ "bx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance_hatch, @@ -561,8 +555,6 @@ /area/ruin/space/has_grav/ancientstation) "bP" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -574,8 +566,6 @@ "bQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/floorgrime, @@ -714,8 +704,6 @@ /area/ruin/space/has_grav/ancientstation/powered) "cl" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -819,8 +807,6 @@ icon_state = "plant-25" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -830,8 +816,6 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "cA" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -842,8 +826,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/science, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -851,8 +833,6 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "cC" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -861,8 +841,6 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "cD" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -870,8 +848,6 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "cE" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -912,7 +888,7 @@ dir = 4 }, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "cL" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -935,8 +911,6 @@ /area/ruin/space/has_grav/ancientstation) "cO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1002,8 +976,6 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "cY" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1085,11 +1057,11 @@ /turf/open/floor/plasteel/airless/white/side{ dir = 5 }, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "dj" = ( /obj/structure/sign/poster/official/nanomichi_ad, /turf/closed/wall/rust, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "dk" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -1102,8 +1074,6 @@ /area/ruin/space/has_grav/ancientstation/engi) "dm" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1192,8 +1162,6 @@ /area/ruin/space/has_grav/ancientstation/sec) "dw" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1252,7 +1220,7 @@ /turf/open/floor/plasteel/airless/white/side{ dir = 4 }, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "dE" = ( /obj/effect/spawner/structure/window/hollow/reinforced, /turf/open/floor/plating, @@ -1281,13 +1249,9 @@ "dK" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/template_noop, @@ -1295,7 +1259,6 @@ "dL" = ( /obj/machinery/power/solar, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating/airless{ @@ -1351,8 +1314,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/table, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc{ dir = 8; @@ -1388,8 +1350,6 @@ /area/ruin/space/has_grav/ancientstation/sec) "dW" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1456,7 +1416,7 @@ "eg" = ( /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "eh" = ( /turf/open/floor/plasteel/airless{ icon_state = "damaged2" @@ -1465,8 +1425,6 @@ "ei" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/template_noop, @@ -1552,8 +1510,6 @@ /area/ruin/space/has_grav/ancientstation/hydroponics) "et" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1587,8 +1543,6 @@ /area/ruin/space/has_grav/ancientstation/sec) "ey" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1624,11 +1578,8 @@ "eE" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty{ pixel_x = 3; pixel_y = 3 }, @@ -1644,17 +1595,16 @@ "eG" = ( /obj/item/circuitboard/machine/sleeper, /turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "eH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/airless/white/side{ dir = 4 }, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "eI" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/power/solar, /turf/open/floor/plating/airless{ @@ -1664,7 +1614,6 @@ /area/template_noop) "eJ" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating/airless{ @@ -1710,8 +1659,6 @@ /area/ruin/space/has_grav/ancientstation/engi) "eO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1753,8 +1700,6 @@ /area/ruin/space/has_grav/ancientstation/hydroponics) "eU" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1776,8 +1721,6 @@ "eW" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1806,7 +1749,7 @@ /obj/item/solar_assembly, /obj/item/electronics/tracker, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "fb" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end{ dir = 1 @@ -1825,8 +1768,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -1836,8 +1778,7 @@ charge = 0 }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, @@ -1852,8 +1793,6 @@ "fg" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1943,8 +1882,6 @@ /area/ruin/space/has_grav/ancientstation/sec) "ft" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1992,7 +1929,7 @@ "fA" = ( /obj/effect/spawner/structure/window/hollow/reinforced, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "fB" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end{ dir = 8 @@ -2012,8 +1949,6 @@ "fE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -2065,8 +2000,6 @@ /area/ruin/space/has_grav/ancientstation/sec) "fL" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -2102,8 +2035,7 @@ "fQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc{ dir = 1; @@ -2115,8 +2047,6 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "fR" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -2164,35 +2094,31 @@ dir = 6 }, /turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "fY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "fZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "ga" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "gb" = ( /obj/structure/lattice/catwalk, /obj/item/stack/cable_coil{ @@ -2206,16 +2132,12 @@ "gc" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/template_noop, @@ -2223,8 +2145,6 @@ "gd" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2235,19 +2155,12 @@ "ge" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2258,13 +2171,9 @@ "gf" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2281,8 +2190,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2293,8 +2200,6 @@ "gh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2305,14 +2210,10 @@ "gi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2323,13 +2224,9 @@ "gj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -2340,15 +2237,10 @@ /area/ruin/space/has_grav/ancientstation/engi) "gk" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2368,19 +2260,13 @@ /area/ruin/space/has_grav/ancientstation/engi) "gm" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -2389,12 +2275,10 @@ "gn" = ( /obj/effect/spawner/structure/window/hollow/reinforced, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -2406,18 +2290,12 @@ /area/ruin/space/has_grav/ancientstation/powered) "go" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -2428,8 +2306,6 @@ /area/ruin/space/has_grav/ancientstation) "gp" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -2438,8 +2314,6 @@ /area/ruin/space/has_grav/ancientstation) "gq" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch, @@ -2451,8 +2325,6 @@ /area/ruin/space/has_grav/ancientstation) "gr" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -2470,12 +2342,9 @@ start_charge = 0 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2485,8 +2354,6 @@ /area/ruin/space/has_grav/ancientstation/hydroponics) "gt" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -2498,8 +2365,6 @@ /area/ruin/space/has_grav/ancientstation) "gu" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -2514,20 +2379,15 @@ start_charge = 0 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/kitchen) "gw" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -2540,8 +2400,6 @@ /area/ruin/space/has_grav/ancientstation) "gx" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch, @@ -2550,8 +2408,6 @@ /area/ruin/space/has_grav/ancientstation) "gy" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -2562,8 +2418,6 @@ /area/ruin/space/has_grav/ancientstation) "gz" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2575,12 +2429,10 @@ "gA" = ( /obj/effect/spawner/structure/window/hollow/reinforced, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -2592,14 +2444,10 @@ /area/ruin/space/has_grav/ancientstation/sec) "gB" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2610,8 +2458,6 @@ "gC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2622,8 +2468,6 @@ "gD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -2636,12 +2480,10 @@ "gE" = ( /obj/effect/spawner/structure/window/hollow/reinforced, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 4 @@ -2650,8 +2492,6 @@ /area/ruin/space/has_grav/ancientstation/sec) "gF" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2662,8 +2502,6 @@ "gG" = ( /obj/effect/spawner/structure/window/hollow/reinforced, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2674,8 +2512,6 @@ "gH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2686,13 +2522,9 @@ "gI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -2703,8 +2535,6 @@ "gJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch, @@ -2715,18 +2545,12 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "gK" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -2744,7 +2568,6 @@ start_charge = 0 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -2754,14 +2577,11 @@ /area/ruin/space/has_grav/ancientstation/rnd) "gM" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ pixel_x = 3; pixel_y = 3 }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/rnd) @@ -2819,11 +2639,11 @@ "gT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "gU" = ( /obj/item/stack/cable_coil, /turf/open/floor/plasteel/airless/floorgrime, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "gV" = ( /obj/effect/spawner/structure/window/hollow/reinforced/directional{ dir = 5 @@ -2833,16 +2653,12 @@ "gW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/engi) "gX" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -2917,7 +2733,7 @@ "hj" = ( /obj/item/solar_assembly, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "hk" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end, /turf/open/floor/plating, @@ -2925,8 +2741,6 @@ "hl" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/corner{ @@ -2952,8 +2766,6 @@ /area/ruin/space/has_grav/ancientstation/engi) "ho" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -2966,8 +2778,6 @@ "hq" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -3052,8 +2862,6 @@ "hC" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -3138,16 +2946,13 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "hL" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "hM" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating/airless{ tag = "icon-floor"; @@ -3157,8 +2962,6 @@ "hN" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/template_noop, @@ -3166,8 +2969,6 @@ "hO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -3189,8 +2990,6 @@ /area/ruin/space/has_grav/ancientstation/engi) "hQ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -3284,16 +3083,12 @@ "ib" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /turf/template_noop, /area/template_noop) "ic" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/airless, @@ -3330,8 +3125,6 @@ /area/ruin/space/has_grav/ancientstation/engi) "ig" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -3341,8 +3134,6 @@ /area/ruin/space/has_grav/ancientstation/engi) "ih" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -3557,8 +3348,6 @@ /area/ruin/space/has_grav/ancientstation/sec) "iC" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -3729,7 +3518,7 @@ "iT" = ( /obj/structure/closet/crate, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/atmo) "iU" = ( /obj/machinery/power/terminal{ dir = 4 @@ -3744,9 +3533,7 @@ name = "backup power storage unit" }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -3821,12 +3608,10 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "jh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/atmo) "ji" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -3994,10 +3779,7 @@ /area/ruin/space/has_grav/ancientstation/engi) "jE" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, /obj/item/twohanded/required/kirbyplants{ @@ -4007,8 +3789,6 @@ /area/ruin/space/has_grav/ancientstation) "jF" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -4035,18 +3815,13 @@ icon_state = "plant-25" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "" + icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/deltacorridor) "jK" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -4056,8 +3831,6 @@ "jL" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -4065,8 +3838,6 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "jM" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, @@ -4083,8 +3854,6 @@ /area/ruin/space/has_grav/ancientstation/atmo) "jP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, @@ -4128,8 +3897,6 @@ req_access_txt = "200" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/white/side, @@ -4205,16 +3972,13 @@ start_charge = 0 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) "kh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/white, @@ -4264,7 +4028,7 @@ dir = 1 }, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/atmo) "kp" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -4367,7 +4131,7 @@ dir = 4 }, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/atmo) "kC" = ( /obj/effect/decal/cleanable/dirt, /obj/item/solar_assembly, @@ -4606,7 +4370,7 @@ "lf" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end, /turf/open/floor/plating/airless, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/atmo) "lg" = ( /obj/item/solar_assembly, /obj/item/solar_assembly, @@ -4695,7 +4459,7 @@ /turf/open/floor/plasteel/airless/white/side{ dir = 4 }, -/area/template_noop) +/area/ruin/space/has_grav/ancientstation/betanorth) "lw" = ( /obj/item/stock_parts/matter_bin, /turf/open/floor/plating/airless, @@ -4904,6 +4668,121 @@ icon_state = "floor" }, /area/template_noop) +"me" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mf" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mg" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mh" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mi" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mj" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mk" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"ml" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mm" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mn" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mo" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mp" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mq" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mr" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"ms" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mt" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mu" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mv" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mw" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mx" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"my" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mz" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mA" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mB" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mC" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mD" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mE" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mF" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mG" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/ancientstation/betanorth) +"mH" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/ancientstation/atmo) +"mI" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/ancientstation/atmo) +"mJ" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/ancientstation/atmo) +"mK" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/ancientstation/atmo) +"mL" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/ancientstation/atmo) +"mM" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/ancientstation/atmo) +"mN" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/ancientstation/atmo) +"mO" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/ancientstation/atmo) (1,1,1) = {" aa @@ -4918,15 +4797,15 @@ aa aa aa aa -bf -bf +mh +mk aA -bf -bf +ml +mm aa aA -bf -bf +mr +ms aa aa aa @@ -4936,9 +4815,9 @@ aa aa aa aa -bf +jO aA -bf +jO jO jO km @@ -4969,17 +4848,17 @@ aa aa aa aa -bf +me bq -br +bJ bH bH cK -bf +mn bq bq eG -bf +mv aA aA aA @@ -4989,8 +4868,8 @@ aA aA aA iT -bq -bq +km +km jP jY km @@ -4999,7 +4878,7 @@ jO kW km lk -br +mN aa aa aa @@ -5021,12 +4900,12 @@ aa aa aa aa -bg -br -br +mf +bJ +bJ bI bI -br +bJ di dD bq @@ -5040,18 +4919,18 @@ aa aa aa aa -br -bf -bq -br -br +mH +jO +km +mI +mJ kn kA kL kX le -br -br +mL +mO aa aa aa @@ -5073,19 +4952,19 @@ aa aa aa aA -bf -bf -br +mg +mi +bJ bI bI -br +bJ dj -dE +bK ef -dE -br -bg -bf +bK +bJ +mx +mA aa aA aa @@ -5094,15 +4973,15 @@ aa aa aa jh -bf +jO jQ -br +mK ko kB kB kB lf -br +mM aa aa aa @@ -5126,7 +5005,7 @@ aa aa aa aA -bf +mj bw bI bI @@ -5139,15 +5018,15 @@ bq bq fX gT -bf +mC aa aa aa aa aA -bq -bf -bf +km +jO +jO aa aa aa @@ -5179,7 +5058,7 @@ aa ac ac ac -br +bJ bI bI bI @@ -5191,16 +5070,16 @@ bq bq fY bq -bf +mD hL aA aA aA aA -bq -bq -bf -bf +km +km +jO +jO aa aA aa @@ -5231,20 +5110,20 @@ ac az bh ac -br +bJ bJ ce bJ -br -br -br -br -br +bJ +bJ +bJ +bJ +bJ fA fY fA -br -bg +bJ +mG aa aA aa @@ -5283,14 +5162,14 @@ aa ac az ac -br +bJ bI bI cL -br -bf +bJ +mo eg -bf +mt bq bq fY @@ -5335,19 +5214,19 @@ aa aA ac aa -br +bJ bI cf bI -br -bf +bJ +mp aA -bf +mu fa -bf +my fZ gU -bf +mE aA aA bf @@ -5387,19 +5266,19 @@ aa aa aa aa -br +bJ bK cg bK -br +bJ aA aA aa -bf -bf +mw +mz ga -bf -bf +mB +mF aa aA bf @@ -5443,8 +5322,8 @@ aa aa bd cM -br -bg +bJ +mq aa aa aa diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm index a4beb6859c..8b37e791a1 100644 --- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -4,8 +4,6 @@ /area/template_noop) "ab" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/lattice/catwalk, @@ -13,8 +11,6 @@ /area/template_noop) "ac" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/lattice/catwalk, @@ -22,8 +18,6 @@ /area/template_noop) "ad" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/lattice/catwalk, @@ -40,8 +34,6 @@ /area/template_noop) "af" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/lattice/catwalk, @@ -56,8 +48,6 @@ /area/ruin/space/has_grav/onehalf/dorms_med) "ai" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/lattice/catwalk, @@ -98,8 +88,6 @@ "aq" = ( /obj/machinery/door/airlock/external, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -189,8 +177,6 @@ /area/ruin/space/has_grav/onehalf/dorms_med) "aD" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -233,15 +219,12 @@ /area/ruin/space/has_grav/onehalf/dorms_med) "aL" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/onehalf/dorms_med) "aM" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/closet/crate/medical, @@ -302,8 +285,6 @@ /area/template_noop) "aT" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless{ @@ -318,8 +299,6 @@ "aV" = ( /obj/machinery/door/airlock/glass_medical, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/white, @@ -330,13 +309,9 @@ /area/ruin/space/has_grav/onehalf/dorms_med) "aX" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -346,7 +321,6 @@ /area/ruin/space/has_grav/onehalf/drone_bay) "aY" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -470,13 +444,9 @@ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/airless{ @@ -488,8 +458,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -501,8 +469,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, @@ -513,13 +479,9 @@ dir = 4 }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -531,13 +493,9 @@ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/airless, @@ -548,8 +506,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless, @@ -560,8 +516,6 @@ }, /obj/machinery/door/airlock/glass, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, @@ -571,8 +525,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -843,8 +795,7 @@ /area/ruin/space/has_grav/onehalf/bridge) "cf" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/power/apc{ dir = 1; @@ -855,8 +806,6 @@ /area/ruin/space/has_grav/onehalf/bridge) "cg" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/table/reinforced, @@ -939,13 +888,9 @@ /area/ruin/space/has_grav/onehalf/bridge) "cp" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/table/reinforced, @@ -955,16 +900,12 @@ "cq" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/door/poddoor/preopen{ @@ -1021,9 +962,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; @@ -1041,8 +980,6 @@ "cC" = ( /obj/structure/lattice, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/space, @@ -1129,8 +1066,6 @@ "cO" = ( /obj/structure/lattice, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/space, @@ -1169,8 +1104,7 @@ "cV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ @@ -1181,13 +1115,9 @@ /area/ruin/space/has_grav/onehalf/bridge) "cW" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/lattice/catwalk, @@ -1195,8 +1125,6 @@ /area/template_noop) "cX" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless{ @@ -1227,8 +1155,6 @@ "dc" = ( /obj/structure/grille/broken, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless{ @@ -1246,13 +1172,10 @@ "de" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; @@ -1263,11 +1186,9 @@ "df" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/door/poddoor/preopen{ @@ -1279,12 +1200,9 @@ "dg" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/door/poddoor/preopen{ @@ -1300,8 +1218,6 @@ /area/template_noop) "di" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/shard{ @@ -1312,13 +1228,9 @@ /area/template_noop) "dj" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/item/stack/rods, @@ -1327,13 +1239,9 @@ /area/template_noop) "dk" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/lattice/catwalk, diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index f577cbbf37..9dd1b448f6 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -13,7 +13,6 @@ "ad" = ( /obj/machinery/power/solar, /obj/structure/cable/yellow{ - d2 = 2; icon_state = "0-2" }, /turf/open/floor/plating/airless, @@ -21,46 +20,33 @@ "ae" = ( /obj/machinery/power/solar, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - d2 = 2; icon_state = "0-2" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) "af" = ( /obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) "ag" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) "ah" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating/airless, @@ -68,15 +54,12 @@ "ai" = ( /obj/machinery/power/tracker, /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) "aj" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, @@ -85,16 +68,12 @@ /obj/machinery/power/solar, /obj/structure/cable/yellow, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) "al" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating/airless, @@ -661,8 +640,7 @@ pixel_y = -24 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom{ @@ -670,8 +648,6 @@ }) "bO" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -724,8 +700,7 @@ pixel_y = -24 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom{ @@ -733,8 +708,6 @@ }) "bU" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -787,8 +760,7 @@ pixel_y = -24 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom{ @@ -796,8 +768,6 @@ }) "ca" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -850,8 +820,7 @@ pixel_y = -24 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom{ @@ -859,8 +828,6 @@ }) "cg" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -903,8 +870,6 @@ name = "Guest Room A3" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -924,8 +889,6 @@ name = "Guest Room A4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -945,8 +908,6 @@ name = "Guest Room A5" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -966,8 +927,6 @@ name = "Guest Room A6" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1014,8 +973,6 @@ /area/ruin/space/has_grav/hotel) "cy" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1099,8 +1056,6 @@ /area/ruin/space/has_grav/hotel) "cI" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1110,8 +1065,6 @@ /area/ruin/space/has_grav/hotel) "cJ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1125,8 +1078,6 @@ req_access_txt = "201" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1136,8 +1087,6 @@ /area/ruin/space/has_grav/hotel) "cL" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1147,18 +1096,12 @@ /area/ruin/space/has_grav/hotel) "cM" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -1166,8 +1109,6 @@ /area/ruin/space/has_grav/hotel) "cN" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1178,8 +1119,6 @@ /area/ruin/space/has_grav/hotel) "cO" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -1189,8 +1128,6 @@ /area/ruin/space/has_grav/hotel) "cP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1200,8 +1137,6 @@ /area/ruin/space/has_grav/hotel) "cQ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1213,8 +1148,6 @@ /area/ruin/space/has_grav/hotel) "cS" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1271,8 +1204,6 @@ name = "Guest Room A2" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1297,8 +1228,6 @@ name = "Guest Room A1" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1335,8 +1264,6 @@ name = "Hotel Staff Storage" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/firedoor, @@ -1381,8 +1308,7 @@ pixel_y = 25 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom{ @@ -1390,8 +1316,6 @@ }) "do" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1462,8 +1386,7 @@ pixel_y = 25 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom{ @@ -1471,8 +1394,6 @@ }) "dw" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1513,8 +1434,6 @@ /area/ruin/space/has_grav/hotel/workroom) "dB" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1643,8 +1562,6 @@ /area/ruin/space/has_grav/hotel/workroom) "dW" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1652,8 +1569,6 @@ /area/ruin/space/has_grav/hotel/workroom) "dX" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1663,8 +1578,6 @@ /area/ruin/space/has_grav/hotel/workroom) "dY" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1674,8 +1587,6 @@ /area/ruin/space/has_grav/hotel/workroom) "dZ" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1799,8 +1710,6 @@ /area/ruin/space/has_grav/hotel/workroom) "eq" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1914,13 +1823,9 @@ /area/ruin/space/has_grav/hotel) "eI" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1928,16 +1833,12 @@ /area/ruin/space/has_grav/hotel) "eJ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/ruin/space/has_grav/hotel) "eK" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -2043,8 +1944,6 @@ "fd" = ( /obj/effect/decal/cleanable/cobweb, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2054,8 +1953,6 @@ /area/ruin/space/has_grav/hotel) "fe" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2411,8 +2308,6 @@ "gj" = ( /obj/effect/decal/cleanable/oil, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -2707,8 +2602,6 @@ /area/ruin/space/has_grav/hotel) "hf" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -2872,8 +2765,7 @@ pixel_y = -24 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /mob/living/simple_animal/bot/medbot{ name = "Accidents Happen" @@ -2972,8 +2864,6 @@ /area/ruin/space/has_grav/hotel/dock) "hP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2983,13 +2873,9 @@ /area/ruin/space/has_grav/hotel) "hQ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -2999,8 +2885,6 @@ /area/ruin/space/has_grav/hotel) "hR" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -3011,8 +2895,6 @@ icon_state = "cobweb2" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3093,8 +2975,6 @@ req_access_txt = "200,201" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3135,8 +3015,6 @@ /area/ruin/space/has_grav/hotel) "ik" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3147,8 +3025,6 @@ "il" = ( /obj/machinery/door/airlock/glass, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -3159,8 +3035,6 @@ /area/ruin/space/has_grav/hotel/dock) "im" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3182,16 +3056,12 @@ /area/ruin/space/has_grav/hotel/dock) "ip" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) "iq" = ( /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating/airless, @@ -3208,13 +3078,9 @@ /area/ruin/space/has_grav/hotel/power) "it" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3224,8 +3090,6 @@ /area/ruin/space/has_grav/hotel/power) "iu" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/sign/fire{ @@ -3240,8 +3104,6 @@ /area/ruin/space/has_grav/hotel/power) "iv" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/airalarm{ @@ -3258,7 +3120,6 @@ pixel_y = 25 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -3307,8 +3168,6 @@ /area/ruin/space/has_grav/hotel) "iE" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -3318,8 +3177,6 @@ /area/ruin/space/has_grav/hotel) "iF" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -3341,8 +3198,6 @@ /area/ruin/space/has_grav/hotel/power) "iI" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3371,8 +3226,6 @@ /area/ruin/space/has_grav/hotel) "iN" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, @@ -3384,8 +3237,6 @@ /area/ruin/space/has_grav/hotel) "iP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/wood, @@ -3423,12 +3274,9 @@ pixel_y = -24 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3438,8 +3286,6 @@ /area/ruin/space/has_grav/hotel/security) "iV" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -3447,8 +3293,6 @@ /area/ruin/space/has_grav/hotel) "iW" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3459,13 +3303,9 @@ /area/ruin/space/has_grav/hotel) "iX" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -3475,8 +3315,6 @@ /area/ruin/space/has_grav/hotel) "iY" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/airalarm{ @@ -3495,12 +3333,9 @@ pixel_y = -24 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3510,8 +3345,6 @@ /area/ruin/space/has_grav/hotel/pool) "ja" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3521,8 +3354,6 @@ /area/ruin/space/has_grav/hotel) "jb" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -3532,8 +3363,6 @@ /area/ruin/space/has_grav/hotel) "jc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -3583,8 +3412,6 @@ /area/ruin/space/has_grav/hotel/power) "jj" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3706,8 +3533,6 @@ /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/yellow/side{ @@ -3716,8 +3541,6 @@ /area/ruin/space/has_grav/hotel/power) "jB" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -3859,8 +3682,6 @@ /area/ruin/space/has_grav/hotel/power) "kc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -3873,28 +3694,22 @@ "kd" = ( /obj/machinery/power/terminal, /obj/structure/cable/yellow{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/hotel/power) "ke" = ( /obj/machinery/power/terminal, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable/yellow{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/hotel/power) "kf" = ( /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/components/binary/valve{ @@ -3955,8 +3770,6 @@ "kq" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/yellow/side{ @@ -3966,12 +3779,9 @@ "kr" = ( /obj/machinery/power/smes/engineering, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/sign/electricshock{ @@ -3982,15 +3792,12 @@ "ks" = ( /obj/machinery/power/smes/engineering, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/yellow/side, /area/ruin/space/has_grav/hotel/power) "kt" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3999,20 +3806,15 @@ "ku" = ( /obj/machinery/power/solar_control, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable/yellow{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel/yellow/side, /area/ruin/space/has_grav/hotel/power) "kv" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/sign/vacuum{ @@ -4022,8 +3824,6 @@ /area/ruin/space/has_grav/hotel/power) "kw" = ( /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -4105,8 +3905,6 @@ "kJ" = ( /obj/machinery/door/airlock/glass_external, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -4218,8 +4016,6 @@ dir = 4 }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -4398,8 +4194,6 @@ /area/ruin/unpowered/no_grav) "lD" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -4409,8 +4203,6 @@ /area/ruin/unpowered/no_grav) "lE" = ( /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -4458,13 +4250,9 @@ /area/ruin/space/has_grav/hotel/pool) "lJ" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating/airless, @@ -4530,38 +4318,28 @@ "lV" = ( /obj/machinery/power/solar, /obj/structure/cable/yellow{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) "lW" = ( /obj/machinery/power/solar, /obj/structure/cable/yellow{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating/airless, /area/ruin/unpowered/no_grav) "lX" = ( /obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating/airless, @@ -4569,12 +4347,9 @@ "lY" = ( /obj/machinery/power/solar, /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating/airless, @@ -4582,7 +4357,6 @@ "lZ" = ( /obj/machinery/power/solar, /obj/structure/cable/yellow{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating/airless, @@ -4720,8 +4494,6 @@ /area/ruin/space/has_grav/hotel/custodial) "mw" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4735,8 +4507,6 @@ req_access_txt = "200,201" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4746,8 +4516,6 @@ /area/ruin/space/has_grav/hotel/custodial) "my" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -4847,8 +4615,6 @@ /area/ruin/unpowered/no_grav) "mP" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/black, @@ -4859,56 +4625,42 @@ req_access_txt = "200" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/black, /area/ruin/space/has_grav/hotel/workroom) "mR" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/carpet, /area/ruin/space/has_grav/hotel) "mS" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, /area/ruin/space/has_grav/hotel) "mT" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/carpet, /area/ruin/space/has_grav/hotel) "mU" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, /area/ruin/space/has_grav/hotel) "mV" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/carpet, diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 9227ab0fd9..4da94082d9 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -42,9 +42,7 @@ /area/awaymission/academy/headmaster) "aj" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc{ dir = 1; @@ -62,16 +60,12 @@ /area/awaymission/academy/headmaster) "al" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "am" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/light/small, @@ -79,24 +73,18 @@ /area/awaymission/academy/headmaster) "an" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "ao" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "ap" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -116,8 +104,6 @@ /area/awaymission/academy/headmaster) "at" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/wood{ @@ -127,21 +113,15 @@ /area/awaymission/academy/headmaster) "au" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "av" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/carpet, @@ -164,8 +144,6 @@ /area/awaymission/academy/headmaster) "az" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/item/stack/sheet/animalhide/monkey, @@ -173,7 +151,6 @@ /area/awaymission/academy/headmaster) "aA" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/light/small{ @@ -209,8 +186,6 @@ /area/space) "aH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light{ @@ -268,8 +243,6 @@ locked = 1 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -283,8 +256,6 @@ /area/awaymission/academy/headmaster) "aU" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/wood, @@ -314,8 +285,6 @@ "ba" = ( /obj/structure/table/wood, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/item/pen/red, @@ -354,8 +323,6 @@ "bh" = ( /obj/structure/table/wood, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/item/dice/d20, @@ -376,8 +343,6 @@ dir = 1 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -408,8 +373,6 @@ "bq" = ( /obj/machinery/door/airlock/gold, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -530,16 +493,12 @@ /area/awaymission/academy/headmaster) "bN" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/black, /area/awaymission/academy/headmaster) "bO" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -548,8 +507,6 @@ /area/awaymission/academy/headmaster) "bP" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/black, @@ -557,8 +514,6 @@ "bQ" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -567,12 +522,9 @@ /area/awaymission/academy/headmaster) "bR" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/effect/spawner/structure/window/reinforced, @@ -588,9 +540,7 @@ "bU" = ( /obj/machinery/autolathe, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) @@ -630,8 +580,6 @@ /area/awaymission/academy/headmaster) "ce" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -640,9 +588,7 @@ /area/awaymission/academy/headmaster) "cf" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -662,8 +608,6 @@ "ci" = ( /obj/structure/table, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime, @@ -683,8 +627,6 @@ /area/awaymission/academy/headmaster) "cm" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/black, @@ -705,8 +647,6 @@ "cq" = ( /obj/structure/table, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/item/pen/red, @@ -744,8 +684,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -757,8 +695,6 @@ "cz" = ( /obj/structure/table, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/item/stack/cable_coil/random, @@ -784,21 +720,15 @@ /area/awaymission/academy/headmaster) "cE" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "cF" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/plasma, @@ -806,8 +736,6 @@ /area/awaymission/academy/headmaster) "cG" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/black, @@ -838,8 +766,6 @@ /area/awaymission/academy/headmaster) "cM" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -904,32 +830,24 @@ /area/awaymission/academy/headmaster) "cX" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) "cY" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) "cZ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime, /area/awaymission/academy/classrooms) "da" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel, @@ -1002,9 +920,7 @@ "do" = ( /obj/machinery/mech_bay_recharge_port, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/academy/classrooms) @@ -1014,9 +930,7 @@ "dq" = ( /obj/machinery/computer/mech_bay_power_console, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/circuit/green, /area/awaymission/academy/classrooms) @@ -1061,8 +975,6 @@ /area/awaymission/academy/headmaster) "dz" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/reagent_dispensers/fueltank, @@ -1070,18 +982,12 @@ /area/awaymission/academy/classrooms) "dA" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/reagent_dispensers/fueltank, @@ -1089,13 +995,9 @@ /area/awaymission/academy/classrooms) "dB" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -1154,16 +1056,12 @@ /area/awaymission/academy/classrooms) "dN" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) "dO" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ @@ -1173,24 +1071,18 @@ "dP" = ( /obj/machinery/door/airlock/freezer, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/awaymission/academy/classrooms) "dQ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/awaymission/academy/classrooms) "dR" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/white, @@ -1206,8 +1098,6 @@ "dU" = ( /obj/structure/mineral_door/iron, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -1230,8 +1120,6 @@ /area/awaymission/academy/classrooms) "dZ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/white, @@ -1259,8 +1147,6 @@ /area/awaymission/academy/classrooms) "ef" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/side{ @@ -1292,8 +1178,7 @@ /area/awaymission/academy/classrooms) "ek" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc{ dir = 1; @@ -1310,8 +1195,6 @@ /area/awaymission/academy/classrooms) "em" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -1366,8 +1249,6 @@ /area/awaymission/academy/classrooms) "ew" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, @@ -1379,8 +1260,6 @@ "ey" = ( /obj/machinery/door/airlock/freezer, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/white, @@ -1438,8 +1317,6 @@ /area/awaymission/academy/classrooms) "eI" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/barber{ @@ -1474,8 +1351,6 @@ /area/awaymission/academy/classrooms) "eO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/chapel{ @@ -1525,8 +1400,6 @@ /area/awaymission/academy/classrooms) "eX" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/chapel{ @@ -1567,37 +1440,27 @@ /area/awaymission/academy/classrooms) "fd" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/carpet, /area/awaymission/academy/classrooms) "fe" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/classrooms) "ff" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/carpet, /area/awaymission/academy/classrooms) "fg" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, @@ -1605,16 +1468,12 @@ "fh" = ( /obj/structure/mineral_door/wood, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/bar, /area/awaymission/academy/classrooms) "fi" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/escape{ @@ -1624,8 +1483,6 @@ "fj" = ( /obj/structure/table, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/escape{ @@ -1635,8 +1492,6 @@ "fk" = ( /obj/structure/table/reinforced, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/barber{ @@ -1645,8 +1500,6 @@ /area/awaymission/academy/classrooms) "fl" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/barber{ @@ -1655,8 +1508,6 @@ /area/awaymission/academy/classrooms) "fm" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/barber{ @@ -1736,13 +1587,9 @@ /area/awaymission/academy/classrooms) "fx" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/yellow/side{ @@ -1751,8 +1598,6 @@ /area/awaymission/academy/classrooms) "fy" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/noticeboard{ @@ -1763,34 +1608,24 @@ /area/awaymission/academy/classrooms) "fz" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/classrooms) "fA" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/classrooms) "fB" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -1806,8 +1641,6 @@ /area/awaymission/academy/academyaft) "fE" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -1817,13 +1650,10 @@ /area/awaymission/academy/academyaft) "fG" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1831,8 +1661,6 @@ "fH" = ( /obj/machinery/shieldwallgen, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -1842,8 +1670,6 @@ /area/awaymission/academy/classrooms) "fI" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/white/side{ @@ -1852,8 +1678,6 @@ /area/awaymission/academy/classrooms) "fJ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/white/side{ @@ -1885,9 +1709,7 @@ /area/awaymission/academy/classrooms) "fQ" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/vault, /area/awaymission/academy/classrooms) @@ -1937,9 +1759,7 @@ "fZ" = ( /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1976,29 +1796,22 @@ /area/awaymission/academy/academycellar) "gg" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/awaymission/academy/classrooms) "gh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/grimy, /area/awaymission/academy/academyaft) "gi" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/carpet, @@ -2010,8 +1823,6 @@ /area/awaymission/academy/classrooms) "gk" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/recharger, @@ -2054,8 +1865,6 @@ dir = 8 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -2071,9 +1880,7 @@ /area/awaymission/academy/classrooms) "gs" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -2081,8 +1888,6 @@ /area/awaymission/academy/classrooms) "gt" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/vault{ @@ -2152,8 +1957,7 @@ /area/awaymission/academy/classrooms) "gE" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -2161,16 +1965,12 @@ /area/awaymission/academy/classrooms) "gF" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/academyaft) "gG" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/carpet, @@ -2240,13 +2040,9 @@ /area/awaymission/academy/classrooms) "gS" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/carpet, @@ -2256,16 +2052,12 @@ locked = 1 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/classrooms) "gU" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/vault{ @@ -2274,8 +2066,6 @@ /area/awaymission/academy/classrooms) "gV" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/vault{ @@ -2300,8 +2090,7 @@ "gY" = ( /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -2309,7 +2098,6 @@ "gZ" = ( /obj/machinery/shieldwallgen, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/effect/turf_decal/stripes/line{ @@ -2334,8 +2122,6 @@ "hd" = ( /obj/structure/mineral_door/wood, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -2349,53 +2135,40 @@ /area/awaymission/academy/academyaft) "hg" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "hh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "hi" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) "hj" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) "hk" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) "hl" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc{ dir = 1; @@ -2410,9 +2183,7 @@ "hm" = ( /obj/structure/grille, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) @@ -2446,39 +2217,30 @@ /area/awaymission/academy/academyaft) "ht" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "hu" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) "hv" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "hw" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "hx" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -2487,8 +2249,7 @@ /obj/machinery/power/smes/magical, /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) @@ -2497,49 +2258,36 @@ dir = 8 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "hA" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) "hB" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) "hC" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/hydrofloor, /area/awaymission/academy/academyaft) "hD" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch, @@ -2547,26 +2295,18 @@ /area/awaymission/academy/academyaft) "hE" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "hF" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ @@ -2575,16 +2315,12 @@ /area/awaymission/academy/academyaft) "hG" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "hH" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ @@ -2593,34 +2329,24 @@ /area/awaymission/academy/academyaft) "hI" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/carpet, /area/awaymission/academy/academyaft) "hJ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/carpet, /area/awaymission/academy/academyaft) "hK" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/caution, @@ -2634,8 +2360,6 @@ /area/awaymission/academy/classrooms) "hM" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/hydrofloor, @@ -2646,16 +2370,12 @@ /area/awaymission/academy/academyaft) "hO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "hP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/hydrofloor, @@ -2749,13 +2469,9 @@ /area/awaymission/academy/academyaft) "if" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel, @@ -2783,8 +2499,6 @@ /area/awaymission/academy/academyaft) "ik" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel, @@ -2981,8 +2695,6 @@ /area/awaymission/academy/academyaft) "iO" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/wood, @@ -3013,8 +2725,6 @@ dir = 1 }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/red/side{ @@ -3023,35 +2733,25 @@ /area/awaymission/academy/academyaft) "iT" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "iU" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/academyaft) "iV" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable, @@ -3063,8 +2763,6 @@ dir = 1 }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/airless/white{ @@ -3096,21 +2794,16 @@ /area/awaymission/academy/academyaft) "jb" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "jc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -3119,9 +2812,7 @@ /area/awaymission/academy/academyaft) "jd" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -3130,22 +2821,16 @@ "je" = ( /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "jf" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/airless/white{ @@ -3154,8 +2839,6 @@ /area/awaymission/academy/academyaft) "jg" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/airless{ @@ -3165,7 +2848,6 @@ /area/awaymission/academy/academyaft) "jh" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/effect/spawner/structure/window/reinforced, @@ -3178,8 +2860,6 @@ /area/awaymission/academy/academyaft) "jj" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/red/side{ @@ -3188,8 +2868,6 @@ /area/awaymission/academy/academyaft) "jk" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light{ @@ -3209,8 +2887,6 @@ /area/awaymission/academy/academyaft) "jn" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/airless/white{ @@ -3229,13 +2905,9 @@ /area/awaymission/academy/academyaft) "jp" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/item/weldingtool, @@ -3253,8 +2925,6 @@ /area/awaymission/academy/academyaft) "js" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/airless/white{ @@ -3264,7 +2934,6 @@ "jt" = ( /obj/structure/grille, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/item/shard, @@ -3333,8 +3002,6 @@ /area/awaymission/academy/academyaft) "jF" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/window/reinforced{ @@ -3356,16 +3023,12 @@ /area/awaymission/academy/academyaft) "jI" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/carpet, /area/awaymission/academy/academyaft) "jJ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/window/reinforced{ @@ -3408,8 +3071,6 @@ "jQ" = ( /obj/machinery/door/airlock/hatch, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -3429,8 +3090,6 @@ /area/awaymission/academy/academygate) "jU" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -3451,8 +3110,6 @@ /area/awaymission/academy/academygate) "jZ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/window, @@ -3464,29 +3121,21 @@ /area/awaymission/academy/academygate) "kb" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/carpet, /area/awaymission/academy/academygate) "kc" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/carpet, /area/awaymission/academy/academygate) "kd" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/carpet, @@ -3500,8 +3149,6 @@ /area/awaymission/academy/academygate) "kg" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/carpet, @@ -3516,8 +3163,7 @@ req_access = "" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/carpet, /area/awaymission/academy/academygate) @@ -3527,24 +3173,18 @@ /area/awaymission/academy/academygate) "kj" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kk" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kl" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/carpet, @@ -3554,8 +3194,6 @@ dir = 9 }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -3565,8 +3203,6 @@ dir = 1 }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -3676,8 +3312,6 @@ /area/awaymission/academy/academyaft) "kH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/red/side{ @@ -3698,8 +3332,6 @@ "kK" = ( /obj/structure/table, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/item/book/manual/ripley_build_and_repair, @@ -3711,18 +3343,12 @@ /area/awaymission/academy/classrooms) "kM" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/trap/chill, @@ -3845,20 +3471,15 @@ /area/awaymission/academy/headmaster) "ln" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/vault, /area/awaymission/academy/academyengine) "lo" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/vault, @@ -3869,7 +3490,6 @@ pixel_y = 32 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/vault, @@ -3948,16 +3568,12 @@ /area/awaymission/academy/academyengine) "lG" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, /area/awaymission/academy/academyengine) "lH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -3978,9 +3594,7 @@ }, /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/academy/academyengine) @@ -4001,16 +3615,12 @@ /area/awaymission/academy/academyengine) "lO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, /area/awaymission/academy/academyengine) "lP" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index b4869790a8..dd40e3c024 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -108,15 +108,13 @@ name = "cabin APC" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating, /area/awaymission/cabin) "aw" = ( /obj/machinery/power/smes/magical, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -131,7 +129,6 @@ name = "geothermal generator" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -179,15 +176,12 @@ dir = 1 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating, /area/awaymission/cabin) "aF" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index e652a73e95..fc2640782e 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -1554,15 +1554,12 @@ /obj/machinery/power/smes, /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating, /area/awaymission/centcomAway/general) "fN" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -1571,7 +1568,6 @@ /obj/machinery/power/smes, /obj/structure/cable, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -2165,9 +2161,7 @@ /area/awaymission/centcomAway/hangar) "hP" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /turf/open/floor/plating, /area/awaymission/centcomAway/hangar) "hQ" = ( @@ -2249,8 +2243,7 @@ "ih" = ( /obj/machinery/mech_bay_recharge_port, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/centcomAway/hangar) @@ -2615,12 +2608,8 @@ /area/awaymission/centcomAway/hangar) "jt" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel/vault, /area/awaymission/centcomAway/hangar) "ju" = ( diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index f22805b750..ec4df0307e 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -968,9 +968,7 @@ "cZ" = ( /obj/machinery/gateway, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -990,8 +988,6 @@ /area/awaymission/challenge/end) "dc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/black, @@ -1061,13 +1057,9 @@ /area/awaymission/challenge/end) "dm" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /mob/living/simple_animal/hostile/syndicate{ @@ -1077,8 +1069,6 @@ /area/awaymission/challenge/end) "dn" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/black, diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 2b3dcfef6d..bd48aae344 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -404,8 +404,7 @@ "aX" = ( /obj/machinery/gateway, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/vault{ dir = 8; @@ -472,8 +471,6 @@ /area/awaymission/moonoutpost19/syndicate) "bg" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/black{ @@ -601,8 +598,6 @@ req_access_txt = "150" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -701,8 +696,6 @@ /area/awaymission/moonoutpost19/syndicate) "bC" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -808,8 +801,6 @@ /area/awaymission/moonoutpost19/syndicate) "bQ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/highsecurity{ @@ -824,8 +815,6 @@ /area/awaymission/moonoutpost19/syndicate) "bR" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/table, @@ -844,12 +833,10 @@ /area/awaymission/moonoutpost19/syndicate) "bS" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/computer/monitor, /obj/effect/turf_decal/stripes/line{ @@ -868,7 +855,6 @@ outputting = 1 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating{ @@ -1005,8 +991,6 @@ /area/awaymission/moonoutpost19/syndicate) "cf" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -1049,8 +1033,6 @@ /area/awaymission/moonoutpost19/syndicate) "ci" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/table, @@ -1080,8 +1062,7 @@ dir = 1 }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -1170,13 +1151,9 @@ /area/awaymission/moonoutpost19/syndicate) "ct" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -1186,8 +1163,6 @@ /area/awaymission/moonoutpost19/syndicate) "cu" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -1199,8 +1174,6 @@ /area/awaymission/moonoutpost19/syndicate) "cv" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ @@ -1212,8 +1185,6 @@ /area/awaymission/moonoutpost19/syndicate) "cw" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/engineering{ @@ -1226,8 +1197,6 @@ /area/awaymission/moonoutpost19/syndicate) "cx" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating{ @@ -1236,8 +1205,6 @@ /area/awaymission/moonoutpost19/syndicate) "cy" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating{ @@ -1246,18 +1213,12 @@ /area/awaymission/moonoutpost19/syndicate) "cz" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -1267,8 +1228,6 @@ /area/awaymission/moonoutpost19/syndicate) "cA" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating{ @@ -2174,8 +2133,6 @@ /area/awaymission/moonoutpost19/research) "ei" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -2186,8 +2143,6 @@ /area/awaymission/moonoutpost19/research) "ej" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/alien/weeds, @@ -2200,7 +2155,6 @@ /area/awaymission/moonoutpost19/research) "ek" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/shieldwallgen{ @@ -2208,8 +2162,7 @@ req_access = null }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -2312,8 +2265,6 @@ /area/awaymission/moonoutpost19/research) "ex" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold{ @@ -2340,8 +2291,7 @@ /area/awaymission/moonoutpost19/research) "ez" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; @@ -2438,8 +2388,6 @@ /area/awaymission/moonoutpost19/research) "eN" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/general/visible, @@ -2495,8 +2443,7 @@ name = "P.A.C.M.A.N.-type portable generator" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -2508,8 +2455,7 @@ name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating{ broken = 1; @@ -2534,8 +2480,7 @@ dir = 4 }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/airalarm{ frequency = 1439; @@ -2549,8 +2494,7 @@ /area/awaymission/moonoutpost19/research) "eW" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/smes{ charge = 1.5e+006; @@ -2565,8 +2509,6 @@ /area/awaymission/moonoutpost19/research) "eX" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating{ @@ -2575,8 +2517,6 @@ /area/awaymission/moonoutpost19/research) "eY" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/newspaper, @@ -2586,8 +2526,6 @@ /area/awaymission/moonoutpost19/research) "eZ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating{ @@ -2598,8 +2536,6 @@ /area/awaymission/moonoutpost19/research) "fa" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/blood/tracks{ @@ -2613,8 +2549,6 @@ /area/awaymission/moonoutpost19/research) "fb" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating{ @@ -2623,8 +2557,6 @@ /area/awaymission/moonoutpost19/research) "fc" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance{ @@ -2642,8 +2574,6 @@ /area/awaymission/moonoutpost19/research) "fd" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/blood/tracks{ @@ -2661,8 +2591,6 @@ pixel_x = 32 }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/alien/weeds, @@ -2741,8 +2669,6 @@ /area/awaymission/moonoutpost19/research) "fl" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/general/visible, @@ -2762,8 +2688,7 @@ "fn" = ( /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; @@ -2793,8 +2718,6 @@ /area/awaymission/moonoutpost19/research) "fq" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating{ @@ -2803,13 +2726,9 @@ /area/awaymission/moonoutpost19/research) "fr" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -2820,8 +2739,6 @@ /area/awaymission/moonoutpost19/research) "fs" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating{ @@ -2830,8 +2747,6 @@ /area/awaymission/moonoutpost19/research) "ft" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating{ @@ -2842,8 +2757,6 @@ /area/awaymission/moonoutpost19/research) "fu" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating{ @@ -2866,13 +2779,9 @@ /area/awaymission/moonoutpost19/research) "fw" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/alien/weeds, @@ -2883,8 +2792,6 @@ /area/awaymission/moonoutpost19/research) "fx" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -2903,8 +2810,6 @@ /area/awaymission/moonoutpost19/research) "fy" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -2914,8 +2819,6 @@ /area/awaymission/moonoutpost19/research) "fz" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -2924,8 +2827,6 @@ /area/awaymission/moonoutpost19/research) "fA" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -2938,8 +2839,6 @@ /area/awaymission/moonoutpost19/research) "fB" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/alien/weeds/node, @@ -2947,8 +2846,6 @@ /area/awaymission/moonoutpost19/research) "fC" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -2995,8 +2892,6 @@ icon_state = "medium" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/engine, @@ -3091,13 +2986,9 @@ /area/awaymission/moonoutpost19/research) "fP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating{ @@ -3110,8 +3001,6 @@ req_one_access_txt = "0" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating{ @@ -3120,13 +3009,9 @@ /area/awaymission/moonoutpost19/research) "fR" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/effect/decal/cleanable/oil, @@ -3199,8 +3084,6 @@ pixel_x = 32 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/alien/weeds, @@ -3242,8 +3125,7 @@ /area/awaymission/moonoutpost19/research) "gb" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/structure/grille, /obj/machinery/door/poddoor/preopen{ @@ -3297,8 +3179,6 @@ "gh" = ( /obj/effect/decal/cleanable/oil, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating{ @@ -3341,8 +3221,6 @@ /area/awaymission/moonoutpost19/research) "gm" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/firealarm{ @@ -3427,8 +3305,7 @@ /area/awaymission/moonoutpost19/research) "gt" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/structure/disposalpipe/segment{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; @@ -3633,8 +3510,7 @@ name = "Acid-Proof containment chamber blast door" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating{ @@ -3651,8 +3527,6 @@ /area/awaymission/moonoutpost19/research) "gN" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/item/stack/rods, @@ -3824,8 +3698,6 @@ /area/awaymission/moonoutpost19/research) "hd" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/cobweb, @@ -3835,8 +3707,6 @@ /area/awaymission/moonoutpost19/research) "he" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -3846,8 +3716,6 @@ /area/awaymission/moonoutpost19/research) "hf" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -3941,8 +3809,6 @@ /area/awaymission/moonoutpost19/research) "hp" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/oil, @@ -4278,8 +4144,6 @@ /area/awaymission/moonoutpost19/arrivals) "hW" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating{ @@ -4635,8 +4499,6 @@ /area/awaymission/moonoutpost19/arrivals) "iE" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -4971,8 +4833,6 @@ /area/awaymission/moonoutpost19/arrivals) "jp" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/oil, @@ -5117,8 +4977,7 @@ /area/awaymission/moonoutpost19/arrivals) "jH" = ( /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc/highcap/fifteen_k{ dir = 1; @@ -5224,8 +5083,6 @@ /area/awaymission/moonoutpost19/arrivals) "jS" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating{ @@ -5236,8 +5093,6 @@ /area/awaymission/moonoutpost19/research) "jT" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/light/small{ @@ -5250,8 +5105,6 @@ /area/awaymission/moonoutpost19/arrivals) "jU" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -5260,8 +5113,6 @@ /area/awaymission/moonoutpost19/arrivals) "jV" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -5271,8 +5122,6 @@ /area/awaymission/moonoutpost19/arrivals) "jW" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -5282,8 +5131,6 @@ /area/awaymission/moonoutpost19/arrivals) "jX" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/cigbutt, @@ -5297,8 +5144,6 @@ dir = 1 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/airalarm{ @@ -5314,8 +5159,6 @@ /area/awaymission/moonoutpost19/arrivals) "jZ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/purple/corner{ @@ -5325,8 +5168,6 @@ /area/awaymission/moonoutpost19/arrivals) "ka" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -5337,8 +5178,6 @@ /area/awaymission/moonoutpost19/arrivals) "kb" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor{ @@ -5352,8 +5191,6 @@ /area/awaymission/moonoutpost19/arrivals) "kc" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -5367,8 +5204,6 @@ /area/awaymission/moonoutpost19/arrivals) "kd" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -5382,8 +5217,6 @@ /area/awaymission/moonoutpost19/arrivals) "ke" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -5399,8 +5232,6 @@ dir = 1 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -5412,8 +5243,6 @@ /area/awaymission/moonoutpost19/arrivals) "kg" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -5427,8 +5256,6 @@ /area/awaymission/moonoutpost19/arrivals) "kh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating{ @@ -5441,8 +5268,6 @@ /area/awaymission/moonoutpost19/arrivals) "ki" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -5456,8 +5281,6 @@ /area/awaymission/moonoutpost19/arrivals) "kj" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -5474,8 +5297,6 @@ "kk" = ( /obj/machinery/light/small, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/floorgrime{ @@ -5485,8 +5306,6 @@ /area/awaymission/moonoutpost19/arrivals) "kl" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 9a85544ca9..98d9a594c7 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -270,8 +270,6 @@ /area/space) "aY" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -362,13 +360,10 @@ /area/awaymission/research/interior/gateway) "bm" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /obj/machinery/power/apc/highcap/ten_k{ auto_name = 1; @@ -486,8 +481,6 @@ /area/awaymission/research/interior/gateway) "bD" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -664,32 +657,24 @@ pixel_x = 24 }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) "cc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "cd" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "ce" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -740,8 +725,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/window/reinforced, @@ -749,16 +732,12 @@ /area/awaymission/research/interior/gateway) "cm" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "cn" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/light/small, @@ -766,8 +745,6 @@ /area/awaymission/research/interior/maint) "co" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -813,16 +790,12 @@ /area/awaymission/research/interior/gateway) "cu" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) "cv" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/table, @@ -830,8 +803,6 @@ /area/awaymission/research/interior/gateway) "cw" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plating, @@ -848,8 +819,6 @@ /area/awaymission/research/interior/maint) "cz" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /mob/living/simple_animal/hostile/syndicate/ranged, @@ -880,16 +849,12 @@ /area/awaymission/research/interior/gateway) "cE" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/gateway) "cF" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/table, @@ -931,8 +896,6 @@ /area/awaymission/research/interior/genetics) "cL" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /mob/living/simple_animal/hostile/syndicate/ranged, @@ -968,8 +931,6 @@ /area/awaymission/research/interior/secure) "cR" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/highsecurity{ @@ -981,8 +942,6 @@ /area/awaymission/research/interior/gateway) "cS" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/power/apc/highcap/five_k{ @@ -991,9 +950,7 @@ pixel_x = 24 }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/research/interior/genetics) @@ -1021,8 +978,6 @@ /area/awaymission/research/interior/genetics) "cY" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/item/ammo_casing/c9mm, @@ -1087,8 +1042,6 @@ /area/awaymission/research/interior/secure) "dg" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -1110,8 +1063,6 @@ /area/awaymission/research/interior/genetics) "dk" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/blood/drip, @@ -1182,8 +1133,6 @@ /area/awaymission/research/interior/genetics) "dw" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/blood/drip, @@ -1191,8 +1140,6 @@ /area/awaymission/research/interior/maint) "dx" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/ammo_casing/c9mm, @@ -1200,8 +1147,6 @@ /area/awaymission/research/interior/maint) "dy" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/light/small{ @@ -1337,8 +1282,6 @@ /area/awaymission/research/interior/genetics) "dR" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/item/ammo_casing/c45, @@ -1346,13 +1289,9 @@ /area/awaymission/research/interior/maint) "dS" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plating, @@ -1401,8 +1340,6 @@ /area/awaymission/research/interior) "dZ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -1440,8 +1377,6 @@ /area/awaymission/research/interior/maint) "eg" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/blood/drip, @@ -1514,8 +1449,6 @@ req_access_txt = "12" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -1602,16 +1535,12 @@ req_access_txt = "12" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "eI" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -1663,8 +1592,7 @@ "eR" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/research/interior/security) @@ -1720,8 +1648,6 @@ }, /obj/structure/cable, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple, @@ -1787,8 +1713,6 @@ /area/awaymission/research/interior/cryo) "fj" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -1825,24 +1749,18 @@ /area/awaymission/research/interior/security) "fr" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/whitered/side, /area/awaymission/research/interior/security) "fs" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/whitered/side, /area/awaymission/research/interior/security) "ft" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/light{ @@ -1873,8 +1791,6 @@ /area/awaymission/research/interior/secure) "fx" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/light/small{ @@ -1889,7 +1805,6 @@ pixel_x = 24 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plasteel/black, @@ -1915,8 +1830,6 @@ /area/awaymission/research/interior) "fC" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple, @@ -1975,8 +1888,6 @@ /area/awaymission/research/interior) "fN" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple/side{ @@ -2027,8 +1938,6 @@ /area/awaymission/research/interior/security) "fX" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitered, @@ -2039,8 +1948,6 @@ /area/awaymission/research/interior/security) "fZ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/chair{ @@ -2072,20 +1979,15 @@ dir = 1 }, /obj/structure/cable{ - d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/secure) "ge" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/black, @@ -2093,12 +1995,9 @@ "gf" = ( /obj/machinery/power/terminal, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d2 = 4; icon_state = "0-4" }, /turf/open/floor/plasteel/black, @@ -2110,32 +2009,24 @@ req_access_txt = "36" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/secure) "gh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/secure) "gi" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/black, /area/awaymission/research/interior/secure) "gj" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /mob/living/simple_animal/hostile/nanotrasen/ranged/smg, @@ -2143,8 +2034,6 @@ /area/awaymission/research/interior/secure) "gk" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/barricade/security, @@ -2152,8 +2041,6 @@ /area/awaymission/research/interior/secure) "gl" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/highsecurity{ @@ -2166,8 +2053,6 @@ "gm" = ( /obj/structure/barricade/security, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/black, @@ -2178,30 +2063,22 @@ req_access_txt = "9,63" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior/secure) "go" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior) "gp" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/light/small, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plating, @@ -2212,34 +2089,24 @@ req_access_txt = "9" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior) "gr" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitepurple, /area/awaymission/research/interior) "gs" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/whitepurple, @@ -2300,8 +2167,6 @@ dir = 8 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple, @@ -2337,39 +2202,27 @@ /area/awaymission/research/interior/security) "gJ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/whitered, /area/awaymission/research/interior/security) "gK" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitered, /area/awaymission/research/interior/security) "gL" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/chair{ @@ -2379,8 +2232,6 @@ /area/awaymission/research/interior/security) "gM" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/table, @@ -2388,8 +2239,6 @@ /area/awaymission/research/interior/security) "gN" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/table, @@ -2399,8 +2248,6 @@ /area/awaymission/research/interior/security) "gO" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/chair{ @@ -2410,8 +2257,6 @@ /area/awaymission/research/interior/security) "gP" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/whitered/side{ @@ -2453,8 +2298,6 @@ /area/awaymission/research/interior) "gW" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitepurple, @@ -2524,8 +2367,6 @@ /area/awaymission/research/interior/security) "hi" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/whitered/side{ @@ -2557,8 +2398,6 @@ /area/awaymission/research/interior/security) "ho" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/whitered/side{ @@ -2567,8 +2406,6 @@ /area/awaymission/research/interior/security) "hp" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel/whitered/side{ @@ -2583,8 +2420,6 @@ /area/awaymission/research/interior/security) "hr" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light{ @@ -2615,29 +2450,21 @@ /area/awaymission/research/interior/cryo) "hw" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "hx" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "hy" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/blood/drip, @@ -2664,8 +2491,6 @@ /area/awaymission/research/interior) "hD" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/light/small{ @@ -2693,8 +2518,6 @@ /area/awaymission/research/interior/security) "hH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/vending/security, @@ -2773,8 +2596,6 @@ /area/awaymission/research/interior) "hR" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/table, @@ -2873,8 +2694,6 @@ /area/awaymission/research/interior/maint) "ie" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/light/small{ @@ -2888,8 +2707,6 @@ /area/awaymission/research/interior) "ig" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/light/small{ @@ -2925,8 +2742,6 @@ /area/awaymission/research/interior/security) "ik" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -2984,21 +2799,15 @@ /area/awaymission/research/interior/bathroom) "iq" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "ir" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/side{ @@ -3007,16 +2816,12 @@ /area/awaymission/research/interior) "is" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen, /area/awaymission/research/interior) "it" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/side{ @@ -3025,13 +2830,9 @@ /area/awaymission/research/interior) "iu" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -3042,8 +2843,6 @@ req_access_txt = "63" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -3055,13 +2854,9 @@ pixel_x = 24 }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plating, @@ -3116,12 +2911,9 @@ pixel_y = 24 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -3205,8 +2997,6 @@ /area/awaymission/research/interior/maint) "iT" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -3216,15 +3006,12 @@ /area/awaymission/research/interior/maint) "iU" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel, /area/awaymission/research/interior/maint) "iV" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, @@ -3651,14 +3438,10 @@ pixel_x = 24 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plating, /area/awaymission/research/interior/dorm) @@ -3760,8 +3543,6 @@ /area/awaymission/research/interior/dorm) "kG" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance_hatch{ @@ -3771,8 +3552,6 @@ /area/awaymission/research/interior/maint) "kH" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/side{ @@ -3781,16 +3560,12 @@ /area/awaymission/research/interior) "kI" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen, /area/awaymission/research/interior) "kJ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/whitegreen/side{ @@ -3799,8 +3574,6 @@ /area/awaymission/research/interior) "kK" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, @@ -3824,8 +3597,6 @@ /area/awaymission/research/interior/medbay) "kP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -4211,15 +3982,12 @@ dir = 1 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "lW" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc{ @@ -4242,8 +4010,6 @@ /area/awaymission/research/interior/dorm) "lZ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/power/apc{ @@ -4252,7 +4018,6 @@ pixel_y = -24 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index e77a80ec67..f8070b272f 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -219,9 +219,7 @@ /area/awaymission/snowdin/base) "aE" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating{ @@ -256,8 +254,6 @@ /area/awaymission/snowdin/base) "aJ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -497,9 +493,7 @@ "bp" = ( /obj/machinery/gateway, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel{ @@ -556,9 +550,7 @@ dir = 8 }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; @@ -585,8 +577,6 @@ "bx" = ( /obj/effect/landmark/awaystart, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -596,8 +586,6 @@ /area/awaymission/snowdin/base) "by" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/landmark/awaystart, @@ -676,12 +664,9 @@ dir = 8 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel{ @@ -691,8 +676,6 @@ /area/awaymission/snowdin/base) "bI" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/awaystart, @@ -703,14 +686,10 @@ /area/awaymission/snowdin/base) "bJ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/landmark/awaystart, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel{ @@ -728,8 +707,6 @@ /area/awaymission/snowdin/base) "bL" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/landmark/awaystart, diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index fedc7c820e..38e40cdc6f 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -1831,8 +1831,6 @@ "ed" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/airlock/command{ @@ -2343,8 +2341,7 @@ start_charge = 100 }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel/green/side{ dir = 2; @@ -2353,8 +2350,6 @@ /area/awaymission/undergroundoutpost45/central) "fh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/extinguisher_cabinet{ @@ -2367,8 +2362,6 @@ /area/awaymission/undergroundoutpost45/central) "fi" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, @@ -2379,8 +2372,6 @@ /area/awaymission/undergroundoutpost45/central) "fj" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ @@ -2391,8 +2382,6 @@ "fk" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/green/side{ @@ -2402,8 +2391,6 @@ /area/awaymission/undergroundoutpost45/central) "fl" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel/green/side{ @@ -2497,8 +2484,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel/black{ @@ -2507,8 +2492,6 @@ /area/awaymission/undergroundoutpost45/central) "fx" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -2524,8 +2507,6 @@ /area/awaymission/undergroundoutpost45/central) "fy" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -2537,8 +2518,6 @@ /area/awaymission/undergroundoutpost45/central) "fz" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -2683,8 +2662,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "fP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -2802,8 +2779,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "gb" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -2867,8 +2842,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "gj" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -2921,8 +2894,6 @@ /area/awaymission/undergroundoutpost45/central) "gp" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ @@ -2937,8 +2908,6 @@ /area/awaymission/undergroundoutpost45/central) "gq" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -3056,8 +3025,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "gH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -3126,8 +3093,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "gQ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -3666,8 +3631,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "hW" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -3697,8 +3660,7 @@ "hZ" = ( /obj/machinery/gateway, /obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 + icon_state = "0-2" }, /turf/open/floor/plasteel/vault{ dir = 8; @@ -3871,8 +3833,6 @@ /area/awaymission/undergroundoutpost45/gateway) "iu" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/window{ @@ -4066,8 +4026,6 @@ /area/awaymission/undergroundoutpost45/research) "iM" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -4102,8 +4060,6 @@ /area/awaymission/undergroundoutpost45/gateway) "iP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -4308,8 +4264,6 @@ /area/awaymission/undergroundoutpost45/gateway) "ji" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4497,8 +4451,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "jD" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -4659,8 +4611,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "jV" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/power/apc/highcap/fifteen_k{ dir = 1; @@ -4676,8 +4627,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "jW" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/light/small{ @@ -4693,13 +4642,9 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "jX" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/junction{ @@ -4716,8 +4661,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "jY" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -4736,8 +4679,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "jZ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -4752,8 +4693,6 @@ /area/awaymission/undergroundoutpost45/central) "ka" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -4769,8 +4708,6 @@ /area/awaymission/undergroundoutpost45/central) "kb" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -4787,8 +4724,6 @@ /area/awaymission/undergroundoutpost45/central) "kc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -4872,8 +4807,6 @@ "kl" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4966,8 +4899,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "ku" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -5438,8 +5369,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "lm" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/junction, @@ -5473,8 +5402,6 @@ /area/awaymission/undergroundoutpost45/gateway) "lp" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel{ @@ -5483,8 +5410,6 @@ /area/awaymission/undergroundoutpost45/gateway) "lq" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -5496,13 +5421,9 @@ /area/awaymission/undergroundoutpost45/gateway) "lr" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/machinery/airalarm{ @@ -5525,8 +5446,6 @@ /area/awaymission/undergroundoutpost45/gateway) "ls" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5538,8 +5457,6 @@ /area/awaymission/undergroundoutpost45/gateway) "lt" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5568,8 +5485,6 @@ /area/awaymission/undergroundoutpost45/research) "lv" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -5579,8 +5494,6 @@ /area/awaymission/undergroundoutpost45/gateway) "lw" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -5593,8 +5506,6 @@ "lx" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5610,8 +5521,6 @@ /area/awaymission/undergroundoutpost45/gateway) "ly" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5624,8 +5533,6 @@ /area/awaymission/undergroundoutpost45/gateway) "lz" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -5636,8 +5543,6 @@ /area/awaymission/undergroundoutpost45/gateway) "lA" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/firealarm{ @@ -5659,8 +5564,6 @@ /area/awaymission/undergroundoutpost45/gateway) "lB" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5676,8 +5579,6 @@ /area/awaymission/undergroundoutpost45/gateway) "lC" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5692,8 +5593,6 @@ "lD" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5710,8 +5609,6 @@ /area/awaymission/undergroundoutpost45/gateway) "lE" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5725,13 +5622,9 @@ /area/awaymission/undergroundoutpost45/research) "lF" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -5749,8 +5642,6 @@ /area/awaymission/undergroundoutpost45/research) "lG" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/light, @@ -5770,7 +5661,6 @@ /area/awaymission/undergroundoutpost45/research) "lH" = ( /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/machinery/power/apc/highcap/fifteen_k{ @@ -5936,8 +5826,6 @@ "lW" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -6048,8 +5936,6 @@ /area/awaymission/undergroundoutpost45/research) "mg" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -6249,8 +6135,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "my" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -6261,15 +6145,9 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "mz" = ( /obj/structure/closet/crate, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, /turf/open/floor/plating{ heat_capacity = 1e+006 }, @@ -6305,10 +6183,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -28 }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/tank/jetpack/carbondioxide, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -6328,10 +6203,7 @@ start_charge = 100 }, /obj/machinery/light/small, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/shoes/magboots, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -6345,10 +6217,7 @@ dir = 1; pixel_y = -24 }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/shoes/magboots, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -6392,8 +6261,6 @@ /area/awaymission/undergroundoutpost45/research) "mK" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -6408,13 +6275,9 @@ /area/awaymission/undergroundoutpost45/research) "mL" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel{ @@ -6635,8 +6498,6 @@ /area/awaymission/undergroundoutpost45/engineering) "nj" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -6725,8 +6586,6 @@ /area/awaymission/undergroundoutpost45/research) "ns" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -6742,8 +6601,6 @@ /area/awaymission/undergroundoutpost45/research) "nt" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -6760,8 +6617,6 @@ /area/awaymission/undergroundoutpost45/research) "nu" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -6776,8 +6631,6 @@ /area/awaymission/undergroundoutpost45/research) "nv" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -6796,8 +6649,6 @@ /area/awaymission/undergroundoutpost45/research) "nw" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -6813,8 +6664,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "nx" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -6913,8 +6762,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "nI" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -6927,8 +6774,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "nJ" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/effect/turf_decal/stripes/corner{ @@ -6940,18 +6785,12 @@ /area/awaymission/undergroundoutpost45/engineering) "nK" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -6963,8 +6802,6 @@ /area/awaymission/undergroundoutpost45/engineering) "nL" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/effect/turf_decal/stripes/corner{ @@ -6980,8 +6817,6 @@ /area/awaymission/undergroundoutpost45/research) "nN" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -7147,8 +6982,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oa" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ @@ -7163,8 +6996,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "ob" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7181,8 +7012,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oc" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7199,8 +7028,6 @@ "od" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7216,8 +7043,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oe" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7236,8 +7061,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "of" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7253,8 +7076,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "og" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/light/small{ @@ -7274,8 +7095,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oh" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/airalarm{ @@ -7298,8 +7117,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oi" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7313,8 +7130,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oj" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7331,8 +7146,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "ok" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7351,8 +7164,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "ol" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7368,8 +7179,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "om" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7386,8 +7195,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "on" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7402,8 +7209,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oo" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/junction{ @@ -7421,8 +7226,6 @@ "op" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7440,8 +7243,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oq" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -7456,13 +7257,9 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "or" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/junction{ @@ -7477,8 +7274,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "os" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -7516,8 +7311,6 @@ /area/awaymission/undergroundoutpost45/engineering) "ov" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ @@ -7529,8 +7322,6 @@ /area/awaymission/undergroundoutpost45/engineering) "ow" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -7757,8 +7548,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oT" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/airalarm{ @@ -7782,8 +7571,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oU" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -7806,8 +7593,7 @@ name = "P.A.C.M.A.N.-type portable generator" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -7823,12 +7609,10 @@ }, /obj/item/wrench, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -7843,7 +7627,6 @@ name = "P.A.C.M.A.N.-type portable generator" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating{ @@ -7852,8 +7635,6 @@ /area/awaymission/undergroundoutpost45/engineering) "oY" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -7879,8 +7660,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pb" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -7894,8 +7673,6 @@ /area/awaymission/undergroundoutpost45/research) "pc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -7986,8 +7763,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pk" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -8130,8 +7905,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pz" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -8147,8 +7920,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pA" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -8163,13 +7934,9 @@ /area/awaymission/undergroundoutpost45/engineering) "pB" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -8184,8 +7951,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pC" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ @@ -8197,8 +7962,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pD" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/turf_decal/stripes/corner{ @@ -8234,8 +7997,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pG" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -8423,8 +8184,6 @@ /area/awaymission/undergroundoutpost45/engineering) "qc" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -8461,8 +8220,6 @@ /area/awaymission/undergroundoutpost45/engineering) "qf" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -8710,8 +8467,7 @@ /area/awaymission/undergroundoutpost45/engineering) "qE" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/computer/monitor{ name = "primary power monitoring console" @@ -8726,13 +8482,9 @@ /area/awaymission/undergroundoutpost45/engineering) "qF" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -8743,8 +8495,6 @@ /area/awaymission/undergroundoutpost45/engineering) "qG" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -8756,8 +8506,6 @@ /area/awaymission/undergroundoutpost45/engineering) "qH" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, @@ -8865,8 +8613,6 @@ /area/awaymission/undergroundoutpost45/engineering) "qO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -8970,8 +8716,6 @@ /area/awaymission/undergroundoutpost45/research) "qX" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -9049,8 +8793,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rf" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -9169,8 +8911,7 @@ /area/awaymission/undergroundoutpost45/engineering) "rp" = ( /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/machinery/power/apc/highcap/fifteen_k{ dir = 8; @@ -9286,8 +9027,6 @@ /area/awaymission/undergroundoutpost45/engineering) "ry" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -9411,8 +9150,6 @@ /area/awaymission/undergroundoutpost45/research) "rK" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -9455,13 +9192,9 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -9484,8 +9217,6 @@ dir = 4 }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/firedoor, @@ -9495,8 +9226,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rQ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -9512,8 +9241,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rR" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -9529,8 +9256,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rS" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -9547,8 +9272,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rT" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/airalarm{ @@ -9570,8 +9293,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rU" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -9588,8 +9309,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rV" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -9606,8 +9325,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "rW" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -9624,8 +9341,6 @@ "rX" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -9645,8 +9360,6 @@ /area/awaymission/undergroundoutpost45/engineering) "rY" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -9661,8 +9374,6 @@ /area/awaymission/undergroundoutpost45/engineering) "rZ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -9675,8 +9386,6 @@ /area/awaymission/undergroundoutpost45/engineering) "sa" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -9999,8 +9708,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "sD" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -10103,8 +9810,6 @@ /area/awaymission/undergroundoutpost45/engineering) "sN" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -10209,8 +9914,6 @@ /area/awaymission/undergroundoutpost45/engineering) "sV" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ @@ -10315,8 +10018,6 @@ /area/awaymission/undergroundoutpost45/engineering) "tg" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ @@ -10330,8 +10031,6 @@ /area/awaymission/undergroundoutpost45/research) "th" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -10346,8 +10045,6 @@ /area/awaymission/undergroundoutpost45/research) "ti" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -10364,8 +10061,6 @@ /area/awaymission/undergroundoutpost45/research) "tj" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ @@ -10432,8 +10127,6 @@ /area/awaymission/undergroundoutpost45/research) "tr" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -10463,8 +10156,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "tu" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -10504,8 +10195,6 @@ /area/awaymission/undergroundoutpost45/engineering) "tx" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -10575,8 +10264,6 @@ /area/awaymission/undergroundoutpost45/engineering) "tD" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ @@ -10683,8 +10370,6 @@ /area/awaymission/undergroundoutpost45/research) "tO" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ @@ -10701,8 +10386,6 @@ /area/awaymission/undergroundoutpost45/research) "tP" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -10717,8 +10400,6 @@ /area/awaymission/undergroundoutpost45/research) "tQ" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/junction{ @@ -10737,8 +10418,6 @@ /area/awaymission/undergroundoutpost45/research) "tR" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -10752,8 +10431,6 @@ /area/awaymission/undergroundoutpost45/research) "tS" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -10770,8 +10447,6 @@ /area/awaymission/undergroundoutpost45/research) "tT" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -10789,8 +10464,6 @@ /area/awaymission/undergroundoutpost45/research) "tU" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -10806,8 +10479,6 @@ /area/awaymission/undergroundoutpost45/research) "tV" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ @@ -10855,8 +10526,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "ua" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -10889,8 +10558,6 @@ "ue" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -10932,8 +10599,6 @@ /area/awaymission/undergroundoutpost45/engineering) "uj" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/components/binary/pump{ @@ -11136,8 +10801,6 @@ /area/awaymission/undergroundoutpost45/engineering) "uC" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -11173,8 +10836,6 @@ /area/awaymission/undergroundoutpost45/engineering) "uG" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -11337,8 +10998,6 @@ /area/awaymission/undergroundoutpost45/engineering) "uW" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -11405,8 +11064,6 @@ "vb" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/door/poddoor/preopen{ @@ -11567,8 +11224,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "vr" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -11587,8 +11242,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vt" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ @@ -11602,8 +11255,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vu" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ @@ -11618,13 +11269,9 @@ /area/awaymission/undergroundoutpost45/engineering) "vv" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ @@ -11640,8 +11287,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vw" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11653,8 +11298,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vx" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11667,8 +11310,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vy" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/side{ @@ -11678,8 +11319,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vz" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/door/airlock/engineering{ @@ -11692,8 +11331,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vA" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -11702,8 +11339,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vB" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/plasteel{ @@ -11790,8 +11425,6 @@ "vO" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -11846,8 +11479,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vT" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, @@ -12031,8 +11662,6 @@ /area/awaymission/undergroundoutpost45/mining) "wi" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -12057,8 +11686,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -12067,11 +11695,9 @@ "wl" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating{ @@ -12080,14 +11706,10 @@ /area/awaymission/undergroundoutpost45/engineering) "wm" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/door/airlock/glass_command{ @@ -12166,8 +11788,6 @@ /area/awaymission/undergroundoutpost45/mining) "wv" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -12221,8 +11841,6 @@ /area/awaymission/undergroundoutpost45/engineering) "wA" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ @@ -12259,8 +11877,6 @@ /area/awaymission/undergroundoutpost45/mining) "wD" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, @@ -12270,8 +11886,6 @@ /area/awaymission/undergroundoutpost45/mining) "wE" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12281,14 +11895,10 @@ /area/awaymission/undergroundoutpost45/mining) "wF" = ( /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -12319,8 +11929,6 @@ /area/awaymission/undergroundoutpost45/engineering) "wJ" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -12386,8 +11994,6 @@ /area/awaymission/undergroundoutpost45/mining) "wP" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -12400,8 +12006,6 @@ "wQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -12444,8 +12048,6 @@ /area/awaymission/undergroundoutpost45/engineering) "wU" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /obj/machinery/light/small{ @@ -12504,8 +12106,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/brown{ @@ -12538,8 +12138,6 @@ /area/awaymission/undergroundoutpost45/engineering) "xd" = ( /obj/structure/cable{ - d1 = 2; - d2 = 4; icon_state = "2-4" }, /turf/open/floor/plasteel/neutral{ @@ -12555,8 +12153,6 @@ pixel_y = -28 }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, @@ -12592,8 +12188,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -12689,8 +12283,6 @@ req_access = null }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime{ @@ -12730,8 +12322,6 @@ "xt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -12792,8 +12382,6 @@ dir = 8 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; icon_state = "1-2" }, /turf/open/floor/plasteel{ @@ -12874,8 +12462,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /turf/open/floor/plasteel{ @@ -12891,8 +12477,6 @@ req_access_txt = "201" }, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -12905,8 +12489,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - d1 = 4; - d2 = 8; icon_state = "4-8" }, /turf/open/floor/plasteel{ @@ -12918,8 +12500,6 @@ dir = 8 }, /obj/structure/cable{ - d1 = 2; - d2 = 8; icon_state = "2-8" }, /turf/open/floor/plasteel{ @@ -12974,8 +12554,7 @@ "xQ" = ( /obj/machinery/computer/mech_bay_power_console, /obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 + icon_state = "0-4" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -12983,13 +12562,9 @@ /area/awaymission/undergroundoutpost45/mining) "xR" = ( /obj/structure/cable{ - d1 = 1; - d2 = 4; icon_state = "1-4" }, /obj/structure/cable{ - d1 = 1; - d2 = 8; icon_state = "1-8" }, /turf/open/floor/mech_bay_recharge_floor, @@ -13000,7 +12575,6 @@ dir = 8 }, /obj/structure/cable{ - d2 = 8; icon_state = "0-8" }, /turf/open/floor/plating, diff --git a/_maps/boxstation.json b/_maps/boxstation.json index 65689d946c..edf5f993d3 100644 --- a/_maps/boxstation.json +++ b/_maps/boxstation.json @@ -1,8 +1,5 @@ { "map_name": "Box Station", "map_path": "map_files/BoxStation", - "map_file": "BoxStation.dmm", - "minetype": "lavaland", - "transition_config": "default", - "allow_custom_shuttles": "yes" + "map_file": "BoxStation.dmm" } diff --git a/_maps/deltastation.json b/_maps/deltastation.json index 3cfd2d5290..dde878a26b 100644 --- a/_maps/deltastation.json +++ b/_maps/deltastation.json @@ -1,8 +1,5 @@ { "map_name": "Delta Station", "map_path": "map_files/Deltastation", - "map_file": "DeltaStation2.dmm", - "minetype": "lavaland", - "transition_config": "default", - "allow_custom_shuttles": "yes" + "map_file": "DeltaStation2.dmm" } diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 988afb163f..8e4b3d9f2d 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -888,6 +888,7 @@ /area/security/main) "acr" = ( /obj/structure/chair/comfy/black, +/obj/effect/landmark/start/head_of_security, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "acs" = ( @@ -2141,16 +2142,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/structure/rack, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = 3; - pixel_y = -3 - }, +/obj/structure/closet/secure_closet/warden, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aeX" = ( @@ -2570,7 +2562,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/landmark/start/head_of_security, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/main) @@ -2617,9 +2608,7 @@ /area/engine/atmos) "agf" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 1 - }, +/obj/item/stack/sheet/metal, /obj/item/storage/box/bodybags, /obj/item/pen, /obj/machinery/firealarm{ @@ -2737,7 +2726,6 @@ /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "agr" = ( -/obj/machinery/computer/secure_data, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -2949,6 +2937,9 @@ /obj/structure/cable{ icon_state = "2-8" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "agU" = ( @@ -3193,9 +3184,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "ahx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/structure/cable{ icon_state = "2-4" }, @@ -3215,8 +3203,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -3415,10 +3403,10 @@ /turf/open/floor/plasteel/white, /area/security/brig) "ahQ" = ( -/obj/structure/closet/secure_closet/warden, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/computer/security, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "ahR" = ( @@ -3441,7 +3429,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "ahS" = ( -/obj/structure/table, /obj/structure/cable{ icon_state = "1-8" }, @@ -3481,7 +3468,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/obj/machinery/computer/crew, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "ahY" = ( @@ -3549,14 +3535,12 @@ }, /area/security/brig) "aie" = ( -/obj/structure/table, -/obj/item/folder/red, -/obj/item/pen, -/obj/item/hand_labeler, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aif" = ( @@ -3635,9 +3619,7 @@ /area/security/brig) "aio" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/rglass{ amount = 50 }, @@ -3815,42 +3797,33 @@ /turf/open/floor/plating, /area/security/warden) "aiJ" = ( -/obj/structure/table/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Armory Desk"; - req_access_txt = "3" - }, -/obj/machinery/door/window/southleft{ - name = "Reception Desk"; - req_access_txt = "63" - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, +/obj/machinery/computer/crew, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aiK" = ( -/obj/structure/cable{ - icon_state = "0-8" +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/warden, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = -27; + pixel_y = 8; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "seclobby"; + name = "Security Lobby Lockdown"; + pixel_x = -27; + pixel_y = -2; + req_access_txt = "2" }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aiL" = ( /obj/structure/cable{ @@ -3900,6 +3873,10 @@ /area/security/brig) "aiR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, /turf/open/floor/plasteel/red/side{ dir = 1 }, @@ -3970,18 +3947,15 @@ /obj/structure/sign/goldenplaque{ pixel_y = 32 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/red/side{ dir = 1 }, /area/security/brig) "aje" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/red/side{ - dir = 1 + dir = 9 }, /area/security/brig) "ajf" = ( @@ -3998,6 +3972,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/security/brig) "ajh" = ( @@ -4229,11 +4204,12 @@ /turf/open/floor/plasteel, /area/security/brig) "ajJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, /area/security/brig) "ajK" = ( /obj/structure/cable{ @@ -4520,6 +4496,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/light, /turf/open/floor/plasteel/red/side, /area/security/brig) "akq" = ( @@ -4554,6 +4531,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /turf/open/floor/plasteel/red/side{ dir = 9 }, @@ -4820,19 +4800,15 @@ /area/security/brig) "akY" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" - }, -/obj/machinery/door/airlock/glass_security{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 1; + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, /turf/open/floor/plasteel/red/side{ dir = 5 }, @@ -5568,6 +5544,15 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "lobbyairlock"; + name = "Security Lobby Doors Control"; + normaldoorcontrol = 1; + pixel_x = -26; + pixel_y = -2; + req_access_txt = "63" + }, /turf/open/floor/plasteel/black, /area/security/brig) "amU" = ( @@ -5980,13 +5965,13 @@ /area/hallway/primary/fore) "anU" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Courtroom" - }, /obj/machinery/door/poddoor/shutters/preopen{ id = "seclobby"; name = "security shutters" }, +/obj/machinery/door/airlock/glass{ + name = "Courtroom" + }, /turf/open/floor/plasteel/black, /area/security/courtroom) "anV" = ( @@ -6219,6 +6204,7 @@ codes_txt = "patrol;next_patrol=EVA"; location = "Security" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aoz" = ( @@ -6241,7 +6227,6 @@ dir = 1; pixel_y = -24 }, -/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel/red/side{ dir = 10 }, @@ -6687,7 +6672,8 @@ frequency = 1441; id = "waste_out" }, -/turf/open/floor/plating/airless, +/obj/structure/lattice/catwalk, +/turf/open/space, /area/engine/atmos) "apJ" = ( /turf/closed/wall, @@ -7904,9 +7890,7 @@ /obj/item/stack/sheet/plasteel{ amount = 10 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /turf/open/floor/plasteel/yellow/side{ dir = 4 }, @@ -8097,9 +8081,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "atC" = ( -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/structure/rack, /obj/item/stack/cable_coil{ pixel_x = -3; @@ -11614,7 +11596,7 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/space) +/area/crew_quarters/theatre) "aCr" = ( /turf/closed/wall, /area/crew_quarters/theatre) @@ -11812,15 +11794,9 @@ /area/shuttle/arrival) "aCT" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /turf/open/floor/plasteel/yellow/side{ dir = 4 }, @@ -12200,7 +12176,7 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/space) +/area/crew_quarters/theatre) "aDS" = ( /obj/machinery/door/airlock{ name = "Unisex Showers"; @@ -12810,7 +12786,7 @@ }, /obj/structure/dresser, /turf/open/floor/plasteel/redblue/redside, -/area/space) +/area/crew_quarters/theatre) "aFm" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -13234,12 +13210,8 @@ /obj/item/stack/sheet/rglass{ amount = 50 }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, /obj/machinery/light{ dir = 8 }, @@ -13382,7 +13354,7 @@ pixel_x = -28 }, /turf/open/floor/plasteel/redblue, -/area/space) +/area/crew_quarters/theatre) "aGE" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -13720,9 +13692,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) @@ -13878,12 +13847,8 @@ /area/crew_quarters/bar) "aHN" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/crowbar, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -13991,7 +13956,7 @@ /obj/structure/table/wood, /obj/item/device/flashlight/lamp/bananalamp, /turf/open/floor/plasteel/redblue, -/area/space) +/area/crew_quarters/theatre) "aIa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -14486,12 +14451,8 @@ /area/gateway) "aJj" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/storage/toolbox/mechanical{ pixel_x = -2; pixel_y = -1 @@ -16078,12 +16039,8 @@ /area/hallway/primary/central) "aND" = ( /obj/structure/closet/gmcloset, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/stack/cable_coil, /obj/item/device/flashlight/lamp, /obj/item/device/flashlight/lamp/green, @@ -17677,12 +17634,8 @@ icon_state = "0-4" }, /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, /turf/open/floor/plasteel, /area/storage/tools) "aRW" = ( @@ -17718,12 +17671,8 @@ dir = 2 }, /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/storage/box/lights/mixed, /turf/open/floor/plasteel, /area/storage/tools) @@ -20707,9 +20656,7 @@ layer = 2.9 }, /obj/item/stack/sheet/cardboard, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/storage) "aZJ" = ( @@ -23709,14 +23656,11 @@ /area/science/lab) "bhE" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ pixel_x = 3; pixel_y = 3 }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/clothing/glasses/welding, /turf/open/floor/plasteel/white, /area/science/lab) @@ -27237,15 +27181,9 @@ "bpT" = ( /obj/structure/table, /obj/item/storage/belt/utility, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass{ amount = 20; pixel_x = -3; @@ -37024,10 +36962,7 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "bMl" = ( -/obj/machinery/processor{ - desc = "A machine used to process slimes and retrieve their extract."; - name = "Slime Processor" - }, +/obj/machinery/processor/slime, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -37460,14 +37395,11 @@ /area/science/xenobiology) "bNq" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ pixel_x = 3; pixel_y = 3 }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/mineral/plasma, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -38816,7 +38748,7 @@ }, /area/engine/atmos) "bQA" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating/airless, /area/engine/atmos) "bQB" = ( @@ -39704,11 +39636,8 @@ /area/engine/atmos) "bSG" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, @@ -39716,9 +39645,7 @@ /area/engine/atmos) "bSH" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, /obj/item/storage/belt/utility, /obj/item/device/t_scanner, /obj/item/device/t_scanner, @@ -45994,12 +45921,8 @@ dir = 1 }, /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/machinery/light{ dir = 1 }, @@ -46350,15 +46273,9 @@ /area/engine/engineering) "ciX" = ( /obj/structure/closet/crate, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/electronics/airlock, /obj/item/electronics/airlock, /obj/item/stock_parts/cell/high/plus, @@ -48636,15 +48553,9 @@ /area/engine/engineering) "cps" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, /turf/open/floor/plasteel, /area/engine/engineering) "cpt" = ( @@ -48863,9 +48774,7 @@ /area/engine/engineering) "cpX" = ( /obj/structure/table, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /turf/open/floor/plasteel, /area/engine/engineering) "cpY" = ( @@ -49198,12 +49107,8 @@ /area/maintenance/starboard/fore) "cqN" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel, /area/engine/engineering) "cqO" = ( @@ -49831,6 +49736,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "csT" = ( @@ -50432,12 +50340,8 @@ /area/ai_monitored/turret_protected/aisat/service) "cux" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/clothing/head/welding, /obj/item/stack/sheet/mineral/plasma{ amount = 35 @@ -52114,14 +52018,11 @@ /area/shuttle/abandoned) "cyn" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ pixel_x = -2; pixel_y = 2 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -52901,6 +52802,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "cAu" = ( @@ -53041,7 +52945,9 @@ /turf/closed/wall/r_wall, /area/engine/supermatter) "cAQ" = ( -/obj/structure/chair, +/obj/structure/chair{ + dir = 8 + }, /turf/open/floor/plating, /area/maintenance/port/aft) "cAR" = ( @@ -54719,6 +54625,9 @@ /area/engine/engineering) "cGu" = ( /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, /turf/open/floor/engine, /area/engine/engineering) "cGv" = ( @@ -54726,32 +54635,33 @@ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering) "cGx" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, /turf/open/floor/engine, /area/engine/engineering) "cGC" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "Output Release" }, /turf/open/floor/engine, /area/engine/engineering) "cGD" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, -/turf/open/floor/plating, +/turf/closed/wall/r_wall, /area/engine/engineering) "cGE" = ( /obj/effect/spawner/structure/window/plasma/reinforced, @@ -54762,8 +54672,8 @@ /area/engine/engineering) "cGH" = ( /obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 }, /turf/open/floor/plating, /area/engine/engineering) @@ -54786,11 +54696,10 @@ /turf/open/floor/plating, /area/engine/engineering) "cGL" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/turf/open/floor/plating, +/turf/closed/wall/r_wall, /area/engine/engineering) "cGM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -54897,32 +54806,34 @@ /area/engine/engineering) "cHl" = ( /obj/effect/decal/cleanable/dirt, -/turf/closed/wall/r_wall, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, /area/engine/engineering) "cHn" = ( /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/light, /turf/open/floor/plating, /area/engine/engineering) "cHo" = ( /obj/structure/reflector/single/anchored{ dir = 9 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/black, /area/engine/engineering) "cHp" = ( /obj/structure/reflector/single/anchored{ dir = 5 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/black, /area/engine/engineering) "cHr" = ( /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/light, /turf/open/floor/plating, /area/engine/engineering) "cHs" = ( @@ -55097,15 +55008,9 @@ }, /obj/structure/table, /obj/item/storage/belt/utility, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass{ amount = 20; pixel_x = -3; @@ -55715,9 +55620,7 @@ /area/engine/engineering) "cSJ" = ( /obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8; - filter_type = "freon"; - name = "gas filter (freon)" + dir = 8 }, /turf/open/floor/engine, /area/engine/engineering) @@ -56165,9 +56068,7 @@ /area/shuttle/abandoned) "Qlq" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/stock_parts/cell/high{ charge = 100; maxcharge = 15000; @@ -57859,6 +57760,10 @@ /obj/structure/window/reinforced, /obj/vehicle/secway, /obj/item/key/security, +/obj/machinery/door/window/eastleft{ + name = "Secway Docking Port" + }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "QoG" = ( @@ -58152,6 +58057,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "Qpk" = ( @@ -58343,15 +58249,13 @@ /turf/open/floor/plasteel, /area/security/brig) "QpI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/machinery/door_timer{ id = "Cell 2"; name = "Cell 2"; pixel_y = -32 }, /obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/red/corner, /area/security/brig) "QpJ" = ( @@ -58389,19 +58293,15 @@ /area/security/brig) "QpM" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_security{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" - }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 1; + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, /turf/open/floor/plasteel/red/side{ dir = 9 }, @@ -58560,7 +58460,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_security{ cyclelinkeddir = 1; - id_tag = "outerbrig"; + id_tag = "lobbyairlock"; name = "Security Lobby"; req_access_txt = "0" }, @@ -58596,7 +58496,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass_security{ cyclelinkeddir = 1; - id_tag = "outerbrig"; + id_tag = "lobbyairlock"; name = "Security Lobby"; req_access_txt = "0" }, @@ -58696,9 +58596,6 @@ /turf/open/floor/wood, /area/maintenance/bar/cafe) "QqD" = ( -/obj/structure/chair/wood{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, @@ -58708,7 +58605,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/table/wood, /obj/structure/cable{ icon_state = "1-2" }, @@ -58719,9 +58615,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/chair/wood{ - dir = 8 - }, /turf/open/floor/wood, /area/maintenance/bar/cafe) "QqG" = ( @@ -58995,14 +58888,7 @@ /turf/open/floor/plasteel/redyellow, /area/crew_quarters/theatre/clown) "Qrn" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/bikehorn, +/obj/structure/displaycase/clown, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/theatre/clown) "Qro" = ( @@ -59649,7 +59535,8 @@ }, /area/maintenance/bar) "Qth" = ( -/obj/machinery/vending/boozeomat, +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks, /turf/open/floor/wood, /area/maintenance/bar) "Qti" = ( @@ -59723,8 +59610,8 @@ /turf/open/floor/wood, /area/maintenance/bar) "Qts" = ( -/obj/machinery/chem_dispenser/drinks, /obj/structure/table/wood, +/obj/item/storage/box/drinkingglasses, /turf/open/floor/wood, /area/maintenance/bar) "Qtt" = ( @@ -59875,14 +59762,13 @@ /turf/open/floor/wood, /area/maintenance/bar) "QtX" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood{ icon_state = "wood-broken" }, /area/maintenance/bar) "QtY" = ( -/obj/structure/table/wood/poker, +/obj/structure/chair/stool, /turf/open/floor/wood{ icon_state = "wood-broken7" }, @@ -60349,6 +60235,366 @@ }, /turf/closed/wall/r_wall, /area/engine/gravity_generator) +"Qvg" = ( +/obj/structure/window/reinforced, +/obj/machinery/door/window/eastleft{ + name = "Cyborg Docking Port" + }, +/obj/machinery/recharge_station, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"Qvh" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/warden"; + dir = 1; + name = "Brig Control APC"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"Qvi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/rack, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"Qvj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/warden) +"Qvk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"Qvl" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"Qvm" = ( +/obj/structure/table, +/obj/item/folder/red, +/obj/item/pen, +/obj/item/hand_labeler, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/light, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"Qvn" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Armory Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"Qvo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"Qvp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"Qvq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"Qvr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"Qvs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"Qvt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"Qvu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"Qvv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"Qvw" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "seclobby"; + name = "security shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"Qvx" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "seclobby"; + name = "security shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"Qvy" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"Qvz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"QvA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"QvB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"QvC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"QvD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"QvE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"QvF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"QvG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"QvH" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"QvI" = ( +/obj/structure/table/wood/poker, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/storage/pill_bottle/dice, +/turf/open/floor/wood, +/area/maintenance/bar) +"QvJ" = ( +/turf/closed/wall, +/area/engine/gravity_generator) +"QvK" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"QvL" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"QvM" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"QvN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"QvO" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"QvP" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"QvQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"QvR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Output to Waste" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"QvS" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"QvT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"QvU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"QvV" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"QvW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"QvX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"QvY" = ( +/obj/structure/girder, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"QvZ" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/weldingtool, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"Qwa" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/engine/engineering) +"Qwb" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/engine/engineering) +"Qwc" = ( +/obj/structure/rack, +/obj/item/crowbar/large, +/obj/item/device/flashlight, +/turf/open/floor/plasteel/black, +/area/engine/engineering) (1,1,1) = {" aaa @@ -80245,7 +80491,7 @@ avY axo ayB Qqu -QqB +Qqz QqK QqR QqV @@ -80812,7 +81058,7 @@ aaa bCq bPV bCq -Qsn +Qsm bTw bCq bVD @@ -80839,7 +81085,7 @@ aaa aaf aaa bCq -bCq +bLv bLv bLv bLv @@ -81018,12 +81264,12 @@ ayC azH QqE aBS -aDr -aDr -aDr -aDr -aDr -aDr +QqR +QqR +QqR +QqR +QqR +QqR aLE aLE aOl @@ -81070,7 +81316,7 @@ bCq bPW Qsl bSp -bTv +Qsq bCq bVC bWx @@ -81096,7 +81342,7 @@ bLv bLv bLv bCq -ciT +bJe cqK crl bLv @@ -81612,8 +81858,8 @@ bLv bCq cqv cqL -bJe -bLv +ciT +bCq Qoi aaT aaT @@ -81786,7 +82032,7 @@ aag avY axo ayB -Qqy +Qqv QqH QqO aDv @@ -81842,19 +82088,19 @@ bPY cOw bCq Qsr -Qsy -QsG -QsQ -Qtb +Qsr +Qsr +Qsr +Qsr Qtm -Qtx -QtH -cjn -cjn -cjn -cjn -cjn -cjn +Qsr +Qsr +Qsr +Qsr +Qsr +Qsr +Qsr +Qsr bUs bLv aaa @@ -82098,20 +82344,20 @@ bCq bPX bRg bRg -Qss +Qsr Qsz bVG QsR Qtc -Qtn +Qsz Qty -QtI -bcU +Qsr +Qsz QtV bVG -bcU +Qsz Quq -cjn +Qsr bUs bLv aaa @@ -82126,7 +82372,7 @@ aaa aaa aaf aaf -QuD +QvJ aaa QuJ bij @@ -82308,7 +82554,7 @@ Qra Qrh Qrn Qrt -aKx +Qru aLE aMS aOi @@ -82355,20 +82601,20 @@ bLv bQa bHE bHE -Qst +Qsr QsA QsH QsS Qtd Qto -Qtz +Qtd QtJ -QtP -QtW +Qtd +Qtd Qud -Qum +Qua Qur -cjn +Qsr bUs bLv aaf @@ -82620,12 +82866,12 @@ Qte Qtp QtA QtK -QtQ +QtA QtX Que bdV -bcU -cjn +Qsz +Qsr bUs bLv aaa @@ -82869,20 +83115,20 @@ bLv bHE bHE bSs -Qsv +Qsr QsC QsJ QsU Qtf -Qtq -bcU +QsJ +Qsz QtL -QtR -cCa +QtS +bdV Quf cCa Qus -cjn +Qsr bUs bLv aaa @@ -82901,7 +83147,7 @@ QuF btF bsc QuQ -QuU +QuT QuZ bgN big @@ -83126,20 +83372,20 @@ bCq bHE bRh bSr -Qsw +Qsr QsD QsK QsV Qtg Qtr QtB -QtM -bdV +Qsr +Qsz QtY -Qug +Quf cCa Qut -cjn +Qsr bUs bLv aaf @@ -83158,8 +83404,8 @@ QuG btG QuM bsc -QuV -Qva +QuT +QuY bgN bii big @@ -83383,20 +83629,20 @@ bCq bOK bCq bCq -Qsx +Qsr QsE QsL QsW Qth Qts -QtC -cjn +Qsr +Qsr +Qsz bdV -QtZ -Quh +QvI Qun bdV -cjn +Qsr bUs bLv aaa @@ -83410,9 +83656,9 @@ coz cpn Quy Quz -QuC +Quz QuH -QuI +Quz QuN QuR QuW @@ -83642,18 +83888,18 @@ bLv aaa bLv QsF -QsM -QsX -Qti -Qtt -QtD -bcU -bcU -bdV +QsL +Qsr +Qsr +Qsr +Qsr +Qsz +Qsz +Qsz Qui bdV Quu -cjn +Qsr bUs bLv aaa @@ -83668,7 +83914,7 @@ cpm cjJ aaf aaf -Qol +QvK aaa QuO bgO @@ -83898,19 +84144,19 @@ bHE bLv aaf bLv -bUt -QsN +QsF +QsL QsY Qtj Qtu QtE -bcU +Qsz QtS Qua Quj -bcU -bcU -cjn +Qsz +Qsz +Qsr bUs bLv aaf @@ -83925,7 +84171,7 @@ cjJ cjJ aaa aaa -Qol +QvK aaf aaa aaa @@ -84155,19 +84401,19 @@ bLv bCq aaa bLv -bUt -QsO +QsF +QsL QsZ Qtk Qtv -QtF +Qsr QtN QtT Qub Quk Quo Quv -cjn +Qsr bUs bCq aaa @@ -84182,7 +84428,7 @@ cpo cjJ aaa aaa -Qol +QvK aaf Qoi aaa @@ -84334,8 +84580,8 @@ afy agh afA Qpu -QpA -QpD +Qpv +Qpv aiV ajs akb @@ -84415,15 +84661,15 @@ bTB bUv QsP Qta -Qtl -Qtw -QtG -QtO -QtU -Quc -Qul -Qup -Quw +Qta +Qta +Qta +Qta +Qta +Qta +Qta +Qta +Qta car bUs bCq @@ -84592,7 +84838,7 @@ agg afA Qpv QpB -QpE +Qpv aiV ajr aka @@ -84849,7 +85095,7 @@ afA afA Qpw QpC -QpF +Qpv aiV aju akd @@ -85629,7 +85875,7 @@ afL aez ahU aiX -anz +anw aov cCi air @@ -85886,7 +86132,7 @@ ajc afM afN aiX -anz +anw aov cCi aqX @@ -86143,7 +86389,7 @@ adL ahr aih aiX -anz +anw aov ape arT @@ -86400,7 +86646,7 @@ agj agj agj aiX -anQ +Qqf aov cCi apU @@ -87027,7 +87273,7 @@ aaT aaf aaf aaf -aaa +Qoi aaa aaa aaa @@ -87282,8 +87528,8 @@ aaf aaa aaa aaa -aaf aaa +aaf aaa aaa aaa @@ -87532,11 +87778,12 @@ cFI cGd cGs cGr -aaa -aaf -aaa -aaf -aaa +ccw +ccw +ccw +ccw +ccw +ccw aaa aaa aaf @@ -87590,7 +87837,6 @@ aaa aaa aaa aaa -aaa "} (107,1,1) = {" aaa @@ -87682,7 +87928,7 @@ aja akl akP alx -amh +QpP ami aiX anw @@ -87720,7 +87966,7 @@ aZP bbh bcc bdd -bbX +QvH bfr bbX bif @@ -87789,10 +88035,11 @@ cqb cAo cGt cgx -ccw -ccw -ccw -ccw +QvS +csd +cHa +csd +QvZ ccw aaa Qod @@ -87847,7 +88094,6 @@ aaa aaa aaa aaa -aaa "} (108,1,1) = {" aaa @@ -88046,10 +88292,11 @@ cFJ cSH cGu cGH +QvT +QvT cGR -cHa csd -ciZ +csd ccw aaa aaT @@ -88104,7 +88351,6 @@ aaa aaa aaa aaa -aaa "} (109,1,1) = {" aaa @@ -88245,10 +88491,10 @@ aaa Qoi aaa QrT -bsb -bsb -bsb -bsb +QrT +QrT +QrT +QrT aXf aJq byU @@ -88307,6 +88553,7 @@ cGS cHb cHg cHn +Qwa ccw aaf aaT @@ -88361,7 +88608,6 @@ aaa aaa aaa aaa -aaa "} (110,1,1) = {" aaa @@ -88447,8 +88693,8 @@ agn agR agn agR +Qvj agn -ajc QpG akv QpL @@ -88501,11 +88747,11 @@ aBb aBb QrP aaa -bsb +QrT QrV Qsc Qsf -bsb +QrT aXf aJq bBi @@ -88558,12 +88804,13 @@ cEz cMD cFL cGf -cGu +QvN cMm ciZ cHc cAu cAu +ciZ ccw aaa aaT @@ -88618,7 +88865,6 @@ aaa aaa aaa aaa -aaa "} (111,1,1) = {" aaa @@ -88688,7 +88934,7 @@ aaa aaa aaa aaf -Qow +Qov aaf aaZ adi @@ -88701,12 +88947,12 @@ acv Qpn aaZ aeW -agQ -ahv +Qvi +agp ahQ +Qvk aiI -aiH -ajB +ajI QpJ akQ agj @@ -88750,7 +88996,7 @@ aZR aZR aZR bft -QrB +Qrz aBa aBT bmv @@ -88758,7 +89004,7 @@ aEN aGb bpg aaa -bsb +QrT QrW buP bwm @@ -88815,12 +89061,13 @@ cFe cMD cFM czE -cGu +QvN ccw cGT csd csd -ciZ +csd +csd ccw aaf aaT @@ -88875,7 +89122,6 @@ aaa aaa aaa aaa -aaa "} (112,1,1) = {" aaa @@ -88945,25 +89191,25 @@ aaa aaa aaa aaf -Qox +Qov aaf aaZ adi QoR -Qpa +QoZ aaZ acl cxA acL Qpo aaZ -agp +Qvh agT ahx ahS aiK -ajc -QpH +Qvn +QpG akm akT aly @@ -89007,7 +89253,7 @@ bbm bdh bee bfv -QrC +Qrz aBa QrL aEM @@ -89078,6 +89324,7 @@ cGU csd csd cHo +csd ccw aaa aaT @@ -89132,7 +89379,6 @@ aaa aaa aaa aaa -aaa "} (113,1,1) = {" aaa @@ -89202,7 +89448,7 @@ aaa aaa aaa aaf -Qoy +Qov aaf aaZ adi @@ -89214,29 +89460,29 @@ adk adK cqG aeX -ago +agt agS agQ -ahR +agt aiJ -ajc +aiL ajI akl akS alx -amh +QpP amp aiX anS aoy -apj -anz -anz -anz -anz -anz -anz -awk +Qvz +QvA +QvA +QvA +QvA +QvA +QvA +QvG axB anz anz @@ -89264,7 +89510,7 @@ bcf bdg bed bfv -QrD +Qrz aBa aBV alu @@ -89329,12 +89575,13 @@ cMH cMN cFO cSI -csC +cSI cMm cGV csd cGV -ccw +QvY +csd ccw aaa aaT @@ -89389,7 +89636,6 @@ aaa aaa aaa aaa -aaa "} (114,1,1) = {" aaa @@ -89459,11 +89705,11 @@ aaa aaa aaa aaf -Qoz +Qov aaf aaZ adi -QoT +QoR Qpc aaZ Qpi @@ -89475,9 +89721,9 @@ agr agU ahy ahX -aiL -ajc -ajI +Qvl +aiN +Qvo akq akQ agj @@ -89521,7 +89767,7 @@ bbm bdh bef bfv -QrE +Qrz aBa QrM aEO @@ -89592,6 +89838,7 @@ csd csd csd cHp +csd ccw aaf aaT @@ -89646,7 +89893,6 @@ aaa aaa aaa aaa -aaa "} (115,1,1) = {" aaa @@ -89716,12 +89962,12 @@ aaa aaa aaa aaf -QoA +Qov aaf aaZ QoK QoU -Qpd +Qpc aaZ Qpj coS @@ -89732,10 +89978,10 @@ agt agt ahz aie -aiN -ajc -ajI -akp +agt +aiM +Qvp +Qvs akU alz aml @@ -89778,7 +90024,7 @@ aZR aZR aZR bfw -QrF +Qrz aBa aBW bjy @@ -89786,7 +90032,7 @@ aEP aGe bpi aaa -bsb +QrT Qsa buR aFM @@ -89843,12 +90089,13 @@ cFh cMD cFM czE -cGu +QvN ccw cGT csd csd -ciZ +csd +csd ccw aaf aaT @@ -89873,7 +90120,6 @@ aaa aaa aaa aaa -aaa cBY aaa aaa @@ -89973,7 +90219,7 @@ aaa aaa aaa aaf -QoB +Qov aaf aaZ QoL @@ -89989,17 +90235,17 @@ cml agV cxk aig -aiM -ajc -ajI -akp +Qvm +agn +Qvq +Qvt akV alB amn amV Qqb anB -Qqo +QpX aod aqf ahT @@ -90043,11 +90289,11 @@ aBc aBc QrR aaa -bsb +QrT Qsb Qse Qsh -bsb +QrT aJq aJq bBu @@ -90100,12 +90346,13 @@ cEz cMD cFR cSJ -cGu +QvN cMm ciZ cHd cHj cHd +ciZ ccw aaa aaT @@ -90160,7 +90407,6 @@ aaa aaa aaa aaa -aaa "} (117,1,1) = {" aaa @@ -90230,7 +90476,7 @@ aaa aaa aaa aaf -QoC +Qov aaf aaZ QoM @@ -90238,18 +90484,18 @@ ack Qpf abN Qpl -bkA +acF acF aes avB amN agt -awN +ahB aHp -aIF -ajc -ajI -akp +agn +agn +Qvr +Qvu amS alA QpT @@ -90292,19 +90538,19 @@ bcg aZU beg aYB -QrH -QrK +Qrz +QrJ aaf aaf Qoi aaa Qoi aaa -bsb -bsb -bsb -bsb -bsb +QrT +QrT +QrT +QrT +QrT aJq aJq bBt @@ -90357,12 +90603,13 @@ cFj cEf cFS cGg -cGv +QvR cGI cGS cHe cHe cHr +Qwa ccw aaf aaT @@ -90417,7 +90664,6 @@ aaa aaa aaa aaa -aaa "} (118,1,1) = {" aaa @@ -90487,7 +90733,7 @@ aaa aaa aaa aaf -QoD +Qov aaf aaZ QoN @@ -90506,13 +90752,13 @@ aij agn aje ajJ -akr -amS +Qvv +Qvw alC QpU -amX -amX -amX +QpU +QpU +QpU aoB aod aqe @@ -90616,10 +90862,11 @@ cFT cSK cGx cGK +QvU +QvU cGY -cEk csd -cHs +csd ccw aaf aaT @@ -90674,7 +90921,6 @@ aaa aaa aaa aaa -aaa "} (119,1,1) = {" aaa @@ -90762,13 +91008,13 @@ ahE aii agn ajd -ajI -akp -amS +ajb +akr +Qvw QpO amo -amX -amX +QpU +QpU Qqi Qqp Qqq @@ -90873,10 +91119,11 @@ cqb cGh cGC cey -ccw -ccw +QvV +csd cHl -ccw +csd +Qwc ccw aaf aaT @@ -90931,7 +91178,6 @@ aaa aaa aaa aaa -aaa "} (120,1,1) = {" aaa @@ -91003,8 +91249,8 @@ aaa aaa abp QoF -QoH -abO +QoF +Qvg abO abO acO @@ -91019,11 +91265,11 @@ ahA ahZ adR aiQ -ajI +QpG akt QpM anw -QpV +QpO QpX anB Qqj @@ -91130,15 +91376,15 @@ cBR cGi cGD cGL -aag -aag +ccw +ccw +ccw +ccw +ccw +ccw aaf +Qoi aaf -aaf -aaf -aaa -aaf -aaa aaa aaa aaa @@ -91280,10 +91526,10 @@ ajK aks akY anA -QpW +QpO QpY amo -Qqk +Qqj aoC aod aqe @@ -91394,8 +91640,8 @@ aaf aaa aaa aaa -aaf -aaa +aHr +Qoi aaa aaa aaa @@ -91519,10 +91765,10 @@ abp abO abO QoO -QoY -acq -acq -acq +QoO +QoO +QoO +QoO abO aew afe @@ -91539,7 +91785,7 @@ aiX akz alf QpZ -Qqd +QpZ Qql aoF apo @@ -91904,10 +92150,10 @@ aaa aaa aaf aaa +aaa aaf ctv aaT -aaa aaf aaa aaa @@ -92034,9 +92280,9 @@ aco QoI QoP abR -abP -abP -abP +QoP +QoP +QoP abl abp abp @@ -92160,11 +92406,11 @@ ccw aaf aaf aaf +Qoi aaf aaf ctv aaT -aaa aaf aaa aaa @@ -92286,9 +92532,9 @@ aaa aaa aaf aaf -QoE -QoG -QoJ +abp +abp +abp abq abq abq @@ -92417,6 +92663,7 @@ aaa aaa aaa aaa +aaa ctv ctv ctv @@ -92473,7 +92720,6 @@ aaa aaa aaa aaa -aaa "} (126,1,1) = {" aaa @@ -92674,11 +92920,11 @@ aaa aaa aaa aaa -aaT -aaT -aaT -aaT aaa +aaT +aaT +aaT +aaT aaa aae aaa @@ -106701,8 +106947,8 @@ aaf aaf aaf aaf -aaf -aaf +alP +Qvy alP anf alP @@ -106958,8 +107204,8 @@ aaa aaa aaa aaa -aaa -aaf +alP +alP alP anf alP diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 1308cf7c87..b454b9f9c2 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -1703,9 +1703,7 @@ /area/construction/mining/aux_base) "aeg" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass{ amount = 30 }, @@ -1765,12 +1763,8 @@ /area/construction/mining/aux_base) "aep" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/plasteel{ - amount = 20 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/plasteel/twenty, +/obj/item/stack/rods/fifty, /obj/item/storage/box/lights/mixed, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -16643,9 +16637,7 @@ pixel_y = 1 }, /obj/structure/table/reinforced, -/obj/item/stack/sheet/plasteel{ - amount = 20 - }, +/obj/item/stack/sheet/plasteel/twenty, /obj/item/stack/sheet/rglass{ amount = 20; pixel_x = 2; @@ -27726,24 +27718,16 @@ /area/engine/atmos) "bjh" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bji" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/grenade/chem_grenade/smart_metal_foam, /obj/item/grenade/chem_grenade/smart_metal_foam, /obj/machinery/newscaster{ @@ -33750,9 +33734,7 @@ /area/engine/break_room) "bvk" = ( /obj/structure/table/reinforced, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/stack/sheet/rglass{ amount = 30; pixel_x = 2; @@ -33767,9 +33749,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/stack/sheet/plasteel{ - amount = 50 - }, +/obj/item/stack/sheet/plasteel/fifty, /obj/item/crowbar/power, /obj/structure/sign/nanotrasen{ pixel_x = 32 @@ -38517,9 +38497,7 @@ pixel_y = -26 }, /obj/structure/table/reinforced, -/obj/item/stack/sheet/plasteel{ - amount = 20 - }, +/obj/item/stack/sheet/plasteel/twenty, /obj/item/wrench, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -42839,12 +42817,8 @@ /area/storage/tools) "bMM" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -47590,12 +47564,8 @@ /area/ai_monitored/security/armory) "bVC" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/stack/sheet/mineral/plasma{ amount = 20 }, @@ -52966,15 +52936,9 @@ /turf/closed/wall, /area/security/range) "cgY" = ( -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/target, /obj/item/target/syndicate, /obj/item/target/alien, @@ -59648,10 +59612,7 @@ dir = 1; pixel_y = 1 }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/shoes/magboots{ pixel_x = -4; pixel_y = 3 @@ -61074,10 +61035,7 @@ req_access_txt = "19" }, /obj/structure/window/reinforced, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/tank/jetpack/carbondioxide{ pixel_x = 4; pixel_y = -1 @@ -62588,9 +62546,7 @@ /area/engine/storage) "cBj" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/plasteel{ - amount = 50 - }, +/obj/item/stack/sheet/plasteel/fifty, /obj/item/stack/sheet/rglass{ amount = 50; pixel_x = 2; @@ -63210,9 +63166,7 @@ /area/engine/storage) "cCE" = ( /obj/structure/table/reinforced, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/wrench, /obj/item/storage/box/lights/mixed, /obj/effect/turf_decal/bot, @@ -70734,12 +70688,8 @@ /area/science/research) "cSp" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/stack/packageWrap, /obj/machinery/light, /turf/open/floor/plasteel/whitepurple/corner, @@ -72312,12 +72262,8 @@ /area/science/lab) "cVH" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/wrench, /obj/item/clothing/glasses/welding, /obj/machinery/newscaster{ @@ -77516,15 +77462,9 @@ /turf/open/floor/plasteel, /area/science/misc_lab/range) "dhx" = ( -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/target, /obj/item/target/syndicate, /obj/item/target/alien, @@ -80984,12 +80924,8 @@ /area/science/research/abandoned) "doT" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/device/assembly/flash/handheld, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -83491,18 +83427,10 @@ }, /area/crew_quarters/heads/hor) "dtX" = ( -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/structure/table/reinforced, /obj/machinery/requests_console{ department = "Robotics Lab"; @@ -88169,15 +88097,9 @@ /turf/open/floor/plasteel, /area/science/mixing) "dDL" = ( -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/target, /obj/item/target/syndicate, /obj/item/target/alien, @@ -97654,9 +97576,7 @@ /obj/item/stack/sheet/metal{ amount = 30 }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, /obj/item/crowbar/red, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -98048,9 +97968,7 @@ pixel_x = 2; pixel_y = -2 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /turf/open/floor/plating, /area/maintenance/port/aft) "dYV" = ( @@ -99063,9 +98981,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/components/trinary/filter/critical{ - dir = 4; - filter_type = "freon"; - name = "gas filter (freon)" + dir = 4 }, /turf/open/floor/plasteel/neutral, /area/engine/atmospherics_engine) @@ -100249,18 +100165,10 @@ /area/security/courtroom) "efU" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/crowbar, /obj/item/grenade/chem_grenade/smart_metal_foam, /obj/item/grenade/chem_grenade/smart_metal_foam, @@ -100272,9 +100180,7 @@ /area/engine/storage) "efV" = ( /obj/structure/table/reinforced, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/wrench, /obj/item/storage/box/lights/mixed, /obj/effect/decal/cleanable/dirt, @@ -102648,6 +102554,2910 @@ /obj/machinery/vending/kink, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"YGP" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YGQ" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YGR" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YGS" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 2; + name = "External Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YGT" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YGU" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YGV" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YGW" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YGX" = ( +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YGY" = ( +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YGZ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHa" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHb" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHc" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YHd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YHe" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YHf" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHg" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHh" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHi" = ( +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHj" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHk" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHl" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHm" = ( +/obj/structure/closet/firecloset/full, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHn" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHo" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHp" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YHq" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/circuitboard/machine/hydroponics, +/turf/open/floor/plasteel/greenblue/side{ + dir = 5 + }, +/area/shuttle/abandoned) +"YHr" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YHs" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 1; + glass = 1; + name = "Internal Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YHt" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YHu" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/mining, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/flour, +/turf/open/floor/plasteel/greenblue/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"YHv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YHw" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHx" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHy" = ( +/obj/structure/closet/emcloset, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHz" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHA" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHB" = ( +/obj/structure/closet/crate{ + name = "emergency supplies crate" + }, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency, +/obj/item/device/flashlight/flare{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/flashlight/flare{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/crowbar, +/obj/item/wrench, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/extinguisher, +/obj/item/extinguisher, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHC" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/box/hug/medical, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHD" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass_maintenance{ + name = "Maintenance" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YHE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YHF" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"YHG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"YHH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YHI" = ( +/obj/structure/sink/kitchen{ + pixel_z = 30 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"YHJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"YHK" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YHL" = ( +/obj/machinery/door/airlock/glass_maintenance{ + name = "Maintenance" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YHM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHN" = ( +/obj/structure/closet/crate{ + name = "spare equipment crate" + }, +/obj/item/grenade/chem_grenade/metalfoam, +/obj/item/relic, +/obj/item/device/t_scanner, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct/small{ + dir = 4 + }, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHO" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHP" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHQ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHR" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YHS" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YHT" = ( +/obj/machinery/vending/hydroseeds, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side, +/area/shuttle/abandoned) +"YHU" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/stack/sheet/metal/fifty, +/obj/item/circuitboard/machine/hydroponics, +/obj/item/circuitboard/machine/gibber, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"YHV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YHW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YHX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YHY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned) +"YHZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side, +/area/shuttle/abandoned) +"YIa" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YIb" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIc" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YId" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIe" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIf" = ( +/obj/structure/closet/wardrobe, +/obj/item/clothing/under/trek/command/next, +/obj/item/clothing/under/trek/command/next, +/obj/item/clothing/under/trek/engsec/next, +/obj/item/clothing/under/trek/engsec/next, +/obj/item/clothing/under/trek/medsci/next, +/obj/item/clothing/under/trek/medsci/next, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/spawner/lootdrop/costume, +/obj/item/clothing/under/rank/centcom_commander{ + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" + }, +/obj/item/clothing/under/rank/centcom_officer{ + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" + }, +/obj/item/clothing/under/rank/centcom_officer{ + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" + }, +/obj/item/clothing/head/centhat{ + desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; + name = "\improper damaged CentCom hat" + }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned) +"YIg" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned) +"YIh" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YIi" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YIj" = ( +/obj/item/storage/bag/plants/portaseeder, +/obj/structure/table, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/reagent_containers/glass/bottle/nutrient/rh{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"YIk" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YIl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YIm" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YIn" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"YIo" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YIp" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"YIq" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIr" = ( +/obj/item/soap, +/obj/structure/curtain, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/shower{ + pixel_y = 15 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned) +"YIs" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIt" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIu" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned) +"YIv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned) +"YIw" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/dice, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned) +"YIx" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIy" = ( +/obj/structure/table, +/obj/item/wrench, +/obj/item/crowbar, +/obj/item/clothing/suit/apron, +/obj/item/shovel/spade, +/obj/item/cultivator, +/obj/item/device/plant_analyzer, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/wirecutters, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"YIz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YIA" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YIB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YIC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"YID" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned) +"YIF" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned) +"YIH" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YII" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/mopbucket, +/turf/open/floor/plasteel/greenblue/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"YIK" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YIL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YIM" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"YIO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YIP" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YIQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YIR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/shuttle/abandoned) +"YIS" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + name = "Laborotary" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YIU" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + name = "Laborotary" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YIW" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIX" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YIY" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"YIZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YJa" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YJb" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + glass = 1; + name = "Dormitory"; + opacity = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YJc" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"YJd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/gun/energy/floragun, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJe" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJf" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"YJh" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + name = "Laborotary" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YJi" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YJj" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YJk" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YJl" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJm" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJn" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/bed, +/turf/open/floor/plasteel/greenblue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"YJo" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side, +/area/shuttle/abandoned) +"YJp" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/mop, +/turf/open/floor/plasteel/greenblue/side, +/area/shuttle/abandoned) +"YJq" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJr" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/gps{ + gpstag = "ITVSAC"; + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"YJs" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJt" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJu" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"YJw" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJx" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/structure/mirror{ + pixel_x = -30 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJy" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/bikehorn/rubberducky, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YJz" = ( +/obj/structure/urinal{ + pixel_x = 30; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJA" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJB" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJC" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJD" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJE" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJF" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJG" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YJH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + glass = 1; + name = "Crew Quarters"; + opacity = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YJI" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + glass = 1; + name = "Crew Quarters"; + opacity = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YJK" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YJL" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJM" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/structure/mirror{ + pixel_x = -30 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YJO" = ( +/obj/structure/urinal{ + pixel_x = 30; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJP" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJQ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJR" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex/nitrile, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"YJS" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YJT" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 5 + }, +/area/shuttle/abandoned) +"YJU" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YJV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/clothing/head/helmet/swat/nanotrasen, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"YJW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/built{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YJZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/clothing/gloves/color/black, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"YKa" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKb" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKc" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKd" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKe" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKf" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YKg" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/defibrillator/loaded, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"YKh" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YKi" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/backpack/duffelbag/med/surgery, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"YKj" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKk" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/obj/structure/table, +/obj/item/clothing/suit/armor/vest, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"YKl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YKm" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YKn" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YKo" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 4 + }, +/obj/structure/table, +/obj/item/gun/energy/e_gun/mini, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"YKp" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKq" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/abandoned) +"YKr" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/abandoned) +"YKs" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"YKt" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKu" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YKv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/computer, +/obj/item/circuitboard/computer/operating, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"YKw" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YKx" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"YKy" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YKz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/arrival/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"YKA" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/suit/armor/vest, +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YKB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YKC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/crowbar/red, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YKD" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YKE" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 4; + glass = 1; + name = "Internal Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"YKF" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YKG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YKH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YKI" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 8; + name = "External Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YKJ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKK" = ( +/obj/machinery/iv_drip, +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = -28; + req_access_txt = "0"; + use_power = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"YKL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YKM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YKN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YKO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/shuttle/abandoned) +"YKP" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YKQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YKR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YKS" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/head/helmet/swat/nanotrasen, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YKT" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKU" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKV" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YKW" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKX" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKY" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YKZ" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"YLa" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct, +/turf/open/floor/plasteel/whiteblue/side, +/area/shuttle/abandoned) +"YLb" = ( +/obj/structure/closet/secure_closet/medical2{ + req_access = null + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/glasses/hud/health/sunglasses, +/turf/open/floor/plasteel/whiteblue/side, +/area/shuttle/abandoned) +"YLc" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YLd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/arrival/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"YLe" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLf" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLh" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLi" = ( +/obj/structure/sign/engineering, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YLj" = ( +/obj/machinery/autolathe, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YLk" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"YLl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLm" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YLn" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YLo" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YLp" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YLq" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YLr" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YLs" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLt" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLu" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate/science, +/obj/effect/decal/cleanable/leaper_sludge, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLw" = ( +/obj/structure/closet/crate/engineering, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/rglass{ + amount = 20 + }, +/obj/item/stack/sheet/mineral/titanium/fifty, +/turf/open/floor/plasteel/yellow/corner, +/area/shuttle/abandoned) +"YLx" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YLy" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/rglass{ + amount = 20 + }, +/obj/item/clothing/head/welding, +/obj/structure/light_construct{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YLz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"YLA" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLB" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YLC" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YLD" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"YLE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YLF" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YLG" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YLH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"YLI" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/paper/crumpled/bloody{ + info = "Your vessel will be transporting artifact E-395 to our nearby research station. Under no circumstances is the container to be opened. Half of the payment will be given now, rest upon completion. In the event of containment breach--" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YLK" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"YLM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering Storage" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"YLN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YLO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"YLP" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLQ" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YLR" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YLS" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"YLT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YLU" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YLV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Research Lab" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YLW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"YLX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/gloves/color/black, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YLZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/greenglow, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMa" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/airlock_painter, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"YMb" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMc" = ( +/obj/structure/closet/toolcloset, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YMd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/stack/rods/twentyfive, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"YMe" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/light_construct/small, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMf" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMg" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YMh" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/computer, +/obj/item/stock_parts/console_screen, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"YMi" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/circuitboard/machine/circuit_imprinter, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YMj" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/machine, +/turf/open/floor/plasteel/whitepurple/corner, +/area/shuttle/abandoned) +"YMk" = ( +/obj/structure/sign/science, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"YMm" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMn" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMo" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMp" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMq" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMr" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMs" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YMt" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMu" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMv" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YMw" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/machine, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"YMx" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"YMy" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/machine, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"YMz" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMA" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YMC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMD" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YME" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMF" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 4; + glass = 1; + name = "Internal Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"YMG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YMH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YMI" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YMJ" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 8; + name = "External Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/docking_port/mobile{ + dheight = 0; + dir = 8; + dwidth = 11; + height = 15; + id = "whiteship"; + launch_status = 0; + name = "White-Ship"; + port_direction = 8; + preferred_direction = 8; + roundstart_move = "whiteship_away"; + width = 32 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 11; + height = 15; + id = "whiteship_home"; + name = "SS13: Auxiliary Dock, Station-Fore"; + width = 32 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YMK" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YML" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"YMM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel/whitepurple/side, +/area/shuttle/abandoned) +"YMN" = ( +/obj/structure/closet/crate/science{ + name = "spare circuit boards crate" + }, +/obj/item/circuitboard/computer/rdconsole, +/obj/item/circuitboard/machine/protolathe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6 + }, +/area/shuttle/abandoned) +"YMO" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMP" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned) +"YMR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/built, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"YMS" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"YMT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"YMU" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMV" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YMW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YMX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"YMY" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YMZ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNa" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNb" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNc" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNd" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNe" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + welded = 1 + }, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/abandoned) +"YNf" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNg" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNh" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNi" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + welded = 1 + }, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/abandoned) +"YNj" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNk" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNl" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNm" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNn" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNo" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNp" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"YNq" = ( +/obj/structure/closet/crate, +/obj/item/paper_bin, +/obj/item/stack/sheet/metal/twenty, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/under/gimmick/rank/captain/suit, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"YNr" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNs" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/megaphone, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"YNt" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/built{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"YNu" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"YNv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNw" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"YNx" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/device/camera, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/shuttle/abandoned) +"YNy" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNz" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNA" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/obj/item/phone, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"YNB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YND" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/torso, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/shard, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNF" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNI" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"YNJ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"YNK" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YNL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"YNM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"YNN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/pen/fountain/captain, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/shuttle/abandoned) +"YNO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNP" = ( +/obj/structure/chair/comfy/black, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"YNR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"YNS" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/photo_album, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned) +"YNT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/shuttle/abandoned) +"YNU" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YNV" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YNW" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YNX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/fancy/cigarettes/cigars/cohiba, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"YNY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{ + x_offset = -7; + y_offset = -8 + }, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"YNZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/device/pda/clear, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"YOa" = ( +/obj/machinery/computer/shuttle/white_ship, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"YOb" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/device/radio, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"YOc" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"YOd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/shuttle/abandoned) +"YOe" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOf" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOg" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOh" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOi" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOj" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOk" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOl" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOm" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOn" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOo" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"YOp" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"YOq" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"YOr" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"YOs" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"YOt" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"YOu" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"YOv" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) (1,1,1) = {" aaa @@ -124334,19 +127144,19 @@ aNF aPi aNV aSK -aIU +YOq aWc aNV aSK -aIU +YOs aWc aNV aSK -aIU +YOu aWc aNV aWc -aIU +YOv aSK aNV aaH @@ -130441,28 +133251,28 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YGW +YHl +YHA +YHP +YIe +YIt +YII +YIX +YJm +YJB +YJQ +YKf +YKu +YKJ +YKY +YLn +YLC +YLR +YMg +YMv +YMK +YMZ aaa aaa aaa @@ -130697,29 +133507,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YGP +YGX +YHm +YHB +YHQ +YIf +YIu +YIJ +YIY +YJn +YJC +YJR +YKg +YKv +YKK +YKZ +YLo +YLD +YLS +YMh +YMw +YML +YNa aaa aaa aaa @@ -130757,15 +133567,15 @@ aaa aaf aNV aPy -aIU +YOp aTf aNV aWv -aIU +YOr aZy aNV aWv -aIU +YOt aZy aNV aJg @@ -130954,33 +133764,33 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YGQ +YGY +YHn +YHC +YHR +YIg +YIv +YIK +YIZ +YJo +YJD +YJS +YKh +YKw +YKL +YLa +YLp +YLE +YLT +YMi +YMx +YMM +YNb +YNo +YNz +YNK +YNV aaa aaa aaa @@ -131212,33 +134022,33 @@ aad aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YGZ +YHo +YHD +YHS +YIh +YIw +YIL +YJa +YJp +YJE +YJT +YKi +YKx +YKM +YLb +YLq +YLF +YLU +YMj +YMy +YMN +YNc +YNp +YNA +YNL +YNW +YOg aaa aaa aaa @@ -131469,33 +134279,33 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YHa +YHp +YHE +YHT +YIi +YIx +YIM +YJb +YJq +YJF +YJU +YKj +YKy +YKN +YLc +YLr +YLG +YLV +YMk +YMz +YMO +YNd +YNq +YNB +YNM +YNX +YOh aaa aaa aaa @@ -131726,33 +134536,33 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YHb +YHq +YHF +YHU +YIj +YIy +YIN +YJc +YJr +YJG +YJV +YKk +YKz +YKO +YLd +YLs +YLH +YLW +YMl +YMA +YMP +YNe +YNr +YNC +YNN +YNY +YOi aaa aaa aaa @@ -131982,34 +134792,34 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YGR +YHc +YHr +YHG +YHV +YIk +YIz +YIO +YJd +YJs +YJH +YJW +YKl +YKA +YKP +YLe +YLt +YLI +YLX +YMm +YMB +YMQ +YNf +YNs +YND +YNO +YNZ +YOj aaa aaa aaa @@ -132239,34 +135049,34 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YGS +YHd +YHs +YHH +YHW +YIl +YIA +YIP +YJe +YJt +YJI +YJX +YKm +YKB +YKQ +YLf +YLu +YLJ +YLY +YMn +YMC +YMR +YNg +YNt +YNE +YNP +YOa +YOk aaa aaa aaa @@ -132496,34 +135306,34 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YGT +YHe +YHt +YHI +YHX +YIm +YIB +YIQ +YJf +YJu +YJJ +YJY +YKn +YKC +YKR +YLg +YLv +YLK +YLZ +YMo +YMD +YMS +YNh +YNu +YNF +YNQ +YOb +YOl aaa aaa aaa @@ -132754,33 +135564,33 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YHf +YHu +YHJ +YHY +YIn +YIC +YIR +YJg +YJv +YJK +YJZ +YKo +YKD +YKS +YLh +YLw +YLL +YMa +YMp +YME +YMT +YNi +YNv +YNG +YNR +YOc +YOm aaa aaa aaa @@ -133011,33 +135821,33 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YHg +YHv +YHK +YHZ +YIo +YID +YIS +YJh +YJw +YJL +YKa +YKp +YKE +YKT +YLi +YLx +YLM +YMb +YMq +YMF +YMU +YNj +YNw +YNH +YNS +YOd +YOn aaa aaa aaa @@ -133268,33 +136078,33 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YHh +YHw +YHL +YIa +YIp +YIE +YIT +YJi +YJx +YJM +YKb +YKq +YKF +YKU +YLj +YLy +YLN +YMc +YMr +YMG +YMV +YNk +YNx +YNI +YNT +YOe +YOo aaa aaa aaa @@ -133524,33 +136334,33 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YGU +YHi +YHx +YHM +YIb +YIq +YIF +YIU +YJj +YJy +YJN +YKc +YKr +YKG +YKV +YLk +YLz +YLO +YMd +YMs +YMH +YMW +YNl +YNy +YNJ +YNU +YOf aaa aaa aaa @@ -133781,29 +136591,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YGV +YHj +YHy +YHN +YIc +YIr +YIG +YIV +YJk +YJz +YJO +YKd +YKs +YKH +YKW +YLl +YLA +YLP +YMe +YMt +YMI +YMX +YNm aaa aaa aaa @@ -134039,28 +136849,28 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +YHk +YHz +YHO +YId +YIs +YIH +YIW +YJl +YJA +YJP +YKe +YKt +YKI +YKX +YLm +YLB +YLQ +YMf +YMu +YMJ +YMY +YNn aaa aaa aaa diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 1b1913ef26..7a04dc6d06 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -4798,10 +4798,7 @@ /turf/open/floor/plating, /area/maintenance/port) "akp" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/gloves/color/yellow, /obj/item/mop, /obj/item/bikehorn/rubberducky, @@ -4823,10 +4820,7 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "aks" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/neck/tie/red{ pixel_x = -5; pixel_y = 3 @@ -5195,9 +5189,7 @@ /turf/open/floor/plasteel, /area/security/range) "akZ" = ( -/obj/structure/rack{ - pixel_y = 2 - }, +/obj/structure/rack, /obj/item/gun/energy/laser/practice{ pixel_x = 2; pixel_y = -2 @@ -5515,10 +5507,7 @@ /obj/structure/light_construct/small{ dir = 4 }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/secure/briefcase, /obj/item/disk/data, /obj/item/grenade/flashbang, @@ -6180,9 +6169,7 @@ /turf/open/floor/plating, /area/maintenance/port) "ana" = ( -/obj/structure/rack{ - dir = 1 - }, +/obj/structure/rack, /obj/item/clothing/under/rank/mailman, /obj/item/clothing/under/rank/vice{ pixel_x = 4; @@ -7176,10 +7163,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "ape" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/belt{ desc = "Can hold quite a lot of stuff."; name = "multi-belt" @@ -7355,10 +7339,7 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "apx" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/secure_data{ pixel_x = -2; pixel_y = 2 @@ -7725,10 +7706,7 @@ /obj/item/device/mmi{ name = "man-machine interface" }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/starboard/fore) @@ -10395,18 +10373,15 @@ /area/hallway/primary/port) "avI" = ( /obj/structure/closet/crate, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, @@ -12120,9 +12095,7 @@ }, /area/quartermaster/miningoffice) "azp" = ( -/obj/structure/rack{ - dir = 1 - }, +/obj/structure/rack, /obj/item/storage/toolbox/emergency{ pixel_x = 2; pixel_y = -3 @@ -13509,10 +13482,7 @@ /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "aCc" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/electronics/apc, /obj/item/stock_parts/cell{ maxcharge = 2000 @@ -14363,10 +14333,7 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aDN" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/briefcase{ pixel_x = -3; pixel_y = 2 @@ -15329,9 +15296,7 @@ }, /area/quartermaster/miningoffice) "aFH" = ( -/obj/structure/rack{ - dir = 1 - }, +/obj/structure/rack, /obj/item/pickaxe{ pixel_x = 5 }, @@ -15933,9 +15898,7 @@ /area/crew_quarters/dorms) "aGQ" = ( /obj/structure/table, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/wrench, /obj/item/storage/box/lights/mixed, /obj/effect/turf_decal/bot{ @@ -15947,24 +15910,12 @@ /area/engine/engineering) "aGR" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/crowbar, /obj/item/grenade/chem_grenade/smart_metal_foam, /obj/item/grenade/chem_grenade/smart_metal_foam, @@ -17061,10 +17012,7 @@ /turf/open/floor/wood, /area/lawoffice) "aIW" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/briefcase{ pixel_x = -3; pixel_y = 2 @@ -18822,15 +18770,9 @@ /area/engine/engineering) "aNo" = ( /obj/structure/closet/crate, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/electronics/airlock, /obj/item/electronics/airlock, /obj/item/stock_parts/cell/high{ @@ -20879,15 +20821,9 @@ /area/construction/mining/aux_base) "aRF" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/pipe_dispenser, /obj/machinery/light{ dir = 4 @@ -21411,9 +21347,7 @@ /obj/item/stack/sheet/plasteel{ amount = 10 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/storage/box/lights/mixed, /turf/open/floor/plasteel/yellow/side{ dir = 6 @@ -23974,10 +23908,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "aYi" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/toolbox/electrical{ pixel_x = 1; pixel_y = -1 @@ -23988,10 +23919,7 @@ /turf/open/floor/plasteel/black, /area/storage/tech) "aYj" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/pandemic{ pixel_x = -3; pixel_y = 3 @@ -24010,10 +23938,7 @@ /turf/open/floor/plasteel/black, /area/storage/tech) "aYk" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/mining, /obj/item/circuitboard/machine/autolathe{ pixel_x = 3; @@ -25616,10 +25541,7 @@ }, /area/maintenance/starboard/fore) "bbk" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/borgupload{ pixel_x = -1; pixel_y = 1 @@ -25657,10 +25579,7 @@ }, /area/storage/tech) "bbn" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/cloning, /obj/item/circuitboard/computer/med_data{ pixel_x = 3; @@ -25676,10 +25595,7 @@ /turf/closed/wall, /area/maintenance/solars/port/fore) "bbp" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/powermonitor{ pixel_x = -2; pixel_y = 2 @@ -26136,10 +26052,7 @@ }, /area/hallway/primary/central) "bcn" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/machinery/firealarm{ dir = 8; pixel_x = -26 @@ -26196,10 +26109,7 @@ /turf/open/floor/plating, /area/storage/tech) "bcv" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/crew{ pixel_x = -1; pixel_y = 1 @@ -26884,12 +26794,8 @@ /area/storage/tools) "bdS" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/storage/box/lights/mixed, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/yellow/side{ @@ -26913,12 +26819,8 @@ /area/storage/tools) "bdV" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, /turf/open/floor/plasteel/yellow/side{ dir = 6 }, @@ -26932,10 +26834,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "bdX" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/robotics{ pixel_x = -2; pixel_y = 2 @@ -26977,10 +26876,7 @@ /turf/open/floor/plasteel/black, /area/storage/tech) "bec" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/toolbox/electrical{ pixel_x = 1; pixel_y = -1 @@ -27040,10 +26936,7 @@ }, /area/crew_quarters/heads/chief) "beh" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/secure/briefcase, /obj/item/clothing/mask/cigarette/cigar, /obj/machinery/computer/security/telescreen{ @@ -27057,10 +26950,7 @@ }, /area/crew_quarters/heads/chief) "bei" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/lighter, /obj/item/clothing/glasses/meson, /obj/machinery/button/door{ @@ -30215,10 +30105,7 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/box, /obj/item/storage/box, /obj/item/storage/box, @@ -37350,12 +37237,8 @@ /area/crew_quarters/theatre) "byO" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/machinery/power/apc{ dir = 2; name = "MiniSat Maint APC"; @@ -37410,18 +37293,12 @@ /obj/machinery/light{ dir = 1 }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, +/obj/machinery/computer/atmos_alert, /turf/open/floor/plasteel/caution{ dir = 1 }, /area/engine/atmos) "byT" = ( -/obj/machinery/computer/atmos_alert, /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)."; icon_state = "map-left-MS"; @@ -37431,6 +37308,7 @@ c_tag = "Atmospherics - Control Room"; network = list("SS13") }, +/obj/machinery/computer/station_alert, /turf/open/floor/plasteel/caution{ dir = 1 }, @@ -37441,7 +37319,6 @@ icon_state = "map-right-MS"; pixel_y = 32 }, -/obj/machinery/computer/station_alert, /turf/open/floor/plasteel/caution{ dir = 1 }, @@ -38222,13 +38099,12 @@ /turf/open/floor/plating, /area/engine/atmos) "bAB" = ( -/obj/item/clothing/mask/breath{ - pixel_x = 4 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = -8 - }, /obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, /turf/open/floor/plasteel/caution{ dir = 8 }, @@ -38269,12 +38145,8 @@ dir = 8 }, /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/grenade/chem_grenade/smart_metal_foam, /obj/item/grenade/chem_grenade/smart_metal_foam, /turf/open/floor/plasteel/caution{ @@ -41866,12 +41738,8 @@ /obj/item/stack/sheet/rglass{ amount = 50 }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, /obj/item/storage/toolbox/emergency, /obj/item/device/flashlight, /obj/machinery/power/apc/highcap/five_k{ @@ -42066,18 +41934,10 @@ /area/engine/atmos) "bIN" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -42492,9 +42352,7 @@ /obj/item/stack/sheet/rglass{ amount = 50 }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/storage/toolbox/emergency, /obj/item/device/flashlight, /obj/structure/window/reinforced, @@ -43123,20 +42981,14 @@ /turf/open/floor/plating, /area/maintenance/port) "bLf" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/effect/spawner/lootdrop/costume, /obj/effect/spawner/lootdrop/costume, /turf/open/floor/plating, /area/maintenance/port) "bLg" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/effect/spawner/lootdrop/costume, /obj/effect/spawner/lootdrop/costume, /turf/open/floor/plating, @@ -43174,12 +43026,8 @@ /obj/item/stack/sheet/rglass{ amount = 50 }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, /obj/structure/table, /obj/item/storage/toolbox/mechanical{ pixel_x = -2; @@ -43238,10 +43086,7 @@ dir = 1; pixel_y = 1 }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/shoes/magboots{ pixel_x = -4; pixel_y = 3 @@ -43623,10 +43468,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bMf" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hazardvest, @@ -44666,12 +44508,8 @@ }, /area/hallway/primary/central) "bOo" = ( -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/structure/table, /obj/item/stack/sheet/plasteel{ amount = 10 @@ -44680,12 +44518,8 @@ dir = 4; pixel_x = -22 }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/crowbar, /obj/item/wrench, /obj/item/storage/toolbox/electrical{ @@ -44729,10 +44563,7 @@ req_access_txt = "19" }, /obj/structure/window/reinforced, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/tank/jetpack/carbondioxide{ pixel_x = 4; pixel_y = -1 @@ -44852,10 +44683,7 @@ /turf/open/floor/wood, /area/bridge/showroom/corporate) "bOG" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/stack/medical/ointment, /obj/item/stack/medical/bruise_pack, /obj/item/reagent_containers/syringe/charcoal, @@ -45304,10 +45132,7 @@ /turf/open/floor/plating, /area/maintenance/port) "bPJ" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/mask/horsehead, /turf/open/floor/plating, /area/maintenance/port) @@ -45553,10 +45378,7 @@ /turf/open/floor/wood, /area/bridge/showroom/corporate) "bQp" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/head/hardhat/orange{ @@ -46226,10 +46048,7 @@ /obj/item/device/radio/off, /obj/item/device/radio/off, /obj/item/device/radio/off, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/machinery/button/door{ id = "gateshutter"; name = "Gateway Shutter Control"; @@ -55862,14 +55681,11 @@ }, /area/hallway/primary/aft) "clz" = ( -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ pixel_x = 3; pixel_y = 3 }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/clothing/glasses/welding, /obj/structure/table, /obj/effect/turf_decal/stripes/line{ @@ -62997,15 +62813,9 @@ }, /area/science/mixing) "czG" = ( -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/target, /obj/item/target/syndicate, /obj/item/target/alien, @@ -67652,10 +67462,7 @@ /area/maintenance/aft) "cIC" = ( /obj/item/clothing/gloves/color/latex/nitrile, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/suit/toggle/labcoat, /obj/item/clothing/suit/apron/surgical, /obj/item/clothing/mask/surgical, @@ -68044,10 +67851,7 @@ /turf/open/floor/plating, /area/maintenance/aft) "cJt" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/screwdriver{ pixel_y = 6 }, @@ -69948,10 +69752,7 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cNg" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/device/flashlight, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/light/small, @@ -69983,9 +69784,7 @@ /obj/item/reagent_containers/food/snacks/grown/citrus/orange, /obj/item/reagent_containers/food/snacks/grown/grapes, /obj/item/reagent_containers/food/snacks/grown/cocoapod, -/obj/structure/rack{ - layer = 2.8 - }, +/obj/structure/rack, /obj/item/seeds/wheat, /obj/item/seeds/watermelon, /obj/item/seeds/watermelon, @@ -70000,9 +69799,7 @@ /obj/item/device/plant_analyzer, /obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, -/obj/structure/rack{ - layer = 2.8 - }, +/obj/structure/rack, /obj/item/seeds/corn, /obj/item/seeds/cabbage, /obj/item/seeds/ambrosia, @@ -71518,24 +71315,12 @@ pixel_x = 3; pixel_y = -4 }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, @@ -72016,10 +71801,7 @@ /turf/open/floor/plating, /area/chapel/main) "cRM" = ( -/obj/machinery/processor{ - desc = "A machine used to process slimes and retrieve their extract."; - name = "Slime Processor" - }, +/obj/machinery/processor/slime, /obj/effect/turf_decal/stripes/corner{ dir = 2 }, @@ -73252,7 +73034,8 @@ frequency = 1441; id = "n2_in" }, -/turf/open/floor/plating/airless, +/obj/structure/lattice/catwalk, +/turf/open/space, /area/engine/atmos) "cVB" = ( /obj/structure/chair{ @@ -73404,9 +73187,7 @@ /area/shuttle/abandoned) "cVU" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/stock_parts/cell/high{ charge = 100; maxcharge = 15000; @@ -73783,14 +73564,11 @@ /area/shuttle/abandoned) "cWy" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ pixel_x = -2; pixel_y = 2 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -73799,11 +73577,7 @@ /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "cWz" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9; - pixel_y = 2 - }, +/obj/structure/rack, /obj/item/storage/toolbox/electrical{ pixel_x = 1; pixel_y = 6 @@ -75728,9 +75502,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "dav" = ( -/obj/structure/rack{ - dir = 1 - }, +/obj/structure/rack, /obj/item/tank/internals/oxygen/red, /obj/item/clothing/suit/fire/firefighter, /obj/item/clothing/mask/gas, @@ -77567,10 +77339,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - filter_type = "freon"; - name = "gas filter (freon)" - }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical, /turf/open/floor/engine, /area/engine/engineering) "deK" = ( @@ -78455,14 +78224,9 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/stack/sheet/cardboard, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/paper, /obj/item/storage/box/lights/mixed, /obj/structure/sign/poster/official/random{ @@ -80853,9 +80617,7 @@ }, /area/construction/mining/aux_base) "dDK" = ( -/obj/structure/rack{ - dir = 4 - }, +/obj/structure/rack, /obj/item/electronics/airlock, /obj/item/electronics/airlock, /obj/item/electronics/airlock, @@ -81025,6 +80787,34 @@ }, /turf/closed/wall/mineral/titanium, /area/shuttle/abandoned) +"EDo" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"EDp" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"EDq" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"EDr" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"EDs" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"EDt" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"EDu" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) (1,1,1) = {" aaa @@ -122552,7 +122342,7 @@ cbe ccO bza aaf -bza +EDs chO cjd ckG @@ -123580,7 +123370,7 @@ cbi ccS bza aaf -bza +EDt chR cjg ckH @@ -124608,7 +124398,7 @@ cVJ ccQ bza aaf -bza +EDu chU cjj ckJ @@ -126130,19 +125920,19 @@ aaa aaf bAR dBC -bza +EDo bFZ bAR bCA -bza +EDp bFZ bAR bCA -bza +EDq bFZ bAR bCA -bza +EDr bFZ bAR aaf diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index d634822968..e3f175d5c7 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -107,9 +107,7 @@ /turf/open/floor/plasteel/white, /area/mine/laborcamp) "au" = ( -/obj/structure/rack{ - dir = 1 - }, +/obj/structure/rack, /obj/item/storage/bag/ore, /obj/item/pickaxe, /obj/item/device/flashlight, @@ -117,9 +115,7 @@ /turf/open/floor/plasteel, /area/mine/laborcamp) "av" = ( -/obj/structure/rack{ - dir = 1 - }, +/obj/structure/rack, /obj/item/storage/bag/ore, /obj/item/device/flashlight, /obj/item/pickaxe, diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 21e18ab470..ee9fbf1a7b 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -6702,15 +6702,9 @@ /area/ai_monitored/storage/eva) "amo" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, /obj/structure/cable/white{ @@ -12772,12 +12766,8 @@ /area/engine/atmos) "axz" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -12790,12 +12780,8 @@ /area/engine/atmos) "axA" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/grenade/chem_grenade/smart_metal_foam, /obj/item/grenade/chem_grenade/smart_metal_foam, /obj/machinery/newscaster{ @@ -18280,9 +18266,7 @@ /area/engine/engineering) "aIs" = ( /obj/structure/table/reinforced, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/wrench, /obj/item/storage/box/lights/mixed, /obj/machinery/newscaster{ @@ -18900,18 +18884,10 @@ /area/engine/engineering) "aJB" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/crowbar, /obj/item/grenade/chem_grenade/smart_metal_foam, /obj/item/grenade/chem_grenade/smart_metal_foam, @@ -19920,9 +19896,7 @@ /area/engine/gravity_generator) "aLF" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/plasteel{ - amount = 20 - }, +/obj/item/stack/sheet/plasteel/twenty, /obj/item/wrench, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -20657,9 +20631,7 @@ /area/engine/engineering) "aNd" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/plasteel{ - amount = 50 - }, +/obj/item/stack/sheet/plasteel/fifty, /obj/item/stack/sheet/rglass{ amount = 50; pixel_x = 2; @@ -22096,9 +22068,7 @@ dir = 8 }, /obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 1; - filter_type = "freon"; - name = "gas filter (freon)" + dir = 1 }, /turf/open/floor/plasteel, /area/engine/engineering) @@ -25012,12 +24982,8 @@ /area/medical/chemistry) "aWk" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/wrench, /obj/item/clothing/glasses/welding, /turf/open/floor/plasteel/whitepurple/corner{ @@ -26948,18 +26914,10 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "baf" = ( -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/structure/table/reinforced, /obj/item/stack/cable_coil/white, /obj/item/stack/cable_coil/white, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index a76e9c7390..a28ea84b3c 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -8240,8 +8240,8 @@ /area/security/brig) "avu" = ( /obj/structure/closet/secure_closet/brig{ - id = "Cell 2"; - name = "Cell 2 Locker" + id = "Cell 1"; + name = "Cell 1 Locker" }, /turf/open/floor/plasteel/blue/side, /area/security/brig) @@ -8259,8 +8259,8 @@ /area/security/brig) "avx" = ( /obj/structure/closet/secure_closet/brig{ - id = "Cell 3"; - name = "Cell 3 Locker" + id = "Cell 2"; + name = "Cell 2 Locker" }, /turf/open/floor/plasteel/green/side, /area/security/brig) @@ -15724,10 +15724,7 @@ /turf/open/floor/plating, /area/maintenance/department/crew_quarters/bar) "aNp" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/shoes/magboots{ pixel_x = -4; pixel_y = 3 @@ -15769,10 +15766,7 @@ /turf/open/floor/plasteel, /area/storage/eva) "aNt" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/tank/jetpack/carbondioxide, /obj/item/tank/jetpack/carbondioxide{ pixel_x = -4; @@ -17337,12 +17331,8 @@ /area/storage/eva) "aQZ" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/crowbar, /obj/structure/cable{ icon_state = "0-4" @@ -17369,12 +17359,8 @@ /obj/item/stack/sheet/rglass{ amount = 50 }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -17383,9 +17369,7 @@ /area/storage/eva) "aRc" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/rglass{ amount = 50 }, @@ -18709,12 +18693,8 @@ /area/crew_quarters/bar) "aUe" = ( /obj/structure/closet/gmcloset, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/stack/cable_coil, /obj/item/storage/box/mousetraps, /turf/open/floor/wood{ @@ -23478,9 +23458,7 @@ }, /area/quartermaster/qm) "bfE" = ( -/obj/structure/rack{ - dir = 1 - }, +/obj/structure/rack, /obj/item/storage/toolbox/mechanical{ pixel_x = -2; pixel_y = -1 @@ -26364,10 +26342,7 @@ /turf/open/floor/plasteel, /area/science/research/lobby) "bmL" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/toolbox/electrical{ pixel_x = 1; pixel_y = 6 @@ -26422,24 +26397,12 @@ pixel_x = 3; pixel_y = -4 }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, @@ -27896,23 +27859,17 @@ /area/science/explab) "bqu" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ pixel_x = 3; pixel_y = 3 }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/device/assembly/timer, /obj/item/device/assembly/timer, /turf/open/floor/plasteel/white, /area/science/explab) "bqv" = ( -/obj/machinery/processor{ - desc = "A machine used to process slimes and retrieve their extract."; - name = "Slime Processor" - }, +/obj/machinery/processor/slime, /obj/machinery/light{ dir = 8 }, @@ -29755,11 +29712,8 @@ /obj/effect/decal/cleanable/oil{ icon_state = "floor6" }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty{ pixel_x = 3; pixel_y = 3 }, @@ -39022,9 +38976,7 @@ /area/engine/atmos) "bOW" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, /obj/item/storage/belt/utility, /obj/item/device/t_scanner, /obj/item/device/t_scanner, @@ -39033,21 +38985,13 @@ /area/engine/atmos) "bOX" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50; +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty{ pixel_x = 2; pixel_y = 2 }, -/obj/item/stack/sheet/glass{ - layer = 3.1 - }, -/obj/item/stack/rods{ - amount = 50; - layer = 3.2 - }, +/obj/item/stack/sheet/glass, +/obj/item/stack/rods/fifty, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bOY" = ( @@ -39561,10 +39505,7 @@ /turf/open/floor/plasteel/darkgreen, /area/storage/tech) "bQv" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/pandemic{ pixel_x = -3; pixel_y = 3 @@ -39587,10 +39528,7 @@ /turf/open/floor/plasteel/darkgreen, /area/storage/tech) "bQw" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/mining, /obj/item/circuitboard/machine/autolathe{ pixel_x = 3; @@ -40199,10 +40137,7 @@ /turf/open/floor/plasteel/black, /area/storage/tech) "bRO" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/cloning, /obj/item/circuitboard/computer/med_data{ pixel_x = 3; @@ -40214,10 +40149,7 @@ /turf/open/floor/plasteel/darkgreen, /area/storage/tech) "bRP" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/secure_data{ pixel_x = -2; pixel_y = 2 @@ -40229,10 +40161,7 @@ /turf/open/floor/plasteel/darkgreen, /area/storage/tech) "bRQ" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/powermonitor{ pixel_x = -2; pixel_y = 2 @@ -40931,10 +40860,7 @@ /turf/open/floor/plasteel/darkgreen, /area/storage/tech) "bTz" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/toolbox/electrical{ pixel_x = 2; pixel_y = 4 @@ -40944,10 +40870,7 @@ /turf/open/floor/plasteel/darkgreen, /area/storage/tech) "bTA" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/toolbox/electrical{ pixel_x = 2; pixel_y = 4 @@ -41795,9 +41718,7 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "bVu" = ( -/obj/structure/rack{ - dir = 4 - }, +/obj/structure/rack, /obj/item/wrench, /obj/item/clothing/head/welding, /obj/machinery/light/small{ @@ -41807,9 +41728,7 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "bVv" = ( -/obj/structure/rack{ - dir = 4 - }, +/obj/structure/rack, /obj/item/electronics/airlock, /obj/item/electronics/airlock, /obj/item/electronics/airlock, @@ -41827,27 +41746,17 @@ /area/maintenance/department/engine) "bVw" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, /turf/open/floor/plating{ icon_state = "panelscorched" }, /area/maintenance/department/engine) "bVx" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, /turf/open/floor/plating, /area/maintenance/department/engine) "bVy" = ( @@ -42250,10 +42159,7 @@ }, /area/crew_quarters/heads/chief) "bWs" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/robotics{ pixel_x = -2; pixel_y = 2 @@ -42265,10 +42171,7 @@ /turf/open/floor/plasteel/darkred, /area/storage/tech) "bWt" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/crew{ pixel_x = -1; pixel_y = 1 @@ -42288,10 +42191,7 @@ /turf/open/floor/plasteel/darkred, /area/storage/tech) "bWu" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/circuitboard/computer/borgupload{ pixel_x = -1; pixel_y = 1 @@ -42304,21 +42204,17 @@ /area/storage/tech) "bWv" = ( /obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 20; +/obj/item/stack/sheet/plasteel/twenty{ pixel_x = -3; pixel_y = 3 }, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ layer = 4 }, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ layer = 4 }, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ layer = 4 }, /obj/structure/cable{ @@ -42635,15 +42531,9 @@ /area/engine/engineering) "bXl" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, /obj/item/stack/cable_coil, /obj/machinery/power/apc/highcap/ten_k{ dir = 8; @@ -42652,10 +42542,7 @@ pixel_x = -26 }, /obj/structure/cable, -/obj/item/stack/sheet/metal{ - amount = 50; - layer = 2.9 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/stack/cable_coil, /turf/open/floor/plasteel/darkyellow/side{ tag = "icon-darkyellow (WEST)"; @@ -43882,10 +43769,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cao" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/storage/belt/utility, /obj/item/clothing/head/welding{ pixel_x = -3; @@ -43941,10 +43825,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cau" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, +/obj/structure/rack, /obj/item/clothing/mask/gas{ pixel_x = 3; pixel_y = 3 @@ -44795,15 +44676,9 @@ /area/engine/engineering) "ccR" = ( /obj/structure/closet/crate, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, /obj/item/electronics/airlock, /obj/item/electronics/airlock, /obj/item/stock_parts/cell/high/plus, @@ -46975,8 +46850,7 @@ /obj/effect/decal/cleanable/cobweb{ icon_state = "cobweb2" }, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ layer = 4 }, /obj/item/stack/sheet/metal{ @@ -47142,9 +47016,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "ckl" = ( diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 136e2b880e..0bc878046d 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -926,12 +926,8 @@ /area/hallway/secondary/entry) "cK" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, /obj/machinery/light, /turf/open/floor/plasteel/arrival, /area/hallway/secondary/entry) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index f99ab6cf9f..d992e8695b 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -6351,12 +6351,8 @@ /area/centcom/ferry) "rs" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/plasteel{ amount = 15 }, @@ -6365,9 +6361,7 @@ pixel_x = 2; pixel_y = -2 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/stack/cable_coil/white, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line, @@ -6442,12 +6436,8 @@ pixel_x = 26 }, /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/plasteel{ amount = 15 }, @@ -6456,9 +6446,7 @@ pixel_x = 2; pixel_y = -2 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/item/stack/cable_coil/white, /obj/item/screwdriver/power, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/metastation.json b/_maps/metastation.json index eae307ea3c..6b023ba02d 100644 --- a/_maps/metastation.json +++ b/_maps/metastation.json @@ -1,8 +1,5 @@ { "map_name": "MetaStation", "map_path": "map_files/MetaStation", - "map_file": "MetaStation.dmm", - "minetype": "lavaland", - "transition_config": "default", - "allow_custom_shuttles": "yes" + "map_file": "MetaStation.dmm" } diff --git a/_maps/omegastation.json b/_maps/omegastation.json index 0040eac01e..0f3732c36c 100644 --- a/_maps/omegastation.json +++ b/_maps/omegastation.json @@ -1,8 +1,5 @@ { "map_name": "OmegaStation", "map_path": "map_files/OmegaStation", - "map_file": "OmegaStation.dmm", - "minetype": "lavaland", - "transition_config": "default", - "allow_custom_shuttles": "yes" + "map_file": "OmegaStation.dmm" } \ No newline at end of file diff --git a/_maps/pubbystation.json b/_maps/pubbystation.json index ddfe706280..b63f196b6c 100644 --- a/_maps/pubbystation.json +++ b/_maps/pubbystation.json @@ -1,8 +1,5 @@ { "map_name": "PubbyStation", "map_path": "map_files/PubbyStation", - "map_file": "PubbyStation.dmm", - "minetype": "lavaland", - "transition_config": "default", - "allow_custom_shuttles": "yes" + "map_file": "PubbyStation.dmm" } \ No newline at end of file diff --git a/_maps/runtimestation.json b/_maps/runtimestation.json index 7462ee5b73..c363b67a05 100644 --- a/_maps/runtimestation.json +++ b/_maps/runtimestation.json @@ -1,8 +1,5 @@ { "map_name": "Runtime Station", "map_path": "map_files/debug", - "map_file": "runtimestation.dmm", - "minetype": "lavaland", - "transition_config": "default", - "allow_custom_shuttles": "no" + "map_file": "runtimestation.dmm" } diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm index 0456b5cde9..9caaf9a577 100644 --- a/_maps/shuttles/emergency_meta.dmm +++ b/_maps/shuttles/emergency_meta.dmm @@ -669,9 +669,7 @@ /turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) "bM" = ( -/obj/structure/rack{ - dir = 1 - }, +/obj/structure/rack, /obj/item/tank/internals/oxygen/red, /obj/item/clothing/suit/fire/firefighter, /obj/item/clothing/mask/gas, diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm index 2b21ec0c97..7f427f3b9a 100644 --- a/_maps/shuttles/emergency_raven.dmm +++ b/_maps/shuttles/emergency_raven.dmm @@ -1,24 +1,21 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/open/space, /obj/machinery/porta_turret/centcom_shuttle{ dir = 9 }, -/turf/closed/wall/mineral/plastitanium{ - dir = 8; - icon_state = "diagonalWall3" - }, +/turf/closed/wall/mineral/plastitanium/interior, /area/shuttle/escape) "ab" = ( /obj/machinery/status_display, /turf/closed/wall/mineral/plastitanium/interior, /area/shuttle/escape) "ac" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters{ id = "shuttleshutters"; name = "blast shutters" }, +/obj/structure/grille, +/obj/structure/window/plastitanium, /turf/open/floor/plating, /area/shuttle/escape) "ad" = ( @@ -277,20 +274,20 @@ /area/shuttle/escape) "aT" = ( /obj/structure/table/reinforced, -/obj/item/storage/firstaid/toxin, /obj/item/storage/firstaid/o2{ pixel_x = 4; pixel_y = 4 }, +/obj/item/storage/firstaid/toxin, /turf/open/floor/plasteel/black, /area/shuttle/escape) "aU" = ( /obj/structure/table/reinforced, -/obj/item/storage/firstaid/fire, /obj/item/storage/firstaid/brute{ pixel_x = 3; pixel_y = 4 }, +/obj/item/storage/firstaid/fire, /turf/open/floor/plasteel/black, /area/shuttle/escape) "aV" = ( @@ -639,15 +636,15 @@ /area/shuttle/escape) "bH" = ( /obj/structure/rack, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 3; - pixel_y = -6 - }, -/obj/item/storage/toolbox/emergency, /obj/item/storage/toolbox/electrical{ pixel_x = -2; pixel_y = 5 }, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 3; + pixel_y = -6 + }, /turf/open/floor/plasteel/darkgreen/side{ dir = 9; icon_state = "darkgreen" @@ -664,7 +661,8 @@ }, /area/shuttle/escape) "bJ" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/structure/grille, +/obj/structure/window/plastitanium, /turf/open/floor/plating, /area/shuttle/escape) "bK" = ( @@ -972,39 +970,14 @@ }, /area/shuttle/escape) "cr" = ( -/turf/open/space, /obj/machinery/porta_turret/centcom_shuttle{ dir = 5 }, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, +/turf/closed/wall/mineral/plastitanium/interior, /area/shuttle/escape) "cs" = ( /turf/closed/wall/mineral/plastitanium/interior, /area/shuttle/escape) -"ct" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cu" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"cv" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"cw" = ( -/turf/open/space, -/obj/machinery/porta_turret/centcom_shuttle{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) "cx" = ( /turf/open/space, /turf/closed/wall/mineral/plastitanium{ @@ -1037,30 +1010,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/shuttle/escape) -"cB" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cC" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) "cD" = ( /turf/open/space, /turf/closed/wall/mineral/plastitanium{ icon_state = "diagonalWall3" }, /area/shuttle/escape) -"cE" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cF" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cG" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cH" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) "cI" = ( /turf/open/space, /turf/closed/wall/mineral/plastitanium{ @@ -1068,381 +1023,18 @@ icon_state = "diagonalWall3" }, /area/shuttle/escape) -"cJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"cK" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"cL" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cM" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cN" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cO" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cP" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cQ" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cR" = ( -/turf/open/space, -/obj/machinery/porta_turret/centcom_shuttle{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"cS" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cT" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cU" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"cV" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cW" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cX" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cY" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"cZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"da" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"db" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"dc" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"dd" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"de" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"df" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dg" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dh" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"di" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dj" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dk" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"dl" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"dm" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dn" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"do" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dp" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dq" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"dr" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"ds" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"dt" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"du" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dv" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"dw" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dx" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dy" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dz" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dA" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dB" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"dC" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"dD" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"dE" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dF" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/escape) -"dG" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"dH" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dI" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dJ" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dK" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dL" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"dM" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dN" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dO" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dP" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dQ" = ( -/turf/open/space, -/obj/machinery/porta_turret/centcom_shuttle{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"dR" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dS" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dT" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dU" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dV" = ( -/turf/open/space, -/obj/machinery/porta_turret/centcom_shuttle{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"dW" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dX" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dY" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"dZ" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"ea" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"eb" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"ec" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"ed" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"ee" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"ef" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"eg" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"eh" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) "ei" = ( -/turf/open/space, /obj/machinery/porta_turret/centcom_shuttle{ dir = 10 }, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"ej" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"ek" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"el" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"em" = ( /turf/closed/wall/mineral/plastitanium/interior, /area/shuttle/escape) "en" = ( -/turf/open/space, /obj/machinery/porta_turret/centcom_shuttle{ dir = 6 }, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"eo" = ( /turf/closed/wall/mineral/plastitanium/interior, /area/shuttle/escape) -"ep" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"eq" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"er" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"es" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"et" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"eu" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"ev" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"ew" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 8; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"ex" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"ey" = ( -/turf/closed/wall/mineral/plastitanium/interior, -/area/shuttle/escape) -"ez" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) -"eA" = ( -/turf/open/space, -/obj/machinery/porta_turret/centcom_shuttle{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/escape) "eB" = ( /obj/machinery/flasher{ id = "shuttleflash"; @@ -1489,22 +1081,10 @@ dir = 8 }, /area/shuttle/escape) -"eG" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 1 - }, -/area/shuttle/escape) "eH" = ( /obj/machinery/light, /turf/open/floor/plasteel/darkgreen/side, /area/shuttle/escape) -"eI" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/darkgreen/side, -/area/shuttle/escape) "eJ" = ( /obj/machinery/button/flasher{ id = "cockpit_flasher"; @@ -1514,30 +1094,6 @@ /obj/machinery/light, /turf/open/floor/mineral/titanium/blue, /area/space) -"eK" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 1 - }, -/area/shuttle/escape) -"eL" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 1 - }, -/area/shuttle/escape) -"eM" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 1 - }, -/area/shuttle/escape) "eN" = ( /obj/machinery/light{ dir = 4 @@ -1547,62 +1103,44 @@ }, /area/shuttle/escape) "eO" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 8 - }, +/obj/machinery/status_display, +/turf/closed/wall/mineral/plastitanium/nodiagonal, /area/shuttle/escape) "eP" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/darkgreen/side, +/turf/closed/wall/mineral/plastitanium/nodiagonal, /area/shuttle/escape) "eQ" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 4 - }, -/area/shuttle/escape) -"eR" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/darkgreen/side, -/area/shuttle/escape) -"eS" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/darkgreen/side, -/area/shuttle/escape) +/turf/open/space/basic, +/area/space) (1,1,1) = {" aa cs ac ac -cD +cs ad aa -cu -cu +bJ +bJ cs -cu -cu +bJ +bJ bs cs bE -cu -cu -cD +bJ +bJ +cs ad aa bs -cu +bJ bs cs -cu +bJ cs -cu +bJ ei ad ad @@ -1629,17 +1167,17 @@ bK bM cs ad -cu +bJ bF be be -eO +eF be be cd -cu +bJ ad -cx +cs ar co "} @@ -1686,25 +1224,25 @@ ar aJ ar cs -cu -cu -cu -cu +bJ +bJ +bJ +bJ cs -ar -eG +eP +eE aC eH ar bT bo -eK +eE bZ ca aC bZ ca -eR +eH ab ch ar @@ -1788,25 +1326,25 @@ ar aM ar cs -cu -cu -ab +bJ +bJ +eO br bz -bo +eO cs bL bP ar bU bo -eL +eE bZ ca aC bZ ca -eS +eH ab ci ar @@ -1830,7 +1368,7 @@ bz cs bH bG -eI +eH cs cs cs @@ -1867,7 +1405,7 @@ aZ bQ cs ad -cu +bJ bW aZ bq @@ -1875,9 +1413,9 @@ aC by aZ ce -cu +bJ ad -cy +cs ar co "} @@ -1885,8 +1423,8 @@ co cr cs ac -cA -cI +ac +cs ad cr cs @@ -1896,19 +1434,19 @@ ar br bz ar -cu -cu -cu -cI +bJ +bJ +bJ +cs ad cr -cu -cs +bJ +eP br aC bz -cs -cu +eP +bJ en ad ad @@ -1937,11 +1475,11 @@ ad ad ad ad -cu +bJ cb aC cc -cu +bJ ad ad ad @@ -1952,15 +1490,15 @@ ad (12,1,1) = {" ad ad -cx cs -cu cs -cu -cu -cu +bJ cs -bo +bJ +bJ +bJ +cs +eO bt bA bo @@ -1971,14 +1509,14 @@ ad aa cs cs -cs -eM +eP +eE aC +eH eP cs cs cs -cD ad ad ad @@ -1997,10 +1535,10 @@ bl bp bu bA -cu -ad -ad +bJ ad +eQ +eQ ad cs bV @@ -2019,11 +1557,11 @@ ad "} (14,1,1) = {" ad -cu +bJ as aC aC -cu +bJ aT aC bh @@ -2031,12 +1569,12 @@ bh aC bv bB -cu +bJ ad +eQ +eQ ad -eJ -ad -cu +bJ br bX bX @@ -2046,18 +1584,18 @@ bX bX bX bz -cu +bJ ad ad ad "} (15,1,1) = {" ad -cu +bJ at aD aC -cu +bJ aU aC aC @@ -2065,12 +1603,12 @@ aC aC aC bC -cu +bJ ad +eQ +eQ ad -ad -ad -cu +bJ br bY bY @@ -2080,7 +1618,7 @@ bY bY bY bz -cu +bJ ad ad ad @@ -2099,10 +1637,10 @@ bm bi bm ar -cI -ad -ad +cs ad +eQ +eQ ad cs bW @@ -2110,7 +1648,7 @@ aZ aZ eN aZ -eQ +eN aZ aZ ce @@ -2122,17 +1660,17 @@ ad (17,1,1) = {" ad ad -cy -cs -cu cs cs -cu -cu -cu -cu +bJ +cs +cs +bJ +bJ +bJ +bJ +cs cs -cI ad ad ad @@ -2140,15 +1678,15 @@ ad ad cr cs -cu -cu +bJ +bJ ab -cu +bJ ab -cu -cu +bJ +bJ +cs cs -cI ad ad ad diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm new file mode 100644 index 0000000000..f1e47029d4 --- /dev/null +++ b/_maps/shuttles/whiteship_delta.dmm @@ -0,0 +1,2802 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space/basic, +/area/space) +"ab" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"ac" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"ad" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 2; + name = "External Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"ae" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"af" = ( +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"ag" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"ah" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"ai" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aj" = ( +/obj/structure/closet/firecloset/full, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"ak" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"al" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"am" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/circuitboard/machine/hydroponics, +/turf/open/floor/plasteel/greenblue/side{ + dir = 5 + }, +/area/shuttle/abandoned) +"an" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 1; + glass = 1; + name = "Internal Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"ao" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/mining, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/flour, +/turf/open/floor/plasteel/greenblue/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"ap" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"aq" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"ar" = ( +/obj/structure/closet/emcloset, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"as" = ( +/obj/structure/closet/crate{ + name = "emergency supplies crate" + }, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency, +/obj/item/device/flashlight/flare{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/flashlight/flare{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/crowbar, +/obj/item/wrench, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/extinguisher, +/obj/item/extinguisher, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"at" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/box/hug/medical, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"au" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass_maintenance{ + name = "Maintenance" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"av" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"aw" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"ax" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"ay" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"az" = ( +/obj/structure/sink/kitchen{ + pixel_z = 30 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"aA" = ( +/obj/machinery/door/airlock/glass_maintenance{ + name = "Maintenance" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"aB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aC" = ( +/obj/structure/closet/crate{ + name = "spare equipment crate" + }, +/obj/item/grenade/chem_grenade/metalfoam, +/obj/item/relic, +/obj/item/device/t_scanner, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct/small{ + dir = 4 + }, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aD" = ( +/obj/machinery/vending/hydroseeds, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side, +/area/shuttle/abandoned) +"aE" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/stack/sheet/metal/fifty, +/obj/item/circuitboard/machine/hydroponics, +/obj/item/circuitboard/machine/gibber, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"aF" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"aG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned) +"aH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side, +/area/shuttle/abandoned) +"aI" = ( +/obj/structure/closet/wardrobe, +/obj/item/clothing/under/trek/command/next, +/obj/item/clothing/under/trek/command/next, +/obj/item/clothing/under/trek/engsec/next, +/obj/item/clothing/under/trek/engsec/next, +/obj/item/clothing/under/trek/medsci/next, +/obj/item/clothing/under/trek/medsci/next, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/spawner/lootdrop/costume, +/obj/item/clothing/under/rank/centcom_commander{ + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" + }, +/obj/item/clothing/under/rank/centcom_officer{ + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" + }, +/obj/item/clothing/under/rank/centcom_officer{ + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" + }, +/obj/item/clothing/head/centhat{ + desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; + name = "\improper damaged CentCom hat" + }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned) +"aJ" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned) +"aK" = ( +/obj/item/storage/bag/plants/portaseeder, +/obj/structure/table, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/reagent_containers/glass/bottle/nutrient/rh{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"aL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aM" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"aN" = ( +/obj/item/soap, +/obj/structure/curtain, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/shower{ + pixel_y = 15 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned) +"aO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned) +"aP" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/dice, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned) +"aQ" = ( +/obj/structure/table, +/obj/item/wrench, +/obj/item/crowbar, +/obj/item/clothing/suit/apron, +/obj/item/shovel/spade, +/obj/item/cultivator, +/obj/item/device/plant_analyzer, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/wirecutters, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"aR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"aS" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"aT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned) +"aU" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned) +"aV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/mopbucket, +/turf/open/floor/plasteel/greenblue/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"aW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"aX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"aY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/shuttle/abandoned) +"aZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + name = "Laborotary" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"ba" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"bb" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"bc" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"bd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + glass = 1; + name = "Dormitory"; + opacity = 0 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"be" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"bf" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/gun/energy/floragun, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"bg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"bh" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"bi" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/bed, +/turf/open/floor/plasteel/greenblue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"bj" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/mop, +/turf/open/floor/plasteel/greenblue/side, +/area/shuttle/abandoned) +"bk" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/gps{ + gpstag = "ITVSAC"; + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"bl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"bm" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"bn" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/structure/mirror{ + pixel_x = -30 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"bo" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/bikehorn/rubberducky, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"bp" = ( +/obj/structure/urinal{ + pixel_x = 30; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"bq" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"br" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + glass = 1; + name = "Crew Quarters"; + opacity = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"bs" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"bt" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"bu" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex/nitrile, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"bv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"bw" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 5 + }, +/area/shuttle/abandoned) +"bx" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/clothing/head/helmet/swat/nanotrasen, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"by" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/built{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"bz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/clothing/gloves/color/black, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"bA" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/defibrillator/loaded, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"bB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"bC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/backpack/duffelbag/med/surgery, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"bD" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/obj/structure/table, +/obj/item/clothing/suit/armor/vest, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"bE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 4 + }, +/obj/structure/table, +/obj/item/gun/energy/e_gun/mini, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"bF" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/abandoned) +"bG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/abandoned) +"bH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"bI" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"bJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/computer, +/obj/item/circuitboard/computer/operating, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"bK" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"bL" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"bM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/arrival/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"bN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/suit/armor/vest, +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"bO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/crowbar/red, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"bP" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 4; + glass = 1; + name = "Internal Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"bQ" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 8; + name = "External Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"bR" = ( +/obj/machinery/iv_drip, +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = -28; + req_access_txt = "0"; + use_power = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"bS" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"bT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"bU" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"bV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/shuttle/abandoned) +"bW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"bX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/head/helmet/swat/nanotrasen, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"bY" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"bZ" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"ca" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct, +/turf/open/floor/plasteel/whiteblue/side, +/area/shuttle/abandoned) +"cb" = ( +/obj/structure/closet/secure_closet/medical2{ + req_access = null + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/glasses/hud/health/sunglasses, +/turf/open/floor/plasteel/whiteblue/side, +/area/shuttle/abandoned) +"cc" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"cd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/arrival/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"ce" = ( +/obj/structure/sign/engineering, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"cf" = ( +/obj/machinery/autolathe, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"cg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"ch" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"ci" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cj" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"ck" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate/science, +/obj/effect/decal/cleanable/leaper_sludge, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cm" = ( +/obj/structure/closet/crate/engineering, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/rglass{ + amount = 20 + }, +/obj/item/stack/sheet/mineral/titanium/fifty, +/turf/open/floor/plasteel/yellow/corner, +/area/shuttle/abandoned) +"cn" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/rglass{ + amount = 20 + }, +/obj/item/clothing/head/welding, +/obj/structure/light_construct{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"co" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"cp" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cq" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"cr" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"cs" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"ct" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"cu" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/paper/crumpled/bloody{ + info = "Your vessel will be transporting artifact E-395 to our nearby research station. Under no circumstances is the container to be opened. Half of the payment will be given now, rest upon completion. In the event of containment breach--" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cw" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"cx" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering Storage" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"cy" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"cz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"cA" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Research Lab" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"cB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"cC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/gloves/color/black, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cD" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/greenglow, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/airlock_painter, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"cF" = ( +/obj/structure/closet/toolcloset, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"cG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/stack/rods/twentyfive, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/shuttle/abandoned) +"cH" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/light_construct/small, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cI" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/computer, +/obj/item/stock_parts/console_screen, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"cJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/circuitboard/machine/circuit_imprinter, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned) +"cK" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/machine, +/turf/open/floor/plasteel/whitepurple/corner, +/area/shuttle/abandoned) +"cL" = ( +/obj/structure/sign/science, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"cM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"cN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cP" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/machine, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"cQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/machine, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"cR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"cS" = ( +/obj/machinery/door/airlock/titanium{ + cyclelinkeddir = 8; + name = "External Airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/docking_port/mobile{ + dheight = 0; + dir = 8; + dwidth = 11; + height = 15; + id = "whiteship"; + launch_status = 0; + name = "White-Ship"; + port_direction = 8; + preferred_direction = 8; + roundstart_move = "whiteship_away"; + timid = 1; + width = 32 + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"cT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"cU" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel/whitepurple/side, +/area/shuttle/abandoned) +"cV" = ( +/obj/structure/closet/crate/science{ + name = "spare circuit boards crate" + }, +/obj/item/circuitboard/computer/rdconsole, +/obj/item/circuitboard/machine/protolathe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6 + }, +/area/shuttle/abandoned) +"cW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/built, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"cX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/shuttle/abandoned) +"cY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/shuttle/abandoned) +"cZ" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"da" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"db" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + welded = 1 + }, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/abandoned) +"dc" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"dd" = ( +/obj/structure/closet/crate, +/obj/item/paper_bin, +/obj/item/stack/sheet/metal/twenty, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/under/gimmick/rank/captain/suit, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/shuttle/abandoned) +"de" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/megaphone, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"df" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/built{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/shuttle/abandoned) +"dg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/shuttle/abandoned) +"dh" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/device/camera, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/shuttle/abandoned) +"di" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/obj/item/phone, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/shuttle/abandoned) +"dj" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/torso, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"dk" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/shard, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"dl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/light_construct{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/shuttle/abandoned) +"dm" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"dn" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/pen/fountain/captain, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/shuttle/abandoned) +"do" = ( +/obj/structure/chair/comfy/black, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned) +"dp" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/shuttle/abandoned) +"dq" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/photo_album, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned) +"dr" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/shuttle/abandoned) +"ds" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/storage/fancy/cigarettes/cigars/cohiba, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/shuttle/abandoned) +"dt" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{ + x_offset = -7; + y_offset = -8 + }, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"du" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/device/pda/clear, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"dv" = ( +/obj/machinery/computer/shuttle/white_ship, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"dw" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/device/radio, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) +"dx" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +bq +bq +ae +ae +ae +ae +bq +bq +bq +ae +ae +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +ab +af +aj +as +ae +aI +aO +aV +ba +bi +ae +bu +bA +bJ +bR +bZ +ae +cq +cz +cI +cP +cT +ae +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +ab +af +ak +at +ae +aJ +aO +ap +bb +aH +ae +bv +bB +bK +bS +ca +ae +cr +bT +cJ +bT +cU +ae +ae +ae +bq +bq +aa +aa +"} +(10,1,1) = {" +aa +aa +ae +ae +au +ac +ac +aP +ap +bc +bj +ae +bw +bC +bL +bT +cb +ae +cs +bT +cK +cQ +cV +ae +dc +di +dm +bq +bq +aa +"} +(11,1,1) = {" +aa +aa +ae +al +av +aD +ac +ae +ae +bd +ae +ae +ae +ae +bq +bU +cc +ae +bq +cA +cL +ae +ae +ae +dd +bc +cX +ds +bq +aa +"} +(12,1,1) = {" +aa +aa +ae +am +aw +aE +aK +aQ +aW +be +bk +bq +bx +bD +bM +bV +cd +ci +ct +cB +cM +av +av +db +bc +bc +dn +dt +bq +aa +"} +(13,1,1) = {" +aa +ac +ac +ac +ax +aB +av +aR +av +bf +av +br +av +aB +bN +bW +av +cj +cu +cC +cN +cR +aG +ae +de +dj +bc +du +bq +aa +"} +(14,1,1) = {" +aa +ad +ag +an +ay +av +aL +av +aB +av +bl +bs +by +aB +aB +av +av +ck +aB +ck +av +av +cW +ae +df +dk +do +dv +bq +aa +"} +(15,1,1) = {" +aa +ac +ah +ac +az +aF +av +av +aX +av +av +br +av +av +bO +aB +av +cl +cv +cD +av +av +cX +ae +ax +bc +bc +dw +bq +aa +"} +(16,1,1) = {" +aa +aa +ae +ao +ax +aG +aM +aS +aY +bg +bm +bq +bz +bE +av +bX +av +cm +cw +cE +cO +av +cY +db +bc +bc +dp +dx +bq +aa +"} +(17,1,1) = {" +aa +aa +ae +ap +av +aH +ac +ae +ae +aZ +ae +ae +ae +ae +bP +ae +ce +bq +cx +ae +ae +bP +ae +ae +dg +bc +dq +dr +bq +aa +"} +(18,1,1) = {" +aa +aa +ae +ae +aA +ac +ac +aT +aZ +bc +bn +bn +ae +bF +bc +ae +cf +cn +bc +cF +ae +bc +cZ +ae +dh +dl +dr +bq +bq +aa +"} +(19,1,1) = {" +aa +ab +af +aq +aB +ae +ae +ae +ae +bh +bo +bt +ae +bG +bc +bY +cg +co +cy +cG +bY +bc +bt +ae +ae +ae +bq +bq +aa +aa +"} +(20,1,1) = {" +aa +ab +ai +ar +aC +ae +aN +aU +aZ +bc +bp +bp +ae +bH +bc +ae +ch +cp +cp +cH +ae +bc +da +ae +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +bI +bQ +ae +ae +bq +bq +ae +ae +cS +bI +ae +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index c5109c16d2..ccd05adf6a 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -117,9 +117,7 @@ /area/shuttle/abandoned) "al" = ( /obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, +/obj/item/stack/sheet/metal/fifty, /obj/item/stock_parts/cell/high{ charge = 100; maxcharge = 15000; @@ -299,7 +297,7 @@ name = "dust" }, /obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at."; + desc = "They look like human remains, and have clearly been gnawed at." }, /obj/item/gun/energy/laser/retro, /turf/open/floor/mineral/titanium/blue, @@ -368,7 +366,7 @@ name = "dust" }, /obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at."; + desc = "They look like human remains, and have clearly been gnawed at." }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) @@ -435,7 +433,7 @@ }, /obj/item/soap/nanotrasen, /obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at."; + desc = "They look like human remains, and have clearly been gnawed at." }, /obj/effect/decal/cleanable/blood/gibs/old, /turf/open/floor/mineral/titanium, @@ -478,14 +476,11 @@ /area/shuttle/abandoned) "aM" = ( /obj/structure/table, -/obj/item/stack/sheet/glass{ - amount = 50; +/obj/item/stack/sheet/glass/fifty{ pixel_x = -2; pixel_y = 2 }, -/obj/item/stack/rods{ - amount = 50 - }, +/obj/item/stack/rods/fifty, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -494,11 +489,7 @@ /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "aN" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9; - pixel_y = 2 - }, +/obj/structure/rack, /obj/item/storage/toolbox/electrical{ pixel_x = 1; pixel_y = 6 @@ -938,7 +929,7 @@ name = "dust" }, /obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at."; + desc = "They look like human remains, and have clearly been gnawed at." }, /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) @@ -1057,7 +1048,7 @@ name = "\improper damaged CentCom hat" }, /obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at."; + desc = "They look like human remains, and have clearly been gnawed at." }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) @@ -1460,7 +1451,7 @@ name = "dust" }, /obj/effect/decal/remains/xeno{ - desc = "A pile of remains that look vaguely humanoid. The skull is abnormally elongated, and there are burns through some of the other bones."; + desc = "A pile of remains that look vaguely humanoid. The skull is abnormally elongated, and there are burns through some of the other bones." }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/abandoned) diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm index 9f3827e5c3..e9489df641 100644 --- a/_maps/templates/shelter_2.dmm +++ b/_maps/templates/shelter_2.dmm @@ -214,9 +214,9 @@ (1,1,1) = {" a d -c +a d -c +a d a "} @@ -230,13 +230,13 @@ y C "} (3,1,1) = {" -c +a f l l u z -c +a "} (4,1,1) = {" b @@ -248,13 +248,13 @@ A D "} (5,1,1) = {" -c +a h n r w A -c +a "} (6,1,1) = {" b @@ -268,9 +268,9 @@ E (7,1,1) = {" a j -c +a j -c +a j a "} diff --git a/code/__DATASTRUCTURES/globals.dm b/code/__DATASTRUCTURES/globals.dm index 808f8da757..c7aa865573 100644 --- a/code/__DATASTRUCTURES/globals.dm +++ b/code/__DATASTRUCTURES/globals.dm @@ -10,7 +10,7 @@ #define GLOBAL_PROTECT(X)\ /datum/controller/global_vars/InitGlobal##X(){\ ..();\ - gvars_datum_protected_varlist += #X;\ + gvars_datum_protected_varlist[#X] = TRUE;\ } #else #define GLOBAL_PROTECT(X) diff --git a/code/__DEFINES/clockcult.dm b/code/__DEFINES/clockcult.dm index 5f167bf96c..fe804c44f9 100644 --- a/code/__DEFINES/clockcult.dm +++ b/code/__DEFINES/clockcult.dm @@ -66,13 +66,10 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us #define ARK_SUMMON_COST 5 //how many of each component an Ark costs to summon -#define ARK_CONSUME_COST 15 //how many of each component an Ark needs to consume to activate - //Objective text define #define CLOCKCULT_OBJECTIVE "Construct the Ark of the Clockwork Justicar and free Ratvar." //misc clockcult stuff -#define MARAUDER_EMERGE_THRESHOLD 65 //marauders cannot emerge unless host is at this% or less health #define SIGIL_ACCESS_RANGE 2 //range at which transmission sigils can access power @@ -83,3 +80,9 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us #define CLOCKWORK_ARMOR_COOLDOWN 1800 //The cooldown period between summoning suits of clockwork armor #define RATVARIAN_SPEAR_COOLDOWN 300 //The cooldown period between summoning another Ratvarian spear + +#define MARAUDER_SCRIPTURE_SCALING_THRESHOLD 200 //The amount of deciseconds that must pass before marauder scripture will not gain a recital penalty + +#define MARAUDER_SCRIPTURE_SCALING_TIME 50 //The amount of extra deciseconds tacked on to the marauder scripture recital time per recent marauder + +#define MARAUDER_SCRIPTURE_SCALING_MAX 300 //The maximum extra time applied to the marauder scripture diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index ddfa9942e6..5b3fe2daf0 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -38,6 +38,7 @@ #define COMSIG_ATOM_RCD_ACT "atom_rcd_act" //from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode) #define COMSIG_ATOM_SING_PULL "atom_sing_pull" //from base of atom/singularity_pull(): (S, current_size) #define COMSIG_ATOM_SET_LIGHT "atom_set_light" //from base of atom/set_light(): (l_range, l_power, l_color) +#define COMSIG_ATOM_ROTATE "atom_rotate" //from base of atom/shuttleRotate(): (rotation, params) #define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params) #define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob) diff --git a/code/__DEFINES/contracts.dm b/code/__DEFINES/contracts.dm index e740be79dd..b600a5fdc0 100644 --- a/code/__DEFINES/contracts.dm +++ b/code/__DEFINES/contracts.dm @@ -28,7 +28,7 @@ #define BAN_CHAPEL "chapel" #define BAN_HURTPRIEST "hurtpriest" #define BAN_AVOIDWATER "avoidwater" -#define BAN_STRIKEUNCONCIOUS "strikeunconcious" +#define BAN_STRIKEUNCONSCIOUS "strikeunconscious" #define BAN_HURTLIZARD "hurtlizard" #define BAN_HURTANIMAL "hurtanimal" diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 37566258a4..a1842648ac 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -161,3 +161,70 @@ #define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay #define TINT_BLIND 3 //Threshold of tint level to obscure vision fully + +//Allowed equipment lists for security vests and hardsuits. + +GLOBAL_LIST_INIT(advanced_hardsuit_allowed, typecacheof(list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/device/flashlight, + /obj/item/gun, + /obj/item/melee/baton, + /obj/item/reagent_containers/spray/pepper, + /obj/item/restraints/handcuffs, + /obj/item/tank/internals))) + +GLOBAL_LIST_INIT(security_hardsuit_allowed, typecacheof(list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/device/flashlight, + /obj/item/gun/ballistic, + /obj/item/gun/energy, + /obj/item/melee/baton, + /obj/item/reagent_containers/spray/pepper, + /obj/item/restraints/handcuffs, + /obj/item/tank/internals))) + +GLOBAL_LIST_INIT(detective_vest_allowed, typecacheof(list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/device/detective_scanner, + /obj/item/device/flashlight, + /obj/item/device/taperecorder, + /obj/item/gun/ballistic, + /obj/item/gun/energy, + /obj/item/lighter, + /obj/item/melee/baton, + /obj/item/melee/classic_baton, + /obj/item/reagent_containers/spray/pepper, + /obj/item/restraints/handcuffs, + /obj/item/storage/fancy/cigarettes, + /obj/item/tank/internals/emergency_oxygen))) + +GLOBAL_LIST_INIT(security_vest_allowed, typecacheof(list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/device/flashlight, + /obj/item/gun/ballistic, + /obj/item/gun/energy, + /obj/item/kitchen/knife/combat, + /obj/item/melee/baton, + /obj/item/melee/classic_baton/telescopic, + /obj/item/reagent_containers/spray/pepper, + /obj/item/restraints/handcuffs, + /obj/item/tank/internals/emergency_oxygen))) + +GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/device/flashlight, + /obj/item/storage/fancy/cigarettes, + /obj/item/gun/ballistic, + /obj/item/gun/energy, + /obj/item/lighter, + /obj/item/melee/baton, + /obj/item/melee/classic_baton/telescopic, + /obj/item/reagent_containers/spray/pepper, + /obj/item/restraints/handcuffs, + /obj/item/tank/internals/emergency_oxygen, + /obj/item/toy))) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index fbd15e1ef6..40dd7b5f35 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -8,7 +8,7 @@ #define ismovableatom(A) (istype(A, /atom/movable)) -#define isatom(A) (istype(A, /atom)) +#define isatom(A) (isloc(A)) //Turfs //#define isturf(A) (istype(A, /turf)) This is actually a byond built-in. Added here for completeness sake. @@ -183,4 +183,4 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list( /obj/item/stack/sheet/plasmaglass, /obj/item/stack/sheet/plasmarglass))) -#define is_glass_sheet(O) (is_type_in_typecache(O, GLOB.glass_sheet_types)) \ No newline at end of file +#define is_glass_sheet(O) (is_type_in_typecache(O, GLOB.glass_sheet_types)) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index c92cb5f5a7..411abf5701 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -13,6 +13,7 @@ //#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define #define MID_TURF_LAYER 2.02 #define HIGH_TURF_LAYER 2.03 +#define TURF_DECAL_LAYER 2.039 //Makes turf decals appear in DM how they will look inworld. #define ABOVE_OPEN_TURF_LAYER 2.04 #define CLOSED_TURF_LAYER 2.05 #define BULLET_HOLE_LAYER 2.06 @@ -20,7 +21,6 @@ #define LATTICE_LAYER 2.2 #define DISPOSAL_PIPE_LAYER 2.3 #define GAS_PIPE_HIDDEN_LAYER 2.35 -#define TURF_DECAL_LAYER 2.39 #define WIRE_LAYER 2.4 #define WIRE_TERMINAL_LAYER 2.45 #define GAS_SCRUBBER_LAYER 2.46 diff --git a/code/__DEFINES/math.dm b/code/__DEFINES/math.dm index 534e0d3608..5b3f51b4e3 100644 --- a/code/__DEFINES/math.dm +++ b/code/__DEFINES/math.dm @@ -10,6 +10,8 @@ #define T20C 293.15 // 20degC #define TCMB 2.7 // -270.3degC +#define SHORT_REAL_LIMIT 16777216 + //"fancy" math for calculating time in ms from tick_usage percentage and the length of ticks //percent_of_tick_used * (ticklag * 100(to convert to ms)) / 100(percent ratio) //collapsed to percent_of_tick_used * tick_lag diff --git a/code/__DEFINES/profile.dm b/code/__DEFINES/profile.dm new file mode 100644 index 0000000000..28fc7782ce --- /dev/null +++ b/code/__DEFINES/profile.dm @@ -0,0 +1,29 @@ +#define PROFILE_START ;PROFILE_STORE = list();PROFILE_SET; +#define PROFILE_STOP ;PROFILE_STORE = null; + +#define PROFILE_SET ;PROFILE_TIME = TICK_USAGE_REAL; PROFILE_LINE = __LINE__; PROFILE_FILE = __FILE__; PROFILE_SLEEPCHECK = world.time; + +#define PROFILE_TICK ;\ + if (PROFILE_STORE) {\ + var/PROFILE_TICK_USAGE_REAL = TICK_USAGE_REAL;\ + if (PROFILE_SLEEPCHECK == world.time) {\ + var/PROFILE_STRING = "[PROFILE_FILE]:[PROFILE_LINE] - [__FILE__]:[__LINE__]";\ + var/list/PROFILE_ITEM = PROFILE_STORE[PROFILE_STRING];\ + if (!PROFILE_ITEM) {\ + PROFILE_ITEM = new(PROFILE_ITEM_LEN);\ + PROFILE_STORE[PROFILE_STRING] = PROFILE_ITEM;\ + PROFILE_ITEM[PROFILE_ITEM_TIME] = 0;\ + PROFILE_ITEM[PROFILE_ITEM_COUNT] = 0;\ + };\ + PROFILE_ITEM[PROFILE_ITEM_TIME] += TICK_DELTA_TO_MS(PROFILE_TICK_USAGE_REAL-PROFILE_TIME);\ + var/PROFILE_INCR_AMOUNT = min(1, 2**round(PROFILE_ITEM[PROFILE_ITEM_COUNT]/SHORT_REAL_LIMIT));\ + if (prob(100/PROFILE_INCR_AMOUNT)) {\ + PROFILE_ITEM[PROFILE_ITEM_COUNT] += PROFILE_INCR_AMOUNT;\ + };\ + };\ + PROFILE_SET;\ + }; + +#define PROFILE_ITEM_LEN 2 +#define PROFILE_ITEM_TIME 1 +#define PROFILE_ITEM_COUNT 2 \ No newline at end of file diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index a473f46d2c..26b166fd8c 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -65,4 +65,9 @@ //Docking turf movements #define MOVE_TURF 1 #define MOVE_AREA 2 -#define MOVE_CONTENTS 4 \ No newline at end of file +#define MOVE_CONTENTS 4 + +//Rotation params +#define ROTATE_DIR 1 +#define ROTATE_SMOOTH 2 +#define ROTATE_OFFSET 4 \ No newline at end of file diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index d3867e5257..1e1179606c 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -1,23 +1,69 @@ -//max channel is 1024. Only go lower from here, because byond tends to pick the first availiable channel to play sounds on -#define CHANNEL_LOBBYMUSIC 1024 -#define CHANNEL_ADMIN 1023 -#define CHANNEL_VOX 1022 -#define CHANNEL_JUKEBOX 1021 -#define CHANNEL_JUSTICAR_ARK 1020 -#define CHANNEL_HEARTBEAT 1019 //sound channel for heartbeats -#define CHANNEL_AMBIENCE 1018 -#define CHANNEL_BUZZ 1017 -#define CHANNEL_BICYCLE 1016 - -//Citadel code -#define CHANNEL_PRED 1015 -#define CHANNEL_PREYLOOP 1014 - -//THIS SHOULD ALWAYS BE THE LOWEST ONE! -//KEEP IT UPDATED - -#define CHANNEL_HIGHEST_AVAILABLE 1013 - -#define CHANNEL_HIGHEST_AVAILABLE 1017 -#define SOUND_MINIMUM_PRESSURE 10 -#define FALLOFF_SOUNDS 0.5 +//max channel is 1024. Only go lower from here, because byond tends to pick the first availiable channel to play sounds on +#define CHANNEL_LOBBYMUSIC 1024 +#define CHANNEL_ADMIN 1023 +#define CHANNEL_VOX 1022 +#define CHANNEL_JUKEBOX 1021 +#define CHANNEL_JUSTICAR_ARK 1020 +#define CHANNEL_HEARTBEAT 1019 //sound channel for heartbeats +#define CHANNEL_AMBIENCE 1018 +#define CHANNEL_BUZZ 1017 +#define CHANNEL_BICYCLE 1016 + +//Citadel code +#define CHANNEL_PRED 1015 +#define CHANNEL_PREYLOOP 1014 + +//THIS SHOULD ALWAYS BE THE LOWEST ONE! +//KEEP IT UPDATED + +#define CHANNEL_HIGHEST_AVAILABLE 1013 + + +#define SOUND_MINIMUM_PRESSURE 10 +#define FALLOFF_SOUNDS 0.5 + + +//Ambience types + +#define GENERIC list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg',\ + 'sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg',\ + 'sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg',\ + 'sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg',\ + 'sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg',\ + 'sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg') + +#define HOLY list('sound/ambience/ambicha1.ogg','sound/ambience/ambicha2.ogg','sound/ambience/ambicha3.ogg',\ + 'sound/ambience/ambicha4.ogg', 'sound/ambience/ambiholy.ogg', 'sound/ambience/ambiholy2.ogg',\ + 'sound/ambience/ambiholy3.ogg') + +#define HIGHSEC list('sound/ambience/ambidanger.ogg', 'sound/ambience/ambidanger2.ogg') + +#define RUINS list('sound/ambience/ambimine.ogg', 'sound/ambience/ambicave.ogg', 'sound/ambience/ambiruin.ogg',\ + 'sound/ambience/ambiruin2.ogg', 'sound/ambience/ambiruin3.ogg', 'sound/ambience/ambiruin4.ogg',\ + 'sound/ambience/ambiruin5.ogg', 'sound/ambience/ambiruin6.ogg', 'sound/ambience/ambiruin7.ogg',\ + 'sound/ambience/ambidanger.ogg', 'sound/ambience/ambidanger2.ogg', 'sound/ambience/ambitech3.ogg',\ + 'sound/ambience/ambimystery.ogg', 'sound/ambience/ambimaint1.ogg') + +#define ENGINEERING list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg','sound/ambience/ambisin4.ogg', 'sound/ambience/ambieng1.ogg',\ + 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg', 'sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambitech3.ogg') + +#define MINING list('sound/ambience/ambimine.ogg', 'sound/ambience/ambicave.ogg', 'sound/ambience/ambiruin.ogg',\ + 'sound/ambience/ambiruin2.ogg', 'sound/ambience/ambiruin3.ogg', 'sound/ambience/ambiruin4.ogg',\ + 'sound/ambience/ambiruin5.ogg', 'sound/ambience/ambiruin6.ogg', 'sound/ambience/ambiruin7.ogg',\ + 'sound/ambience/ambidanger.ogg', 'sound/ambience/ambidanger2.ogg', 'sound/ambience/ambimaint1.ogg', 'sound/ambience/ambilava.ogg') + +#define MEDICAL list('sound/ambience/ambinice.ogg') + +#define SPOOKY list('sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg','sound/ambience/ambiruin7.ogg','sound/ambience/ambiruin6.ogg',\ + 'sound/ambience/ambiodd.ogg', 'sound/ambience/ambimystery.ogg') + +#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' ) + +#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',\ + 'sound/ambience/ambiruin5.ogg', 'sound/ambience/ambiruin6.ogg', 'sound/ambience/ambiruin7.ogg',\ + 'sound/ambience/ambidanger.ogg', 'sound/ambience/ambidanger2.ogg', 'sound/ambience/ambimaint.ogg',\ + 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg', 'sound/ambience/ambiodd.ogg') diff --git a/code/__DEFINES/wall_dents.dm b/code/__DEFINES/wall_dents.dm new file mode 100644 index 0000000000..1e4f813849 --- /dev/null +++ b/code/__DEFINES/wall_dents.dm @@ -0,0 +1,2 @@ +#define WALL_DENT_HIT 1 +#define WALL_DENT_SHOT 2 diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index f7b0f726d3..a939ab7e90 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -58,4 +58,13 @@ GLOBAL_VAR_INIT(cmp_field, "name") . = B.failures - A.failures if (!.) . = B.qdels - A.qdels + +/proc/cmp_profile_avg_time_dsc(list/A, list/B) + return (B[PROFILE_ITEM_TIME]/(B[PROFILE_ITEM_COUNT] || 1)) - (A[PROFILE_ITEM_TIME]/(A[PROFILE_ITEM_COUNT] || 1)) + +/proc/cmp_profile_time_dsc(list/A, list/B) + return B[PROFILE_ITEM_TIME] - A[PROFILE_ITEM_TIME] + +/proc/cmp_profile_count_dsc(list/A, list/B) + return B[PROFILE_ITEM_COUNT] - A[PROFILE_ITEM_COUNT] diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index eaa9c019ab..b55ec948b8 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -849,7 +849,7 @@ The _flatIcons list is a cache for generated icon files. if(A.alpha < 255) flat.Blend(rgb(255, 255, 255, A.alpha), ICON_MULTIPLY) - return icon(flat, "", SOUTH) + return icon(flat, "", curdir) /proc/getIconMask(atom/A)//By yours truly. Creates a dynamic mask for a mob/whatever. /N var/icon/alpha_mask = new(A.icon,A.icon_state)//So we want the default icon and icon state of A. diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm index 22fb2d69b5..ca76b715c4 100644 --- a/code/__HELPERS/maths.dm +++ b/code/__HELPERS/maths.dm @@ -138,7 +138,7 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, var/t = round((val - min) / d) return val - (t * d) -#define NORM_ROT(rot) ((((rot % 360) + (rot - round(rot, 1))) > 0) ? ((rot % 360) + (rot - round(rot, 1))) : (((rot % 360) + (rot - round(rot, 1))) + 360)) +#define NORM_ROT(rot) ((((rot % 360) + (rot - round(rot, 1))) >= 0) ? ((rot % 360) + (rot - round(rot, 1))) : (((rot % 360) + (rot - round(rot, 1))) + 360)) /proc/get_angle_of_incidence(face_angle, angle_in, auto_normalize = TRUE) diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index 0ffd8d8580..abda33b136 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -43,8 +43,10 @@ var/obj/item/paper/P = new /obj/item/paper(C.loc) P.name = "paper - '[title]'" P.info = text - C.messagetitle.Add("[title]") - C.messagetext.Add(text) + var/datum/comm_message/message = new + message.title = title + message.content = text + C.add_message(message) P.update_icon() /proc/minor_announce(message, title = "Attention:", alert) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 3491e831e6..b36a8c678b 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -654,7 +654,7 @@ GLOBAL_LIST_INIT(binary, list("0","1")) buffer = copytext(buffer, 1, cutoff) + punctbuffer if(!findtext(buffer,alphanumeric)) continue - if(!buffer || lentext(buffer) > 140 || lentext(buffer) <= cullshort || buffer in accepted) + if(!buffer || lentext(buffer) > 280 || lentext(buffer) <= cullshort || buffer in accepted) continue accepted += buffer diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index f4cb4c92b4..303c6a6846 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -518,6 +518,19 @@ Turf and target are separate in case you want to teleport some distance from a t assembled += A return assembled +/atom/proc/GetAllContentsIgnoring(list/ignore_typecache) + if(!ignore_typecache) + return GetAllContents() + var/list/processing = list(src) + var/list/assembled = list() + while(processing.len) + var/atom/A = processing[1] + processing.Cut(1,2) + if(!ignore_typecache[A.type]) + processing += A.contents + assembled += A + return assembled + //Step-towards method of determining whether one atom can see another. Similar to viewers() /proc/can_see(atom/source, atom/target, length=5) // I couldnt be arsed to do actual raycasting :I This is horribly inaccurate. var/turf/current = get_turf(source) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 4703300f11..cd812d10a7 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -15,7 +15,7 @@ Override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations. */ - if(!category) + if(!category || QDELETED(src)) return var/obj/screen/alert/thealert @@ -629,4 +629,5 @@ so as to remain in compliance with the most up-to-date laws." . = ..() severity = 0 master = null + mob_viewer = null screen_loc = "" diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index 12253cc550..58f0fb18a2 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -1,175 +1,177 @@ - -/mob - var/list/screens = list() - -/mob/proc/overlay_fullscreen(category, type, severity) - var/obj/screen/fullscreen/screen - if(screens[category]) - screen = screens[category] - if(screen.type != type) - clear_fullscreen(category, FALSE) - return .() - else if(!severity || severity == screen.severity) - return null - else - screen = new type() - - screen.icon_state = "[initial(screen.icon_state)][severity]" - screen.severity = severity - - screens[category] = screen - if(client && screen.should_show_to(src)) - client.screen += screen - return screen - -/mob/proc/clear_fullscreen(category, animated = 10) - var/obj/screen/fullscreen/screen = screens[category] - if(!screen) - return - - screens -= category - - if(animated) - animate(screen, alpha = 0, time = animated) - addtimer(CALLBACK(src, .proc/clear_fullscreen_after_animate, screen), animated, TIMER_CLIENT_TIME) - else - if(client) - client.screen -= screen - qdel(screen) - -/mob/proc/clear_fullscreen_after_animate(obj/screen/fullscreen/screen) - if(client) - client.screen -= screen - qdel(screen) - -/mob/proc/clear_fullscreens() - for(var/category in screens) - clear_fullscreen(category) - -/mob/proc/hide_fullscreens() - if(client) - for(var/category in screens) - client.screen -= screens[category] - -/mob/proc/reload_fullscreen() - if(client) - var/obj/screen/fullscreen/screen - for(var/category in screens) - screen = screens[category] - if(screen.should_show_to(src)) - client.screen |= screen - else - client.screen -= screen - -/obj/screen/fullscreen - icon = 'icons/mob/screen_full.dmi' - icon_state = "default" - screen_loc = "CENTER-7,CENTER-7" - layer = FULLSCREEN_LAYER - plane = FULLSCREEN_PLANE - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - var/severity = 0 - var/show_when_dead = FALSE - -/obj/screen/fullscreen/proc/should_show_to(mob/mymob) - if(!show_when_dead && mymob.stat == DEAD) - return FALSE - return TRUE - -/obj/screen/fullscreen/Destroy() - severity = 0 - . = ..() - -/obj/screen/fullscreen/brute - icon_state = "brutedamageoverlay" - layer = UI_DAMAGE_LAYER - plane = FULLSCREEN_PLANE - -/obj/screen/fullscreen/oxy - icon_state = "oxydamageoverlay" - layer = UI_DAMAGE_LAYER - plane = FULLSCREEN_PLANE - -/obj/screen/fullscreen/crit - icon_state = "passage" - layer = CRIT_LAYER - plane = FULLSCREEN_PLANE - -/obj/screen/fullscreen/crit/vision - icon_state = "oxydamageoverlay" - layer = BLIND_LAYER - -/obj/screen/fullscreen/blind - icon_state = "blackimageoverlay" - layer = BLIND_LAYER - plane = FULLSCREEN_PLANE - -/obj/screen/fullscreen/curse - icon_state = "curse" - layer = CURSE_LAYER - plane = FULLSCREEN_PLANE - -/obj/screen/fullscreen/impaired - icon_state = "impairedoverlay" - -/obj/screen/fullscreen/blurry - icon = 'icons/mob/screen_gen.dmi' - screen_loc = "WEST,SOUTH to EAST,NORTH" - icon_state = "blurry" - -/obj/screen/fullscreen/flash - icon = 'icons/mob/screen_gen.dmi' - screen_loc = "WEST,SOUTH to EAST,NORTH" - icon_state = "flash" - -/obj/screen/fullscreen/flash/static - icon = 'icons/mob/screen_gen.dmi' - screen_loc = "WEST,SOUTH to EAST,NORTH" - icon_state = "noise" - -/obj/screen/fullscreen/high - icon = 'icons/mob/screen_gen.dmi' - screen_loc = "WEST,SOUTH to EAST,NORTH" - icon_state = "druggy" - -/obj/screen/fullscreen/color_vision - icon = 'icons/mob/screen_gen.dmi' - screen_loc = "WEST,SOUTH to EAST,NORTH" - icon_state = "flash" - alpha = 80 - -/obj/screen/fullscreen/color_vision/green - color = "#00ff00" - -/obj/screen/fullscreen/color_vision/red - color = "#ff0000" - -/obj/screen/fullscreen/color_vision/blue - color = "#0000ff" - -/obj/screen/fullscreen/lighting_backdrop - icon = 'icons/mob/screen_gen.dmi' - icon_state = "flash" - transform = matrix(200, 0, 0, 0, 200, 0) - plane = LIGHTING_PLANE - blend_mode = BLEND_OVERLAY - show_when_dead = TRUE - -//Provides darkness to the back of the lighting plane -/obj/screen/fullscreen/lighting_backdrop/lit - invisibility = INVISIBILITY_LIGHTING - layer = BACKGROUND_LAYER+21 - color = "#000" - show_when_dead = TRUE - -//Provides whiteness in case you don't see lights so everything is still visible -/obj/screen/fullscreen/lighting_backdrop/unlit - layer = BACKGROUND_LAYER+20 - show_when_dead = TRUE - -/obj/screen/fullscreen/see_through_darkness - icon_state = "nightvision" - plane = LIGHTING_PLANE - layer = LIGHTING_LAYER - blend_mode = BLEND_ADD - show_when_dead = TRUE +/mob + var/list/screens = list() + +/mob/proc/overlay_fullscreen(category, type, severity) + var/obj/screen/fullscreen/screen = screens[category] + if (!screen || screen.type != type) + // needs to be recreated + clear_fullscreen(category, FALSE) + screens[category] = screen = new type() + else if ((!severity || severity == screen.severity) && (!client || screen.screen_loc != "CENTER-7,CENTER-7" || screen.view == client.view)) + // doesn't need to be updated + return screen + + screen.icon_state = "[initial(screen.icon_state)][severity]" + screen.severity = severity + if (client && screen.should_show_to(src)) + client.screen += screen + if (screen.screen_loc == "CENTER-7,CENTER-7" && screen.view != client.view) + var/scale = (1 + 2 * client.view) / 15 + screen.view = client.view + screen.transform = matrix(scale, 0, 0, 0, scale, 0) + + return screen + +/mob/proc/clear_fullscreen(category, animated = 10) + var/obj/screen/fullscreen/screen = screens[category] + if(!screen) + return + + screens -= category + + if(animated) + animate(screen, alpha = 0, time = animated) + addtimer(CALLBACK(src, .proc/clear_fullscreen_after_animate, screen), animated, TIMER_CLIENT_TIME) + else + if(client) + client.screen -= screen + qdel(screen) + +/mob/proc/clear_fullscreen_after_animate(obj/screen/fullscreen/screen) + if(client) + client.screen -= screen + qdel(screen) + +/mob/proc/clear_fullscreens() + for(var/category in screens) + clear_fullscreen(category) + +/mob/proc/hide_fullscreens() + if(client) + for(var/category in screens) + client.screen -= screens[category] + +/mob/proc/reload_fullscreen() + if(client) + var/obj/screen/fullscreen/screen + for(var/category in screens) + screen = screens[category] + if(screen.should_show_to(src)) + client.screen |= screen + else + client.screen -= screen + +/obj/screen/fullscreen + icon = 'icons/mob/screen_full.dmi' + icon_state = "default" + screen_loc = "CENTER-7,CENTER-7" + layer = FULLSCREEN_LAYER + plane = FULLSCREEN_PLANE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + var/view = 7 + var/severity = 0 + var/show_when_dead = FALSE + +/obj/screen/fullscreen/proc/should_show_to(mob/mymob) + if(!show_when_dead && mymob.stat == DEAD) + return FALSE + return TRUE + +/obj/screen/fullscreen/Destroy() + severity = 0 + . = ..() + +/obj/screen/fullscreen/brute + icon_state = "brutedamageoverlay" + layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/fullscreen/oxy + icon_state = "oxydamageoverlay" + layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/fullscreen/crit + icon_state = "passage" + layer = CRIT_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/fullscreen/crit/vision + icon_state = "oxydamageoverlay" + layer = BLIND_LAYER + +/obj/screen/fullscreen/blind + icon_state = "blackimageoverlay" + layer = BLIND_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/fullscreen/curse + icon_state = "curse" + layer = CURSE_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/fullscreen/impaired + icon_state = "impairedoverlay" + +/obj/screen/fullscreen/blurry + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "blurry" + +/obj/screen/fullscreen/flash + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "flash" + +/obj/screen/fullscreen/flash/static + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "noise" + +/obj/screen/fullscreen/high + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "druggy" + +/obj/screen/fullscreen/color_vision + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "flash" + alpha = 80 + +/obj/screen/fullscreen/color_vision/green + color = "#00ff00" + +/obj/screen/fullscreen/color_vision/red + color = "#ff0000" + +/obj/screen/fullscreen/color_vision/blue + color = "#0000ff" + +/obj/screen/fullscreen/lighting_backdrop + icon = 'icons/mob/screen_gen.dmi' + icon_state = "flash" + transform = matrix(200, 0, 0, 0, 200, 0) + plane = LIGHTING_PLANE + blend_mode = BLEND_OVERLAY + show_when_dead = TRUE + +//Provides darkness to the back of the lighting plane +/obj/screen/fullscreen/lighting_backdrop/lit + invisibility = INVISIBILITY_LIGHTING + layer = BACKGROUND_LAYER+21 + color = "#000" + show_when_dead = TRUE + +//Provides whiteness in case you don't see lights so everything is still visible +/obj/screen/fullscreen/lighting_backdrop/unlit + layer = BACKGROUND_LAYER+20 + show_when_dead = TRUE + +/obj/screen/fullscreen/see_through_darkness + icon_state = "nightvision" + plane = LIGHTING_PLANE + layer = LIGHTING_LAYER + blend_mode = BLEND_ADD + show_when_dead = TRUE + diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 79271d1d6d..45bfbeb4fa 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -539,7 +539,7 @@ screen_loc = ui_healthdoll /obj/screen/splash - icon = 'config/title_screens/images/title1.dmi' + icon = 'icons/blank_title.png' icon_state = "" screen_loc = "1,1" layer = SPLASHSCREEN_LAYER diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 55f3e83b61..025b7a0ff6 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -53,19 +53,19 @@ if(user.client) if(IsAdminGhost(user)) attack_ai(user) - if(user.client.prefs.inquisitive_ghost) + else if(user.client.prefs.inquisitive_ghost) user.examinate(src) +/mob/living/attack_ghost(mob/dead/observer/user) + if(user.client && user.health_scan) + healthscan(user, src, 1, TRUE) + return + ..() + // --------------------------------------- // And here are some good things for free: // Now you can click through portals, wormholes, gateways, and teleporters while observing. -Sayu -/obj/machinery/teleport/hub/attack_ghost(mob/user) - var/atom/l = loc - var/obj/machinery/computer/teleporter/com = locate(/obj/machinery/computer/teleporter, locate(l.x - 2, l.y, l.z)) - if(com && com.locked) - user.forceMove(get_turf(com.locked)) - /obj/effect/portal/attack_ghost(mob/user) if(linked) user.forceMove(get_turf(linked)) diff --git a/code/citadel/cit_clothes.dm b/code/citadel/cit_clothes.dm new file mode 100644 index 0000000000..dd83c6b769 --- /dev/null +++ b/code/citadel/cit_clothes.dm @@ -0,0 +1,31 @@ +/*///////////////////////////////////////////////////////////////////////////////// +/////// /////// +/////// Cit's exclusive jumpsuits, uniforms, etc. go here /////// +/////// /////// +*////////////////////////////////////////////////////////////////////////////////// + + +/obj/item/clothing/under/rank/security/skirt + name = "security skirt" + desc = "A tactical security skirt for officers complete with Nanotrasen belt buckle." + icon = 'icons/obj/clothing/cit_clothes.dmi' + icon_state = "secskirt" + icon_override = 'icons/mob/citadel/uniforms.dmi' + item_state = "r_suit" + item_color = "secskirt" + +/obj/item/clothing/under/rank/head_of_security/skirt + name = "head of security's skirt" + desc = "A security skirt decorated for those few with the dedication to achieve the position of Head of Security." + icon = 'icons/obj/clothing/cit_clothes.dmi' + icon_state = "hosskirt" + icon_override = 'icons/mob/citadel/uniforms.dmi' + item_state = "gy_suit" + item_color = "hosskirt" + +/obj/item/clothing/suit/armor/hos/trenchcoat/cloak + name = "armored trenchcloak" + desc = "A trenchcoat enchanced with a special lightweight kevlar. This one appears to be designed to be draped over one's shoulders rather than worn normally.." + alternate_worn_icon = 'icons/mob/citadel/suit.dmi' + icon_state = "hostrench" + item_state = "hostrench" \ No newline at end of file diff --git a/code/citadel/cit_displaycases.dm b/code/citadel/cit_displaycases.dm new file mode 100644 index 0000000000..f660475cfc --- /dev/null +++ b/code/citadel/cit_displaycases.dm @@ -0,0 +1,5 @@ +/obj/structure/displaycase/clown + desc = "In the event of clown, honk glass." + alert = 1 + start_showpiece_type = /obj/item/bikehorn + req_access = list(ACCESS_CENT_GENERAL) diff --git a/code/citadel/cit_guns.dm b/code/citadel/cit_guns.dm index bf8d034148..758e85d33b 100644 --- a/code/citadel/cit_guns.dm +++ b/code/citadel/cit_guns.dm @@ -111,7 +111,7 @@ w_class = WEIGHT_CLASS_BULKY can_suppress = 0 burst_size = 1 - fire_delay = 20 + fire_delay = 40 select = 0 actions_types = list() casing_ejector = 0 @@ -140,14 +140,14 @@ /datum/supply_pack/security/armory/spinfusor name = "Stormhammer Spinfusor Crate" - cost = 7000 + cost = 14000 contains = list(/obj/item/gun/ballistic/automatic/spinfusor, /obj/item/gun/ballistic/automatic/spinfusor) crate_name = "spinfusor crate" /datum/supply_pack/security/armory/spinfusorammo name = "Spinfusor Disk Crate" - cost = 4000 + cost = 7000 contains = list(/obj/item/ammo_box/aspinfusor, /obj/item/ammo_box/aspinfusor, /obj/item/ammo_box/aspinfusor, @@ -210,19 +210,23 @@ /obj/item/projectile/bullet/mags icon = 'icons/obj/guns/cit_guns.dmi' icon_state = "magjectile" - damage = 25 + damage = 15 armour_penetration = 10 light_range = 2 + speed = 1.2 + range = 25 light_color = LIGHT_COLOR_RED /obj/item/projectile/bullet/nlmags //non-lethal boolets icon = 'icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-nl" - damage = 2 - knockdown = 15 - stamina = 50 + damage = 1 + knockdown = 0 + stamina = 30 armour_penetration = -10 light_range = 2 + speed = 1.2 + range = 25 light_color = LIGHT_COLOR_BLUE @@ -378,19 +382,23 @@ /obj/item/projectile/bullet/magrifle icon = 'icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-large" - damage = 30 + damage = 20 armour_penetration = 25 light_range = 3 + speed = 1.2 + range = 35 light_color = LIGHT_COLOR_RED /obj/item/projectile/bullet/nlmagrifle //non-lethal boolets icon = 'icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-large-nl" - damage = 5 - knockdown = 30 - stamina = 75 - armour_penetration = 0 + damage = 1 + knockdown = 0 + stamina = 35 + armour_penetration = -10 light_range = 3 + speed = 1.0 + range = 35 light_color = LIGHT_COLOR_BLUE ///ammo casings/// @@ -443,7 +451,7 @@ can_suppress = 0 burst_size = 3 fire_delay = 2 - spread = 15 + spread = 30 recoil = 1 casing_ejector = 0 @@ -494,7 +502,7 @@ name = "foamag rifle" desc = "A foam launching magnetic rifle. Ages 8 and up." icon_state = "foamagrifle" - needs_permit = 0 + needs_permit = FALSE mag_type = /obj/item/ammo_box/magazine/toy/foamag casing_ejector = FALSE origin_tech = "combat=2;engineering=2;magnets=2" @@ -719,8 +727,8 @@ obj/item/projectile/bullet/c10mm/soporific if((blocked != 100) && isliving(target)) var/mob/living/L = target L.blur_eyes(6) - if(L.staminaloss >= 60) - L.Sleeping(250) + if(L.getStaminaLoss() >= 60) + L.Sleeping(300) else L.adjustStaminaLoss(25) return 1 @@ -753,7 +761,7 @@ obj/item/projectile/bullet/c10mm/soporific /obj/item/projectile/bullet/cflechettes //shreds flesh and forces bleeding name = "flechette (serrated)" - damage = 8 + damage = 15 dismemberment = 10 armour_penetration = -80 @@ -921,3 +929,306 @@ obj/item/projectile/bullet/c10mm/soporific materials = list(MAT_METAL = 7500, MAT_GLASS = 1000) build_path = /obj/item/gun/energy/laser/practice/raygun category = list("hacked", "Misc") + +/*///////////////////////////////////////////////////////////////////////////////////////////// + The Recolourable Gun +*////////////////////////////////////////////////////////////////////////////////////////////// + +/obj/item/gun/ballistic/automatic/pistol/p37 + name = "\improper CX Mk.37P" + desc = "A modern reimagining of an old legendary gun, the Mk.37 is a handgun with a toggle-locking mechanism manufactured by CX Armories. \ + This model is coated with a special polychromic material. \ + Has a small warning on the receiver that boldly states 'WARNING: WILL DETONATE UPON UNAUTHORIZED USE'. \ + Uses 9mm bullets loaded into proprietary magazines." + icon = 'icons/obj/guns/cit_guns.dmi' + icon_state = "p37" + w_class = WEIGHT_CLASS_NORMAL + spawnwithmagazine = FALSE + mag_type = /obj/item/ammo_box/magazine/m9mm/p37 + can_suppress = FALSE + pin = /obj/item/device/firing_pin/dna/dredd //goes boom if whoever isn't DNA locked to it tries to use it + actions_types = list(/datum/action/item_action/pick_color) + + var/frame_color = "#808080" //RGB + var/receiver_color = "#808080" + var/body_color = "#0098FF" + var/barrel_color = "#808080" + var/tip_color = "#808080" + var/arm_color = "#808080" + var/grip_color = "#00FFCB" //Does not actually colour the grip, just the lights surrounding it + var/energy_color = "#00FFCB" + +///Defining all the colourable bits and displaying them/// + +/obj/item/gun/ballistic/automatic/pistol/p37/update_icon() + var/mutable_appearance/frame_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_frame") + var/mutable_appearance/receiver_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_receiver") + var/mutable_appearance/body_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_body") + var/mutable_appearance/barrel_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_barrel") + var/mutable_appearance/tip_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_tip") + var/mutable_appearance/grip_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_grip") + var/mutable_appearance/energy_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_light") + var/mutable_appearance/arm_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_arm") + var/mutable_appearance/arm_overlay_e = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_arm-e") + + if(frame_color) + frame_overlay.color = frame_color + if(receiver_color) + receiver_overlay.color = receiver_color + if(body_color) + body_overlay.color = body_color + if(barrel_color) + barrel_overlay.color = barrel_color + if(tip_color) + tip_overlay.color = tip_color + if(grip_color) + grip_overlay.color = grip_color + if(energy_color) + energy_overlay.color = energy_color + if(arm_color) + arm_overlay.color = arm_color + if(arm_color) + arm_overlay_e.color = arm_color + + cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other + + add_overlay(frame_overlay) + add_overlay(receiver_overlay) + add_overlay(body_overlay) + add_overlay(barrel_overlay) + add_overlay(tip_overlay) + add_overlay(grip_overlay) + add_overlay(energy_overlay) + + if(magazine) //does not need a cut_overlays proc call here because it's already called further up + add_overlay("p37_mag") + + if(chambered) + cut_overlay(arm_overlay_e) + add_overlay(arm_overlay) + else + cut_overlay(arm_overlay) + add_overlay(arm_overlay_e) + +///letting you actually recolor things/// + +/obj/item/gun/ballistic/automatic/pistol/p37/ui_action_click(mob/user, var/datum/action/A) + if(istype(A, /datum/action/item_action/pick_color)) + + var/choice = input(user,"Mk.37P polychrome options", "Gun Recolor") in list("Frame Color","Receiver Color","Body Color", + "Barrel Color", "Barrel Tip Color", "Grip Light Color", + "Light Color", "Arm Color", "*CANCEL*") + + switch(choice) + + if("Frame Color") + var/frame_color_input = input(usr,"Choose Frame Color") as color|null + if(frame_color_input) + frame_color = sanitize_hexcolor(frame_color_input, desired_format=6, include_crunch=1) + update_icon() + + if("Receiver Color") + var/receiver_color_input = input(usr,"Choose Receiver Color") as color|null + if(receiver_color_input) + receiver_color = sanitize_hexcolor(receiver_color_input, desired_format=6, include_crunch=1) + update_icon() + + if("Body Color") + var/body_color_input = input(usr,"Choose Body Color") as color|null + if(body_color_input) + body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1) + update_icon() + + if("Barrel Color") + var/barrel_color_input = input(usr,"Choose Barrel Color") as color|null + if(barrel_color_input) + barrel_color = sanitize_hexcolor(barrel_color_input, desired_format=6, include_crunch=1) + update_icon() + + if("Barrel Tip Color") + var/tip_color_input = input(usr,"Choose Barrel Tip Color") as color|null + if(tip_color_input) + tip_color = sanitize_hexcolor(tip_color_input, desired_format=6, include_crunch=1) + update_icon() + + if("Grip Light Color") + var/grip_color_input = input(usr,"Choose Grip Light Color") as color|null + if(grip_color_input) + grip_color = sanitize_hexcolor(grip_color_input, desired_format=6, include_crunch=1) + update_icon() + + if("Light Color") + var/energy_color_input = input(usr,"Choose Light Color") as color|null + if(energy_color_input) + energy_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1) + update_icon() + + if("Arm Color") + var/arm_color_input = input(usr,"Choose Arm Color") as color|null + if(arm_color_input) + arm_color = sanitize_hexcolor(arm_color_input, desired_format=6, include_crunch=1) + update_icon() + A.UpdateButtonIcon() + + else + ..() + +///boolets/// + +/obj/item/projectile/bullet/c9mm/frangible + name = "9mm frangible bullet" + damage = 15 + stamina = 0 + speed = 1.0 + range = 20 + armour_penetration = -25 + +/obj/item/projectile/bullet/c9mm/rubber + name = "9mm rubber bullet" + damage = 5 + stamina = 30 + speed = 1.2 + range = 14 + knockdown = 0 + +/obj/item/ammo_casing/c9mm/frangible + name = "9mm frangible bullet casing" + desc = "A 9mm frangible bullet casing." + projectile_type = /obj/item/projectile/bullet/c9mm/frangible + +/obj/item/ammo_casing/c9mm/rubber + name = "9mm rubber bullet casing" + desc = "A 9mm rubber bullet casing." + projectile_type = /obj/item/projectile/bullet/c9mm/rubber + +/obj/item/ammo_box/magazine/m9mm/p37 + name = "\improper P37 magazine (9mm frangible)" + desc = "A gun magazine. Loaded with plastic composite rounds which fragment upon impact to minimize collateral damage." + icon = 'icons/obj/guns/cit_guns.dmi' + icon_state = "11mm" //topkek + ammo_type = /obj/item/ammo_casing/c9mm/frangible + caliber = "9mm" + max_ammo = 11 + multiple_sprites = 1 + +/obj/item/ammo_box/magazine/m9mm/p37/fmj + name = "\improper P37 magazine (9mm)" + ammo_type = /obj/item/ammo_casing/c9mm + desc = "A gun magazine. Loaded with conventional full metal jacket rounds." + +/obj/item/ammo_box/magazine/m9mm/p37/rubber + name = "\improper P37 magazine (9mm Non-Lethal Rubbershot)" + ammo_type = /obj/item/ammo_casing/c9mm/rubber + desc = "A gun magazine. Loaded with less-than-lethal rubber bullets." + +/obj/item/ammo_box/c9mm/frangible + name = "ammo box (9mm frangible)" + ammo_type = /obj/item/ammo_casing/c9mm/frangible + +/obj/item/ammo_box/c9mm/rubber + name = "ammo box (9mm non-lethal rubbershot)" + ammo_type = /obj/item/ammo_casing/c9mm/rubber + +/datum/design/c9mmfrag + name = "Box of 9mm Frangible Bullets" + id = "9mm_frag" + build_type = AUTOLATHE + materials = list(MAT_METAL = 25000) + build_path = /obj/item/ammo_box/c9mm/frangible + category = list("hacked", "Security") + +/datum/design/c9mmrubber + name = "Box of 9mm Rubber Bullets" + id = "9mm_rubber" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30000) + build_path = /obj/item/ammo_box/c9mm/rubber + category = list("initial", "Security") + + +///Security Variant/// + +/obj/item/gun/ballistic/automatic/pistol/p37/sec + name = "\improper CX Mk.37S" + desc = "A modern reimagining of an old legendary gun, the Mk.37 is a handgun with a toggle-locking mechanism manufactured by CX Armories. Uses 9mm bullets loaded into proprietary magazines." + spawnwithmagazine = FALSE + pin = /obj/item/device/firing_pin/implant/mindshield + actions_types = list() //so you can't recolor it + + frame_color = "#808080" //RGB + receiver_color = "#808080" + body_color = "#282828" + barrel_color = "#808080" + tip_color = "#808080" + arm_color = "#800000" + grip_color = "#FFFF00" //Does not actually colour the grip, just the lights surrounding it + energy_color = "#FFFF00" + +///Foam Variant because WE NEED MEMES/// + +/obj/item/gun/ballistic/automatic/pistol/p37/foam + name = "\improper Foam Force Mk.37F" + desc = "A licensed foam-firing reproduction of a handgun with a toggle-locking mechanism manufactured by CX Armories. This model is coated with a special polychromic material. Uses standard foam pistol magazines." + icon_state = "p37_foam" + pin = /obj/item/device/firing_pin + spawnwithmagazine = TRUE + needs_permit = FALSE + mag_type = /obj/item/ammo_box/magazine/toy/pistol + can_suppress = FALSE + actions_types = list(/datum/action/item_action/pick_color) + +/datum/design/foam_p37 + name = "Foam Force Mk.37F" + id = "foam_p37" + build_type = AUTOLATHE + materials = list(MAT_METAL = 15000, MAT_GLASS = 10000) + build_path = /obj/item/gun/ballistic/automatic/pistol/p37/foam + category = list("hacked", "Misc") + + +/*///////////////////////////////////////////////////////////////////////////////////////////// + The Recolourable Energy Gun +*////////////////////////////////////////////////////////////////////////////////////////////// + +obj/item/gun/energy/e_gun/cx + name = "\improper CX Model D Energy Gun" + desc = "An overpriced hybrid energy gun with two settings: disable, and kill. Manufactured by CX Armories. Has a polychromic coating." + icon = 'icons/obj/guns/cit_guns.dmi' + icon_state = "cxe" + lefthand_file = 'icons/mob/citadel/guns_lefthand.dmi' + righthand_file = 'icons/mob/citadel/guns_righthand.dmi' + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) + origin_tech = "combat=4;magnets=3" + flight_x_offset = 15 + flight_y_offset = 10 + actions_types = list(/datum/action/item_action/pick_color) + var/body_color = "#252528" + +obj/item/gun/energy/e_gun/cx/update_icon() + ..() + var/mutable_appearance/body_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "cxegun_body") + if(body_color) + body_overlay.color = body_color + add_overlay(body_overlay) + + if(ismob(loc)) + var/mob/M = loc + M.update_inv_hands() + +obj/item/gun/energy/e_gun/cx/ui_action_click(mob/user, var/datum/action/A) + if(istype(A, /datum/action/item_action/pick_color)) + if(alert("Are you sure you want to repaint your gun?", "Confirm Repaint", "Yes", "No") == "Yes") + var/body_color_input = input(usr,"Choose Body Color") as color|null + if(body_color_input) + body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1) + update_icon() + A.UpdateButtonIcon() + else + ..() + +obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file) + . = ..() + if(isinhands) + var/mutable_appearance/body_inhand = mutable_appearance(icon_file, "cxe_body") + body_inhand.color = body_color + . += body_inhand \ No newline at end of file diff --git a/code/citadel/cit_weapons.dm b/code/citadel/cit_weapons.dm index 466a41e427..c709fe90e9 100644 --- a/code/citadel/cit_weapons.dm +++ b/code/citadel/cit_weapons.dm @@ -32,6 +32,10 @@ set_light(0) update_icon() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + add_fingerprint(user) /obj/item/toy/sword/cx/update_icon() @@ -49,6 +53,10 @@ if(active) add_overlay(blade_overlay) + if(ismob(loc)) + var/mob/M = loc + M.update_inv_hands() + /obj/item/toy/sword/cx/ui_action_click(mob/user, var/datum/action/A) if(istype(A, /datum/action/item_action/pick_color)) if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes") @@ -56,10 +64,8 @@ if(energy_color_input) light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1) update_icon() - if(ismob(loc)) - var/mob/M = loc - M.update_inv_hands() update_light() + A.UpdateButtonIcon() else ..() @@ -72,6 +78,9 @@ blade_inhand.color = light_color . += blade_inhand +/obj/item/toy/sword/cx/attackby(obj/item/W, mob/living/user, params) + return //NO MORE MAKING DUAL ESWORDS + /*///autolathe memes/// I really need to stop doing this and find a proper way of adding in my toys /datum/design/toyneb @@ -143,6 +152,9 @@ update_icon() transform_messages(user, supress_message_text) add_fingerprint(user) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() return TRUE /obj/item/melee/transforming/energy/sword/cx/transform_messages(mob/living/user, supress_message_text) @@ -165,6 +177,10 @@ if(active) add_overlay(blade_overlay) + if(ismob(loc)) + var/mob/M = loc + M.update_inv_hands() + /obj/item/melee/transforming/energy/sword/cx/ui_action_click(mob/user, var/datum/action/A) if(istype(A, /datum/action/item_action/pick_color)) if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes") @@ -172,10 +188,8 @@ if(energy_color_input) light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1) update_icon() - if(ismob(loc)) - var/mob/M = loc - M.update_inv_hands() update_light() + A.UpdateButtonIcon() else ..() diff --git a/code/controllers/configuration/entries/config.dm b/code/controllers/configuration/entries/config.dm index f1ee6a557c..2c7e5c97cf 100644 --- a/code/controllers/configuration/entries/config.dm +++ b/code/controllers/configuration/entries/config.dm @@ -372,3 +372,10 @@ CONFIG_TWEAK(number/mc_tick_rate/ValidateAndSet(str_val)) . = ..() if (.) Master.UpdateTickRate() + +CONFIG_DEF(flag/resume_after_initializations) + +CONFIG_TWEAK(flag/ValidateAndSet(str_val)) + . = ..() + if(. && Master.current_runlevel) + world.sleep_offline = !value diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index ea79ba81f3..29ace9eef3 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -163,9 +163,20 @@ CONFIG_DEF(flag/ooc_during_round) CONFIG_DEF(flag/emojis) CONFIG_DEF(number/run_delay) //Used for modifying movement speed for mobs. + var/static/value_cache = 0 + +CONFIG_TWEAK(number/run_delay/ValidateAndSet()) + . = ..() + if(.) + value_cache = value CONFIG_DEF(number/walk_delay) + var/static/value_cache = 0 +CONFIG_TWEAK(number/walk_delay/ValidateAndSet()) + . = ..() + if(.) + value_cache = value CONFIG_DEF(number/human_delay) //Mob specific modifiers. NOTE: These will affect different mob types in different ways CONFIG_DEF(number/robot_delay) diff --git a/code/controllers/globals.dm b/code/controllers/globals.dm index 6aca9c1911..095e69573a 100644 --- a/code/controllers/globals.dm +++ b/code/controllers/globals.dm @@ -40,18 +40,18 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) stat("Globals:", statclick.update("Edit")) /datum/controller/global_vars/can_vv_get(var_name) - if(var_name in gvars_datum_protected_varlist) + if(gvars_datum_protected_varlist[var_name]) return FALSE return ..() /datum/controller/global_vars/vv_edit_var(var_name, var_value) - if((var_name in gvars_datum_protected_varlist)) + if(gvars_datum_protected_varlist[var_name]) return FALSE return ..() /datum/controller/global_vars/Initialize() gvars_datum_init_order = list() - gvars_datum_protected_varlist = list("gvars_datum_protected_varlist") + gvars_datum_protected_varlist = list("gvars_datum_protected_varlist" = TRUE) var/list/global_procs = typesof(/datum/controller/global_vars/proc) var/expected_len = vars.len - gvars_datum_in_built_vars.len if(global_procs.len != expected_len) diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 852437705b..568257e10f 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -189,10 +189,12 @@ GLOBAL_REAL(Master, /datum/controller/master) = new // Sort subsystems by display setting for easy access. sortTim(subsystems, /proc/cmp_subsystem_display) // Set world options. - world.sleep_offline = 1 + world.sleep_offline = TRUE world.fps = CONFIG_GET(number/fps) var/initialized_tod = REALTIMEOFDAY sleep(1) + if(CONFIG_GET(flag/resume_after_initializations)) + world.sleep_offline = FALSE initializations_finished_with_no_players_logged_in = initialized_tod < REALTIMEOFDAY - 10 // Loop. Master.StartProcessing(0) diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index b5dbabb934..59b6fc34ef 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -27,6 +27,7 @@ SUBSYSTEM_DEF(air) var/list/hotspots = list() var/list/networks = list() var/list/obj/machinery/atmos_machinery = list() + var/list/pipe_init_dirs_cache = list() @@ -376,6 +377,16 @@ SUBSYSTEM_DEF(air) AM.build_network() CHECK_TICK +/datum/controller/subsystem/air/proc/get_init_dirs(type, dir) + if(!pipe_init_dirs_cache[type]) + pipe_init_dirs_cache[type] = list() + + if(!pipe_init_dirs_cache[type]["[dir]"]) + var/obj/machinery/atmospherics/temp = new type(null, FALSE, dir) + pipe_init_dirs_cache[type]["[dir]"] = temp.GetInitDirections() + qdel(temp) + + return pipe_init_dirs_cache[type]["[dir]"] #undef SSAIR_PIPENETS #undef SSAIR_ATMOSMACHINERY diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index 10978b7d32..bbf1fef8d9 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -186,7 +186,7 @@ Delayed insert mode was removed in mysql 7 and only works with MyISAM type table /datum/DBQuery/proc/warn_execute() . = Execute() if(!.) - to_chat(usr, "A SQL error occured during this operation, check the server logs.") + to_chat(usr, "A SQL error occurred during this operation, check the server logs.") /datum/DBQuery/proc/Execute(sql_query = sql, cursor_handler = default_cursor, log_error = TRUE) Close() diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index cfefa1b159..3aa1747dee 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -177,7 +177,7 @@ SUBSYSTEM_DEF(events) var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day - var/DDD = text2num(time2text(world.timeofday, "DDD")) // get the current weekday + var/DDD = time2text(world.timeofday, "DDD") // get the current weekday var/W = weekdayofthemonth() // is this the first monday? second? etc. for(var/H in subtypesof(/datum/holiday)) diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index eb4f2380a1..6203f1b474 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -263,7 +263,7 @@ SUBSYSTEM_DEF(garbage) // Should be treated as a replacement for the 'del' keyword. // Datums passed to this will be given a chance to clean up references to allow the GC to collect them. -/proc/qdel(datum/D, force=FALSE) +/proc/qdel(datum/D, force=FALSE, ...) if(!istype(D)) del(D) return @@ -278,7 +278,7 @@ SUBSYSTEM_DEF(garbage) D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED var/start_time = world.time var/start_tick = world.tick_usage - var/hint = D.Destroy(force) // Let our friend know they're about to get fucked up. + var/hint = D.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up. if(world.time != start_time) I.slept_destroy++ else diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index ab2ba54431..03b7cdc095 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -18,6 +18,8 @@ SUBSYSTEM_DEF(mapping) var/list/shuttle_templates = list() var/list/shelter_templates = list() + var/list/areas_in_z = list() + var/loading_ruins = FALSE /datum/controller/subsystem/mapping/PreInit() @@ -124,7 +126,7 @@ SUBSYSTEM_DEF(mapping) query_round_map_name.Execute() if(config.minetype != "lavaland") - INIT_ANNOUNCE("WARNING: A map without lavaland set as it's minetype was loaded! This is being ignored! Update the maploader code!") + INIT_ANNOUNCE("WARNING: A map without lavaland set as its minetype was loaded! This is being ignored! Update the maploader code!") CreateSpace(ZLEVEL_SPACEMAX) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 26a014d644..ae7f73be8f 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -30,8 +30,7 @@ SUBSYSTEM_DEF(ticker) var/list/availablefactions = list() //list of factions with openings var/list/scripture_states = list(SCRIPTURE_DRIVER = TRUE, \ SCRIPTURE_SCRIPT = FALSE, \ - SCRIPTURE_APPLICATION = FALSE, \ - SCRIPTURE_JUDGEMENT = FALSE) //list of clockcult scripture states for announcements + SCRIPTURE_APPLICATION = FALSE) //list of clockcult scripture states for announcements var/delay_end = 0 //if set true, the round will not restart on it's own diff --git a/code/datums/antagonists/devil.dm b/code/datums/antagonists/devil.dm index 2392d456cf..416a8f3752 100644 --- a/code/datums/antagonists/devil.dm +++ b/code/datums/antagonists/devil.dm @@ -35,7 +35,7 @@ GLOBAL_LIST_INIT(lawlorify, list ( BAN_CHAPEL = "This devil avoids holy ground.", BAN_HURTPRIEST = "The annointed clergy appear to be immune to his powers.", BAN_AVOIDWATER = "The devil seems to have some sort of aversion to water, though it does not appear to harm him.", - BAN_STRIKEUNCONCIOUS = "This devil only shows interest in those who are awake.", + BAN_STRIKEUNCONSCIOUS = "This devil only shows interest in those who are awake.", BAN_HURTLIZARD = "This devil will not strike a lizardman first.", BAN_HURTANIMAL = "This devil avoids hurting animals.", BANISH_WATER = "To banish the devil, you must infuse its body with holy water.", @@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(lawlorify, list ( BAN_CHAPEL = "You must never attempt to enter the chapel.", BAN_HURTPRIEST = "You must never attack a priest.", BAN_AVOIDWATER = "You must never willingly touch a wet surface.", - BAN_STRIKEUNCONCIOUS = "You must never strike an unconscious person.", + BAN_STRIKEUNCONSCIOUS = "You must never strike an unconscious person.", BAN_HURTLIZARD = "You must never harm a lizardman outside of self defense.", BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.", BANE_SILVER = "Silver, in all of its forms shall be your downfall.", @@ -148,7 +148,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_DANCEOFF, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME) /proc/randomdevilban() - return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL) + return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONSCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL) /proc/randomdevilbane() return pick(BANE_SALT, BANE_LIGHT, BANE_IRON, BANE_WHITECLOTHES, BANE_SILVER, BANE_HARVEST, BANE_TOOLBOX) diff --git a/code/datums/components/README.md b/code/datums/components/README.md index 8d37e15de3..11cbf1858d 100644 --- a/code/datums/components/README.md +++ b/code/datums/components/README.md @@ -26,7 +26,7 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo ### Defines -1. `COMPONENT_INCOMPATIBLE` Return this from `/datum/component/Initialize` to have the component be deleted if it's applied to an incorrect type. `parent` must not be modified if this is to be returned. +1. `COMPONENT_INCOMPATIBLE` Return this from `/datum/component/Initialize` or `datum/component/OnTransfer` to have the component be deleted if it's applied to an incorrect type. `parent` must not be modified if this is to be returned. ### Vars @@ -42,12 +42,13 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo * `COMPONENT_DUPE_UNIQUE`: New component will be deleted, old component will first have `/datum/component/proc/InheritComponent(datum/component/new, TRUE)` on it 1. `/datum/component/var/dupe_type` (protected, type) * Definition of a duplicate component type - * `null` means exact match on `type` + * `null` means exact match on `type` (default) * Any other type means that and all subtypes 1. `/datum/component/var/list/signal_procs` (private) * Associated lazy list of signals -> `/datum/callback`s that will be run when the parent datum recieves that signal 1. `/datum/component/var/datum/parent` (protected, read-only) * The datum this component belongs to + * Never `null` in child procs ### Procs @@ -72,7 +73,7 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo * Will only be called if a component's callback returns `TRUE` 1. `/datum/proc/TakeComponent(datum/component/C)` (public, final) * Properly transfers ownership of a component from one datum to another - * Singals `COMSIG_COMPONENT_REMOVING` on the parent + * Signals `COMSIG_COMPONENT_REMOVING` on the parent * Called on the datum you want to own the component with another datum's component 1. `/datum/proc/SendSignal(signal, ...)` (public, final) * Call to send a signal to the components of the target datum @@ -86,9 +87,11 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo * Signals will not be recieved while this function is running * Component may be deleted after this function completes without being attached * Do not call `qdel(src)` from this function -1. `/datum/component/Destroy()` (virtual, no-sleep) +1. `/datum/component/Destroy(force(bool), silent(bool))` (virtual, no-sleep) * Sends the `COMSIG_COMPONENT_REMOVING` signal to the parent datum if the `parent` isn't being qdeleted * Properly removes the component from `parent` and cleans up references + * Setting `force` makes it not check for and remove the component from the parent + * Setting `silent` deletes the component without sending a `COMSIG_COMPONENT_REMOVING` signal 1. `/datum/component/proc/InheritComponent(datum/component/C, i_am_original(boolean))` (abstract, no-sleep) * Called on a component when a component of the same type was added to the same parent * See `/datum/component/var/dupe_mode` @@ -96,10 +99,13 @@ Stands have a lot of procs which mimic mob procs. Rather than inserting hooks fo 1. `/datum/component/proc/AfterComponentActivated()` (abstract, async) * Called on a component that was activated after it's `parent`'s `ComponentActivated()` is called 1. `/datum/component/proc/OnTransfer(datum/new_parent)` (abstract, no-sleep) - * Called before the new `parent` is assigned in `TakeComponent()`, after the remove signal, before the added signal + * Called before `new_parent` is assigned to `parent` in `TakeComponent()` * Allows the component to react to ownership transfers -1. `/datum/component/proc/_RemoveNoSignal()` (private, final) - * Internal, clears the parent var and removes the component from the parents component list +1. `/datum/component/proc/_RemoveFromParent()` (private, final) + * Clears `parent` and removes the component from it's component list +1. `/datum/component/proc/_CheckDupesAndJoinParent` (private, final) + * Tries to add the component to it's `parent`s `datum_components` list + * Properly handles duplicate situations based on the `dupe_mode` var 1. `/datum/component/proc/RegisterSignal(signal(string/list of strings), proc_ref(type), override(boolean))` (protected, final) (Consider removing for performance gainz) * If signal is a list it will be as if RegisterSignal was called for each of the entries with the same following arguments * Makes a component listen for the specified `signal` on it's `parent` datum. diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index 9978b01955..bb60350cbf 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -6,35 +6,45 @@ var/datum/parent /datum/component/New(datum/P, ...) + if(type == /datum/component) + qdel(src) + CRASH("[type] instantiated!") + parent = P var/list/arguments = args.Copy() arguments.Cut(1, 2) if(Initialize(arglist(arguments)) == COMPONENT_INCOMPATIBLE) - parent = null - qdel(src) + qdel(src, TRUE, TRUE) return + + _CheckDupesAndJoinParent(P) +/datum/component/proc/_CheckDupesAndJoinParent() + var/datum/P = parent var/dm = dupe_mode + + var/datum/component/old if(dm != COMPONENT_DUPE_ALLOWED) var/dt = dupe_type - var/datum/component/old if(!dt) old = P.GetExactComponent(type) else old = P.GetComponent(dt) if(old) + //One or the other has to die switch(dm) if(COMPONENT_DUPE_UNIQUE) old.InheritComponent(src, TRUE) - parent = null //prevent COMPONENT_REMOVING signal - qdel(src) + qdel(src, TRUE, TRUE) return if(COMPONENT_DUPE_HIGHLANDER) InheritComponent(old, FALSE) - qdel(old) - - //let the others know - P.SendSignal(COMSIG_COMPONENT_ADDED, src) + qdel(old, FALSE, TRUE) + + //provided we didn't eat someone + if(!old) + //let the others know + P.SendSignal(COMSIG_COMPONENT_ADDED, src) //lazy init the parent's dc list var/list/dc = P.datum_components @@ -47,7 +57,7 @@ var/test = dc[I] if(test) //already another component of this type here var/list/components_of_type - if(!islist(test)) + if(!length(test)) components_of_type = list(test) dc[I] = components_of_type else @@ -70,35 +80,34 @@ /datum/component/proc/Initialize(...) return -/datum/component/Destroy() +/datum/component/Destroy(force=FALSE, silent=FALSE) enabled = FALSE var/datum/P = parent - if(P) - _RemoveNoSignal() + if(!force) + _RemoveFromParent() + if(!silent) P.SendSignal(COMSIG_COMPONENT_REMOVING, src) + parent = null LAZYCLEARLIST(signal_procs) return ..() -/datum/component/proc/_RemoveNoSignal() +/datum/component/proc/_RemoveFromParent() var/datum/P = parent - if(P) - var/list/dc = P.datum_components - var/our_type = type - for(var/I in _GetInverseTypeList(our_type)) - var/list/components_of_type = dc[I] - if(islist(components_of_type)) // - var/list/subtracted = components_of_type - src - if(subtracted.len == 1) //only 1 guy left - dc[I] = subtracted[1] //make him special - else - dc[I] = subtracted - else //just us - dc -= I - if(!dc.len) - P.datum_components = null - parent = null + var/list/dc = P.datum_components + for(var/I in _GetInverseTypeList()) + var/list/components_of_type = dc[I] + if(length(components_of_type)) // + var/list/subtracted = components_of_type - src + if(subtracted.len == 1) //only 1 guy left + dc[I] = subtracted[1] //make him special + else + dc[I] = subtracted + else //just us + dc -= I + if(!dc.len) + P.datum_components = null -/datum/component/proc/RegisterSignal(sig_type_or_types, proc_on_self, override = FALSE) +/datum/component/proc/RegisterSignal(sig_type_or_types, proc_or_callback, override = FALSE) if(QDELETED(src)) return var/list/procs = signal_procs @@ -112,8 +121,10 @@ . = procs[sig_type] if(.) stack_trace("[sig_type] overridden. Use override = TRUE to suppress this warning") - - procs[sig_type] = CALLBACK(src, proc_on_self) + + if(!istype(proc_or_callback, /datum/callback)) //if it wasnt a callback before, it is now + proc_or_callback = CALLBACK(src, proc_or_callback) + procs[sig_type] = proc_or_callback /datum/component/proc/InheritComponent(datum/component/C, i_am_original) return @@ -125,8 +136,15 @@ set waitfor = FALSE return -/datum/component/proc/_GetInverseTypeList(current_type) - . = list(current_type) +/datum/component/proc/_GetInverseTypeList(our_type = type) +#if DM_VERSION > 511 +#warning Remove this hack for http://www.byond.com/forum/?post=73469 +#endif + set invisibility = 101 + //we can do this one simple trick + var/current_type = parent_type + . = list(our_type, current_type) + //and since most components are root level + 1, this won't even have to run while (current_type != /datum/component) current_type = type2parent(current_type) . += current_type @@ -138,7 +156,7 @@ var/list/arguments = args.Copy() arguments.Cut(1, 2) var/target = comps[/datum/component] - if(!islist(target)) + if(!length(target)) var/datum/component/C = target if(!C.enabled) return FALSE @@ -174,7 +192,7 @@ if(!dc) return null . = dc[c_type] - if(islist(.)) + if(length(.)) return .[1] /datum/proc/GetExactComponent(c_type) @@ -183,7 +201,7 @@ return null var/datum/component/C = dc[c_type] if(C) - if(islist(C)) + if(length(C)) C = C[1] if(C.type == c_type) return C @@ -194,14 +212,14 @@ if(!dc) return null . = dc[c_type] - if(!islist(.)) + if(!length(.)) return list(.) /datum/proc/AddComponent(new_type, ...) var/nt = new_type args[1] = src var/datum/component/C = new nt(arglist(args)) - return QDELING(C) ? GetComponent(new_type) : C + return QDELING(C) ? GetExactComponent(new_type) : C /datum/proc/LoadComponent(component_type, ...) . = GetComponent(component_type) @@ -213,13 +231,15 @@ return var/datum/helicopter = C.parent if(helicopter == src) - //wat + //if we're taking to the same thing no need for anything return - C._RemoveNoSignal() + if(C.OnTransfer(src) == COMPONENT_INCOMPATIBLE) + qdel(C) + return + C._RemoveFromParent() helicopter.SendSignal(COMSIG_COMPONENT_REMOVING, C) - C.OnTransfer(src) C.parent = src - SendSignal(COMSIG_COMPONENT_ADDED, C) + C._CheckDupesAndJoinParent() /datum/proc/TransferComponents(datum/target) var/list/dc = datum_components diff --git a/code/datums/components/decal.dm b/code/datums/components/decal.dm new file mode 100644 index 0000000000..e9ddfdd5fe --- /dev/null +++ b/code/datums/components/decal.dm @@ -0,0 +1,53 @@ +/datum/component/decal + dupe_mode = COMPONENT_DUPE_ALLOWED + + var/cleanable + var/mutable_appearance/pic + +/datum/component/decal/Initialize(_icon, _icon_state, _dir, _cleanable=CLEAN_GOD, _color, _layer=TURF_LAYER) + if(!isatom(parent) || !_icon || !_icon_state) + . = COMPONENT_INCOMPATIBLE + CRASH("A turf decal was applied incorrectly to [parent.type]: icon:[_icon ? _icon : "none"] icon_state:[_icon_state ? _icon_state : "none"]") + + // It has to be made from an image or dir breaks because of a byond bug + var/temp_image = image(_icon, null, _icon_state, _layer, _dir) + pic = new(temp_image) + pic.color = _color + + cleanable = _cleanable + + apply() + + if(_dir) // If no dir is assigned at start then it follows the atom's dir + RegisterSignal(COMSIG_ATOM_DIR_CHANGE, .proc/rotate_react) + if(_cleanable) + RegisterSignal(COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react) + +/datum/component/decal/Destroy() + remove() + return ..() + +/datum/component/decal/OnTransfer(atom/thing) + remove() + remove(thing) + apply(thing) + +/datum/component/decal/proc/apply(atom/thing) + var/atom/master = thing || parent + master.add_overlay(pic, TRUE) + +/datum/component/decal/proc/remove(atom/thing) + var/atom/master = thing || parent + master.cut_overlay(pic, TRUE) + +/datum/component/decal/proc/rotate_react(old_dir, new_dir) + if(old_dir == new_dir) + return + remove() + var/rotation = SimplifyDegrees(dir2angle(new_dir)-dir2angle(old_dir)) + pic.dir = turn(pic.dir, rotation) + apply() + +/datum/component/decal/proc/clean_react(strength) + if(strength >= cleanable) + qdel(src) \ No newline at end of file diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index b0bf28f163..c149fd8492 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -37,11 +37,15 @@ return ..() /datum/component/radioactive/process() - if(hl3_release_date && prob(50)) - radiation_pulse(parent, strength, RAD_DISTANCE_COEFFICIENT*2, FALSE, can_contaminate) - strength -= strength / hl3_release_date - if(strength <= RAD_BACKGROUND_RADIATION) - qdel(src) + if(!prob(50)) + return + radiation_pulse(parent, strength, RAD_DISTANCE_COEFFICIENT*2, FALSE, can_contaminate) + + if(!hl3_release_date) + return + strength -= strength / hl3_release_date + if(strength <= RAD_BACKGROUND_RADIATION) + return PROCESS_KILL /datum/component/radioactive/InheritComponent(datum/component/C, i_am_original) if(!i_am_original) diff --git a/code/datums/components/signal_redirect.dm b/code/datums/components/signal_redirect.dm new file mode 100644 index 0000000000..38372dd356 --- /dev/null +++ b/code/datums/components/signal_redirect.dm @@ -0,0 +1,9 @@ +/datum/component/redirect + dupe_mode = COMPONENT_DUPE_ALLOWED + +/datum/component/redirect/Initialize(list/signals, datum/callback/_callback) + //It's not our job to verify the right signals are registered here, just do it. + if(!LAZYLEN(signals) || !istype(_callback)) + . = COMPONENT_INCOMPATIBLE + CRASH("A redirection component was initialized with incorrect args.") + RegisterSignal(signals, _callback) diff --git a/code/datums/components/spooky.dm b/code/datums/components/spooky.dm new file mode 100644 index 0000000000..966baf7c4a --- /dev/null +++ b/code/datums/components/spooky.dm @@ -0,0 +1,60 @@ +/datum/component/spooky + var/too_spooky = TRUE //will it spawn a new instrument? + +/datum/component/spooky/Initialize() + RegisterSignal(COMSIG_ITEM_ATTACK, .proc/spectral_attack) + +/datum/component/spooky/proc/spectral_attack(mob/living/carbon/C, mob/user) + if(ishuman(user)) //this weapon wasn't meant for mortals. + var/mob/living/carbon/human/U = user + if(!istype(U.dna.species, /datum/species/skeleton)) + U.adjustStaminaLoss(35) //Extra Damage + U.Jitter(35) + U.stuttering = 20 + if(U.getStaminaLoss() > 95) + to_chat(U, "Your ears weren't meant for this spectral sound.") + spectral_change(U) + return + + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(istype(H.dna.species, /datum/species/skeleton)) + return ..() //undeads are unaffected by the spook-pocalypse. + if(istype(H.dna.species, /datum/species/zombie)) + H.adjustStaminaLoss(25) + H.Knockdown(15) //zombies can't resist the doot + C.Jitter(35) + C.stuttering = 20 + if((!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly))) + C.adjustStaminaLoss(25) //boneless humanoids don't lose the will to live + to_chat(C, "DOOT") + spectral_change(H) + + else //the sound will spook monkeys. + C.Jitter(15) + C.stuttering = 20 + +/datum/component/spooky/proc/spectral_change(mob/living/carbon/human/H, mob/user) + if((H.getStaminaLoss() > 95) && (!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly))) + H.Knockdown(20) + H.set_species(/datum/species/skeleton) + H.visible_message("[H] has given up on life as a mortal.") + var/T = get_turf(H) + if(too_spooky) + if(prob(30)) + new/obj/item/device/instrument/saxophone/spectral(T) + else if(prob(30)) + new/obj/item/device/instrument/trumpet/spectral(T) + else if(prob(30)) + new/obj/item/device/instrument/trombone/spectral(T) + else + to_chat(H, "The spooky gods forgot to ship your instrument. Better luck next unlife.") + to_chat(H, "You are the spooky skeleton!") + to_chat(H, "A new life and identity has begun. Help your fellow skeletons into bringing out the spooky-pocalypse. You haven't forgotten your past life, and are still beholden to past loyalties.") + change_name(H) //time for a new name! + +/datum/component/spooky/proc/change_name(mob/living/carbon/human/H) + var/t = stripped_input(H, "Enter your new skeleton name", H.real_name, null, MAX_NAME_LEN) + if(!t) + t = "spooky skeleton" + H.fully_replace_character_name(H.real_name, t) diff --git a/code/datums/components/turf_decal.dm b/code/datums/components/turf_decal.dm new file mode 100644 index 0000000000..0cd4cb969e --- /dev/null +++ b/code/datums/components/turf_decal.dm @@ -0,0 +1,51 @@ +/datum/component/turf_decal + var/dir + var/icon + var/icon_state + var/layer + var/group + +/datum/component/turf_decal/Initialize(_dir, _icon, _icon_state, _layer=TURF_DECAL_LAYER, _group=TURF_DECAL_PAINT) + if(!isturf(parent) || !_icon || !_icon_state) + WARNING("A turf decal was applied incorrectly to [parent]: icon:[_icon ? _icon : "none"] icon_state:[_icon_state ? _icon_state : "none"]") + return COMPONENT_INCOMPATIBLE + + dir = _dir + icon = _icon + icon_state = _icon_state + layer = _layer + group = _group + apply_decal() + + RegisterSignal(COMSIG_ATOM_ROTATE, .proc/rotate_react) + RegisterSignal(COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react) + +/datum/component/turf_decal/Destroy() + remove_decal() + return ..() + +/datum/component/turf_decal/OnTransfer(turf/newT) + remove_decal() + remove_decal(newT) + apply_decal(newT) + +/datum/component/turf_decal/proc/get_decal() + return image(icon, null, icon_state, layer, dir) + +/datum/component/turf_decal/proc/apply_decal(turf/overT) + var/turf/master = overT || parent + master.add_decal(get_decal(), group) + +/datum/component/turf_decal/proc/remove_decal(turf/overT) + var/turf/master = overT || parent + master.remove_decal(group) + +/datum/component/turf_decal/proc/rotate_react(rotation, params) + if(params & ROTATE_DIR) + dir = angle2dir(rotation+dir2angle(dir)) + remove_decal() + apply_decal() + +/datum/component/turf_decal/proc/clean_react(strength) + if(strength >= CLEAN_IMPRESSIVE) + qdel(src) \ No newline at end of file diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 854aa40538..1df7eb2c10 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -13,7 +13,7 @@ // Default implementation of clean-up code. // This should be overridden to remove all references pointing to the object being destroyed. // Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE. -/datum/proc/Destroy(force=FALSE) +/datum/proc/Destroy(force=FALSE, ...) tag = null var/list/timers = active_timers active_timers = null @@ -25,14 +25,12 @@ var/list/dc = datum_components if(dc) var/all_components = dc[/datum/component] - if(islist(all_components)) + if(length(all_components)) for(var/I in all_components) var/datum/component/C = I - C._RemoveNoSignal() - qdel(C) + qdel(C, FALSE, TRUE) else var/datum/component/C = all_components - C._RemoveNoSignal() - qdel(C) + qdel(C, FALSE, TRUE) dc.Cut() return QDEL_HINT_QUEUE diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index 256e2a572f..51844567cc 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -1,5 +1,6 @@ #define EXPLOSION_THROW_SPEED 4 -#define REEBE_HUGBOX_COEFFICIENT 0.5 +#define CITYOFCOGS_CAP_MULTIPLIER 0.5 +#define MINING_CAP_MULTIPLIER 3 GLOBAL_LIST_EMPTY(explosions) //Against my better judgement, I will return the explosion datum @@ -53,21 +54,21 @@ GLOBAL_LIST_EMPTY(explosions) var/orig_dev_range = devastation_range var/orig_heavy_range = heavy_impact_range var/orig_light_range = light_impact_range - - if(!ignorecap && epicenter.z != ZLEVEL_MINING) - //Clamp all values to MAX_EXPLOSION_RANGE - devastation_range = min(GLOB.MAX_EX_DEVESTATION_RANGE, devastation_range) - heavy_impact_range = min(GLOB.MAX_EX_HEAVY_RANGE, heavy_impact_range) - light_impact_range = min(GLOB.MAX_EX_LIGHT_RANGE, light_impact_range) - flash_range = min(GLOB.MAX_EX_FLASH_RANGE, flash_range) - flame_range = min(GLOB.MAX_EX_FLAME_RANGE, flame_range) - - if(!ignorecap && epicenter.z == ZLEVEL_CITYOFCOGS) - devastation_range = min(GLOB.MAX_EX_DEVESTATION_RANGE * REEBE_HUGBOX_COEFFICIENT, devastation_range) - heavy_impact_range = min(GLOB.MAX_EX_HEAVY_RANGE * REEBE_HUGBOX_COEFFICIENT, heavy_impact_range) - light_impact_range = min(GLOB.MAX_EX_LIGHT_RANGE * REEBE_HUGBOX_COEFFICIENT, light_impact_range) - flash_range = min(GLOB.MAX_EX_FLASH_RANGE * REEBE_HUGBOX_COEFFICIENT, flash_range) - flame_range = min(GLOB.MAX_EX_FLAME_RANGE * REEBE_HUGBOX_COEFFICIENT, flame_range) + + //Zlevel specific bomb cap multiplier + var/cap_multiplier = 1 + switch(epicenter.z) + if(ZLEVEL_CITYOFCOGS) + cap_multiplier = CITYOFCOGS_CAP_MULTIPLIER + if(ZLEVEL_MINING) + cap_multiplier = MINING_CAP_MULTIPLIER + + if(!ignorecap) + devastation_range = min(GLOB.MAX_EX_DEVESTATION_RANGE * cap_multiplier, devastation_range) + heavy_impact_range = min(GLOB.MAX_EX_HEAVY_RANGE * cap_multiplier, heavy_impact_range) + light_impact_range = min(GLOB.MAX_EX_LIGHT_RANGE * cap_multiplier, light_impact_range) + flash_range = min(GLOB.MAX_EX_FLASH_RANGE * cap_multiplier, flash_range) + flame_range = min(GLOB.MAX_EX_FLAME_RANGE * cap_multiplier, flame_range) //DO NOT REMOVE THIS STOPLAG, IT BREAKS THINGS //not sleeping causes us to ex_act() the thing that triggered the explosion @@ -397,4 +398,5 @@ GLOBAL_LIST_EMPTY(explosions) // 5 explosion power is a (0, 1, 3) explosion. // 1 explosion power is a (0, 0, 1) explosion. -#undef REEBE_HUGBOX_COEFFICIENT +#undef CITYOFCOGS_CAP_MULTIPLIER +#undef MINING_CAP_MULTIPLIER diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 300417b6d0..5d04d1c7c0 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -152,13 +152,14 @@ if(istype(teleatom, /obj/item/storage/backpack/holding)) precision = rand(1,100) - var/list/bagholding = teleatom.search_contents_for(/obj/item/storage/backpack/holding) + var/static/list/bag_cache = typecacheof(/obj/item/storage/backpack/holding) + var/list/bagholding = typecache_filter_list(teleatom.GetAllContents(), bag_cache) if(bagholding.len) precision = max(rand(1,100)*bagholding.len,100) if(isliving(teleatom)) var/mob/living/MM = teleatom to_chat(MM, "The bluespace interface on your bag of holding interferes with the teleport!") - return 1 + return TRUE // Safe location finder diff --git a/code/datums/looping_sounds/weather.dm b/code/datums/looping_sounds/weather.dm new file mode 100644 index 0000000000..1867a097d3 --- /dev/null +++ b/code/datums/looping_sounds/weather.dm @@ -0,0 +1,47 @@ +/datum/looping_sound/active_outside_ashstorm + mid_sounds = list( + 'sound/weather/ashstorm/outside/active_mid1.ogg'=1, + 'sound/weather/ashstorm/outside/active_mid1.ogg'=1, + 'sound/weather/ashstorm/outside/active_mid1.ogg'=1 + ) + mid_length = 80 + start_sound = 'sound/weather/ashstorm/outside/active_start.ogg' + start_length = 130 + end_sound = 'sound/weather/ashstorm/outside/active_end.ogg' + volume = 80 + +/datum/looping_sound/active_inside_ashstorm + mid_sounds = list( + 'sound/weather/ashstorm/inside/active_mid1.ogg'=1, + 'sound/weather/ashstorm/inside/active_mid2.ogg'=1, + 'sound/weather/ashstorm/inside/active_mid3.ogg'=1 + ) + mid_length = 80 + start_sound = 'sound/weather/ashstorm/inside/active_start.ogg' + start_length = 130 + end_sound = 'sound/weather/ashstorm/inside/active_end.ogg' + volume = 80 + +/datum/looping_sound/weak_outside_ashstorm + mid_sounds = list( + 'sound/weather/ashstorm/outside/weak_mid1.ogg'=1, + 'sound/weather/ashstorm/outside/weak_mid2.ogg'=1, + 'sound/weather/ashstorm/outside/weak_mid3.ogg'=1 + ) + mid_length = 80 + start_sound = 'sound/weather/ashstorm/outside/weak_start.ogg' + start_length = 130 + end_sound = 'sound/weather/ashstorm/outside/weak_end.ogg' + volume = 50 + +/datum/looping_sound/weak_inside_ashstorm + mid_sounds = list( + 'sound/weather/ashstorm/inside/weak_mid1.ogg'=1, + 'sound/weather/ashstorm/inside/weak_mid2.ogg'=1, + 'sound/weather/ashstorm/inside/weak_mid3.ogg'=1 + ) + mid_length = 80 + start_sound = 'sound/weather/ashstorm/inside/weak_start.ogg' + start_length = 130 + end_sound = 'sound/weather/ashstorm/inside/weak_end.ogg' + volume = 50 \ No newline at end of file diff --git a/code/datums/map_config.dm b/code/datums/map_config.dm index 2fb74abfb9..885407ef90 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -13,7 +13,6 @@ //Order matters here. var/list/transition_config = list(CENTCOM = SELFLOOPING, - CITY_OF_COGS = SELFLOOPING, MAIN_STATION = CROSSLINKED, EMPTY_AREA_1 = CROSSLINKED, EMPTY_AREA_2 = CROSSLINKED, @@ -69,12 +68,11 @@ map_path = json["map_path"] map_file = json["map_file"] - minetype = json["minetype"] - allow_custom_shuttles = json["allow_custom_shuttles"] + minetype = json["minetype"] || minetype + allow_custom_shuttles = json["allow_custom_shuttles"] == TRUE - var/list/jtcl = json["transition_config"] - - if(jtcl != "default") + var/jtcl = json["transition_config"] + if(jtcl && jtcl != "default") transition_config.Cut() for(var/I in jtcl) @@ -87,25 +85,22 @@ CHECK_EXISTS("map_name") CHECK_EXISTS("map_path") CHECK_EXISTS("map_file") - CHECK_EXISTS("minetype") - CHECK_EXISTS("transition_config") - CHECK_EXISTS("allow_custom_shuttles") var/path = GetFullMapPath(json["map_path"], json["map_file"]) if(!fexists(path)) log_world("Map file ([path]) does not exist!") return - if(json["transition_config"] != "default") - if(!islist(json["transition_config"])) + var/tc = json["transition_config"] + if(tc != null && tc != "default") + if(!islist(tc)) log_world("transition_config is not a list!") return - var/list/jtcl = json["transition_config"] - for(var/I in jtcl) + for(var/I in tc) if(isnull(TransitionStringToEnum(I))) log_world("Invalid transition_config option: [I]!") - if(isnull(TransitionStringToEnum(jtcl[I]))) + if(isnull(TransitionStringToEnum(tc[I]))) log_world("Invalid transition_config option: [I]!") return TRUE diff --git a/code/datums/mind.dm b/code/datums/mind.dm index d10788fca5..284841676d 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1039,7 +1039,7 @@ remove_wizard() log_admin("[key_name(usr)] has de-wizard'ed [current].") if("wizard") - if(has_antag_datum(/datum/antagonist/wizard)) + if(!has_antag_datum(/datum/antagonist/wizard)) special_role = "Wizard" add_antag_datum(/datum/antagonist/wizard) message_admins("[key_name_admin(usr)] has wizard'ed [current].") diff --git a/code/datums/profiling.dm b/code/datums/profiling.dm new file mode 100644 index 0000000000..49a80d0ede --- /dev/null +++ b/code/datums/profiling.dm @@ -0,0 +1,18 @@ +//these are real globals so you can use profiling to profile early world init stuff. +GLOBAL_REAL_VAR(list/PROFILE_STORE) +GLOBAL_REAL_VAR(PROFILE_LINE) +GLOBAL_REAL_VAR(PROFILE_FILE) +GLOBAL_REAL_VAR(PROFILE_SLEEPCHECK) +GLOBAL_REAL_VAR(PROFILE_TIME) + + +/proc/profile_show(user, sort = /proc/cmp_profile_avg_time_dsc) + sortTim(PROFILE_STORE, sort, TRUE) + + var/list/lines = list() + + for (var/entry in PROFILE_STORE) + var/list/data = PROFILE_STORE[entry] + lines += "[entry] => [num2text(data[PROFILE_ITEM_TIME], 10)]ms ([data[PROFILE_ITEM_COUNT]]) (avg:[num2text(data[PROFILE_ITEM_TIME]/(data[PROFILE_ITEM_COUNT] || 1), 99)])" + + user << browse("
  1. [lines.Join("
  2. ")]
", "window=[url_encode(GUID())]") diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 3526ee6f53..5c646491c8 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -142,7 +142,7 @@ /datum/map_template/ruin/lavaland/ufo_crash name = "UFO Crash" id = "ufo-crash" - description = "Turns out that keeping your abductees unconcious is really important. Who knew?" + description = "Turns out that keeping your abductees unconscious is really important. Who knew?" suffix = "lavaland_surface_ufo_crash.dmm" cost = 5 diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index ce38d0af3e..1ec392a5b2 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -149,7 +149,7 @@ suffix = "mini" name = "Ministation emergency shuttle" credit_cost = 1000 - description = "Despite it's namesake, this shuttle is actually only slightly smaller than standard, and still complete with a brig and medbay." + description = "Despite its namesake, this shuttle is actually only slightly smaller than standard, and still complete with a brig and medbay." /datum/map_template/shuttle/emergency/scrapheap suffix = "scrapheap" diff --git a/code/datums/spawners_menu.dm b/code/datums/spawners_menu.dm index f23f0dfd07..ebbe08c525 100644 --- a/code/datums/spawners_menu.dm +++ b/code/datums/spawners_menu.dm @@ -40,6 +40,8 @@ var/spawner_ref = pick(GLOB.mob_spawners[params["name"]]) var/obj/effect/mob_spawn/MS = locate(spawner_ref) in GLOB.poi_list + if(!MS) + return switch(action) if("jump") diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm index a1dc9ece69..14133c6a11 100644 --- a/code/datums/weather/weather_types/ash_storm.dm +++ b/code/datums/weather/weather_types/ash_storm.dm @@ -5,18 +5,15 @@ telegraph_message = "An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter." telegraph_duration = 300 - telegraph_sound = 'sound/lavaland/ash_storm_windup.ogg' telegraph_overlay = "light_ash" weather_message = "Smoldering clouds of scorching ash billow down around you! Get inside!" weather_duration_lower = 600 weather_duration_upper = 1200 - weather_sound = 'sound/lavaland/ash_storm_start.ogg' weather_overlay = "ash_storm" end_message = "The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now." end_duration = 300 - end_sound = 'sound/lavaland/ash_storm_end.ogg' end_overlay = "light_ash" area_type = /area/lavaland/surface/outdoors @@ -26,6 +23,53 @@ probability = 90 + var/datum/looping_sound/active_outside_ashstorm/sound_ao = new(list(), FALSE, TRUE) + var/datum/looping_sound/active_inside_ashstorm/sound_ai = new(list(), FALSE, TRUE) + var/datum/looping_sound/weak_outside_ashstorm/sound_wo = new(list(), FALSE, TRUE) + var/datum/looping_sound/weak_inside_ashstorm/sound_wi = new(list(), FALSE, TRUE) + +/datum/weather/ash_storm/telegraph() + . = ..() + var/list/inside_areas = list() + var/list/outside_areas = list() + var/list/eligible_areas = SSmapping.areas_in_z["[target_z]"] + for(var/i in 1 to eligible_areas.len) + var/area/place = eligible_areas[i] + if(place.outdoors) + outside_areas += place + else + inside_areas += place + CHECK_TICK + + sound_ao.output_atoms = outside_areas + sound_ai.output_atoms = inside_areas + sound_wo.output_atoms = outside_areas + sound_wi.output_atoms = inside_areas + + sound_wo.start() + sound_wi.start() + +/datum/weather/ash_storm/start() + . = ..() + sound_wo.stop() + sound_wi.stop() + + sound_ao.start() + sound_ai.start() + +/datum/weather/ash_storm/wind_down() + . = ..() + sound_ao.stop() + sound_ai.stop() + + sound_wo.start() + sound_wi.start() + +/datum/weather/ash_storm/end() + . = ..() + sound_wo.stop() + sound_wi.stop() + /datum/weather/ash_storm/proc/is_ash_immune(mob/living/L) if(ismecha(L.loc)) //Mechs are immune return TRUE @@ -50,7 +94,6 @@ desc = "A passing ash storm blankets the area in harmless embers." weather_message = "Gentle embers waft down around you like grotesque snow. The storm seems to have passed you by..." - weather_sound = 'sound/lavaland/ash_storm_windup.ogg' weather_overlay = "light_ash" end_message = "The emberfall slows, stops. Another layer of hardened soot to the basalt beneath your feet." diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm index c508907bf4..19f7157faa 100644 --- a/code/datums/wires/wires.dm +++ b/code/datums/wires/wires.dm @@ -74,7 +74,7 @@ "white", "yellow" ) - + var/list/my_possible_colors = possible_colors.Copy() for(var/wire in shuffle(wires)) @@ -163,9 +163,9 @@ for(var/wire in possible_wires) if(prob(33)) pulse(wire) - remaining_pulses-- - if(remaining_pulses >= 0) - break + remaining_pulses-- + if(!remaining_pulses) + break // Overridable Procs /datum/wires/proc/interactable(mob/user) diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index 66dafe2e8f..a1e3479b38 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -41,7 +41,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station power_environ = FALSE valid_territory = FALSE outdoors = TRUE - ambientsounds = list('sound/ambience/ambispace.ogg','sound/ambience/title2.ogg') + ambientsounds = SPACE blob_allowed = FALSE //Eating up space doesn't count for victory as a blob. /area/space/nearstation @@ -65,6 +65,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station has_gravity = TRUE blob_allowed = FALSE //Nope, no winning on the asteroid as a blob. Gotta eat the station. valid_territory = FALSE + ambientsounds = MINING /area/asteroid/cave name = "Asteroid - Underground" @@ -75,6 +76,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/asteroid/artifactroom name = "Asteroid - Artifact" icon_state = "cave" + ambientsounds = RUINS /area/asteroid/artifactroom/Initialize() . = ..() @@ -96,14 +98,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station //Maintenance /area/maintenance - ambientsounds = 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', //Xeno Breathing Hisses, Hahahaha I'm not even sorry. - 'sound/voice/lowHiss3.ogg', - 'sound/voice/lowHiss4.ogg') + ambientsounds = MAINTENANCE valid_territory = FALSE @@ -647,7 +642,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/chapel icon_state = "chapel" - ambientsounds = list('sound/ambience/ambicha1.ogg','sound/ambience/ambicha2.ogg','sound/ambience/ambicha3.ogg','sound/ambience/ambicha4.ogg') + ambientsounds = HOLY flags_1 = NONE clockwork_warp_allowed = FALSE clockwork_warp_fail = "The consecration here prevents you from warping in." @@ -678,7 +673,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station //Engineering /area/engine - ambientsounds = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg','sound/ambience/ambisin4.ogg') + ambientsounds = ENGINEERING /area/engine/engine_smes name = "Engineering SMES" @@ -732,6 +727,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station valid_territory = FALSE blob_allowed = FALSE flags_1 = NONE + ambientsounds = ENGINEERING /area/solar/asteroid/aft name = "Aft Asteroid Solar" @@ -858,37 +854,36 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Teleporter Room" icon_state = "teleporter" music = "signal" + ambientsounds = ENGINEERING /area/teleporter/quantum/cargo name = "Cargo Quantum Pad" icon_state = "teleporter" - music = "signal" /area/teleporter/quantum/docking name = "Docking Quantum Pad" icon_state = "teleporter" - music = "signal" /area/teleporter/quantum/research name = "Research Quantum Pad" icon_state = "teleporter" - music = "signal" /area/teleporter/quantum/security name = "Security Quantum Pad" icon_state = "teleporter" - music = "signal" /area/gateway name = "Gateway" icon_state = "teleporter" music = "signal" + ambientsounds = ENGINEERING //MedBay /area/medical name = "Medical" icon_state = "medbay3" + ambientsounds = MEDICAL /area/medical/abandoned name = "Abandoned Medbay" @@ -952,7 +947,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/medical/morgue name = "Morgue" icon_state = "morgue" - ambientsounds = list('sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg') + ambientsounds = SPOOKY /area/medical/chemistry name = "Chemistry" @@ -988,6 +983,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/security name = "Security" icon_state = "security" + ambientsounds = HIGHSEC /area/security/main name = "Security Office" @@ -1029,7 +1025,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/security/detectives_office/private_investigators_office name = "Private Investigator's Office" icon_state = "detective" - ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg') /area/security/range name = "Firing Range" @@ -1310,6 +1305,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/construction name = "Construction Area" icon_state = "yellow" + ambientsounds = ENGINEERING /area/construction/minisat_exterior name = "Minisat Exterior" @@ -1361,27 +1357,32 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/ai_monitored/security/armory name = "Armory" icon_state = "armory" + ambientsounds = HIGHSEC /area/ai_monitored/storage/eva name = "EVA Storage" icon_state = "eva" + ambientsounds = HIGHSEC /area/ai_monitored/storage/secure name = "AI Satellite Storage" icon_state = "storage" + ambientsounds = HIGHSEC /area/ai_monitored/storage/emergency name = "Emergency Storage" icon_state = "storage" + ambientsounds = HIGHSEC /area/ai_monitored/storage/satellite name = "AI Satellite Maint" icon_state = "storage" + ambientsounds = HIGHSEC //Turret_protected /area/ai_monitored/turret_protected - ambientsounds = list('sound/ambience/ambimalf.ogg') + ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg') /area/ai_monitored/turret_protected/ai_upload name = "AI Upload Chamber" @@ -1450,7 +1451,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/tcommsat clockwork_warp_allowed = FALSE clockwork_warp_fail = "For safety reasons, warping here is disallowed; the radio and bluespace noise could cause catastrophic results." - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg', 'sound/ambience/ambitech.ogg',\ + 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambitech3.ogg', 'sound/ambience/ambimystery.ogg') /area/tcommsat/entrance name = "Telecomms Teleporter" @@ -1463,22 +1465,18 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/ai_monitored/turret_protected/tcomsat name = "Telecomms Satellite" icon_state = "tcomsatlob" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') /area/ai_monitored/turret_protected/tcomfoyer name = "Telecomms Foyer" icon_state = "tcomsatentrance" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') /area/ai_monitored/turret_protected/tcomwest name = "Telecommunications Satellite West Wing" icon_state = "tcomsatwest" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') /area/ai_monitored/turret_protected/tcomeast name = "Telecommunications Satellite East Wing" icon_state = "tcomsateast" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') /area/tcommsat/computer name = "Telecomms Control Room" diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 2d372d4c33..75a6581aa9 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -54,12 +54,7 @@ var/global/global_uid = 0 var/uid - var/list/ambientsounds = list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg',\ - 'sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg',\ - 'sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg',\ - 'sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg',\ - 'sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg',\ - 'sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg') + var/list/ambientsounds = GENERIC flags_1 = CAN_BE_DIRTY_1 var/list/firedoors @@ -107,7 +102,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) uid = ++global_uid related = list(src) map_name = name // Save the initial (the name set in the map) name of the area. - + if(requires_power) luminosity = 0 else @@ -125,13 +120,32 @@ GLOBAL_LIST_EMPTY(teleportlocs) . = ..() - power_change() // all machines set to current power level, also updates icon - blend_mode = BLEND_MULTIPLY // Putting this in the constructor so that it stops the icons being screwed up in the map editor. if(!IS_DYNAMIC_LIGHTING(src)) add_overlay(/obj/effect/fullbright) + if(contents.len) + var/list/areas_in_z = SSmapping.areas_in_z + var/z + for(var/i in 1 to contents.len) + var/atom/thing = contents[i] + if(!thing) + continue + z = thing.z + break + if(!z) + WARNING("No z found for [src]") + return + if(!areas_in_z["[z]"]) + areas_in_z["[z]"] = list() + areas_in_z["[z]"] += src + + return INITIALIZE_HINT_LATELOAD + +/area/LateInitialize() + power_change() // all machines set to current power level, also updates icon + /area/Destroy() STOP_PROCESSING(SSobj, src) return ..() diff --git a/code/game/area/areas/away_content.dm b/code/game/area/areas/away_content.dm index f98a085b13..93640bdde6 100644 --- a/code/game/area/areas/away_content.dm +++ b/code/game/area/areas/away_content.dm @@ -8,6 +8,7 @@ Unused icons for new areas are "awaycontent1" ~ "awaycontent30" name = "Strange Location" icon_state = "away" has_gravity = TRUE + ambientsounds = AWAY_MISSION /area/awaymission/beach name = "Beach" @@ -15,7 +16,7 @@ Unused icons for new areas are "awaycontent1" ~ "awaycontent30" dynamic_lighting = DYNAMIC_LIGHTING_DISABLED requires_power = FALSE has_gravity = TRUE - ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag2.ogg') + ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag2.ogg','sound/ambience/ambiodd.ogg','sound/ambience/ambinice.ogg') /area/awaymission/errorroom name = "Super Secret Room" diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index b2587e48c3..72bf2a3599 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -96,6 +96,7 @@ noteleport = TRUE blob_allowed = FALSE //Not... entirely sure this will ever come up... but if the bus makes blobs AND ops, it shouldn't aim for the ops to win. flags_1 = NONE + ambientsounds = HIGHSEC /area/syndicate_mothership/control name = "Syndicate Control Room" diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index 0c212acedf..bf5642b7af 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -15,8 +15,8 @@ power_equip = FALSE power_light = FALSE outdoors = TRUE - ambientsounds = list('sound/ambience/ambimine.ogg') flags_1 = NONE + ambientsounds = MINING /area/mine/unexplored name = "Mine" @@ -29,8 +29,8 @@ power_equip = FALSE power_light = FALSE outdoors = TRUE - ambientsounds = list('sound/ambience/ambimine.ogg') flags_1 = NONE + ambientsounds = MINING /area/mine/lobby name = "Mining Station" @@ -77,6 +77,7 @@ /area/mine/laborcamp/security name = "Labor Camp Security" icon_state = "security" + ambientsounds = HIGHSEC @@ -98,7 +99,7 @@ power_equip = FALSE power_light = FALSE requires_power = TRUE - ambientsounds = list('sound/ambience/ambilava.ogg') + ambientsounds = MINING /area/lavaland/underground name = "Lavaland Caves" @@ -110,7 +111,7 @@ power_environ = FALSE power_equip = FALSE power_light = FALSE - ambientsounds = list('sound/ambience/ambilava.ogg') + ambientsounds = MINING /area/lavaland/surface/outdoors diff --git a/code/game/area/areas/misc.dm b/code/game/area/areas/misc.dm index 01c45c2b59..7faeb6b51a 100644 --- a/code/game/area/areas/misc.dm +++ b/code/game/area/areas/misc.dm @@ -5,6 +5,7 @@ //icon = "ICON FILENAME" //icon_state = "NAME OF ICON" requires_power = FALSE + ambientsounds = SPOOKY /area/hell/trial1 name = "Hell Trial1" @@ -32,6 +33,7 @@ /area/prison name = "Prison Station" icon_state = "brig" + ambientsounds = HIGHSEC /area/prison/arrival_airlock name = "Prison Station Airlock" @@ -73,7 +75,7 @@ /area/prison/morgue name = "Prison Morgue" icon_state = "morgue" - ambientsounds = list('sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg') + ambientsounds = SPOOKY /area/prison/medical_research name = "Prison Genetic Research" @@ -99,7 +101,7 @@ /area/prison/solitary name = "Solitary Confinement" icon_state = "brig" - + /area/prison/execution_room name = "Prisoner Education Chamber" icon_state = "execution_room" diff --git a/code/game/area/areas/ruins/_ruins.dm b/code/game/area/areas/ruins/_ruins.dm index da78351979..087842c5d1 100644 --- a/code/game/area/areas/ruins/_ruins.dm +++ b/code/game/area/areas/ruins/_ruins.dm @@ -6,6 +6,7 @@ has_gravity = TRUE hidden = TRUE dynamic_lighting = DYNAMIC_LIGHTING_FORCED + ambientsounds = RUINS /area/ruin/unpowered @@ -16,4 +17,3 @@ /area/ruin/powered requires_power = FALSE - diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index 3abbf902b1..75c2e15793 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -22,7 +22,7 @@ power_environ = FALSE valid_territory = FALSE outdoors = TRUE - ambientsounds = list('sound/ambience/ambispace.ogg','sound/ambience/title2.ogg') + ambientsounds = SPACE blob_allowed = FALSE ///////////// @@ -434,4 +434,4 @@ /area/ruin/space/has_grav/whiteship/box name = "Abandoned Ship" - icon_state = "red" \ No newline at end of file + icon_state = "red" diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index 21f74972c9..dd9e1f766f 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -18,6 +18,7 @@ /area/shuttle/syndicate name = "Syndicate Infiltrator" blob_allowed = FALSE + ambientsounds = HIGHSEC /area/shuttle/syndicate/bridge name = "Syndicate Infiltrator Control" @@ -106,4 +107,4 @@ /area/shuttle/syndicate_scout name = "Syndicate Scout" - blob_allowed = FALSE \ No newline at end of file + blob_allowed = FALSE diff --git a/code/game/area/areas/space_content.dm b/code/game/area/areas/space_content.dm index 605cbfa764..e605faa6e5 100644 --- a/code/game/area/areas/space_content.dm +++ b/code/game/area/areas/space_content.dm @@ -2,6 +2,7 @@ /area/spacecontent name = "space" + ambientsounds = AWAY_MISSION /area/spacecontent/a1 icon_state = "spacecontent1" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index b6cace2111..7abb3ce958 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -244,32 +244,6 @@ else if(src in container) return 1 -/* - * atom/proc/search_contents_for(path,list/filter_path=null) - * Recursevly searches all atom contens (including contents contents and so on). - * - * ARGS: path - search atom contents for atoms of this type - * list/filter_path - if set, contents of atoms not of types in this list are excluded from search. - * - * RETURNS: list of found atoms - */ - -/atom/proc/search_contents_for(path,list/filter_path=null) - var/list/found = list() - for(var/atom/A in src) - if(istype(A, path)) - found += A - if(filter_path) - var/pass = 0 - for(var/type in filter_path) - pass |= istype(A, type) - if(!pass) - continue - if(A.contents.len) - found += A.search_contents_for(path,filter_path) - return found - - /atom/proc/examine(mob/user) //This reformat names to get a/an properly working on item descriptions when they are bloody var/f_name = "\a [src]." diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index 61dee30c8e..d27c3aa820 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -226,6 +226,8 @@ . = ..() if(!independent) //no pulling people deep into the blob verbs -= /mob/living/verb/pulled + else + pass_flags &= ~PASSBLOB /mob/living/simple_animal/hostile/blob/blobbernaut/Life() if(..()) diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index e6cae65c03..2544e1f88a 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -91,10 +91,13 @@ GLOBAL_LIST_EMPTY(blob_nodes) if(!Ablob.blob_allowed) continue - - playsound(L, 'sound/effects/splat.ogg', 50, 1) - L.death() - new/mob/living/simple_animal/hostile/blob/blobspore(T) + + if(!("blob" in L.faction)) + playsound(L, 'sound/effects/splat.ogg', 50, 1) + L.death() + new/mob/living/simple_animal/hostile/blob/blobspore(T) + else + L.fully_heal() for(var/V in GLOB.sortedAreas) var/area/A = V diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index d9d47bd771..63900d0f89 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -273,6 +273,7 @@ Credit where due: if(plasmaman && !visualsOnly) //If we need to breathe from the plasma tank, we should probably start doing that H.internal = H.get_item_for_held_index(2) H.update_internals_hud_icon(1) + H.sec_hud_set_ID() /obj/item/paper/servant_primer name = "The Ark And You: A Primer On Servitude" diff --git a/code/game/gamemodes/clock_cult/clock_effects/city_of_cogs_rift.dm b/code/game/gamemodes/clock_cult/clock_effects/city_of_cogs_rift.dm index 8c6e1d1a35..e41acb421a 100644 --- a/code/game/gamemodes/clock_cult/clock_effects/city_of_cogs_rift.dm +++ b/code/game/gamemodes/clock_cult/clock_effects/city_of_cogs_rift.dm @@ -38,8 +38,11 @@ beckon(AM) /obj/effect/clockwork/city_of_cogs_rift/proc/beckon(atom/movable/AM) + var/turf/T = get_turf(pick(GLOB.city_of_cogs_spawns)) + if(is_servant_of_ratvar(AM)) + T = GLOB.ark_of_the_clockwork_justiciar ? get_step(GLOB.ark_of_the_clockwork_justiciar, SOUTH) : get_turf(pick(GLOB.servant_spawns)) AM.visible_message("[AM] passes through [src]!", ignored_mob = AM) - AM.forceMove(pick(!is_servant_of_ratvar(AM) ? GLOB.city_of_cogs_spawns : GLOB.servant_spawns)) + AM.forceMove(T) AM.visible_message("[AM] materializes from the air!", \ "You pass through [src] and appear [is_servant_of_ratvar(AM) ? "back at the City of Cogs" : "somewhere unfamiliar. Looks like it was a one-way trip.."].") do_sparks(5, TRUE, src) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm index a9727017d3..2d49787348 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm @@ -104,7 +104,7 @@ List of nuances: if(isliving(AM)) var/mob/living/L = AM if(!whisper) - L.say(message, "clock", spans, language=/datum/language/common) + L.say(message, "clock", spans, language=/datum/language/common, ignore_spam = TRUE) else L.whisper(message, "clock", spans, language=/datum/language/common) else diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm index 2dd65ac9db..70aeaa6520 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm @@ -1,8 +1,7 @@ /obj/item/clockwork/slab //Clockwork slab: The most important tool in Ratvar's arsenal. Allows scripture recital, tutorials, and generates components. name = "clockwork slab" desc = "A strange metal tablet. A clock in the center turns around and around." - clockwork_desc = "A link between you and the Celestial Derelict. It contains information, recites scripture, and is your most vital tool as a Servant.\n\ - Hitting a slab, a Servant with a slab, or a cache will transfer this slab's components into the target, the target's slab, or the global cache, respectively." + clockwork_desc = "A link between you and the Celestial Derelict. It contains information, recites scripture, and is your most vital tool as a Servant." icon_state = "dread_ipad" lefthand_file = 'icons/mob/inhands/antag/clockwork_lefthand.dmi' righthand_file = 'icons/mob/inhands/antag/clockwork_righthand.dmi' @@ -231,7 +230,7 @@ this will cause you to whisper your message aloud, so doing so in a public place is very suspicious and you should try to restrict it to private use.

" dat += "If you aren't willing or don't have the time to read through every section, you can still help your teammates! Ask if they've set up a base. If they have, head there \ and ask however you can help; chances are there's always something. If not, it's your job as a Servant to get one up and running! Try to find a secluded, low-traffic area, \ - like the auxilary base or somewhere deep in maintenance. You'll want to go into the Drivers section of the slab and look for Tinkerer's Cache. Find a nice spot and \ + like the auxiliary base or somewhere deep in maintenance. You'll want to go into the Drivers section of the slab and look for Tinkerer's Cache. Find a nice spot and \ create one. This serves as a storage for components, the cult's primary resource. (Your slab's probably produced a few by now.) By attacking that cache with this \ slab, you'll offload all your components into it, and all Servants will be able to use those components from any distance - all Tinkerer's Caches are linked!

" dat += "Once you have a base up and running, contact your fellows and let them know. You should come back here often to drop off the slab's components, and your fellows \ @@ -250,7 +249,7 @@ teamwork is an instrumental component of your success.

" //get it? component? ha! dat += "As a Servant of Ratvar, the tools you are given focus around building and maintaining bases and outposts. A great deal of your power comes from stationary \ structures, and without constructing a base somewhere, it's essentially impossible to succeed. Finding a good spot to build a base can be difficult, and it's recommended \ - that you choose an area in low-traffic part of the station (such as the auxilary base). Make sure to disconnect any cameras in the area beforehand.

" + that you choose an area in low-traffic part of the station (such as the auxiliary base). Make sure to disconnect any cameras in the area beforehand.

" dat += "Because of how complex being a Servant is, it isn't possible to fit much information into this section. It's highly recommended that you read the Components \ and Scripture sections next. Not knowing how these two systems work will cripple both you and your fellows, and lead to a frustrating experience for everyone.

" dat += "-=-=-=-=-=-" diff --git a/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm b/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm index 1fabeeba3f..a1c3d211fb 100644 --- a/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm +++ b/code/game/gamemodes/clock_cult/clock_mobs/clockwork_marauder.dm @@ -17,6 +17,7 @@ attack_sound = 'sound/weapons/bladeslice.ogg' weather_immunities = list("lava") movement_type = FLYING + a_intent = INTENT_HARM loot = list(/obj/item/clockwork/component/geis_capacitor/fallen_armor) light_range = 2 light_power = 1.1 @@ -24,7 +25,6 @@ unique abilities, you're a fearsome fighter in one-on-one combat, and your shield protects from projectiles!

Obey the Servants and do as they \ tell you. Your primary goal is to defend the Ark from destruction; they are your allies in this, and should be protected from harm." empower_string = "The Anima Bulwark's power flows through you! Your weapon will strike harder, your armor is sturdier, and your shield is more durable." - var/deflect_chance = 40 //Chance to deflect any given projectile (non-damaging energy projectiles are always deflected) var/max_shield_health = 3 var/shield_health = 3 //Amount of projectiles that can be deflected within var/shield_health_regen = 0 //When world.time equals this, shield health will regenerate @@ -55,8 +55,6 @@ obj_damage = 100 max_shield_health = INFINITY else if(GLOB.ratvar_approaches) //Hefty health bonus and slight attack damage increase - health = 200 - maxHealth = 200 melee_damage_upper = 15 melee_damage_lower = 15 attacktext = "carves" diff --git a/code/game/gamemodes/clock_cult/clock_scripture.dm b/code/game/gamemodes/clock_cult/clock_scripture.dm index 049a49f5f4..8a019ed74b 100644 --- a/code/game/gamemodes/clock_cult/clock_scripture.dm +++ b/code/game/gamemodes/clock_cult/clock_scripture.dm @@ -53,6 +53,7 @@ Applications: 8 servants, 3 caches, and 100 CV if(slab.busy) to_chat(invoker, "[slab] refuses to work, displaying the message: \"[slab.busy]!\"") return FALSE + pre_recital() slab.busy = "Invocation ([name]) in progress" if(GLOB.ratvar_awakens) channel_time *= 0.5 //if ratvar has awoken, half channel time and no cost @@ -176,6 +177,9 @@ Applications: 8 servants, 3 caches, and 100 CV /datum/clockwork_scripture/proc/scripture_fail() //Called if the scripture fails to invoke. +/datum/clockwork_scripture/proc/pre_recital() //Called before the scripture is recited + + /datum/clockwork_scripture/proc/post_recital() //Called after the scripture is recited //Channeled scripture begins instantly but runs constantly diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm index d7aa2777ca..bcb9d1d1df 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm @@ -7,12 +7,12 @@ /datum/clockwork_scripture/create_object/construct/clockwork_marauder descname = "Well-Rounded Combat Construct" name = "Clockwork Marauder" - desc = "Creates a shell for a clockwork marauder, a balanced frontline construct." + desc = "Creates a shell for a clockwork marauder, a balanced frontline construct that can deflect projectiles with its shield." invocations = list("Arise, avatar of Arbiter!", "Defend the Ark with vengeful zeal.") channel_time = 50 power_cost = 1000 creator_message = "Your slab disgorges several chunks of replicant alloy that form into a suit of thrumming armor." - usage_tip = "The marauder's shield can effectively deflect energy-based projectiles." + usage_tip = "Reciting this scripture multiple times in a short period will cause it to take longer!" tier = SCRIPTURE_APPLICATION one_per_tile = TRUE primary_component = BELLIGERENT_EYE @@ -22,6 +22,9 @@ object_path = /obj/item/clockwork/construct_chassis/clockwork_marauder construct_type = /mob/living/simple_animal/hostile/clockwork/marauder combat_construct = TRUE + var/static/recent_marauders = 0 + var/static/time_since_last_marauder = 0 + var/static/scaled_recital_time = 0 /datum/clockwork_scripture/create_object/construct/clockwork_marauder/update_construct_limit() var/human_servants = 0 @@ -32,15 +35,30 @@ construct_limit = human_servants / 4 //1 per 4 human servants, and a maximum of 3 marauders construct_limit = Clamp(construct_limit, 1, 3) -/datum/clockwork_scripture/create_object/prolonging_prism/check_special_requirements() - if(SSshuttle.emergency.mode == SHUTTLE_DOCKED || SSshuttle.emergency.mode == SHUTTLE_IGNITING || SSshuttle.emergency.mode == SHUTTLE_STRANDED || SSshuttle.emergency.mode == SHUTTLE_ESCAPE) - to_chat(invoker, "\"It is too late to construct one of these, champion.\"") - return FALSE - var/turf/T = get_turf(invoker) - if(!T || !(T.z in GLOB.station_z_levels)) - to_chat(invoker, "\"You must be on the station to construct one of these, champion.\"") - return FALSE - return ..() +/datum/clockwork_scripture/create_object/construct/clockwork_marauder/pre_recital() + channel_time = initial(channel_time) + calculate_scaling() + if(scaled_recital_time) + to_chat(invoker, "The Hierophant Network is under strain from repeated summoning, making this scripture [scaled_recital_time / 10] seconds slower!") + channel_time += scaled_recital_time + return TRUE + +/datum/clockwork_scripture/create_object/construct/clockwork_marauder/scripture_effects() + . = ..() + time_since_last_marauder = world.time + recent_marauders++ + calculate_scaling() + +/datum/clockwork_scripture/create_object/construct/clockwork_marauder/proc/calculate_scaling() + var/WT = world.time + var/MT = time_since_last_marauder //Cast it for quicker reference + var/marauders_to_exclude = 0 + if(world.time >= time_since_last_marauder + MARAUDER_SCRIPTURE_SCALING_THRESHOLD) + marauders_to_exclude = round(WT - MT) / MARAUDER_SCRIPTURE_SCALING_THRESHOLD //If at least 20 seconds have passed, lose one marauder for each 20 seconds + //i.e. world.time = 10000, last marauder = 9000, so we lose 5 marauders from the recent count since 10k - 9k = 1k, 1k / 200 = 5 + time_since_last_marauder = world.time //So that it can't be spammed to make the marauder exclusion plummet; this emulates "ticking" + recent_marauders = max(0, recent_marauders - marauders_to_exclude) + scaled_recital_time = min(recent_marauders * MARAUDER_SCRIPTURE_SCALING_TIME, MARAUDER_SCRIPTURE_SCALING_MAX) //Mania Motor: Creates a malevolent transmitter that will broadcast the whispers of Sevtug into the minds of nearby nonservants, causing a variety of mental effects at a power cost. diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index a282ac3067..93d203aba0 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -129,7 +129,11 @@ /datum/clockwork_scripture/abscond/scripture_effects() var/take_pulling = invoker.pulling && isliving(invoker.pulling) && get_clockwork_power(ABSCOND_ABDUCTION_COST) - var/turf/T = get_turf(pick(GLOB.servant_spawns)) + var/turf/T + if(GLOB.ark_of_the_clockwork_justiciar) + T = get_step(GLOB.ark_of_the_clockwork_justiciar, SOUTH) + else + T = get_turf(pick(GLOB.servant_spawns)) invoker.visible_message("[invoker] flickers and phases out of existence!", \ "You feel a dizzying sense of vertigo as you're yanked back to Reebe!") T.visible_message("[invoker] flickers and phases into existence!") diff --git a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm index 201ce11cf6..ff17bf341c 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -134,11 +134,20 @@ var/damage = max((obj_integrity * 0.7) / severity, 100) //requires multiple bombs to take down take_damage(damage, BRUTE, "bomb", 0) +/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/get_arrival_time() + if(seconds_until_activation) + return (seconds_until_activation*10) + if(grace_period) + return (grace_period*10) + else if(GATEWAY_RATVAR_ARRIVAL - progress_in_seconds > 0) + return (round(max((GATEWAY_RATVAR_ARRIVAL - progress_in_seconds) / (GATEWAY_SUMMON_RATE), 0), 1)*10) + return -10 + /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/get_arrival_text(s_on_time) if(seconds_until_activation) - return "[seconds_until_activation][s_on_time ? "S" : ""]" + return "[get_arrival_time()][s_on_time ? "S" : ""]" if(grace_period) - return "[grace_period][s_on_time ? "S" : ""]" + return "[get_arrival_time()][s_on_time ? "S" : ""]" . = "IMMINENT" if(!obj_integrity) . = "DETONATING" @@ -151,12 +160,12 @@ icon_state = initial(icon_state) if(is_servant_of_ratvar(user) || isobserver(user)) if(!active) - to_chat(user, "Seconds until the Ark's activation: [get_arrival_text(TRUE)]") + to_chat(user, "Time until the Ark's activation: [DisplayTimeText(get_arrival_time())]") else if(grace_period) - to_chat(user, "Crew grace period time remaining: [get_arrival_text(TRUE)]") + to_chat(user, "Crew grace period time remaining: [DisplayTimeText(get_arrival_time())]") else - to_chat(user, "Seconds until Ratvar's arrival: [get_arrival_text(TRUE)]") + to_chat(user, "Time until Ratvar's arrival: [DisplayTimeText(get_arrival_time())]") switch(progress_in_seconds) if(-INFINITY to GATEWAY_REEBE_FOUND) to_chat(user, "The Ark is feeding power into the bluespace field.") @@ -266,7 +275,7 @@ CHECK_TICK /obj/structure/destructible/clockwork/massive/celestial_gateway/attack_ghost(mob/user) - if(!user.client || !user.client.holder) + if(!IsAdminGhost(user)) return if(GLOB.servants_active) to_chat(user, "The Ark is already counting down.") @@ -275,6 +284,7 @@ if(alert(user, "REALLY activate the Ark's countdown?", name, "Yes", "No") == "Yes") if(alert(user, "You're REALLY SURE? This cannot be undone.", name, "Yes - Activate the Ark", "No") == "Yes - Activate the Ark") message_admins("Admin [key_name_admin(user)] started the Ark's countdown!") + log_admin("Admin [key_name(user)] started the Ark's countdown on a non-clockcult mode!") to_chat(user, "The gamemode is now being treated as clockwork cult, and the Ark is counting down from 30 \ minutes. You will need to create servant players yourself.") final_countdown(35) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 917b5a81a4..717b9ddea3 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -256,6 +256,10 @@ SSticker.news_report = CULT_FAILURE text += "
Objective #[obj_count]: [explanation]" + if(cult.len) + text += "
The cultists were:" + for(var/datum/mind/M in cult) + text += printplayer(M) to_chat(world, text) ..() return 1 diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 1926aa8f58..da222fe521 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -324,7 +324,7 @@ icon_state = "cult_armor" item_state = "cult_armor" desc = "A heavily-armored exosuit worn by warriors of the Nar-Sien cult. It can withstand hard vacuum." - w_class = WEIGHT_CLASS_SMALL + w_class = WEIGHT_CLASS_BULKY allowed = list(/obj/item/tome, /obj/item/melee/cultblade, /obj/item/tank/internals/) armor = list(melee = 70, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 40, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index a38a361cf3..be1c2ccaff 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -137,7 +137,7 @@ structure_check() searches for nearby cultist structures required for the invoca for(var/M in invokers) var/mob/living/L = M if(invocation) - L.say(invocation, language = /datum/language/common) + L.say(invocation, language = /datum/language/common, ignore_spam = TRUE) if(invoke_damage) L.apply_damage(invoke_damage, BRUTE) to_chat(L, "[src] saps your strength!") diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 115f931975..71955e4881 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -225,8 +225,8 @@ /obj/item/paper/talisman/horror/afterattack(mob/living/target, mob/living/user) if(iscultist(user) && (get_dist(user, target) < 7)) - to_chat(user, "You disturb [target] with visions of madness!") if(iscarbon(target)) + to_chat(user, "You disturb [target] with visions of madness!") var/mob/living/carbon/H = target H.reagents.add_reagent("mindbreaker", 12) if(is_servant_of_ratvar(target)) @@ -234,8 +234,7 @@ target.emote("scream") target.confused = max(0, target.confused + 3) target.flash_act() - qdel(src) - + qdel(src) //Talisman of Fabrication: Creates a construct shell out of 25 metal sheets, or converts plasteel into runed metal up to 25 times /obj/item/paper/talisman/construction diff --git a/code/game/gamemodes/devil/true_devil/_true_devil.dm b/code/game/gamemodes/devil/true_devil/_true_devil.dm index 9b24d096c4..10f0b3393f 100644 --- a/code/game/gamemodes/devil/true_devil/_true_devil.dm +++ b/code/game/gamemodes/devil/true_devil/_true_devil.dm @@ -17,6 +17,7 @@ var/ascended = FALSE sight = (SEE_TURFS | SEE_OBJS) status_flags = CANPUSH + spacewalk = TRUE mob_size = MOB_SIZE_LARGE var/mob/living/oldform var/list/devil_overlays[DEVIL_TOTAL_LAYERS] @@ -135,9 +136,6 @@ "[attack_message]", null, COMBAT_MESSAGE_RANGE) return TRUE -/mob/living/carbon/true_devil/Process_Spacemove(movement_dir = 0) - return 1 - /mob/living/carbon/true_devil/singularity_act() if(ascended) return 0 diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index a2513d776f..154d0f1206 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -679,7 +679,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( C.images -= I /mob/living/silicon/ai/proc/can_place_transformer(datum/action/innate/ai/place_transformer/action) - if(!eyeobj || !isturf(loc) || !canUseTopic() || !action) + if(!eyeobj || !isturf(loc) || incapacitated() || !action) return var/turf/middle = get_turf(eyeobj) var/list/turfs = list(middle, locate(middle.x - 1, middle.y, middle.z), locate(middle.x + 1, middle.y, middle.z)) diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index d2c6da2c60..780be71694 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -98,7 +98,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event var/z_original = ZLEVEL_STATION_PRIMARY var/threat = 0 // used for determining which meteors are most interesting var/lifetime = DEFAULT_METEOR_LIFETIME - + var/timerid = null var/list/meteordrop = list(/obj/item/ore/iron) var/dropamt = 2 @@ -117,6 +117,8 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event get_hit() /obj/effect/meteor/Destroy() + if (timerid) + deltimer(timerid) GLOB.meteor_list -= src SSaugury.unregister_doom(src) walk(src,0) //this cancels the walk_towards() proc @@ -127,7 +129,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event GLOB.meteor_list += src SSaugury.register_doom(src, threat) SpinAnimation() - QDEL_IN(src, lifetime) + timerid = QDEL_IN(src, lifetime) chase_target(target) /obj/effect/meteor/Collide(atom/A) diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index e72babc5b0..04a5f4d2be 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -21,6 +21,7 @@ maxHealth = INFINITY layer = GHOST_LAYER healable = FALSE + spacewalk = TRUE sight = SEE_SELF see_in_dark = 8 @@ -153,8 +154,6 @@ //Immunities -/mob/living/simple_animal/revenant/Process_Spacemove(movement_dir = 0) - return 1 /mob/living/simple_animal/revenant/ex_act(severity, target) return 1 //Immune to the effects of explosions. diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index ecfb6289ec..630a5929d7 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -91,9 +91,11 @@ var/obj/item/device/nuclear_challenge/challenge = new /obj/item/device/nuclear_challenge synd_mind.current.put_in_hands(challenge, TRUE) - var/list/foundIDs = synd_mind.current.search_contents_for(/obj/item/card/id) + var/static/id_cache = typecacheof(/obj/item/card/id) + var/list/foundIDs = typecache_filter_list(synd_mind.current.GetAllContents(), id_cache) if(foundIDs.len) - for(var/obj/item/card/id/ID in foundIDs) + for(var/i in 1 to foundIDs.len) + var/obj/item/card/id/ID = foundIDs[i] ID.name = "lead agent card" ID.access += ACCESS_SYNDICATE_LEADER else diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 43582b99a3..a97e5a924b 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -83,7 +83,7 @@ /datum/game_mode/traitor/proc/add_latejoin_traitor(datum/mind/character) var/datum/antagonist/traitor/new_antag = new antag_datum(character) new_antag.should_specialise = TRUE - character.add_antag_datum(antag_datum) + character.add_antag_datum(new_antag) @@ -147,6 +147,7 @@ else text += "
The [special_role_text] has failed!" SSblackbox.add_details("traitor_success","FAIL") + SEND_SOUND(traitor.current, 'sound/ambience/ambifailure.ogg') text += "
" diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index daa45caf72..5b87255d37 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -425,7 +425,7 @@ /datum/spellbook_entry/item/warpwhistle name = "Warp Whistle" - desc = "A strange whistle that will transport you to a distant safe place on the station. There is a window of vulnerability at the begining of every use." + desc = "A strange whistle that will transport you to a distant safe place on the station. There is a window of vulnerability at the beginning of every use." item_path = /obj/item/warpwhistle category = "Mobility" cost = 1 diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 60260d2a4f..286bcee1f8 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -506,3 +506,14 @@ Class Procs: . = ..() if (AM == occupant) occupant = null + +/obj/machinery/proc/adjust_item_drop_location(atom/movable/AM) // Adjust item drop location to a 3x3 grid inside the tile, returns slot id from 0 to 8 + var/md5 = md5(AM.name) // Oh, and it's deterministic too. A specific item will always drop from the same slot. +#if DM_VERSION > 511 +#warn Refactor the loop in /obj/machinery/proc/adjust_item_drop_location() to make use of 512's list-like access to characters in a string +#endif + for (var/i in 1 to 32) + . += hex2num(copytext(md5,i,i+1)) + . = . % 9 + AM.pixel_x = -8 + ((.%3)*8) + AM.pixel_y = -8 + (round( . / 3)*8) \ No newline at end of file diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index f5c4f2c146..0ca59c45bc 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -8,10 +8,9 @@ circuit = /obj/item/circuitboard/computer/communications var/authenticated = 0 var/auth_id = "Unknown" //Who is currently logged in? - var/list/messagetitle = list() - var/list/messagetext = list() - var/currmsg = 0 - var/aicurrmsg = 0 + var/list/datum/comm_message/messages = list() + var/datum/comm_message/currmsg + var/datum/comm_message/aicurrmsg var/state = STATE_DEFAULT var/aistate = STATE_DEFAULT var/message_cooldown = 0 @@ -48,7 +47,7 @@ /obj/machinery/computer/communications/process() if(..()) if(state != STATE_STATUSDISPLAY) - src.updateDialog() + updateDialog() /obj/machinery/computer/communications/Topic(href, href_list) @@ -65,7 +64,7 @@ switch(href_list["operation"]) // main interface if("main") - src.state = STATE_DEFAULT + state = STATE_DEFAULT playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) if("login") var/mob/M = usr @@ -75,13 +74,13 @@ I = M.get_idcard() if(I && istype(I)) - if(src.check_access(I)) + if(check_access(I)) authenticated = 1 auth_id = "[I.registered_name] ([I.assignment])" if((20 in I.access)) authenticated = 2 playsound(src, 'sound/machines/terminal_on.ogg', 50, 0) - if(src.emagged) + if(emagged) authenticated = 2 auth_id = "Unknown" to_chat(M, "[src] lets out a quiet alarm as its login is overriden.") @@ -132,7 +131,7 @@ playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) if("announce") - if(src.authenticated==2) + if(authenticated==2) playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) make_announcement(usr) @@ -186,53 +185,56 @@ to_chat(usr, "Not enough credits.") if("callshuttle") - src.state = STATE_DEFAULT - if(src.authenticated) - src.state = STATE_CALLSHUTTLE + state = STATE_DEFAULT + if(authenticated) + state = STATE_CALLSHUTTLE if("callshuttle2") - if(src.authenticated) + if(authenticated) SSshuttle.requestEvac(usr, href_list["call"]) if(SSshuttle.emergency.timer) post_status("shuttle") - src.state = STATE_DEFAULT + state = STATE_DEFAULT if("cancelshuttle") - src.state = STATE_DEFAULT - if(src.authenticated) - src.state = STATE_CANCELSHUTTLE + state = STATE_DEFAULT + if(authenticated) + state = STATE_CANCELSHUTTLE if("cancelshuttle2") - if(src.authenticated) + if(authenticated) SSshuttle.cancelEvac(usr) - src.state = STATE_DEFAULT + state = STATE_DEFAULT if("messagelist") - src.currmsg = 0 - src.state = STATE_MESSAGELIST + currmsg = 0 + state = STATE_MESSAGELIST if("viewmessage") - src.state = STATE_VIEWMESSAGE - if (!src.currmsg) + state = STATE_VIEWMESSAGE + if (!currmsg) if(href_list["message-num"]) - src.currmsg = text2num(href_list["message-num"]) + var/msgnum = text2num(href_list["message-num"]) + currmsg = messages[msgnum] else - src.state = STATE_MESSAGELIST + state = STATE_MESSAGELIST if("delmessage") - src.state = (src.currmsg) ? STATE_DELMESSAGE : STATE_MESSAGELIST + state = currmsg ? STATE_DELMESSAGE : STATE_MESSAGELIST if("delmessage2") - if(src.authenticated) - if(src.currmsg) - var/title = src.messagetitle[src.currmsg] - var/text = src.messagetext[src.currmsg] - src.messagetitle.Remove(title) - src.messagetext.Remove(text) - if(src.currmsg == src.aicurrmsg) - src.aicurrmsg = 0 - src.currmsg = 0 - src.state = STATE_MESSAGELIST + if(authenticated) + if(currmsg) + if(aicurrmsg == currmsg) + aicurrmsg = null + messages -= currmsg + currmsg = null + state = STATE_MESSAGELIST else - src.state = STATE_VIEWMESSAGE + state = STATE_VIEWMESSAGE + if("respond") + var/answer = text2num(href_list["answer"]) + if(!currmsg || !answer || currmsg.possible_answers.len < answer) + state = STATE_MESSAGELIST + currmsg.answered = answer + state = STATE_VIEWMESSAGE if("status") - src.state = STATE_STATUSDISPLAY - + state = STATE_STATUSDISPLAY if("securitylevel") - src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) + tmp_alertlevel = text2num( href_list["newalertlevel"] ) if(!tmp_alertlevel) tmp_alertlevel = 0 state = STATE_CONFIRM_LEVEL @@ -245,12 +247,12 @@ make_maint_all_access() log_game("[key_name(usr)] enabled emergency maintenance access.") message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") - src.state = STATE_DEFAULT + state = STATE_DEFAULT if("disableemergency") revoke_maint_all_access() log_game("[key_name(usr)] disabled emergency maintenance access.") message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") - src.state = STATE_DEFAULT + state = STATE_DEFAULT // Status display stuff if("setstat") @@ -265,14 +267,14 @@ if("setmsg1") stat_msg1 = reject_bad_text(input("Line 1", "Enter Message Text", stat_msg1) as text|null, 40) - src.updateDialog() + updateDialog() if("setmsg2") stat_msg2 = reject_bad_text(input("Line 2", "Enter Message Text", stat_msg2) as text|null, 40) - src.updateDialog() + updateDialog() // OMG CENTCOM LETTERHEAD if("MessageCentCom") - if(src.authenticated==2) + if(authenticated==2) if(!checkCCcooldown()) to_chat(usr, "Arrays recycling. Please stand by.") return @@ -288,7 +290,7 @@ // OMG SYNDICATE ...LETTERHEAD if("MessageSyndicate") - if((src.authenticated==2) && (src.emagged)) + if((authenticated==2) && (emagged)) if(!checkCCcooldown()) to_chat(usr, "Arrays recycling. Please stand by.") playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) @@ -306,10 +308,10 @@ to_chat(usr, "Backup routing data restored!") playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) emagged = FALSE - src.updateDialog() + updateDialog() if("nukerequest") //When there's no other way - if(src.authenticated==2) + if(authenticated==2) if(!checkCCcooldown()) to_chat(usr, "Arrays recycling. Please stand by.") return @@ -325,41 +327,45 @@ // AI interface if("ai-main") - src.aicurrmsg = 0 - src.aistate = STATE_DEFAULT + aicurrmsg = null + aistate = STATE_DEFAULT if("ai-callshuttle") - src.aistate = STATE_CALLSHUTTLE + aistate = STATE_CALLSHUTTLE if("ai-callshuttle2") SSshuttle.requestEvac(usr, href_list["call"]) - src.aistate = STATE_DEFAULT + aistate = STATE_DEFAULT if("ai-messagelist") - src.aicurrmsg = 0 - src.aistate = STATE_MESSAGELIST + aicurrmsg = null + aistate = STATE_MESSAGELIST if("ai-viewmessage") - src.aistate = STATE_VIEWMESSAGE - if (!src.aicurrmsg) + aistate = STATE_VIEWMESSAGE + if (!aicurrmsg) if(href_list["message-num"]) - src.aicurrmsg = text2num(href_list["message-num"]) + var/msgnum = text2num(href_list["message-num"]) + aicurrmsg = messages[msgnum] else - src.aistate = STATE_MESSAGELIST + aistate = STATE_MESSAGELIST if("ai-delmessage") - src.aistate = (src.aicurrmsg) ? STATE_DELMESSAGE : STATE_MESSAGELIST + aistate = aicurrmsg ? STATE_DELMESSAGE : STATE_MESSAGELIST if("ai-delmessage2") - if(src.aicurrmsg) - var/title = src.messagetitle[src.aicurrmsg] - var/text = src.messagetext[src.aicurrmsg] - src.messagetitle.Remove(title) - src.messagetext.Remove(text) - if(src.currmsg == src.aicurrmsg) - src.currmsg = 0 - src.aicurrmsg = 0 - src.aistate = STATE_MESSAGELIST + if(aicurrmsg) + if(currmsg == aicurrmsg) + currmsg = null + messages -= aicurrmsg + aicurrmsg = null + aistate = STATE_MESSAGELIST + if("ai-respond") + var/answer = text2num(href_list["answer"]) + if(!aicurrmsg || !answer || aicurrmsg.possible_answers.len < answer) + aistate = STATE_MESSAGELIST + aicurrmsg.answered = answer + aistate = STATE_VIEWMESSAGE if("ai-status") - src.aistate = STATE_STATUSDISPLAY + aistate = STATE_STATUSDISPLAY if("ai-announce") make_announcement(usr, 1) if("ai-securitylevel") - src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) + tmp_alertlevel = text2num( href_list["newalertlevel"] ) if(!tmp_alertlevel) tmp_alertlevel = 0 var/old_level = GLOB.security_level @@ -380,24 +386,23 @@ if(SEC_LEVEL_BLUE) SSblackbox.inc("alert_comms_blue",1) tmp_alertlevel = 0 - src.aistate = STATE_DEFAULT + aistate = STATE_DEFAULT if("ai-changeseclevel") - src.aistate = STATE_ALERT_LEVEL - + aistate = STATE_ALERT_LEVEL if("ai-emergencyaccess") - src.aistate = STATE_TOGGLE_EMERGENCY + aistate = STATE_TOGGLE_EMERGENCY if("ai-enableemergency") make_maint_all_access() log_game("[key_name(usr)] enabled emergency maintenance access.") message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") - src.aistate = STATE_DEFAULT + aistate = STATE_DEFAULT if("ai-disableemergency") revoke_maint_all_access() log_game("[key_name(usr)] disabled emergency maintenance access.") message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") - src.aistate = STATE_DEFAULT + aistate = STATE_DEFAULT - src.updateUsrDialog() + updateUsrDialog() /obj/machinery/computer/communications/attackby(obj/I, mob/user, params) if(istype(I, /obj/item/card/id)) @@ -417,7 +422,7 @@ /obj/machinery/computer/communications/attack_hand(mob/user) if(..()) return - if (src.z > 6) + if (z > 6) to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") return @@ -429,19 +434,19 @@ var/datum/browser/popup = new(user, "communications", "Communications Console", 400, 500) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) if(issilicon(user)) - var/dat2 = src.interact_ai(user) // give the AI a different interact proc to limit its access + var/dat2 = interact_ai(user) // give the AI a different interact proc to limit its access if(dat2) dat += dat2 popup.set_content(dat) popup.open() return - switch(src.state) + switch(state) if(STATE_DEFAULT) - if (src.authenticated) + if (authenticated) if(SSshuttle.emergencyCallAmount) if(SSshuttle.emergencyLastCallLoc) dat += "Most recent shuttle call/recall traced to: [format_text(SSshuttle.emergencyLastCallLoc.name)]
" @@ -458,18 +463,13 @@ else dat += "
\[ Cancel Shuttle Call \]" -<<<<<<< HEAD - dat += "
\[ Set Status Display \]" - if (src.authenticated==2) -======= dat += "
\[ Set Status Display \]" if (authenticated==2) ->>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental dat += "

Captain Functions" dat += "
\[ Make a Captain's Announcement \]" if(CONFIG_GET(string/cross_server_address)) dat += "
\[ Send a message to an allied station \]" - if(SSmapping.config.allow_custom_shuttles == "yes") + if(SSmapping.config.allow_custom_shuttles) dat += "
\[ Purchase Shuttle \]" dat += "
\[ Change Alert Level \]" dat += "
\[ Emergency Maintenance Access \]" @@ -489,16 +489,6 @@ playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) if(STATE_MESSAGELIST) dat += "Messages:" -<<<<<<< HEAD - for(var/i = 1; i<=src.messagetitle.len; i++) - dat += "
[src.messagetitle[i]]" - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - if(STATE_VIEWMESSAGE) - if (src.currmsg) - dat += "[src.messagetitle[src.currmsg]]

[src.messagetext[src.currmsg]]" - if (src.authenticated) - dat += "

\[ Delete \]" -======= for(var/i in 1 to messages.len) var/datum/comm_message/M = messages[i] dat += "
[M.title]" @@ -514,22 +504,16 @@ var/answered = currmsg.possible_answers[currmsg.answered] dat += "
Archived Answer : [answered]" dat += "

\[ Delete \]" ->>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental else - src.state = STATE_MESSAGELIST - src.attack_hand(user) - return + aistate = STATE_MESSAGELIST + attack_hand(user) + return null if(STATE_DELMESSAGE) -<<<<<<< HEAD - if (src.currmsg) - dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" -======= if (currmsg) dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" ->>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental else - src.state = STATE_MESSAGELIST - src.attack_hand(user) + state = STATE_MESSAGELIST + attack_hand(user) return if(STATE_STATUSDISPLAY) dat += "Set Status Displays
" @@ -574,11 +558,7 @@ dat += "Prerequisites: [S.prerequisites]
" dat += "(Purchase)

" -<<<<<<< HEAD - dat += "

\[ [(src.state != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" -======= dat += "

\[ [(state != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" ->>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental popup.set_content(dat) popup.open() @@ -624,7 +604,7 @@ /obj/machinery/computer/communications/proc/interact_ai(mob/living/silicon/ai/user) var/dat = "" - switch(src.aistate) + switch(aistate) if(STATE_DEFAULT) if(SSshuttle.emergencyCallAmount) if(SSshuttle.emergencyLastCallLoc) @@ -648,14 +628,6 @@ dat += get_call_shuttle_form(1) if(STATE_MESSAGELIST) dat += "Messages:" -<<<<<<< HEAD - for(var/i = 1; i<=src.messagetitle.len; i++) - dat += "
[src.messagetitle[i]]" - if(STATE_VIEWMESSAGE) - if (src.aicurrmsg) - dat += "[src.messagetitle[src.aicurrmsg]]

[src.messagetext[src.aicurrmsg]]" - dat += "

\[ Delete \]" -======= for(var/i in 1 to messages.len) var/datum/comm_message/M = messages[i] dat += "
[M.title]" @@ -670,22 +642,16 @@ var/answered = aicurrmsg.possible_answers[aicurrmsg.answered] dat += "
Archived Answer : [answered]" dat += "

\[ Delete \]" ->>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental else - src.aistate = STATE_MESSAGELIST - src.attack_hand(user) + aistate = STATE_MESSAGELIST + attack_hand(user) return null if(STATE_DELMESSAGE) -<<<<<<< HEAD - if(src.aicurrmsg) - dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" -======= if(aicurrmsg) dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" ->>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental else - src.aistate = STATE_MESSAGELIST - src.attack_hand(user) + aistate = STATE_MESSAGELIST + attack_hand(user) return if(STATE_STATUSDISPLAY) @@ -716,11 +682,7 @@ dat += "Emergency Maintenance Access is currently DISABLED" dat += "
Lift access restrictions on maintenance and external airlocks?
\[ OK | Cancel \]" -<<<<<<< HEAD - dat += "

\[ [(src.aistate != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" -======= dat += "

\[ [(aistate != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" ->>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental return dat /obj/machinery/computer/communications/proc/make_announcement(mob/living/user, is_silicon) @@ -762,3 +724,12 @@ /obj/machinery/computer/communications/proc/overrideCooldown() var/obj/item/circuitboard/computer/communications/CM = circuit CM.lastTimeUsed = 0 + +/obj/machinery/computer/communications/proc/add_message(datum/comm_message/new_message) + messages += new_message + +/datum/comm_message + var/title + var/content + var/list/possible_answers = list() + var/answered diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 4fa3dad179..e413d204a2 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -575,7 +575,7 @@ if(4) R.fields["blood_type"] = random_blood_type() if(5) - R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit") + R.fields["p_stat"] = pick("*Unconscious*", "Active", "Physically Unfit") if(6) R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") continue diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 0e170d9b8b..817b8b1cae 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -118,6 +118,15 @@ max_integrity = normal_integrity if(damage_deflection == AIRLOCK_DAMAGE_DEFLECTION_N && security_level > AIRLOCK_SECURITY_METAL) damage_deflection = AIRLOCK_DAMAGE_DEFLECTION_R + prepare_huds() + var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC] + diag_hud.add_to_hud(src) + diag_hud_set_electrified() + + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/door/airlock/LateInitialize() + . = ..() if(abandoned) var/outcome = rand(1,100) switch(outcome) @@ -136,10 +145,6 @@ welded = TRUE if(24 to 30) panel_open = TRUE - prepare_huds() - var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC] - diag_hud.add_to_hud(src) - diag_hud_set_electrified() update_icon() diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 5d529defea..28c4b8c0aa 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -69,9 +69,9 @@ Buildable meters return ..() /obj/item/pipe/proc/setPipingLayer(new_layer = PIPING_LAYER_DEFAULT) - var/obj/machinery/atmospherics/fakeA = get_pipe_cache(pipe_type) + var/obj/machinery/atmospherics/fakeA = pipe_type - if(fakeA.pipe_flags & PIPING_ALL_LAYER) + if(initial(fakeA.pipe_flags) & PIPING_ALL_LAYER) new_layer = PIPING_LAYER_DEFAULT piping_layer = new_layer @@ -80,9 +80,9 @@ Buildable meters layer = initial(layer) + ((piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_LCHANGE) /obj/item/pipe/proc/update() - var/obj/machinery/atmospherics/A = get_pipe_cache(pipe_type) - name = "[A.name] fitting" - icon_state = A.pipe_state + var/obj/machinery/atmospherics/fakeA = pipe_type + name = "[initial(fakeA.name)] fitting" + icon_state = initial(fakeA.pipe_state) // rotate the pipe item clockwise @@ -147,17 +147,6 @@ Buildable meters /obj/item/pipe/attack_self(mob/user) return rotate() -/obj/item/pipe/proc/get_pipe_cache(type, direction) - var/static/list/obj/machinery/atmospherics/check_cache - if(!islist(check_cache)) - check_cache = list() - if(!check_cache[type]) - check_cache[type] = list() - if(!check_cache[type]["[direction]"]) - check_cache[type]["[direction]"] = new type(null, null, direction) - - return check_cache[type]["[direction]"] - /obj/item/pipe/attackby(obj/item/W, mob/user, params) if (!istype(W, /obj/item/wrench)) return ..() @@ -167,15 +156,15 @@ Buildable meters fixdir() - var/obj/machinery/atmospherics/fakeA = get_pipe_cache(pipe_type, dir) - + var/obj/machinery/atmospherics/fakeA = pipe_type + var/flags = initial(fakeA.pipe_flags) for(var/obj/machinery/atmospherics/M in loc) - if((M.pipe_flags & fakeA.pipe_flags & PIPING_ONE_PER_TURF)) //Only one dense/requires density object per tile, eg connectors/cryo/heater/coolers. + if((M.pipe_flags & flags & PIPING_ONE_PER_TURF)) //Only one dense/requires density object per tile, eg connectors/cryo/heater/coolers. to_chat(user, "Something is hogging the tile!") return TRUE - if((M.piping_layer != piping_layer) && !((M.pipe_flags | fakeA.pipe_flags) & PIPING_ALL_LAYER)) //don't continue if either pipe goes across all layers + if((M.piping_layer != piping_layer) && !((M.pipe_flags | flags) & PIPING_ALL_LAYER)) //don't continue if either pipe goes across all layers continue - if(M.GetInitDirections() & fakeA.GetInitDirections()) // matches at least one direction on either type of pipe + if(M.GetInitDirections() & SSair.get_init_dirs(pipe_type, dir)) // matches at least one direction on either type of pipe to_chat(user, "There is already a pipe at that location!") return TRUE // no conflicts found diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 72fd8ccbc7..9aa0a8f4b0 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -16,7 +16,7 @@ use_power = IDLE_POWER_USE //this turret uses and requires power idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power - req_access = list(ACCESS_SECURITY) + req_access = list(ACCESS_SEC_DOORS) power_channel = EQUIP //drains power from the EQUIPMENT channel var/base_icon_state = "standard" diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 514de9b841..bd93975f46 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -980,8 +980,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/item/clothing/mask/gas/cyborg = 1, /obj/item/clothing/suit/holidaypriest = 1, /obj/item/clothing/head/wizard/marisa/fake = 1, /obj/item/clothing/suit/wizrobe/marisa/fake = 1, /obj/item/clothing/under/sundress = 1, /obj/item/clothing/head/witchwig = 1, /obj/item/staff/broom = 1, /obj/item/clothing/suit/wizrobe/fake = 1, /obj/item/clothing/head/wizard/fake = 1, /obj/item/staff = 3, /obj/item/clothing/mask/gas/sexyclown = 1, - /obj/item/clothing/under/rank/clown/sexy = 1, /obj/item/clothing/mask/gas/sexymime = 1, /obj/item/clothing/under/sexymime = 1, /obj/item/clothing/mask/rat/bat = 1, /obj/item/clothing/mask/rat/bee = 1, /obj/item/clothing/mask/rat/bear = 1, /obj/item/clothing/mask/rat/raven = 1, /obj/item/clothing/mask/rat/jackal = 1, /obj/item/clothing/mask/rat/fox = 1, /obj/item/clothing/mask/rat/tribal = 1, /obj/item/clothing/mask/rat = 1, /obj/item/clothing/suit/apron/overalls = 1, - /obj/item/clothing/head/rabbitears =1, /obj/item/clothing/head/sombrero = 1, /obj/item/clothing/head/sombrero/green = 1, /obj/item/clothing/suit/poncho = 1, + /obj/item/clothing/under/rank/clown/sexy = 1, /obj/item/clothing/mask/gas/sexymime = 1, /obj/item/clothing/under/sexymime = 1, /obj/item/clothing/mask/rat/bat = 1, /obj/item/clothing/mask/rat/bee = 1, /obj/item/clothing/mask/rat/bear = 1, /obj/item/clothing/mask/rat/raven = 1, /obj/item/clothing/mask/rat/jackal = 1, /obj/item/clothing/mask/rat/fox = 1, /obj/item/clothing/mask/frog = 1, /obj/item/clothing/mask/rat/tribal = 1, /obj/item/clothing/mask/rat = 1, + /obj/item/clothing/suit/apron/overalls = 1, /obj/item/clothing/head/rabbitears =1, /obj/item/clothing/head/sombrero = 1, /obj/item/clothing/head/sombrero/green = 1, /obj/item/clothing/suit/poncho = 1, /obj/item/clothing/suit/poncho/green = 1, /obj/item/clothing/suit/poncho/red = 1, /obj/item/clothing/under/maid = 1, /obj/item/clothing/under/janimaid = 1, /obj/item/clothing/glasses/cold=1, /obj/item/clothing/glasses/heat=1, /obj/item/clothing/suit/whitedress = 1, @@ -998,8 +998,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/item/clothing/head/cueball = 1, /obj/item/clothing/under/scratch = 1, /obj/item/clothing/under/sailor = 1, - /obj/item/clothing/ears/headphones = 2, - /obj/item/clothing/head/wig/random = 3) + /obj/item/clothing/ears/headphones = 2, + /obj/item/clothing/head/wig/random = 3) contraband = list(/obj/item/clothing/suit/judgerobe = 1, /obj/item/clothing/head/powdered_wig = 1, /obj/item/gun/magic/wand = 2, /obj/item/clothing/glasses/sunglasses/garb = 2, /obj/item/clothing/glasses/sunglasses/blindfold = 1, /obj/item/clothing/mask/muzzle = 2) premium = list(/obj/item/clothing/suit/pirate/captain = 2, /obj/item/clothing/head/pirate/captain = 2, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/shield/riot/roman = 1, /obj/item/skub = 1) refill_canister = /obj/item/vending_refill/autodrobe diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index c99814148d..9203e32177 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -6,7 +6,7 @@ name = "exosuit drill" desc = "Equipment for engineering and combat exosuits. This is the drill that'll pierce the heavens!" icon_state = "mecha_drill" - equip_cooldown = 30 + equip_cooldown = 15 energy_drain = 10 force = 15 @@ -99,7 +99,7 @@ desc = "Equipment for engineering and combat exosuits. This is an upgraded version of the drill that'll pierce the heavens!" icon_state = "mecha_diamond_drill" origin_tech = "materials=4;engineering=4" - equip_cooldown = 20 + equip_cooldown = 10 force = 15 @@ -108,16 +108,16 @@ desc = "Equipment for engineering and combat exosuits. It will automatically check surrounding rock for useful minerals." icon_state = "mecha_analyzer" selectable = 0 - equip_cooldown = 30 + equip_cooldown = 15 var/scanning_time = 0 /obj/item/mecha_parts/mecha_equipment/mining_scanner/New() ..() - START_PROCESSING(SSobj, src) + START_PROCESSING(SSfastprocess, src) /obj/item/mecha_parts/mecha_equipment/mining_scanner/process() if(!loc) - STOP_PROCESSING(SSobj, src) + STOP_PROCESSING(SSfastprocess, src) qdel(src) if(istype(loc, /obj/mecha/working) && scanning_time <= world.time) var/obj/mecha/working/mecha = loc diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index 10c0b7e39a..ccacd133e8 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -106,7 +106,7 @@ if(recharge_port && !QDELETED(recharge_port)) data["recharge_port"] = list("mech" = null) if(recharge_port.recharging_mech && !QDELETED(recharge_port.recharging_mech)) - data["recharge_port"]["mech"] = list("health" = recharge_port.recharging_mech.obj_integrity, "max_integrity" = recharge_port.recharging_mech.max_integrity, "cell" = null) + data["recharge_port"]["mech"] = list("health" = recharge_port.recharging_mech.obj_integrity, "maxhealth" = recharge_port.recharging_mech.max_integrity, "cell" = null) if(recharge_port.recharging_mech.cell && !QDELETED(recharge_port.recharging_mech.cell)) data["recharge_port"]["mech"]["cell"] = list( "critfail" = recharge_port.recharging_mech.cell.crit_fail, diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 8352a12e5e..2cf463e46c 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -22,7 +22,7 @@ /atom/movable/MouseDrop_T(mob/living/M, mob/living/user) . = ..() - if(can_buckle && istype(M)) + if(can_buckle && istype(M) && istype(user)) if(user_buckle_mob(M, user)) return 1 diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 7ca3bd9462..4362957a76 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -5,20 +5,26 @@ icon_state = "rune1" gender = NEUTER var/do_icon_rotate = TRUE + var/rotation = 0 + var/paint_colour = "#FFFFFF" -/obj/effect/decal/cleanable/crayon/Initialize(mapload, main = "#FFFFFF", var/type = "rune1", var/e_name = "rune", var/rotation = 0, var/alt_icon = null) +/obj/effect/decal/cleanable/crayon/Initialize(mapload, main, type, e_name, graf_rot, alt_icon = null) . = ..() - name = e_name + if(e_name) + name = e_name desc = "A [name] vandalizing the station." if(alt_icon) icon = alt_icon - icon_state = type - + if(type) + icon_state = type + if(graf_rot) + rotation = graf_rot if(rotation && do_icon_rotate) var/matrix/M = matrix() M.Turn(rotation) src.transform = M - - add_atom_colour(main, FIXED_COLOUR_PRIORITY) + if(main) + paint_colour = main + add_atom_colour(paint_colour, FIXED_COLOUR_PRIORITY) diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index 520e4e10b7..f4235de240 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -15,24 +15,23 @@ if(T == loc && (isspaceturf(T) || isclosedturf(T) || islava(T) || istype(T, /turf/open/water) || ischasm(T))) qdel(src) +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /obj/effect/turf_decal - var/group = TURF_DECAL_PAINT icon = 'icons/turf/decals.dmi' icon_state = "warningline" layer = TURF_DECAL_LAYER - anchored = TRUE - -//in case we need some special decals -/obj/effect/turf_decal/proc/get_decal() - return image(icon='icons/turf/decals.dmi',icon_state=icon_state,dir=dir,layer=TURF_LAYER) /obj/effect/turf_decal/Initialize() ..() + return INITIALIZE_HINT_QDEL + +/obj/effect/turf_decal/ComponentInitialize() + . = ..() var/turf/T = loc if(!istype(T)) //you know this will happen somehow CRASH("Turf decal initialized in an object/nullspace") - T.add_decal(get_decal(),group) - return INITIALIZE_HINT_QDEL + T.AddComponent(/datum/component/turf_decal, dir, icon, icon_state) /obj/effect/turf_decal/stripes/line icon_state = "warningline" diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 8bf0580e15..2332c0d8b7 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -124,7 +124,7 @@ return ..() /obj/effect/portal/proc/teleport(atom/movable/M) - if(!istype(M) || istype(M, /obj/effect) || (ismecha(M) && !mech_sized) || (!isobj(M) && !ismob(M))) //Things that shouldn't teleport. + if(!istype(M) || istype(M, /obj/effect) || isobserver(M) || (ismecha(M) && !mech_sized) || (!isobj(M) && !ismob(M))) //Things that shouldn't teleport. return var/turf/real_target = get_link_target_turf() if(!istype(real_target)) diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 363bb1b05a..835738255e 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -312,14 +312,10 @@ icon_state = "impact_bullet" duration = 5 -/obj/effect/temp_visual/impact_effect/Initialize(mapload, atom/target, obj/item/projectile/P) - if(target == P.original) - pixel_x = target.pixel_x + P.p_x - 16 - pixel_y = target.pixel_y + P.p_y - 16 - else - pixel_x = target.pixel_x + rand(2, -2) - pixel_y = target.pixel_y + rand(2, -2) - . = ..() +/obj/effect/temp_visual/impact_effect/Initialize(mapload, x, y) + pixel_x = x + pixel_y = y + return ..() /obj/effect/temp_visual/impact_effect/red_laser icon_state = "impact_laser" diff --git a/code/game/objects/effects/temporary_visuals/temporary_visual.dm b/code/game/objects/effects/temporary_visuals/temporary_visual.dm index 6a1bbc4437..615f392a86 100644 --- a/code/game/objects/effects/temporary_visuals/temporary_visual.dm +++ b/code/game/objects/effects/temporary_visuals/temporary_visual.dm @@ -35,3 +35,5 @@ if(set_dir) setDir(set_dir) . = ..() + + diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 12e7cda9fa..cd0b296392 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -77,7 +77,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/mob/thrownby = null - /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged + mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged //So items can have custom embedd values //Because customisation is king diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 199bb0152d..51a81c46aa 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -9,6 +9,8 @@ ARCD */ /obj/item/construction + name = "not for ingame use" + desc = "A device used to rapidly build and deconstruct. Reload with metal, plasteel, glass or compressed matter cartridges." opacity = 0 density = FALSE anchored = FALSE @@ -32,11 +34,13 @@ ARCD /obj/item/construction/Initialize() . = ..() - desc = "\A [src]. It currently holds [matter]/[max_matter] matter-units." spark_system = new /datum/effect_system/spark_spread spark_system.set_up(5, 0, src) spark_system.attach(src) +/obj/item/construction/examine(mob/user) + ..() + to_chat(user, "\A [src]. It currently holds [matter]/[max_matter] matter-units." ) /obj/item/construction/Destroy() QDEL_NULL(spark_system) @@ -61,7 +65,6 @@ ARCD loaded = loadwithsheets(W, plasteelmultiplier*sheetmultiplier, user) //Plasteel is worth 3 times more than glass or metal if(loaded) to_chat(user, "[src] now holds [matter]/[max_matter] matter-units.") - desc = "A RCD. It currently holds [matter]/[max_matter] matter-units." else return ..() @@ -91,7 +94,6 @@ ARCD to_chat(user, no_ammo_message) return 0 matter -= amount - desc = "\A [src]. It currently holds [matter]/[max_matter] matter-units." update_icon() return 1 @@ -117,7 +119,6 @@ ARCD /obj/item/construction/rcd name = "rapid-construction-device (RCD)" - desc = "A device used to rapidly build and deconstruct walls and floors." icon = 'icons/obj/tools.dmi' icon_state = "rcd" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' @@ -125,7 +126,6 @@ ARCD max_matter = 160 flags_2 = NO_MAT_REDEMPTION_2 var/mode = 1 - var/canRturf = 0 var/ranged = FALSE var/airlock_type = /obj/machinery/door/airlock var/airlock_glass = FALSE // So the floor's rcd_act knows how much ammo to use @@ -134,6 +134,7 @@ ARCD var/list/conf_access = null var/use_one_access = 0 //If the airlock should require ALL or only ONE of the listed accesses. var/delay_mod = 1 + var/canRturf = FALSE //Variable for R walls to deconstruct them /obj/item/construction/rcd/suicide_act(mob/user) @@ -362,11 +363,11 @@ ARCD qdel(src) -/obj/item/construction/rcd/borg/New() - ..() +/obj/item/construction/rcd/borg no_ammo_message = "Insufficient charge." desc = "A device used to rapidly build walls and floors." - canRturf = 1 + canRturf = TRUE + /obj/item/construction/rcd/borg/useResource(amount, mob/user) if(!iscyborg(user)) @@ -401,6 +402,7 @@ ARCD name = "industrial RCD" max_matter = 500 matter = 500 + canRturf = TRUE /obj/item/rcd_ammo name = "compressed matter cartridge" @@ -420,7 +422,7 @@ ARCD ammoamt = 160 -/obj/item/construction/rcd/admin +/obj/item/construction/rcd/combat/admin name = "admin RCD" max_matter = INFINITY matter = INFINITY @@ -431,7 +433,7 @@ ARCD /obj/item/construction/rcd/arcd name = "advanced rapid-construction-device (ARCD)" - desc = "A prototype RCD with ranged capability and extended capacity." + desc = "A prototype RCD with ranged capability and extended capacity. Reload with metal, plasteel, glass or compressed matter cartridges." max_matter = 300 matter = 300 delay_mod = 0.6 @@ -454,7 +456,7 @@ ARCD /obj/item/construction/rld name = "rapid-light-device (RLD)" - desc = "A device used to rapidly provide lighting sources to an area." + desc = "A device used to rapidly provide lighting sources to an area. Reload with metal, plasteel, glass or compressed matter cartridges." icon = 'icons/obj/tools.dmi' icon_state = "rld-5" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index 83d278b477..b7d2330dc0 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -546,12 +546,7 @@ GLOBAL_LIST_INIT(RPD_recipes, list( A = get_turf(user) //make sure what we're clicking is valid for the current mode - var/is_paintable = (p_class == PAINT_MODE && istype(A, /obj/machinery/atmospherics/pipe)) - var/is_consumable = (p_class == EATING_MODE && (istype(A, /obj/item/pipe) || istype(A, /obj/item/pipe_meter) || istype(A, /obj/structure/disposalconstruct))) - var/can_make_pipe = ((atmos_piping_mode || p_class == DISPOSALS_MODE) && (isturf(A)) || istype(A, /obj/structure/lattice/catwalk) || istype(A, /obj/structure/girder)) - - if(!is_paintable && !is_consumable && !can_make_pipe) - return ..() + var/can_make_pipe = ((atmos_piping_mode || p_class == DISPOSALS_MODE) && (isturf(A)) || istype(A, /obj/structure/lattice) || istype(A, /obj/structure/girder)) //So that changing the menu settings doesn't affect the pipes already being built. var/queued_p_type = p_type @@ -561,6 +556,8 @@ GLOBAL_LIST_INIT(RPD_recipes, list( . = FALSE switch(p_class) //if we've gotten this var, the target is valid if(PAINT_MODE) //Paint pipes + if(!istype(A, /obj/machinery/atmospherics/pipe)) + return ..() var/obj/machinery/atmospherics/pipe/P = A playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) P.paint(paint_colors[paint_color]) @@ -568,6 +565,8 @@ GLOBAL_LIST_INIT(RPD_recipes, list( return if(EATING_MODE) //Eating pipes + if(!(istype(A, /obj/item/pipe) || istype(A, /obj/item/pipe_meter) || istype(A, /obj/structure/disposalconstruct))) + return ..() to_chat(user, "You start destroying a pipe...") playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) if(do_after(user, 2, target = A)) @@ -575,14 +574,22 @@ GLOBAL_LIST_INIT(RPD_recipes, list( qdel(A) if(ATMOS_MODE) //Making pipes + if(!can_make_pipe) + return ..() to_chat(user, "You start building a pipe...") playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) if(do_after(user, 2, target = A)) activate() - var/obj/item/pipe/P = new(A, queued_p_type, queued_p_dir) + + var/obj/machinery/atmospherics/path = queued_p_type + var/pipe_item_type = initial(path.construction_type) || /obj/item/pipe + + var/obj/item/pipe/P = new pipe_item_type(A, queued_p_type, queued_p_dir) + if(queued_p_flipped) var/obj/item/pipe/trinary/flippable/F = P F.flipped = queued_p_flipped + P.update() P.add_fingerprint(usr) if(!isnull(temp_piping_layer)) @@ -591,17 +598,21 @@ GLOBAL_LIST_INIT(RPD_recipes, list( P.setPipingLayer(piping_layer) if(METER_MODE) //Making pipe meters + if(!can_make_pipe) + return ..() to_chat(user, "You start building a meter...") playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) if(do_after(user, 2, target = A)) activate() - var/obj/item/pipe_meter/PM = new /obj/item/pipe_meter(A) + var/obj/item/pipe_meter/PM = new /obj/item/pipe_meter(get_turf(A)) if(!isnull(temp_piping_layer)) PM.setAttachLayer(temp_piping_layer) else PM.setAttachLayer(piping_layer) if(DISPOSALS_MODE) //Making disposals pipes + if(!can_make_pipe) + return ..() if(isclosedturf(A)) to_chat(user, "\the [src]'s error light flickers; there's something in the way!") return diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 915279d7fb..ade619ec6b 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -301,6 +301,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM item_state = "spliffoff" smoketime = 180 chem_volume = 50 + list_reagents = null /obj/item/clothing/mask/cigarette/rollie/New() ..() diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 68e1826719..7b2d730daf 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -144,10 +144,11 @@ ui.open() /obj/item/toy/crayon/spraycan/AltClick(mob/user) - if(has_cap) - is_capped = !is_capped - to_chat(user, "The cap on [src] is now [is_capped ? "on" : "off"].") - update_icon() + if(user.canUseTopic(src, be_close=TRUE)) + if(has_cap) + is_capped = !is_capped + to_chat(user, "The cap on [src] is now [is_capped ? "on" : "off"].") + update_icon() /obj/item/toy/crayon/ui_data() var/list/data = list() diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 5f4d02fd8e..fd56c6283f 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -210,6 +210,7 @@ item_state = "lamp" lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' righthand_file = 'icons/mob/inhands/items_righthand.dmi' + force = 10 brightness_on = 5 w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index 8418e61146..06e8898e15 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -2,6 +2,7 @@ /obj/item/device/instrument name = "generic instrument" resistance_flags = FLAMMABLE + force = 10 max_integrity = 100 icon = 'icons/obj/musician.dmi' lefthand_file = 'icons/mob/inhands/equipment/instruments_lefthand.dmi' @@ -49,7 +50,6 @@ desc = "A wooden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\"" icon_state = "violin" item_state = "violin" - force = 10 hitsound = "swing_hit" instrumentId = "violin" @@ -80,7 +80,6 @@ icon_state = "guitar" item_state = "guitar" instrumentExt = "ogg" - force = 10 attack_verb = list("played metal on", "serenaded", "crashed", "smashed") hitsound = 'sound/weapons/stringsmash.ogg' instrumentId = "guitar" @@ -110,6 +109,30 @@ item_state = "accordion" instrumentId = "accordion" +/obj/item/device/instrument/trumpet + name = "trumpet" + desc = "To announce the arrival of the king!" + icon_state = "trumpet" + item_state = "trombone" + instrumentId = "trombone" + +/obj/item/device/instrument/trumpet/spectral + name = "spectral trumpet" + desc = "Things are about to get spooky!" + icon_state = "trumpet" + item_state = "trombone" + force = 0 + instrumentId = "trombone" + attack_verb = list("played","jazzed","trumpeted","mourned","dooted","spooked") + +/obj/item/device/instrument/trumpet/spectral/Initialize() + . = ..() + AddComponent(/datum/component/spooky) + +/obj/item/device/instrument/trumpet/spectral/attack(mob/living/carbon/C, mob/user) + playsound (loc, 'sound/instruments/trombone/En4.mid', 100,1,-1) + ..() + /obj/item/device/instrument/saxophone name = "saxophone" desc = "This soothing sound will be sure to leave your audience in tears." @@ -117,6 +140,23 @@ item_state = "saxophone" instrumentId = "saxophone" +/obj/item/device/instrument/saxophone/spectral + name = "spectral saxophone" + desc = "This spooky sound will be sure to leave mortals in bones." + icon_state = "saxophone" + item_state = "saxophone" + instrumentId = "saxophone" + force = 0 + attack_verb = list("played","jazzed","saxxed","mourned","dooted","spooked") + +/obj/item/device/instrument/saxophone/spectral/Initialize() + . = ..() + AddComponent(/datum/component/spooky) + +/obj/item/device/instrument/saxophone/spectral/attack(mob/living/carbon/C, mob/user) + playsound (loc, 'sound/instruments/saxophone/En4.mid', 100,1,-1) + ..() + /obj/item/device/instrument/trombone name = "trombone" desc = "How can any pool table ever hope to compete?" @@ -124,9 +164,27 @@ item_state = "trombone" instrumentId = "trombone" +/obj/item/device/instrument/trombone/spectral + name = "spectral trombone" + desc = "A skeleton's favorite instrument. Apply directly on the mortals." + instrumentId = "trombone" + icon_state = "trombone" + item_state = "trombone" + force = 0 + attack_verb = list("played","jazzed","tromboned","mourned","dooted","spooked") + +/obj/item/device/instrument/trombone/spectral/Initialize() + . = ..() + AddComponent(/datum/component/spooky) + +/obj/item/device/instrument/trombone/spectral/attack(mob/living/carbon/C, mob/user) + playsound (loc, 'sound/instruments/trombone/Cn4.mid', 100,1,-1) + ..() + /obj/item/device/instrument/recorder name = "recorder" desc = "Just like in school, playing ability and all." + force = 5 icon_state = "recorder" item_state = "recorder" instrumentId = "recorder" @@ -163,4 +221,3 @@ throw_speed = 3 throw_range = 15 hitsound = 'sound/items/bikehorn.ogg' - diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index f9224682a0..3821f6206b 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -52,6 +52,7 @@ flags_1 = CONDUCT_1 slot_flags = SLOT_BELT origin_tech = "magnets=3;engineering=4" + force = 8 var/max_uses = 20 var/uses = 0 diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index ef914666c8..ada7b613e4 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -51,7 +51,7 @@ origin_tech = "syndicate=3" icon_state = "syndie_headset" item_state = "syndie_headset" - flags_2 = BANG_PROTECT_2 + flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 /obj/item/device/radio/headset/syndicate/alt/leader name = "team leader headset" @@ -80,7 +80,7 @@ desc = "This is used by your elite security force. Protects ears from flashbangs.\nTo access the security channel, use :s." icon_state = "sec_headset_alt" item_state = "sec_headset_alt" - flags_2 = BANG_PROTECT_2 + flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 /obj/item/device/radio/headset/headset_eng name = "engineering radio headset" @@ -132,7 +132,7 @@ desc = "The headset of the boss. Protects ears from flashbangs.\nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "com_headset_alt" item_state = "com_headset_alt" - flags_2 = BANG_PROTECT_2 + flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 /obj/item/device/radio/headset/heads/rd name = "\proper the research director's headset" @@ -151,7 +151,7 @@ desc = "The headset of the man in charge of keeping order and protecting the station. Protects ears from flashbangs.\nTo access the security channel, use :s. For command, use :c." icon_state = "com_headset_alt" item_state = "com_headset_alt" - flags_2 = BANG_PROTECT_2 + flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 /obj/item/device/radio/headset/heads/ce name = "\proper the chief engineer's headset" @@ -205,7 +205,7 @@ icon_state = "cent_headset_alt" item_state = "cent_headset_alt" keyslot = null - flags_2 = BANG_PROTECT_2 + flags_2 = BANG_PROTECT_2 | NO_EMP_WIRES_2 /obj/item/device/radio/headset/ai name = "\proper Integrated Subspace Transceiver " diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 18ba79ae94..7675c09776 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -29,6 +29,7 @@ var/emped = 0 //Highjacked to track the number of consecutive EMPs on the radio, allowing consecutive EMP's to stack properly. // "Example" = FREQ_LISTENING|FREQ_BROADCASTING flags_1 = CONDUCT_1 | HEAR_1 + flags_2 = NO_EMP_WIRES_2 slot_flags = SLOT_BELT throw_speed = 3 throw_range = 7 diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index caf42fc68b..9865f0bfb3 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -106,8 +106,8 @@ MASS SPECTROMETER // Used by the PDA medical scanner too -/proc/healthscan(mob/living/user, mob/living/M, mode = 1, advanced = FALSE) - if(user.incapacitated() || user.eye_blind) +/proc/healthscan(mob/user, mob/living/M, mode = 1, advanced = FALSE) + if(isliving(user) && (user.incapacitated() || user.eye_blind)) return //Damage specifics var/oxy_loss = M.getOxyLoss() @@ -280,18 +280,17 @@ MASS SPECTROMETER to_chat(user, "[cyberimp_detect]") /proc/chemscan(mob/living/user, mob/living/M) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.reagents) - if(H.reagents.reagent_list.len) + if(istype(M)) + if(M.reagents) + if(M.reagents.reagent_list.len) to_chat(user, "Subject contains the following reagents:") - for(var/datum/reagent/R in H.reagents.reagent_list) + for(var/datum/reagent/R in M.reagents.reagent_list) to_chat(user, "[R.volume] units of [R.name][R.overdosed == 1 ? " - OVERDOSING" : "."]") else to_chat(user, "Subject contains no reagents.") - if(H.reagents.addiction_list.len) + if(M.reagents.addiction_list.len) to_chat(user, "Subject is addicted to the following reagents:") - for(var/datum/reagent/R in H.reagents.addiction_list) + for(var/datum/reagent/R in M.reagents.addiction_list) to_chat(user, "[R.name]") else to_chat(user, "Subject is not addicted to any reagents.") diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index 4502d2bb48..b2676c3c4e 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -140,6 +140,7 @@ user.put_in_hands(ptank) ptank = null to_chat(user, "You remove the plasma tank from [src]!") + update_icon() /obj/item/flamethrower/examine(mob/user) ..() diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index bf2f6dd4bb..e444ecce25 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -1,50 +1,50 @@ -/obj/item/grenade - name = "grenade" - desc = "It has an adjustable timer." - w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/grenade.dmi' - icon_state = "grenade" - item_state = "flashbang" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - throw_speed = 3 - throw_range = 7 - flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT - resistance_flags = FLAMMABLE - max_integrity = 40 - var/active = 0 - var/det_time = 50 - var/display_timer = 1 - -/obj/item/grenade/deconstruct(disassembled = TRUE) - if(!disassembled) - prime() - if(!QDELETED(src)) - qdel(src) - -/obj/item/grenade/proc/clown_check(mob/living/carbon/human/user) - if(user.disabilities & CLUMSY && prob(50)) - to_chat(user, "Huh? How does this thing work?") +/obj/item/grenade + name = "grenade" + desc = "It has an adjustable timer." + w_class = WEIGHT_CLASS_SMALL + icon = 'icons/obj/grenade.dmi' + icon_state = "grenade" + item_state = "flashbang" + lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' + throw_speed = 3 + throw_range = 7 + flags_1 = CONDUCT_1 + slot_flags = SLOT_BELT + resistance_flags = FLAMMABLE + max_integrity = 40 + var/active = 0 + var/det_time = 50 + var/display_timer = 1 + +/obj/item/grenade/deconstruct(disassembled = TRUE) + if(!disassembled) + prime() + if(!QDELETED(src)) + qdel(src) + +/obj/item/grenade/proc/clown_check(mob/living/carbon/human/user) + if(user.disabilities & CLUMSY && prob(50)) + to_chat(user, "Huh? How does this thing work?") preprime(user, 5, FALSE) return FALSE return TRUE - - -/obj/item/grenade/examine(mob/user) - ..() - if(display_timer) - if(det_time > 1) - to_chat(user, "The timer is set to [det_time/10] second\s.") - else - to_chat(user, "\The [src] is set for instant detonation.") - - -/obj/item/grenade/attack_self(mob/user) - if(!active) - if(clown_check(user)) - preprime(user) - + + +/obj/item/grenade/examine(mob/user) + ..() + if(display_timer) + if(det_time > 1) + to_chat(user, "The timer is set to [det_time/10] second\s.") + else + to_chat(user, "\The [src] is set for instant detonation.") + + +/obj/item/grenade/attack_self(mob/user) + if(!active) + if(clown_check(user)) + preprime(user) + /obj/item/grenade/proc/log_grenade(mob/user, turf/T) var/area/A = get_area(T) var/message = "[ADMIN_LOOKUPFLW(user)]) has primed \a [src] for detonation at [ADMIN_COORDJMP(T)]" @@ -52,57 +52,58 @@ message_admins(message) log_game("[key_name(user)] has primed \a [src] for detonation at [A.name] [COORD(T)].") -/obj/item/grenade/proc/preprime(mob/user, delayoverride, msg = TRUE) +/obj/item/grenade/proc/preprime(mob/user, delayoverride, msg = TRUE, volume = 60) var/turf/T = get_turf(src) - log_grenade(user, T) - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.throw_mode_on() - if(msg) - to_chat(user, "You prime \the [src]! [det_time/10] seconds!") - playsound(loc, 'sound/weapons/armbomb.ogg', 60, 1) - active = TRUE - icon_state = initial(icon_state) + "_active" - add_fingerprint(user) + log_grenade(user, T) //Inbuilt admin procs already handle null users + if(user) + add_fingerprint(user) + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + if(msg) + to_chat(user, "You prime \the [src]! [det_time/10] seconds!") + playsound(src, 'sound/weapons/armbomb.ogg', volume, 1) + active = TRUE + icon_state = initial(icon_state) + "_active" addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride) - -/obj/item/grenade/proc/prime() - -/obj/item/grenade/proc/update_mob() - if(ismob(loc)) - var/mob/M = loc - M.dropItemToGround(src) - - -/obj/item/grenade/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/screwdriver)) - switch(det_time) - if ("1") - det_time = 10 - to_chat(user, "You set the [name] for 1 second detonation time.") - if ("10") - det_time = 30 - to_chat(user, "You set the [name] for 3 second detonation time.") - if ("30") - det_time = 50 - to_chat(user, "You set the [name] for 5 second detonation time.") - if ("50") - det_time = 1 - to_chat(user, "You set the [name] for instant detonation.") - add_fingerprint(user) - else - return ..() - -/obj/item/grenade/attack_hand() - walk(src, null, null) - ..() - -/obj/item/grenade/attack_paw(mob/user) - return attack_hand(user) - -/obj/item/grenade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - var/obj/item/projectile/P = hitby - if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15)) - owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!") - prime() + +/obj/item/grenade/proc/prime() + +/obj/item/grenade/proc/update_mob() + if(ismob(loc)) + var/mob/M = loc + M.dropItemToGround(src) + + +/obj/item/grenade/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/screwdriver)) + switch(det_time) + if ("1") + det_time = 10 + to_chat(user, "You set the [name] for 1 second detonation time.") + if ("10") + det_time = 30 + to_chat(user, "You set the [name] for 3 second detonation time.") + if ("30") + det_time = 50 + to_chat(user, "You set the [name] for 5 second detonation time.") + if ("50") + det_time = 1 + to_chat(user, "You set the [name] for instant detonation.") + add_fingerprint(user) + else + return ..() + +/obj/item/grenade/attack_hand() + walk(src, null, null) + ..() + +/obj/item/grenade/attack_paw(mob/user) + return attack_hand(user) + +/obj/item/grenade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + var/obj/item/projectile/P = hitby + if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15)) + owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!") + prime() return TRUE //It hit the grenade, not them diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 93ea89445b..8ebb7b6061 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -91,6 +91,7 @@ icon_state = "cuff" item_state = "coil" item_color = "red" + color = "#ff0000" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' materials = list(MAT_METAL=150, MAT_GLASS=75) @@ -109,6 +110,7 @@ update_icon() /obj/item/restraints/handcuffs/cable/update_icon() + color = null add_atom_colour(item_color, FIXED_COLOUR_PRIORITY) /obj/item/restraints/handcuffs/cable/attack(mob/living/carbon/C, mob/living/carbon/human/user) @@ -130,24 +132,31 @@ /obj/item/restraints/handcuffs/cable/red item_color = "red" + color = "#ff0000" /obj/item/restraints/handcuffs/cable/yellow item_color = "yellow" + color = "#ffff00" /obj/item/restraints/handcuffs/cable/blue item_color = "blue" + color = "#1919c8" /obj/item/restraints/handcuffs/cable/green item_color = "green" + color = "#00aa00" /obj/item/restraints/handcuffs/cable/pink item_color = "pink" + color = "#ff3ccd" /obj/item/restraints/handcuffs/cable/orange item_color = "orange" + color = "#ff8000" /obj/item/restraints/handcuffs/cable/cyan item_color = "cyan" + color = "#00ffff" /obj/item/restraints/handcuffs/cable/white item_color = "white" diff --git a/code/game/objects/items/inducer.dm b/code/game/objects/items/inducer.dm index d6f789a1b7..5c494294c8 100644 --- a/code/game/objects/items/inducer.dm +++ b/code/game/objects/items/inducer.dm @@ -96,6 +96,8 @@ return ..() /obj/item/inducer/proc/recharge(atom/movable/A, mob/user) + if(!isturf(A) && user.loc == A) + return FALSE if(recharging) return TRUE else diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index ec5f349ca9..f2fd53403a 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -7,14 +7,66 @@ w_class = WEIGHT_CLASS_SMALL resistance_flags = FLAMMABLE var/list/squeak_override //Weighted list; If you want your plush to have different squeak sounds use this + var/stuffed = TRUE //If the plushie has stuffing in it + var/obj/item/grenade/grenade //You can remove the stuffing from a plushie and add a grenade to it for *nefarious uses* /obj/item/toy/plush/Initialize() . = ..() AddComponent(/datum/component/squeak, squeak_override) +/obj/item/toy/plush/Destroy() + QDEL_NULL(grenade) + return ..() + +/obj/item/toy/plush/handle_atom_del(atom/A) + if(A == grenade) + grenade = null + ..() + /obj/item/toy/plush/attack_self(mob/user) . = ..() - to_chat(user, "You pet [src]. D'awww.") + if(stuffed || grenade) + to_chat(user, "You pet [src]. D'awww.") + if(grenade && !grenade.active) + if(istype(grenade, /obj/item/grenade/chem_grenade)) + var/obj/item/grenade/chem_grenade/G = grenade + if(G.nadeassembly) //We're activated through different methods + return + log_game("[key_name(user)] activated a hidden grenade in [src].") + grenade.preprime(user, msg = FALSE, volume = 10) + else + to_chat(user, "You try to pet [src], but it has no stuffing. Aww...") + +/obj/item/toy/plush/attackby(obj/item/I, mob/living/user, params) + if(I.is_sharp()) + if(!grenade) + if(!stuffed) + to_chat(user, "You already murdered it!") + return + user.visible_message("[user] tears out the stuffing from [src]!", "You rip a bunch of the stuffing from [src]. Murderer.") + playsound(I, I.usesound, 50, TRUE) + stuffed = FALSE + else + to_chat(user, "You remove the grenade from [src].") + user.put_in_hands(grenade) + grenade = null + return + if(istype(I, /obj/item/grenade)) + if(stuffed) + to_chat(user, "You need to remove some stuffing first!") + return + if(grenade) + to_chat(user, "[src] already has a grenade!") + return + if(!user.transferItemToLoc(I, src)) + return + user.visible_message("[user] slides [grenade] into [src].", \ + "You slide [I] into [src].") + grenade = I + var/turf/T = get_turf(user) + log_game("[key_name(user)] added a grenade ([I.name]) to [src] at [COORD(T)].") + return + return ..() /obj/item/toy/plush/carpplushie name = "space carp plushie" @@ -35,11 +87,98 @@ name = "ratvar plushie" desc = "An adorable plushie of the clockwork justiciar himself with new and improved spring arm action." icon_state = "plushvar" + var/obj/item/toy/plush/narplush/clash_target + +/obj/item/toy/plush/plushvar/Moved() + . = ..() + if(clash_target) + return + var/obj/item/toy/plush/narplush/P = locate() in range(1, src) + if(P && istype(P.loc, /turf/open) && !P.clashing) + clash_of_the_plushies(P) + +/obj/item/toy/plush/plushvar/proc/clash_of_the_plushies(obj/item/toy/plush/narplush/P) + clash_target = P + P.clashing = TRUE + say("YOU.") + P.say("Ratvar?!") + var/obj/item/toy/plush/a_winnar_is + var/victory_chance = 10 + for(var/i in 1 to 10) //We only fight ten times max + if(QDELETED(src)) + P.clashing = FALSE + return + if(QDELETED(P)) + clash_target = null + return + if(!Adjacent(P)) + visible_message("The two plushies angrily flail at each other before giving up.") + clash_target = null + P.clashing = FALSE + return + playsound(src, 'sound/magic/clockwork/ratvar_attack.ogg', 50, TRUE, frequency = 2) + sleep(2.4) + if(QDELETED(src)) + P.clashing = FALSE + return + if(QDELETED(P)) + clash_target = null + return + if(prob(victory_chance)) + a_winnar_is = src + break + P.SpinAnimation(5, 0) + sleep(5) + if(QDELETED(src)) + P.clashing = FALSE + return + if(QDELETED(P)) + clash_target = null + return + playsound(P, 'sound/magic/clockwork/narsie_attack.ogg', 50, TRUE, frequency = 2) + sleep(3.3) + if(QDELETED(src)) + P.clashing = FALSE + return + if(QDELETED(P)) + clash_target = null + return + if(prob(victory_chance)) + a_winnar_is = P + break + SpinAnimation(5, 0) + victory_chance += 10 + sleep(5) + if(!a_winnar_is) + a_winnar_is = pick(src, P) + if(a_winnar_is == src) + say(pick("DIE.", "ROT.")) + P.say(pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")) + playsound(src, 'sound/magic/clockwork/anima_fragment_attack.ogg', 50, TRUE, frequency = 2) + playsound(P, 'sound/magic/demon_dies.ogg', 50, TRUE, frequency = 2) + explosion(P, 0, 0, 1) + qdel(P) + clash_target = null + else + say("NO! I will not be banished again...") + P.say(pick("Ha.", "Ra'sha fonn dest.", "You fool. To come here.")) + playsound(src, 'sound/magic/clockwork/anima_fragment_death.ogg', 50, TRUE, frequency = 2) + playsound(P, 'sound/magic/demon_attack1.ogg', 50, TRUE, frequency = 2) + explosion(src, 0, 0, 1) + qdel(src) + P.clashing = FALSE /obj/item/toy/plush/narplush name = "nar'sie plushie" desc = "A small stuffed doll of the elder god nar'sie. Who thought this was a good children's toy?" icon_state = "narplush" + var/clashing + +/obj/item/toy/plush/narplush/Moved() + . = ..() + var/obj/item/toy/plush/plushvar/P = locate() in range(1, src) + if(P && istype(P.loc, /turf/open) && !P.clash_target && !clashing) + P.clash_of_the_plushies(src) /obj/item/toy/plush/lizardplushie name = "lizard plushie" diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 9a5928665c..b3960d1e5f 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -26,8 +26,31 @@ var/fire_mode = PCANNON_FIREALL var/automatic = FALSE var/clumsyCheck = TRUE + var/list/allowed_typecache //Leave as null to allow all. + var/charge_amount = 1 + var/charge_ticks = 1 + var/charge_tick = 0 + var/charge_type + var/selfcharge = FALSE trigger_guard = TRIGGER_GUARD_NORMAL + +/obj/item/pneumatic_cannon/Initialize() + . = ..() + if(selfcharge) + init_charge() + +/obj/item/pneumatic_cannon/proc/init_charge() //wrapper so it can be vv'd easier + START_PROCESSING(SSobj, src) + +/obj/item/pneumatic_cannon/process() + if(++charge_tick >= charge_ticks && charge_type) + fill_with_type(charge_type, charge_amount) + +/obj/item/pneumatic_cannon/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + /obj/item/pneumatic_cannon/CanItemAutoclick() return automatic @@ -75,6 +98,10 @@ load_item(IW, user) /obj/item/pneumatic_cannon/proc/can_load_item(obj/item/I, mob/user) + if(allowed_typecache && !is_type_in_typecache(I, allowed_typecache)) + if(user) + to_chat(user, "[I] won't fit into [src]!") + return if((loadedWeightClass + I.w_class) > maxWeightClass) //Only make messages if there's a user if(user) to_chat(user, "\The [I] won't fit into \the [src]!") @@ -233,28 +260,14 @@ throw_amount = 1 maxWeightClass = 150 //50 pies. :^) clumsyCheck = FALSE + var/static/list/pie_typecache = typecacheof(/obj/item/reagent_containers/food/snacks/pie) -/obj/item/pneumatic_cannon/pie/can_load_item(obj/item/I, mob/user) - if(istype(I, /obj/item/reagent_containers/food/snacks/pie)) - return ..() - to_chat(user, "[src] only accepts pies!") - return FALSE - +/obj/item/pneumatic_cannon/pie/Initialize() + . = ..() + allowed_typecache = pie_typecache + /obj/item/pneumatic_cannon/pie/selfcharge automatic = TRUE - var/charge_amount = 1 - var/charge_ticks = 1 - var/charge_tick = 0 + selfcharge = TRUE + charge_type = /obj/item/reagent_containers/food/snacks/pie/cream maxWeightClass = 60 //20 pies. - -/obj/item/pneumatic_cannon/pie/selfcharge/Initialize() - . = ..() - START_PROCESSING(SSobj, src) - -/obj/item/pneumatic_cannon/pie/selfcharge/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/pneumatic_cannon/pie/selfcharge/process() - if(++charge_tick >= charge_ticks) - fill_with_type(/obj/item/reagent_containers/food/snacks/pie/cream, charge_amount) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 2ccb57564f..e4485266b5 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -546,9 +546,11 @@ to_chat(user, "[src] is still recycling its projectors!") return cycle_delay = world.time + PKBORG_DAMPEN_CYCLE_DELAY - active = !active - if(active) - activate_field(user) + if(!active) + if(!user.has_buckled_mobs()) + activate_field() + else + to_chat(user, "[src]'s safety cutoff prevents you from activating it due to living beings being ontop of you!") else deactivate_field() update_icon() @@ -561,12 +563,29 @@ if(istype(dampening_field)) QDEL_NULL(dampening_field) dampening_field = make_field(/datum/proximity_monitor/advanced/peaceborg_dampener, list("current_range" = field_radius, "host" = src, "projector" = src)) + var/mob/living/silicon/robot/owner = get_host() + if(owner) + owner.module.allow_riding = FALSE + active = TRUE /obj/item/borg/projectile_dampen/proc/deactivate_field() QDEL_NULL(dampening_field) visible_message("\The [src] shuts off!") for(var/P in tracked) restore_projectile(P) + active = FALSE + + var/mob/living/silicon/robot/owner = get_host() + if(owner) + owner.module.allow_riding = TRUE + +/obj/item/borg/projectile_dampen/proc/get_host() + if(istype(host)) + return host + else + if(iscyborg(host.loc)) + return host.loc + return null /obj/item/borg/projectile_dampen/dropped() . = ..() diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index d899d48354..59eef9a170 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -320,7 +320,7 @@ /obj/item/borg/upgrade/hypospray/action(mob/living/silicon/robot/R) if(..()) return - for(var/obj/item/reagent_containers/borghypo/H in R.module) + for(var/obj/item/reagent_containers/borghypo/H in R.module.modules) if(H.accepts_reagent_upgrades) for(var/re in additional_reagents) H.add_reagent(re) @@ -355,7 +355,7 @@ return var/found_hypo = FALSE - for(var/obj/item/reagent_containers/borghypo/H in R.module) + for(var/obj/item/reagent_containers/borghypo/H in R.module.modules) H.bypass_protection = TRUE found_hypo = TRUE diff --git a/code/game/objects/items/sharpener.dm b/code/game/objects/items/sharpener.dm index ce2d73eff0..fb25cb1d76 100644 --- a/code/game/objects/items/sharpener.dm +++ b/code/game/objects/items/sharpener.dm @@ -3,6 +3,7 @@ icon = 'icons/obj/kitchen.dmi' icon_state = "sharpener" desc = "A block that makes things sharp." + force = 5 var/used = 0 var/increment = 4 var/max = 30 diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 2bb5d110fc..8c36a5965f 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -274,6 +274,9 @@ GLOBAL_LIST_INIT(titanium_recipes, list ( \ recipes = GLOB.titanium_recipes . = ..() +/obj/item/stack/sheet/mineral/titanium/fifty + amount = 50 + /* * Plastitanium diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 02a212ee43..ceefd79338 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -93,7 +93,7 @@ /obj/item/stack/tile/basalt name = "basalt tile" singular_name = "basalt floor tile" - desc = "Artificially made ashy soil themed on a hostile enviroment." + desc = "Artificially made ashy soil themed on a hostile environment." icon_state = "tile_basalt" origin_tech = "materials=1" turf_type = /turf/open/floor/grass/fakebasalt diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index 50898e72e1..195d5b25f5 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -128,11 +128,12 @@ if(!locked) to_chat(user, "Alt-click to [open ? "close":"open"] it.") -/obj/item/storage/lockbox/medal/AltClick() - if(!locked) - open = (open ? FALSE : TRUE) - update_icon() - ..() +/obj/item/storage/lockbox/medal/AltClick(mob/user) + if(user.canUseTopic(src, be_close=TRUE)) + if(!locked) + open = (open ? FALSE : TRUE) + update_icon() + ..() /obj/item/storage/lockbox/medal/PopulateContents() new /obj/item/clothing/accessory/medal/gold/captain(src) diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index fd12bcccd5..9266074e1a 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -150,12 +150,21 @@ Frequency: . = ..() active_portal_pairs = list() -/obj/item/hand_tele/afterattack(atom/target, mob/user, proximity, params) - if(is_parent_of_portal(target)) - qdel(target) - to_chat(user, "You dispel [target] remotely with \the [src]!") +/obj/item/hand_tele/pre_attackby(atom/target, mob/user, params) + if(try_dispel_portal(target, user)) + return FALSE return ..() +/obj/item/hand_tele/proc/try_dispel_portal(atom/target, mob/user) + if(is_parent_of_portal(target)) + qdel(target) + to_chat(user, "You dispel [target] with \the [src]!") + return TRUE + return FALSE + +/obj/item/hand_tele/afterattack(atom/target, mob/user) + try_dispel_portal(target, user) + . = ..() /obj/item/hand_tele/attack_self(mob/user) var/turf/current_location = get_turf(user)//What turf is the user on? diff --git a/code/game/objects/items/tools.dm b/code/game/objects/items/tools.dm index d18799c681..bd618f217e 100644 --- a/code/game/objects/items/tools.dm +++ b/code/game/objects/items/tools.dm @@ -457,6 +457,15 @@ flamethrower_screwdriver(I, user) else if(istype(I, /obj/item/stack/rods)) flamethrower_rods(I, user) + else if(istype(I, /obj/item/reagent_containers) && I.is_open_container()) + var/amountNeeded = max_fuel - get_fuel() + var/obj/item/reagent_containers/container = I + if(length(container.reagents.reagent_list) > 1) + to_chat(user, "[container] has too many chemicals mixed into it. You wouldn't want to put the wrong chemicals into [src].") + return ..() + if(amountNeeded > 0 && container.reagents.has_reagent("welding_fuel")) + container.reagents.trans_id_to(src, "welding_fuel", amountNeeded) + to_chat(user, "You transfer some fuel from [container] to [src].") else return ..() diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 3047dd9a2c..bc48d65f93 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -457,15 +457,15 @@ explosive.prime() qdel(src) -/obj/item/twohanded/spear/AltClick() - ..() - if(!explosive) - return - if(ismob(loc)) - var/mob/M = loc - var/input = stripped_input(M,"What do you want your war cry to be? You will shout it when you hit someone in melee.", ,"", 50) - if(input) - src.war_cry = input +/obj/item/twohanded/spear/AltClick(mob/user) + if(user.canUseTopic(src, be_close=TRUE)) + ..() + if(!explosive) + return + if(istype(user) && loc == user) + var/input = stripped_input(user,"What do you want your war cry to be? You will shout it when you hit someone in melee.", ,"", 50) + if(input) + src.war_cry = input /obj/item/twohanded/spear/CheckParts(list/parts_list) var/obj/item/twohanded/spear/S = locate() in parts_list diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index a8c80e5e83..7b7c9c8ee5 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -5,6 +5,7 @@ icon_state = "toyhammer" slot_flags = SLOT_BELT throwforce = 0 + force = 1 w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 @@ -20,10 +21,11 @@ /obj/item/banhammer/attack(mob/M, mob/user) if(user.zone_selected == "head") M.visible_message("[user] are stroking the head of [M] with a bangammer", "[user] are stroking the head with a bangammer", "you hear a bangammer stroking a head"); - else M.visible_message("[M] has been banned FOR NO REISIN by [user]", "You have been banned FOR NO REISIN by [user]", "you hear a banhammer banning someone") playsound(loc, 'sound/effects/adminhelp.ogg', 15) //keep it at 15% volume so people don't jump out of their skin too much + if(user.a_intent != INTENT_HELP) + return ..(M, user) /obj/item/sord name = "\improper SORD" @@ -591,7 +593,7 @@ desc = "This is how real men fight." icon_state = "latexballon" item_state = "nothing" - force = 1 + force = 0 throwforce = 0 flags_1 = DROPDEL_1 | ABSTRACT_1 attack_verb = list("slapped") diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index 2d4dbf7aa0..14d29e96a7 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -101,7 +101,7 @@ desc = "A collapsed roller bed that can be carried around." icon = 'icons/obj/rollerbed.dmi' icon_state = "folded" - w_class = WEIGHT_CLASS_BULKY // Can't be put in backpacks. + w_class = WEIGHT_CLASS_NORMAL // No more excuses, stop getting blood everywhere /obj/item/roller/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/roller/robo)) diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 1bf7daf2e2..1676ac9df8 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -15,18 +15,20 @@ delivery_icon = "deliverybox" anchorable = FALSE var/move_speed_multiplier = 1 - var/move_delay = 0 + var/move_delay = FALSE var/egged = 0 /obj/structure/closet/cardboard/relaymove(mob/user, direction) if(opened || move_delay || user.stat || user.IsStun() || user.IsKnockdown() || user.IsUnconscious() || !isturf(loc) || !has_gravity(loc)) return - move_delay = 1 + move_delay = TRUE if(step(src, direction)) - spawn(CONFIG_GET(number/walk_delay) * move_speed_multiplier) - move_delay = 0 + addtimer(CALLBACK(src, .proc/ResetMoveDelay), CONFIG_GET(number/walk_delay) * move_speed_multiplier) else - move_delay = 0 + ResetMoveDelay() + +/obj/structure/closet/cardboard/proc/ResetMoveDelay() + move_delay = FALSE /obj/structure/closet/cardboard/open() if(opened || !can_open()) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 30fd178f12..04e624a46b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -28,7 +28,7 @@ new /obj/item/clothing/gloves/color/captain(src) new /obj/item/restraints/handcuffs/cable/zipties(src) new /obj/item/storage/belt/sabre(src) - new /obj/item/gun/energy/e_gun(src) + new /obj/item/gun/energy/e_gun/cx(src) new /obj/item/door_remote/captain(src) /obj/structure/closet/secure_closet/hop @@ -51,7 +51,7 @@ new /obj/item/device/assembly/flash/handheld(src) new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/restraints/handcuffs/cable/zipties(src) - new /obj/item/gun/energy/e_gun(src) + new /obj/item/gun/energy/e_gun/cx(src) new /obj/item/clothing/neck/petcollar(src) new /obj/item/door_remote/civillian(src) @@ -67,6 +67,8 @@ new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/clothing/under/hosparadefem(src) new /obj/item/clothing/under/hosparademale(src) + new /obj/item/clothing/under/rank/head_of_security/skirt(src) + new /obj/item/clothing/suit/armor/hos/trenchcoat/cloak(src) new /obj/item/clothing/suit/armor/vest/leather(src) new /obj/item/clothing/suit/armor/hos(src) new /obj/item/clothing/under/rank/head_of_security/alt(src) @@ -117,6 +119,7 @@ /obj/structure/closet/secure_closet/security/PopulateContents() ..() + new /obj/item/clothing/under/rank/security/skirt(src) new /obj/item/clothing/suit/armor/vest(src) new /obj/item/clothing/head/helmet/sec(src) new /obj/item/device/radio/headset/headset_sec(src) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 092f5c4e9a..ea7ba25118 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -122,10 +122,10 @@ golems, so that no golem may ever be forced to serve again." /obj/effect/mob_spawn/human/golem/Initialize(mapload, datum/species/golem/species = null, mob/creator = null) - . = ..() - if(species) + if(species) //spawners list uses object name to register so this goes before ..() name += " ([initial(species.prefix)])" mob_species = species + . = ..() var/area/A = get_area(src) if(!mapload && A) notify_ghosts("\A [initial(species.prefix)] golem shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE) @@ -316,10 +316,10 @@ /obj/effect/mob_spawn/human/hotel_staff/security name = "hotel security sleeper" - mob_name = "hotel security memeber" + mob_name = "hotel security member" outfit = /datum/outfit/hotelstaff/security - flavour_text = "You are a peacekeeper assigned to this hotel to protect the intrests of the company while keeping the peace between \ - guests and the staff.Do NOT leave the hotel, as that is grounds for contract termination." + flavour_text = "You are a peacekeeper assigned to this hotel to protect the interests of the company while keeping the peace between \ + guests and the staff. Do NOT leave the hotel, as that is grounds for contract termination." objectives = "Do not leave your assigned hotel. Try and keep the peace between staff and guests, non-lethal force heavily advised if possible." /datum/outfit/hotelstaff/security diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index 45f9c3614d..e47afd53d4 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -1,13 +1,16 @@ /obj/structure/reflector - name = "reflector frame" - icon = 'icons/obj/stock_parts.dmi' - icon_state = "box_0" - desc = "An angled mirror for reflecting lasers." + name = "reflector base" + icon = 'icons/obj/structures.dmi' + icon_state = "reflector_map" + desc = "A base for reflector assemblies." anchored = FALSE - density = TRUE + density = FALSE layer = BELOW_OBJ_LAYER + var/deflector_icon_state + var/image/deflector_overlay var/finished = FALSE var/admin = FALSE //Can't be rotated or deconstructed + var/can_rotate = TRUE var/framebuildstacktype = /obj/item/stack/sheet/metal var/framebuildstackamount = 5 var/buildstacktype = /obj/item/stack/sheet/metal @@ -17,19 +20,42 @@ /obj/structure/reflector/Initialize() . = ..() + icon_state = "reflector_base" allowed_projectile_typecache = typecacheof(allowed_projectile_typecache) + if(deflector_icon_state) + deflector_overlay = image(icon, deflector_icon_state) + add_overlay(deflector_overlay) + if(rotation_angle == -1) setAngle(dir2angle(dir)) else setAngle(rotation_angle) + if(admin) + can_rotate = FALSE + /obj/structure/reflector/examine(mob/user) ..() - to_chat(user, "Alt-click to adjust its direction.") + if(finished) + to_chat(user, "It is set to [rotation_angle] degrees, and the rotation is [can_rotate ? "unlocked" : "locked"].") + if(!admin) + if(can_rotate) + to_chat(user, "Alt-click to adjust its direction.") + else + to_chat(user, "Use screwdriver to unlock the rotation.") -/obj/structure/reflector/Moved() - setAngle(dir_map_to_angle(dir)) - return ..() +/obj/structure/reflector/proc/setAngle(new_angle) + if(can_rotate) + rotation_angle = new_angle + if(deflector_overlay) + cut_overlay(deflector_overlay) + deflector_overlay.transform = turn(matrix(), new_angle) + add_overlay(deflector_overlay) + + +/obj/structure/reflector/setDir(new_dir) + setAngle(dir_map_to_angle(new_dir)) + return ..(NORTH) /obj/structure/reflector/proc/dir_map_to_angle(dir) return 0 @@ -51,22 +77,45 @@ /obj/structure/reflector/attackby(obj/item/W, mob/user, params) if(admin) return + + if(istype(W, /obj/item/screwdriver)) + can_rotate = !can_rotate + to_chat(user, "You [can_rotate ? "unlock" : "lock"] [src]'s rotation.") + playsound(src, W.usesound, 50, 1) + return + if(istype(W, /obj/item/wrench)) if(anchored) - to_chat(user, "Unweld [src] first!") + to_chat(user, "Unweld [src] from the floor first!") + return + user.visible_message("[user] starts to dismantle [src].", "You start to dismantle [src]...") if(do_after(user, 80*W.toolspeed, target = src)) - playsound(src.loc, W.usesound, 50, 1) - to_chat(user, "You dismantle [src].") - new framebuildstacktype(loc, framebuildstackamount) + playsound(src, W.usesound, 50, 1) + to_chat(user, "You dismantle [src].") + new framebuildstacktype(drop_location(), framebuildstackamount) if(buildstackamount) - new buildstacktype(loc, buildstackamount) + new buildstacktype(drop_location(), buildstackamount) qdel(src) else if(istype(W, /obj/item/weldingtool)) var/obj/item/weldingtool/WT = W - if(!anchored) + + if(obj_integrity < max_integrity) + if(WT.remove_fuel(0,user)) + user.visible_message("[user] starts to repair [src].", + "You begin repairing [src]...", + "You hear welding.") + playsound(src, W.usesound, 40, 1) + if(do_after(user,40*WT.toolspeed, target = src)) + obj_integrity = max_integrity + user.visible_message("[user] has repaired [src].", \ + "You finish repairing [src].") + + else if(!anchored) if (WT.remove_fuel(0,user)) - playsound(src, 'sound/items/welder2.ogg', 50, 1) - user.visible_message("[user] starts to weld [src] to the floor.", "You start to weld [src] to the floor...", "You hear welding.") + playsound(src, W.usesound, 50, 1) + user.visible_message("[user] starts to weld [src] to the floor.", + "You start to weld [src] to the floor...", + "You hear welding.") if (do_after(user,20*W.toolspeed, target = src)) if(!WT.isOn()) return @@ -74,7 +123,7 @@ to_chat(user, "You weld [src] to the floor.") else if (WT.remove_fuel(0,user)) - playsound(src, 'sound/items/welder2.ogg', 50, 1) + playsound(src, W.usesound, 50, 1) user.visible_message("[user] starts to cut [src] free from the floor.", "You start to cut [src] free from the floor...", "You hear welding.") if (do_after(user,20*W.toolspeed, target = src)) if(!WT.isOn()) @@ -86,50 +135,44 @@ if(finished) return var/obj/item/stack/sheet/S = W - if(istype(W, /obj/item/stack/sheet/glass)) + if(istype(S, /obj/item/stack/sheet/glass)) if(S.use(5)) - new /obj/structure/reflector/single (loc) - qdel (src) + new /obj/structure/reflector/single(drop_location()) + qdel(src) else to_chat(user, "You need five sheets of glass to create a reflector!") return - if(istype(W, /obj/item/stack/sheet/rglass)) + if(istype(S, /obj/item/stack/sheet/rglass)) if(S.use(10)) - new /obj/structure/reflector/double (loc) + new /obj/structure/reflector/double(drop_location()) qdel(src) else to_chat(user, "You need ten sheets of reinforced glass to create a double reflector!") return - if(istype(W, /obj/item/stack/sheet/mineral/diamond)) + if(istype(S, /obj/item/stack/sheet/mineral/diamond)) if(S.use(1)) - new /obj/structure/reflector/box (loc) + new /obj/structure/reflector/box(drop_location()) qdel(src) else return ..() /obj/structure/reflector/proc/rotate(mob/user) - if (anchored) - to_chat(user, "It is fastened to the floor!") + if (!can_rotate || admin) + to_chat(user, "The rotation is locked!") return FALSE - var/new_angle = input(user, "Input a new angle for primary reflection face.", "Reflector Angle") as null|num + var/new_angle = input(user, "Input a new angle for primary reflection face.", "Reflector Angle", rotation_angle) as null|num if(!user.canUseTopic(src, be_close=TRUE)) to_chat(user, "You can't do that right now!") return - setAngle(NORM_ROT(new_angle)) + if(!isnull(new_angle)) + setAngle(NORM_ROT(new_angle)) return TRUE -/obj/structure/reflector/proc/setAngle(new_angle) - rotation_angle = new_angle - setDir(NORTH) - var/matrix/M = new - M.Turn(new_angle) - transform = M - /obj/structure/reflector/AltClick(mob/user) if(!user.canUseTopic(src, be_close=TRUE)) to_chat(user, "You can't do that right now!") return - else + else if(finished) rotate(user) @@ -139,9 +182,9 @@ /obj/structure/reflector/single name = "reflector" - icon = 'icons/obj/structures.dmi' - icon_state = "reflector" - desc = "A double sided angled mirror for reflecting lasers. This one does so at a 90 degree angle." + deflector_icon_state = "reflector" + desc = "An angled mirror for reflecting laser beams." + density = TRUE finished = TRUE buildstacktype = /obj/item/stack/sheet/glass buildstackamount = 5 @@ -170,9 +213,9 @@ /obj/structure/reflector/double name = "double sided reflector" - icon = 'icons/obj/structures.dmi' - icon_state = "reflector_double" - desc = "A double sided angled mirror for reflecting lasers. This one does so at a 90 degree angle." + deflector_icon_state = "reflector_double" + desc = "A double sided angled mirror for reflecting laser beams." + density = TRUE finished = TRUE buildstacktype = /obj/item/stack/sheet/rglass buildstackamount = 10 @@ -202,9 +245,9 @@ /obj/structure/reflector/box name = "reflector box" - icon = 'icons/obj/structures.dmi' - icon_state = "reflector_box" - desc = "A box with an internal set of mirrors that reflects all laser fire in a single direction." + deflector_icon_state = "reflector_box" + desc = "A box with an internal set of mirrors that reflects all laser beams in a single direction." + density = TRUE finished = TRUE buildstacktype = /obj/item/stack/sheet/mineral/diamond buildstackamount = 1 diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 0cb6451116..0e5675a5a0 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -498,7 +498,7 @@ flick("baton_active", src) var/stunforce = B.stunforce user.Knockdown(stunforce) - user.stuttering = stunforce + user.stuttering = stunforce/20 B.deductcharge(B.hitcost) user.visible_message("[user] shocks themself while attempting to wash the active [B.name]!", \ "You unwisely attempt to wash [B] while it's still on.") diff --git a/code/game/sound.dm b/code/game/sound.dm index 7ed7822888..b150c1c148 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -102,7 +102,7 @@ UNTIL(SSticker.login_music) //wait for SSticker init to set the login music if(prefs && (prefs.toggles & SOUND_LOBBY)) - SEND_SOUND(src, sound(SSticker.login_music, repeat = 0, wait = 0, volume = vol, channel = CHANNEL_LOBBYMUSIC) // MAD JAMS) + SEND_SOUND(src, sound(SSticker.login_music, repeat = 0, wait = 0, volume = vol, channel = CHANNEL_LOBBYMUSIC)) // MAD JAMS /proc/get_rand_frequency() return rand(32000, 55000) //Frequency stuff only works with 45kbps oggs. diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 9f52c3e035..322a337117 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -36,7 +36,7 @@ /turf/closed/indestructible/splashscreen name = "Space Station 13" - icon = 'config/title_screens/images/title1.dmi' + icon = 'icons/blank_title.png' icon_state = "" layer = FLY_LAYER diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index e819c19b99..abbf83a164 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -57,8 +57,6 @@ playsound(src, 'sound/weapons/genhit.ogg', 50, 1) return - return ..() - /turf/open/floor/plating/asteroid/singularity_act() if(turf_z_is_planet(src)) diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index 0578861074..ad85568267 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -222,13 +222,13 @@ icon = 'icons/turf/walls/survival_pod_walls.dmi' icon_state = "smooth" smooth = SMOOTH_MORE|SMOOTH_DIAGONAL - canSmoothWith = list(/turf/closed/wall/mineral/titanium/survival, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod, /obj/structure/shuttle/engine) + canSmoothWith = list(/turf/closed/wall/mineral/titanium/survival, /obj/machinery/door/airlock, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/shuttle, /obj/structure/shuttle/engine) /turf/closed/wall/mineral/titanium/survival/nodiagonal smooth = SMOOTH_MORE /turf/closed/wall/mineral/titanium/survival/pod - canSmoothWith = list(/turf/closed/wall/mineral/titanium/survival, /obj/machinery/door/airlock, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/shuttle, /obj/structure/shuttle/engine) + canSmoothWith = list(/turf/closed/wall/mineral/titanium/survival, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod) /////////////////////Plastitanium walls///////////////////// diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index c997d8dd55..4211c83d37 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -256,11 +256,10 @@ dismantle_wall() /turf/closed/wall/r_wall/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) - if(!the_rcd.canRturf) - return FALSE - return ..() + if(the_rcd.canRturf) + return ..() + /turf/closed/wall/r_wall/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) - if(!the_rcd.canRturf) - return FALSE - return ..() + if(the_rcd.canRturf) + return ..() \ No newline at end of file diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index d3edd42cec..6d8db55ad8 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -25,7 +25,18 @@ /turf/closed/wall/clockwork) smooth = SMOOTH_TRUE - var/list/damage_decals + var/list/dent_decals + + var/static/list/dent_decal_list = list( + WALL_DENT_HIT = list( + mutable_appearance('icons/effects/effects.dmi', "impact1", BULLET_HOLE_LAYER), + mutable_appearance('icons/effects/effects.dmi', "impact2", BULLET_HOLE_LAYER), + mutable_appearance('icons/effects/effects.dmi', "impact3", BULLET_HOLE_LAYER) + ), + WALL_DENT_SHOT = list( + mutable_appearance('icons/effects/effects.dmi', "bullet_hole", BULLET_HOLE_LAYER) + ) + ) /turf/closed/wall/examine(mob/user) ..() @@ -101,6 +112,8 @@ /turf/closed/wall/blob_act(obj/structure/blob/B) if(prob(50)) dismantle_wall() + else + add_dent(WALL_DENT_HIT) /turf/closed/wall/mech_melee_attack(obj/mecha/M) M.do_attack_animation(src) @@ -111,6 +124,8 @@ if(prob(hardness + M.force) && M.force > 20) dismantle_wall(1) playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) + else + add_dent(WALL_DENT_HIT) if(BURN) playsound(src, 'sound/items/welder.ogg', 100, 1) if(TOX) @@ -138,6 +153,7 @@ dismantle_wall(1) else playsound(src, 'sound/effects/bang.ogg', 50, 1) + add_dent(WALL_DENT_HIT) to_chat(user, text("You punch the wall.")) return TRUE @@ -167,18 +183,20 @@ if(try_clean(W, user, T) || try_wallmount(W, user, T) || try_decon(W, user, T) || try_destroy(W, user, T)) return + return ..() + /turf/closed/wall/proc/try_clean(obj/item/W, mob/user, turf/T) - if((user.a_intent != INTENT_HELP) || !LAZYLEN(damage_decals) || !istype(W, /obj/item/weldingtool)) + if((user.a_intent != INTENT_HELP) || !LAZYLEN(dent_decals) || !istype(W, /obj/item/weldingtool)) return FALSE var/obj/item/weldingtool/WT = W if(WT.remove_fuel(0, user)) to_chat(user, "You begin fixing dents on the wall...") playsound(src, W.usesound, 100, 1) - if(do_after(user, slicing_duration * W.toolspeed * 0.5, target = src)) - if(iswallturf(src) && user && !QDELETED(WT) && WT.isOn() && !QDELETED(T) && (user.loc == T) && (user.get_active_held_item() == WT) && damage_decals.len) + if(do_after(user, slicing_duration * W.toolspeed * 0.1, target = src)) + if(iswallturf(src) && user && !QDELETED(WT) && WT.isOn() && !QDELETED(T) && (user.loc == T) && (user.get_active_held_item() == WT) && LAZYLEN(dent_decals)) to_chat(user, "You fix some dents on the wall.") - cut_overlay(damage_decals) - LAZYCLEARLIST(damage_decals) + cut_overlay(dent_decals) + LAZYCLEARLIST(dent_decals) return TRUE return FALSE @@ -253,7 +271,7 @@ if(.) ChangeTurf(/turf/closed/wall/clockwork) -/turf/closed/wall/get_dumping_location(obj/item/storage/source,mob/user) +/turf/closed/wall/get_dumping_location(obj/item/storage/source, mob/user) return null /turf/closed/wall/acid_act(acidpwr, acid_volume) @@ -278,7 +296,11 @@ return TRUE return FALSE -/turf/closed/wall/proc/add_damage_decal(var/mutable_appearance/decal) - cut_overlay(damage_decals) - LAZYADD(damage_decals, decal) - add_overlay(damage_decals) +/turf/closed/wall/proc/add_dent(denttype, x=rand(-8, 8), y=rand(-8, 8)) + var/mutable_appearance/decal = pick(dent_decal_list[denttype]) + decal.pixel_x = x + decal.pixel_y = y + + cut_overlay(dent_decals) + LAZYADD(dent_decals, decal) + add_overlay(dent_decals) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 40c026a7cb..36ba033eef 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -440,13 +440,13 @@ /turf/proc/empty(turf_type=/turf/open/space, baseturf_type, list/ignore_typecache, forceop = FALSE) // Remove all atoms except observers, landmarks, docking ports var/static/list/ignored_atoms = typecacheof(list(/mob/dead, /obj/effect/landmark, /obj/docking_port, /atom/movable/lighting_object)) - var/list/allowed_contents = typecache_filter_list_reverse(GetAllContents(), ignored_atoms | ignore_typecache) + var/list/allowed_contents = typecache_filter_list_reverse(GetAllContentsIgnoring(ignore_typecache), ignored_atoms) allowed_contents -= src for(var/i in 1 to allowed_contents.len) var/thing = allowed_contents[i] qdel(thing, force=TRUE) - var/turf/newT = ChangeTurf(turf_type, baseturf_type, FALSE, FALSE, forceop = forceop) + var/turf/newT = ChangeTurf(turf_type, baseturf_type, FALSE, FALSE, forceop) SSair.remove_from_active(newT) newT.CalculateAdjacentTurfs() diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 10a3774ae1..f43803631b 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -6,8 +6,10 @@ #define STICKYBAN_MAX_EXISTING_USER_MATCHES 5 //ie, users who were connected before the ban triggered #define STICKYBAN_MAX_ADMIN_MATCHES 2 -/world/IsBanned(key,address,computer_id) +/world/IsBanned(key,address,computer_id,type,real_bans_only=FALSE) if (!key || !address || !computer_id) + if(real_bans_only) + return FALSE log_access("Failed Login (invalid data): [key] [address]-[computer_id]") return list("reason"="invalid login data", "desc"="Error: Could not check ban status, Please try again. Error message: Your computer provided invalid or blank information to the server on connection (byond username, IP, and Computer ID.) Provided information for reference: Username:'[key]' IP:'[address]' Computer ID:'[computer_id]'. (If you continue to get this error, please restart byond or contact byond support.)") @@ -31,7 +33,7 @@ return list("reason"="whitelist", "desc" = "\nReason: You are not on the white list for this server") //Guest Checking - if(IsGuestKey(key)) + if(!real_bans_only && IsGuestKey(key)) if (CONFIG_GET(flag/guest_ban)) log_access("Failed Login: [key] - Guests not allowed") return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a byond account.") @@ -41,7 +43,7 @@ //Population Cap Checking var/extreme_popcap = CONFIG_GET(number/extreme_popcap) - if(extreme_popcap && living_player_count() >= extreme_popcap && !admin) + if(!real_bans_only && extreme_popcap && living_player_count() >= extreme_popcap && !admin) log_access("Failed Login: [key] - Population cap reached") return list("reason"="popcap", "desc"= "\nReason: [CONFIG_GET(string/extreme_popcap_message)]") @@ -160,8 +162,8 @@ world.SetConfig("ban", bannedckey, null) - log_game("Stickyban on [bannedckey] detected as rogue, reverting to it's roundstart state") - message_admins("Stickyban on [bannedckey] detected as rogue, reverting to it's roundstart state") + log_game("Stickyban on [bannedckey] detected as rogue, reverting to its roundstart state") + message_admins("Stickyban on [bannedckey] detected as rogue, reverting to its roundstart state") //do not convert to timer. spawn (5) world.SetConfig("ban", bannedckey, null) diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm new file mode 100644 index 0000000000..129c6c92c8 --- /dev/null +++ b/code/modules/admin/sound_emitter.dm @@ -0,0 +1,149 @@ +#define SOUND_EMITTER_LOCAL "local" //Plays the sound like a normal heard sound +#define SOUND_EMITTER_DIRECT "direct" //Plays the sound directly to hearers regardless of pressure/proximity/et cetera + +#define SOUND_EMITTER_RADIUS "radius" //Plays the sound to everyone in a radius +#define SOUND_EMITTER_ZLEVEL "zlevel" //Plays the sound to everyone on the z-level +#define SOUND_EMITTER_GLOBAL "global" //Plays the sound to everyone in the game world + +//Admin sound emitters with highly customizable functions! +/obj/effect/sound_emitter + name = "sound emitter" + desc = "Emits sounds, presumably." + icon = 'icons/effects/effects.dmi' + icon_state = "shield2" + invisibility = INVISIBILITY_OBSERVER + anchored = TRUE + density = FALSE + opacity = FALSE + alpha = 175 + var/sound_file //The sound file the emitter plays + var/sound_volume = 50 //The volume the sound file is played at + var/play_radius = 3 //Any mobs within this many tiles will hear the sounds played if it's using the appropriate mode + var/motus_operandi = SOUND_EMITTER_LOCAL //The mode this sound emitter is using + var/emitter_range = SOUND_EMITTER_ZLEVEL //The range this emitter's sound is heard at; this isn't a number, but a string (see the defines above) + +/obj/effect/sound_emitter/Destroy(force) + if(!force) + return QDEL_HINT_LETMELIVE + . = ..() + +/obj/effect/sound_emitter/singularity_act() + return + +/obj/effect/sound_emitter/examine(mob/user) + ..() + if(!isobserver(user)) + return + to_chat(user, "Sound File: [sound_file ? sound_file : "None chosen"]") + to_chat(user, "Mode: [motus_operandi]") + to_chat(user, "Range: [emitter_range]") + to_chat(user, "Sound is playing at [sound_volume]% volume.") + if(user.client.holder) + to_chat(user, "Alt-click it to quickly activate it!") + +/obj/effect/sound_emitter/attack_ghost(mob/user) + if(!check_rights_for(user.client, R_SOUNDS)) + examine(user) + return + edit_emitter(user) + +/obj/effect/sound_emitter/AltClick(mob/user) + if(check_rights_for(user.client, R_SOUNDS)) + activate(user) + to_chat(user, "Sound emitter activated.") + +/obj/effect/sound_emitter/proc/edit_emitter(mob/user) + var/dat = "" + dat += "Label: [maptext ? maptext : "No label set!"]
" + dat += "
" + dat += "Sound File: [sound_file ? sound_file : "No file chosen!"]
" + dat += "Volume: [sound_volume]%
" + dat += "
" + dat += "Mode: [motus_operandi]
" + if(motus_operandi != SOUND_EMITTER_LOCAL) + dat += "Range: [emitter_range][emitter_range == SOUND_EMITTER_RADIUS ? "[play_radius]-tile radius" : ""]
" + dat += "
" + dat += "Play Sound (interrupts other sound emitter sounds)" + var/datum/browser/popup = new(user, "emitter", "", 500, 600) + popup.set_content(dat) + popup.open() + +/obj/effect/sound_emitter/Topic(href, href_list) + ..() + if(!ismob(usr) || !usr.client || !check_rights_for(usr.client, R_SOUNDS)) + return + var/mob/user = usr + if(href_list["edit_label"]) + var/new_label = stripped_input(user, "Choose a new label.", "Sound Emitter") + if(!new_label) + return + maptext = new_label + to_chat(user, "Label set to [maptext].") + if(href_list["edit_sound_file"]) + var/new_file = input(user, "Choose a sound file.", "Sound Emitter") as null|sound + if(!new_file) + return + sound_file = new_file + to_chat(user, "New sound file set to [sound_file].") + if(href_list["edit_volume"]) + var/new_volume = input(user, "Choose a volume.", "Sound Emitter", sound_volume) as null|num + if(isnull(new_volume)) + return + new_volume = Clamp(new_volume, 0, 100) + sound_volume = new_volume + to_chat(user, "Volume set to [sound_volume]%.") + if(href_list["edit_mode"]) + var/new_mode + var/mode_list = list("Local (normal sound)" = SOUND_EMITTER_LOCAL, "Direct (not affected by environment/location)" = SOUND_EMITTER_DIRECT) + new_mode = input(user, "Choose a new mode.", "Sound Emitter") as null|anything in mode_list + if(!new_mode) + return + motus_operandi = mode_list[new_mode] + to_chat(user, "Mode set to [motus_operandi].") + if(href_list["edit_range"]) + var/new_range + var/range_list = list("Radius (all mobs within a radius)" = SOUND_EMITTER_RADIUS, "Z-Level (all mobs on the same z)" = SOUND_EMITTER_ZLEVEL, "Global (all players)" = SOUND_EMITTER_GLOBAL) + new_range = input(user, "Choose a new range.", "Sound Emitter") as null|anything in range_list + if(!new_range) + return + emitter_range = range_list[new_range] + to_chat(user, "Range set to [emitter_range].") + if(href_list["edit_radius"]) + var/new_radius = input(user, "Choose a radius.", "Sound Emitter", sound_volume) as null|num + if(isnull(new_radius)) + return + new_radius = Clamp(new_radius, 0, 127) + play_radius = new_radius + to_chat(user, "Audible radius set to [play_radius].") + if(href_list["play"]) + activate(user) + edit_emitter(user) //Refresh the UI to see our changes + +/obj/effect/sound_emitter/proc/activate(mob/user) + var/list/hearing_mobs = list() + if(motus_operandi == SOUND_EMITTER_LOCAL) + playsound(src, sound_file, sound_volume, FALSE) + return + switch(emitter_range) + if(SOUND_EMITTER_RADIUS) + for(var/mob/M in GLOB.player_list) + if(get_dist(src, M) <= play_radius) + hearing_mobs += M + if(SOUND_EMITTER_ZLEVEL) + for(var/mob/M in GLOB.player_list) + if(M.z == z) + hearing_mobs += M + if(SOUND_EMITTER_GLOBAL) + hearing_mobs = GLOB.player_list.Copy() + for(var/mob/M in hearing_mobs) + if(M.client.prefs.toggles & SOUND_MIDI) + M.playsound_local(M, sound_file, sound_volume, FALSE, channel = CHANNEL_ADMIN, pressure_affected = FALSE) + if(user) + log_admin("[ADMIN_LOOKUPFLW(user)] activated a sound emitter with file \"[sound_file]\" at [COORD(src)]") + flick("shield1", src) + +#undef SOUND_EMITTER_LOCAL +#undef SOUND_EMITTER_DIRECT +#undef SOUND_EMITTER_RADIUS +#undef SOUND_EMITTER_ZLEVEL +#undef SOUND_EMITTER_GLOBAL diff --git a/code/modules/admin/stickyban.dm b/code/modules/admin/stickyban.dm index 800d23090d..df6a9b89ad 100644 --- a/code/modules/admin/stickyban.dm +++ b/code/modules/admin/stickyban.dm @@ -142,8 +142,8 @@ to_chat(usr, "Error: No cached sticky ban for [ckey] found!") world.SetConfig("ban",ckey,null) - log_admin_private("[key_name(usr)] has reverted [ckey]'s sticky ban to it's state at round start.") - message_admins("[key_name_admin(usr)] has reverted [ckey]'s sticky ban to it's state at round start.") + log_admin_private("[key_name(usr)] has reverted [ckey]'s sticky ban to its state at round start.") + message_admins("[key_name_admin(usr)] has reverted [ckey]'s sticky ban to its state at round start.") //revert is mostly used when shit goes rouge, so we have to set it to null // and wait a byond tick before assigning it to ensure byond clears its shit. sleep(world.tick_lag) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm index 7176ac726c..8a7c030458 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm @@ -3,9 +3,11 @@ /proc/_abs(A) return abs(A) -/*/proc/_animate(atom/A, set_vars, time = 10, loop = 1, easing = LINEAR_EASING, flags_1 = null) - animate(A, set_vars, time, loop, easing, flags_1) - Borked. If anyone wants to fix this be my guest.*/ +/proc/_animate(atom/A, set_vars, time = 10, loop = 1, easing = LINEAR_EASING, flags = null) + var/mutable_appearance/MA = new() + for(var/v in set_vars) + MA.vars[v] = set_vars[v] + animate(A, appearance = MA, time, loop, easing, flags) /proc/_acrccos(A) return arccos(A) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 5aebd5ce94..980e0cf1a0 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -614,8 +614,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) /proc/send2irc(msg,msg2) - if(SERVER_TOOLS_PRESENT) - SERVER_TOOLS_RELAY_BROADCAST("[msg] | [msg2]") + msg = replacetext(replacetext(msg, "\proper", ""), "\improper", "") + msg2 = replacetext(replacetext(msg2, "\proper", ""), "\improper", "") + SERVER_TOOLS_RELAY_BROADCAST("[msg] | [msg2]") /proc/send2otherserver(source,msg,type = "Ahelp") var/comms_key = CONFIG_GET(string/comms_key) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 92e639ef27..9371792683 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -780,7 +780,7 @@ GLOBAL_PROTECT(LastAdminCalledProc) /client/proc/cmd_display_init_log() set category = "Debug" - set name = "Display Initialzie() Log" + set name = "Display Initialize() Log" set desc = "Displays a list of things that didn't handle Initialize() properly" usr << browse(replacetext(SSatoms.InitLog(), "\n", "
"), "window=initlog") @@ -873,3 +873,42 @@ GLOBAL_PROTECT(LastAdminCalledProc) message_admins("[key_name_admin(src)] pumped a random event.") SSblackbox.add_details("admin_verb","Pump Random Event") log_admin("[key_name(src)] pumped a random event.") + +/client/proc/start_line_profiling() + set category = "Profile" + set name = "Start Line Profiling" + set desc = "Starts tracking line by line profiling for code lines that support it" + + PROFILE_START + + message_admins("[key_name_admin(src)] started line by line profiling.") + SSblackbox.add_details("admin_verb","Start Line Profiling") + log_admin("[key_name(src)] started line by line profiling.") + +/client/proc/stop_line_profiling() + set category = "Profile" + set name = "Stops Line Profiling" + set desc = "Stops tracking line by line profiling for code lines that support it" + + PROFILE_STOP + + message_admins("[key_name_admin(src)] stopped line by line profiling.") + SSblackbox.add_details("admin_verb","stop Line Profiling") + log_admin("[key_name(src)] stopped line by line profiling.") + +/client/proc/show_line_profiling() + set category = "Profile" + set name = "Show Line Profiling" + set desc = "Shows tracked profiling info from code lines that support it" + + var/sortlist = list( + "Avg time" = /proc/cmp_profile_avg_time_dsc, + "Total Time" = /proc/cmp_profile_time_dsc, + "Call Count" = /proc/cmp_profile_count_dsc + ) + var/sort = input(src, "Sort type?", "Sort Type", "Avg time") as null|anything in sortlist + if (!sort) + return + sort = sortlist[sort] + profile_show(src, sort) + diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 3ceb1aeb75..d560099563 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -42,7 +42,10 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( /client/proc/print_pointers, /client/proc/cmd_show_at_list, /client/proc/cmd_show_at_markers, - /client/proc/manipulate_organs + /client/proc/manipulate_organs, + /client/proc/start_line_profiling, + /client/proc/stop_line_profiling, + /client/proc/show_line_profiling )) /obj/effect/debugging/mapfix_marker diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/verbs/modifyvariables.dm index e4ea8e9b54..3a2e13fdcc 100644 --- a/code/modules/admin/verbs/modifyvariables.dm +++ b/code/modules/admin/verbs/modifyvariables.dm @@ -416,7 +416,7 @@ GLOBAL_PROTECT(VVpixelmovement) if (index == null) return var/assoc = 0 - var/prompt = alert(src, "Do you want to edit the key or it's assigned value?", "Associated List", "Key", "Assigned Value", "Cancel") + var/prompt = alert(src, "Do you want to edit the key or its assigned value?", "Associated List", "Key", "Assigned Value", "Cancel") if (prompt == "Cancel") return if (prompt == "Assigned Value") @@ -610,8 +610,8 @@ GLOBAL_PROTECT(VVpixelmovement) if (O.vv_edit_var(variable, var_new) == FALSE) to_chat(src, "Your edit was rejected by the object.") return - log_world("### VarEdit by [src]: [O.type] [variable]=[html_encode("[var_new]")]") - log_admin("[key_name(src)] modified [original_name]'s [variable] to [var_new]") - var/msg = "[key_name_admin(src)] modified [original_name]'s [variable] to [var_new]" + log_world("### VarEdit by [key_name(src)]: [O.type] [variable]=[var_value] => [var_new]") + log_admin("[key_name(src)] modified [original_name]'s [variable] to from [html_encode("[var_value]")] to [html_encode("[var_new]")]") + var/msg = "[key_name_admin(src)] modified [original_name]'s [variable] from [var_value] to [var_new]" message_admins(msg) admin_ticket_log(O, msg) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index f364cff61a..8a18dc9ac5 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -213,7 +213,6 @@ /datum/admins/proc/makeNukeTeam() - var/datum/game_mode/nuclear/temp = new var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for a nuke team being sent in?", "operative", temp) var/list/mob/dead/observer/chosen = list() @@ -246,24 +245,18 @@ nuke.r_code = nuke_code //Let's find the spawn locations - var/list/turf/synd_spawn = list() - for(var/obj/effect/landmark/A in GLOB.landmarks_list) - if(A.name == "Syndicate-Spawn") - synd_spawn += get_turf(A) - continue - - var/leader_chosen + var/leader_chosen = FALSE var/spawnpos = 1 //Decides where they'll spawn. 1=leader. for(var/mob/c in chosen) - if(spawnpos > synd_spawn.len) - spawnpos = 2 //Ran out of spawns. Let's loop back to the first non-leader position + if(spawnpos > GLOB.nukeop_start.len) + spawnpos = 1 //Ran out of spawns. Let's loop back to the first non-leader position var/mob/living/carbon/human/new_character=makeBody(c) if(!leader_chosen) - leader_chosen = 1 - new_character.mind.make_Nuke(synd_spawn[spawnpos],nuke_code,1) + leader_chosen = TRUE + new_character.mind.make_Nuke(pick(GLOB.nukeop_leader_start), nuke_code, TRUE) else - new_character.mind.make_Nuke(synd_spawn[spawnpos],nuke_code) + new_character.mind.make_Nuke(GLOB.nukeop_start[spawnpos], nuke_code) spawnpos++ return 1 else diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 84b23eafa9..16484cce52 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -399,7 +399,7 @@ Traitors and the like can also be revived with the previous role mostly intact. else//They may also be a cyborg or AI. switch(new_character.mind.assigned_role) if("Cyborg")//More rigging to make em' work and check if they're traitor. - new_character = new_character.Robotize() + new_character = new_character.Robotize(TRUE) if("AI") new_character = new_character.AIize() else diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index cfab9055c7..b895297d83 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -14,12 +14,13 @@ var/obj/item/tank/bombtank = null //the second part of the bomb is a plasma tank origin_tech = "materials=1;engineering=1" + /obj/item/device/onetankbomb/examine(mob/user) - ..() - user.examinate(bombtank) + bombtank.examine(user) /obj/item/device/onetankbomb/update_icon() if(bombtank) + icon = bombtank.icon icon_state = bombtank.icon_state if(bombassembly) add_overlay(bombassembly.icon_state) @@ -34,11 +35,11 @@ to_chat(user, "You disassemble [src].") - bombassembly.forceMove(user.drop_location()) + bombassembly.forceMove(drop_location()) bombassembly.master = null bombassembly = null - bombtank.forceMove(user.drop_location()) + bombtank.forceMove(drop_location()) bombtank.master = null bombtank = null @@ -80,26 +81,35 @@ // ---------- Procs below are for tanks that are used exclusively in 1-tank bombs ---------- -/obj/item/tank/proc/bomb_assemble(W,user) //Bomb assembly proc. This turns assembly+tank into a bomb - var/obj/item/device/assembly_holder/S = W - var/mob/M = user - if(isigniter(S.a_left) == isigniter(S.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it - return - if(!M.temporarilyRemoveItemFromInventory(src)) //Remove the assembly from your hands +//Bomb assembly proc. This turns assembly+tank into a bomb +/obj/item/tank/proc/bomb_assemble(obj/item/device/assembly_holder/assembly, mob/living/user) + //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it + if(isigniter(assembly.a_left) == isigniter(assembly.a_right)) return - var/obj/item/device/onetankbomb/R = new + if((src in user.get_equipped_items()) && !user.canUnEquip(src)) + to_chat(user, "[src] is stuck to you!") + return - M.put_in_hands(R) //Equips the bomb if possible, or puts it on the floor. + if(!user.canUnEquip(assembly)) + to_chat(user, "[assembly] is stuck to your hand!") + return - R.bombassembly = S //Tell the bomb about its assembly part - S.master = R //Tell the assembly about its new owner - S.forceMove(R) //Move the assembly out of the fucking way + var/obj/item/device/onetankbomb/bomb = new + user.transferItemToLoc(src, bomb) + user.transferItemToLoc(assembly, bomb) - R.bombtank = src //Same for tank - master = R - forceMove(R) - R.update_icon() + bomb.bombassembly = assembly //Tell the bomb about its assembly part + assembly.master = bomb //Tell the assembly about its new owner + + bomb.bombtank = src //Same for tank + master = bomb + + forceMove(bomb) + bomb.update_icon() + + user.put_in_hands(bomb) //Equips the bomb if possible, or puts it on the floor. + to_chat(user, "You attach [assembly] to [src].") return /obj/item/tank/proc/ignite() //This happens when a bomb is told to explode diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index 025c05f6d4..58edfaae94 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -54,11 +54,11 @@ var/volume = 125 var/temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - var/just_spawned = 1 - var/bypassing = 0 + var/just_spawned = TRUE + var/bypassing = FALSE -/obj/effect/hotspot/New() - ..() +/obj/effect/hotspot/Initialize() + . = ..() SSair.hotspots += src perform_exposure() setDir(pick(GLOB.cardinals)) @@ -67,14 +67,14 @@ /obj/effect/hotspot/proc/perform_exposure() var/turf/open/location = loc if(!istype(location) || !(location.air)) - return 0 + return location.active_hotspot = src if(volume > CELL_VOLUME*0.95) - bypassing = 1 + bypassing = TRUE else - bypassing = 0 + bypassing = FALSE if(bypassing) if(!just_spawned) @@ -88,17 +88,17 @@ volume = affected.reaction_results["fire"]*FIRE_GROWTH_RATE location.assume_air(affected) - for(var/A in loc) + for(var/A in location) var/atom/AT = A if(AT && AT != src) // It's possible that the item is deleted in temperature_expose AT.fire_act(temperature, volume) - return 0 + return /obj/effect/hotspot/process() if(just_spawned) - just_spawned = 0 - return 0 + just_spawned = FALSE + return var/turf/open/location = loc if(!istype(location)) @@ -112,7 +112,13 @@ qdel(src) return - if(!(location.air) || !(location.air.gases[/datum/gas/plasma] || location.air.gases[/datum/gas/tritium]) || !location.air.gases[/datum/gas/oxygen] || (location.air.gases[/datum/gas/plasma][MOLES] < 0.5 && location.air.gases[/datum/gas/tritium][MOLES] < 0.5) || location.air.gases[/datum/gas/oxygen][MOLES] < 0.5) + //Nothing to burn + if(!(location.air) || !(location.air.gases[/datum/gas/plasma] || location.air.gases[/datum/gas/tritium]) || !location.air.gases[/datum/gas/oxygen]) + qdel(src) + return + + //Not enough to burn + if(((!location.air.gases[/datum/gas/plasma] || location.air.gases[/datum/gas/plasma][MOLES] < 0.5) && (!location.air.gases[/datum/gas/tritium] || location.air.gases[/datum/gas/tritium][MOLES] < 0.5)) || location.air.gases[/datum/gas/oxygen][MOLES] < 0.5) qdel(src) return @@ -140,11 +146,8 @@ location.max_fire_temperature_sustained = temperature if(location.heat_capacity && temperature > location.heat_capacity) - location.to_be_destroyed = 1 - /*if(prob(25)) - location.ReplaceWithSpace() - return 0*/ - return 1 + location.to_be_destroyed = TRUE + return TRUE /obj/effect/hotspot/Destroy() set_light(0) @@ -153,8 +156,7 @@ if(istype(T) && T.active_hotspot == src) T.active_hotspot = null DestroyTurf() - loc = null - . = ..() + return ..() /obj/effect/hotspot/proc/DestroyTurf() if(isturf(loc)) @@ -168,12 +170,13 @@ if(prob(chance_of_deletion)) T.ChangeTurf(T.baseturf) else - T.to_be_destroyed = 0 + T.to_be_destroyed = FALSE T.max_fire_temperature_sustained = 0 -/obj/effect/hotspot/Crossed(mob/living/L) +/obj/effect/hotspot/Crossed(atom/movable/AM, oldLoc) ..() - if(isliving(L)) + if(isliving(AM)) + var/mob/living/L = AM L.fire_act(temperature, volume) /obj/effect/dummy/fire @@ -186,4 +189,4 @@ /obj/effect/dummy/fire/Initialize() . = ..() if(!isliving(loc)) - qdel(src) + return INITIALIZE_HINT_QDEL diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm index a16e58056b..268528355e 100644 --- a/code/modules/atmospherics/environmental/LINDA_system.dm +++ b/code/modules/atmospherics/environmental/LINDA_system.dm @@ -43,7 +43,7 @@ var/turf/T = get_step(src, direction) if(!T) continue - if(CANATMOSPASS(T, src)) + if( !(blocks_air || T.blocks_air) && CANATMOSPASS(T, src) ) LAZYINITLIST(atmos_adjacent_turfs) LAZYINITLIST(T.atmos_adjacent_turfs) atmos_adjacent_turfs[T] = TRUE diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index 8296ab56f4..cab2e1d62d 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -84,11 +84,11 @@ GLOBAL_LIST_INIT(hardcoded_gases, list(/datum/gas/oxygen, /datum/gas/nitrogen, / moles_visible = 1 dangerous = TRUE -/datum/gas/brown_gas //This is nitric oxide, but given generic name to avoid confusion with nitrous oxide(N20 vs. NO2) - id = "browns" +/datum/gas/nitryl + id = "no2" specific_heat = 20 - name = "Brown Gas" - gas_overlay = "browns" + name = "Nitryl" + gas_overlay = "nitryl" moles_visible = MOLES_GAS_VISIBLE dangerous = TRUE diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index 63b84832af..bcb2f75bb4 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -11,7 +11,7 @@ #define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile //General assmos defines. #define WATER_VAPOR_FREEZE 200 -#define BROWNS_FORMATION_ENERGY 100000 +#define NITRYL_FORMATION_ENERGY 100000 #define TRITIUM_BURN_OXY_FACTOR 100 #define TRITIUM_BURN_TRIT_FACTOR 10 #define SUPER_SATURATION_THRESHOLD 96 @@ -216,7 +216,7 @@ var/waste_added = (plasma_fused-oxygen_added)-((air.total_moles()*air.heat_capacity())/PLASMA_BINDING_ENERGY) reaction_energy = max(reaction_energy+((catalyst_efficency*cached_gases[/datum/gas/plasma][MOLES])/((moles_impurities/catalyst_efficency)+2)*10)+((plasma_fused/((moles_impurities/catalyst_efficency)))*PLASMA_BINDING_ENERGY),0) - air.assert_gases(/datum/gas/oxygen, /datum/gas/nitrogen, /datum/gas/water_vapor, /datum/gas/nitrous_oxide, /datum/gas/brown_gas) + air.assert_gases(/datum/gas/oxygen, /datum/gas/nitrogen, /datum/gas/water_vapor, /datum/gas/nitrous_oxide, /datum/gas/nitryl) //Fusion produces an absurd amount of waste products now, requiring active filtration. cached_gases[/datum/gas/plasma][MOLES] = max(cached_gases[/datum/gas/plasma][MOLES] - plasma_fused,0) cached_gases[/datum/gas/tritium][MOLES] = max(cached_gases[/datum/gas/tritium][MOLES] - tritium_catalyzed,0) @@ -224,7 +224,7 @@ cached_gases[/datum/gas/nitrogen][MOLES] += waste_added cached_gases[/datum/gas/water_vapor][MOLES] += waste_added cached_gases[/datum/gas/nitrous_oxide][MOLES] += waste_added - cached_gases[/datum/gas/brown_gas][MOLES] += waste_added + cached_gases[/datum/gas/nitryl][MOLES] += waste_added if(reaction_energy > 0) var/new_heat_capacity = air.heat_capacity() @@ -233,12 +233,12 @@ //Prevents whatever mechanism is causing it to hit negative temperatures. return REACTING -/datum/gas_reaction/brownsformation //The formation of brown gas. Endothermic. Requires N2O as a catalyst. +/datum/gas_reaction/nitrylformation //The formation of nitryl. Endothermic. Requires N2O as a catalyst. priority = 3 - name = "Brown Gas formation" - id = "brownsformation" + name = "Nitryl formation" + id = "nitrylformation" -/datum/gas_reaction/brownsformation/init_reqs() +/datum/gas_reaction/nitrylformation/init_reqs() min_requirements = list( /datum/gas/oxygen = 20, /datum/gas/nitrogen = 20, @@ -246,18 +246,18 @@ "TEMP" = FIRE_MINIMUM_TEMPERATURE_TO_EXIST*400 ) -/datum/gas_reaction/brownsformation/react(datum/gas_mixture/air) +/datum/gas_reaction/nitrylformation/react(datum/gas_mixture/air) var/list/cached_gases = air.gases var/temperature = air.temperature var/old_heat_capacity = air.heat_capacity() var/heat_efficency = temperature/(FIRE_MINIMUM_TEMPERATURE_TO_EXIST*100) - var/energy_used = heat_efficency*BROWNS_FORMATION_ENERGY - ASSERT_GAS(/datum/gas/brown_gas,air) + var/energy_used = heat_efficency*NITRYL_FORMATION_ENERGY + ASSERT_GAS(/datum/gas/nitryl,air) cached_gases[/datum/gas/oxygen][MOLES] -= heat_efficency cached_gases[/datum/gas/nitrogen][MOLES] -= heat_efficency - cached_gases[/datum/gas/brown_gas][MOLES] += heat_efficency*2 + cached_gases[/datum/gas/nitryl][MOLES] += heat_efficency*2 if(energy_used > 0) var/new_heat_capacity = air.heat_capacity() @@ -307,7 +307,7 @@ /datum/gas/tritium = 30, /datum/gas/plasma = 10, /datum/gas/bz = 20, - /datum/gas/brown_gas = 30, + /datum/gas/nitryl = 30, "TEMP" = STIMULUM_HEAT_SCALE/2) /datum/gas_reaction/stimformation/react(datum/gas_mixture/air) @@ -322,7 +322,7 @@ cached_gases[/datum/gas/stimulum][MOLES]+= heat_scale/10 cached_gases[/datum/gas/tritium][MOLES] = max(cached_gases[/datum/gas/tritium][MOLES]- heat_scale,0) cached_gases[/datum/gas/plasma][MOLES] = max(cached_gases[/datum/gas/plasma][MOLES]- heat_scale,0) - cached_gases[/datum/gas/brown_gas][MOLES] = max(cached_gases[/datum/gas/brown_gas][MOLES]- heat_scale,0) + cached_gases[/datum/gas/nitryl][MOLES] = max(cached_gases[/datum/gas/nitryl][MOLES]- heat_scale,0) if(stim_energy_change) var/new_heat_capacity = air.heat_capacity() @@ -367,7 +367,7 @@ #undef FIRE_CARBON_ENERGY_RELEASED #undef FIRE_PLASMA_ENERGY_RELEASED #undef WATER_VAPOR_FREEZE -#undef BROWNS_FORMATION_ENERGY +#undef NITRYL_FORMATION_ENERGY #undef TRITIUM_BURN_OXY_FACTOR #undef SUPER_SATURATION_THRESHOLD #undef STIMULUM_HEAT_SCALE diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index d2603208e5..316f9f248d 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -93,11 +93,11 @@ /datum/gas/plasma = new/datum/tlv/dangerous, // Partial pressure, kpa /datum/gas/nitrous_oxide = new/datum/tlv/dangerous, // Partial pressure, kpa /datum/gas/bz = new/datum/tlv/dangerous, - /datum/gas/hypernoblium = new/datum/tlv/dangerous, + /datum/gas/hypernoblium = new/datum/tlv/dangerous, /datum/gas/water_vapor = new/datum/tlv/dangerous, /datum/gas/tritium = new/datum/tlv/dangerous, /datum/gas/stimulum = new/datum/tlv/dangerous, - /datum/gas/brown_gas = new/datum/tlv/dangerous, + /datum/gas/nitryl = new/datum/tlv/dangerous, /datum/gas/pluoxium = new/datum/tlv/dangerous ) @@ -111,11 +111,11 @@ /datum/gas/plasma = new/datum/tlv/no_checks, /datum/gas/nitrous_oxide = new/datum/tlv/no_checks, /datum/gas/bz = new/datum/tlv/no_checks, - /datum/gas/hypernoblium = new/datum/tlv/no_checks, + /datum/gas/hypernoblium = new/datum/tlv/no_checks, /datum/gas/water_vapor = new/datum/tlv/no_checks, /datum/gas/tritium = new/datum/tlv/no_checks, /datum/gas/stimulum = new/datum/tlv/no_checks, - /datum/gas/brown_gas = new/datum/tlv/no_checks, + /datum/gas/nitryl = new/datum/tlv/no_checks, /datum/gas/pluoxium = new/datum/tlv/no_checks ) @@ -133,7 +133,7 @@ /datum/gas/water_vapor = new/datum/tlv/dangerous, /datum/gas/tritium = new/datum/tlv/dangerous, /datum/gas/stimulum = new/datum/tlv/dangerous, - /datum/gas/brown_gas = new/datum/tlv/dangerous, + /datum/gas/nitryl = new/datum/tlv/dangerous, /datum/gas/pluoxium = new/datum/tlv/dangerous ) diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm index d0cba4d581..1ba013e237 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -124,7 +124,7 @@ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "atmos_filter", name, 475, 155, master_ui, state) + ui = new(user, src, ui_key, "atmos_filter", name, 475, 180, master_ui, state) ui.open() /obj/machinery/atmospherics/components/trinary/filter/ui_data() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index e0567ee967..7f74711367 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -230,10 +230,10 @@ filtered_gases[/datum/gas/pluoxium][MOLES] = removed_gases[/datum/gas/pluoxium][MOLES] removed_gases[/datum/gas/pluoxium][MOLES] = 0 - if(scrub_Rare && removed_gases[/datum/gas/brown_gas]) - ADD_GAS(/datum/gas/brown_gas, filtered_gases) - filtered_gases[/datum/gas/brown_gas][MOLES] = removed_gases[/datum/gas/brown_gas][MOLES] - removed_gases[/datum/gas/brown_gas][MOLES] = 0 + if(scrub_Rare && removed_gases[/datum/gas/nitryl]) + ADD_GAS(/datum/gas/nitryl, filtered_gases) + filtered_gases[/datum/gas/nitryl][MOLES] = removed_gases[/datum/gas/nitryl][MOLES] + removed_gases[/datum/gas/nitryl][MOLES] = 0 if(scrub_Rare && removed_gases[/datum/gas/tritium]) ADD_GAS(/datum/gas/tritium, filtered_gases) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 0a7f43b383..585b6e896a 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -41,9 +41,14 @@ "co2" = /obj/machinery/portable_atmospherics/canister/carbon_dioxide, "plasma" = /obj/machinery/portable_atmospherics/canister/toxins, "n2o" = /obj/machinery/portable_atmospherics/canister/nitrous_oxide, + "no2" = /obj/machinery/portable_atmospherics/canister/nitryl, "bz" = /obj/machinery/portable_atmospherics/canister/bz, "air" = /obj/machinery/portable_atmospherics/canister/air, "water vapor" = /obj/machinery/portable_atmospherics/canister/water_vapor, + "tritium" = /obj/machinery/portable_atmospherics/canister/tritium, + "hyper-noblium" = /obj/machinery/portable_atmospherics/canister/nob, + "stimulum" = /obj/machinery/portable_atmospherics/canister/stimulum, + "pluoxium" = /obj/machinery/portable_atmospherics/canister/pluoxium, "caution" = /obj/machinery/portable_atmospherics/canister, ) @@ -98,26 +103,31 @@ /obj/machinery/portable_atmospherics/canister/tritium name = "tritium canister" desc = "Tritium. Inhalation might cause irradiation." + icon_state = "green" gas_type = /datum/gas/tritium /obj/machinery/portable_atmospherics/canister/nob name = "hyper-noblium canister" desc = "Hyper-Noblium. More noble than all other gases." + icon_state = "freon" gas_type = /datum/gas/hypernoblium -/obj/machinery/portable_atmospherics/canister/browns - name = "brown gas canister" - desc = "Browns gas. Feels great 'til the acid eats your lungs." - gas_type = /datum/gas/brown_gas +/obj/machinery/portable_atmospherics/canister/nitryl + name = "nitryl canister" + desc = "Nitryl gas. Feels great 'til the acid eats your lungs." + icon_state = "brown" + gas_type = /datum/gas/nitryl /obj/machinery/portable_atmospherics/canister/stimulum name = "stimulum canister" desc = "Stimulum. High energy gas, high energy people." + icon_state = "darkpurple" gas_type = /datum/gas/stimulum /obj/machinery/portable_atmospherics/canister/pluoxium name = "pluoxium canister" desc = "Pluoxium. Like oxygen, but more bang for your buck." + icon_state = "darkblue" gas_type = /datum/gas/pluoxium /obj/machinery/portable_atmospherics/canister/water_vapor @@ -127,7 +137,6 @@ gas_type = /datum/gas/water_vapor filled = 1 - /obj/machinery/portable_atmospherics/canister/proc/get_time_left() if(timing) . = round(max(0, valve_timer - world.time) / 10, 1) diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm index bb203fd6ee..4fdd94c8e8 100644 --- a/code/modules/atmospherics/machinery/portable/scrubber.dm +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -7,7 +7,7 @@ var/volume_rate = 1000 volume = 1000 - var/list/scrubbing = list(/datum/gas/plasma, /datum/gas/carbon_dioxide, /datum/gas/nitrous_oxide, /datum/gas/bz, /datum/gas/brown_gas, /datum/gas/tritium, /datum/gas/hypernoblium, /datum/gas/water_vapor) + var/list/scrubbing = list(/datum/gas/plasma, /datum/gas/carbon_dioxide, /datum/gas/nitrous_oxide, /datum/gas/bz, /datum/gas/nitryl, /datum/gas/tritium, /datum/gas/hypernoblium, /datum/gas/water_vapor) /obj/machinery/portable_atmospherics/scrubber/Destroy() var/turf/T = get_turf(src) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 0014f92378..105fc9f570 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -130,6 +130,10 @@ var/backpack_contents = -1 var/suit_store = -1 + var/hair_style + var/facial_hair_style + var/skin_tone + /obj/effect/mob_spawn/human/Initialize() if(ispath(outfit)) outfit = new outfit() @@ -147,6 +151,20 @@ H.underwear = "Nude" H.undershirt = "Nude" H.socks = "Nude" + if(hair_style) + H.hair_style = hair_style + else + H.hair_style = random_hair_style(gender) + if(facial_hair_style) + H.facial_hair_style = facial_hair_style + else + H.facial_hair_style = random_facial_hair_style(gender) + if(skin_tone) + H.skin_tone = skin_tone + else + H.skin_tone = random_skin_tone() + H.update_hair() + H.update_body() if(outfit) var/static/list/slots = list("uniform", "r_hand", "l_hand", "suit", "shoes", "gloves", "ears", "glasses", "mask", "head", "belt", "r_pocket", "l_pocket", "back", "id", "neck", "backpack_contents", "suit_store") for(var/slot in slots) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index a46b32f853..15c5deb4cb 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -170,7 +170,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation) density = TRUE icon_state = "offcenter" use_power = NO_POWER_USE - var/obj/machinery/gateway/centeraway/stationgate = null + var/obj/machinery/gateway/centerstation/stationgate = null can_link = TRUE @@ -233,6 +233,18 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation) M.client.move_delay = max(world.time + 5, M.client.move_delay) +/obj/machinery/gateway/centeraway/admin + desc = "A mysterious gateway built by unknown hands, this one seems more compact." + +/obj/machinery/gateway/centeraway/admin/Initialize() + . = ..() + if(stationgate && !stationgate.awaygate) + stationgate.awaygate = src + +/obj/machinery/gateway/centeraway/admin/detect() + return TRUE + + /obj/item/paper/fluff/gateway info = "Congratulations,

Your station has been selected to carry out the Gateway Project.

The equipment will be shipped to you at the start of the next quarter.
You are to prepare a secure location to house the equipment as outlined in the attached documents.

--Nanotrasen Blue Space Research" name = "Confidential Correspondence, Pg 1" \ No newline at end of file diff --git a/code/modules/cargo/exports/seeds.dm b/code/modules/cargo/exports/seeds.dm index 42f9d702e0..e73ef23ec4 100644 --- a/code/modules/cargo/exports/seeds.dm +++ b/code/modules/cargo/exports/seeds.dm @@ -26,12 +26,12 @@ export_types = list(/obj/item/seeds) needs_discovery = TRUE // Only for already discovered species -/datum/export/seed/potency.get_cost(obj/O) +/datum/export/seed/potency/get_cost(obj/O) var/obj/item/seeds/S = O var/cost = ..() if(!cost) return 0 var/potDiff = (S.potency - discoveredPlants[S.type]) - + return round(..() * potDiff) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index e14c48db3a..88be72a0a3 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -672,6 +672,9 @@ GLOBAL_LIST(external_rsc_urls) view = new_size apply_clickcatcher() + if (isliving(mob)) + var/mob/living/M = mob + M.update_damage_hud() /client/proc/generate_clickcatcher() if(!void) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index aa4a1b19ca..be4aa67113 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -228,7 +228,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
" switch(current_tab) - if (0) // Character Settings# + if (0) // Character Settings if(path) var/savefile/S = new /savefile(path) if(S) @@ -279,163 +279,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) // dat += "Size: [character_size]
" dat += "
" - dat += "

Body

" - dat += "Random Body " - dat += "Always Random Body: [be_random_body ? "Yes" : "No"]
" - - dat += "" - if(pref_species.use_skintones) - - dat += "" - - if(HAIR in pref_species.species_traits) - - dat += "" - - if(EYECOLOR in pref_species.species_traits) - - dat += "" - - - if((MUTCOLORS in pref_species.species_traits) || (MUTCOLORS_PARTSONLY in pref_species.species_traits)) - - dat += "" - - if("tail_lizard" in pref_species.mutant_bodyparts) - dat += "" - - if("snout" in pref_species.mutant_bodyparts) - dat += "" - - if("horns" in pref_species.mutant_bodyparts) - dat += "" - - if("frills" in pref_species.mutant_bodyparts) - dat += "" - - if("spines" in pref_species.mutant_bodyparts) - dat += "" - - if("body_markings" in pref_species.mutant_bodyparts) - dat += "" - if("legs" in pref_species.mutant_bodyparts) - dat += "" - - if(CONFIG_GET(flag/join_with_mutant_humans)) - - if("tail_human" in pref_species.mutant_bodyparts) - dat += "" - - if("ears" in pref_species.mutant_bodyparts) - dat += "" - - if("wings" in pref_species.mutant_bodyparts && GLOB.r_wings_list.len >1) - dat += "" - dat += "
" - - dat += "Species:
[pref_species.name]
" - dat += "Underwear:
[underwear]
" dat += "Undershirt:
[undershirt]
" dat += "Socks:
[socks]
" dat += "Backpack:
[backbag]
" dat += "Uplink Spawn Location:
[uplink_spawn_loc]
" - - dat += "

Skin Tone

" - - dat += "[skin_tone]
" - - dat += "
" - - dat += "

Hair Style

" - - dat += "[hair_style]
" - dat += "< >
" - dat += "    Change
" - - - dat += "
" - - dat += "

Facial Hair Style

" - - dat += "[facial_hair_style]
" - dat += "< >
" - dat += "    Change
" - - dat += "
" - - dat += "

Eye Color

" - - dat += "    Change
" - - dat += "
" - - dat += "

Mutant Color

" - - dat += "    Change
" - - dat += "
" - - dat += "

Tail

" - - dat += "[features["tail_lizard"]]
" - - dat += "
" - - dat += "

Snout

" - - dat += "[features["snout"]]
" - - dat += "
" - - dat += "

Horns

" - - dat += "[features["horns"]]
" - - dat += "
" - - dat += "

Frills

" - - dat += "[features["frills"]]
" - - dat += "
" - - dat += "

Spines

" - - dat += "[features["spines"]]
" - - dat += "
" - - dat += "

Body Markings

" - - dat += "[features["body_markings"]]
" - - dat += "
" - - dat += "

Legs

" - - dat += "[features["legs"]]
" - - dat += "
" - - dat += "

Tail

" - - dat += "[features["tail_human"]]
" - - dat += "
" - - dat += "

Ears

" - - dat += "[features["ears"]]
" - - dat += "
" - - dat += "

Wings

" - - dat += "[features["wings"]]
" - - dat += "
" if (1) // Game Preferences diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index e2022729be..a0c1e2135a 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -259,9 +259,19 @@ GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR) set category = "OOC" set desc ="Ignore a player's messages on the OOC channel" - var/selection = input("Please, select a player!", "Ignore", null, null) as null|anything in sortKey(GLOB.clients) - if(!selection) + + var/see_ghost_names = isobserver(mob) + var/list/choices = list() + for(var/client/C in GLOB.clients) + if(isobserver(C.mob) && see_ghost_names) + choices["[C.mob]([C])"] = C + else + choices[C] = C + choices = sortList(choices) + var/selection = input("Please, select a player!", "Ignore", null, null) as null|anything in choices + if(!selection || !(selection in choices)) return + selection = choices[selection] if(selection == src) to_chat(src, "You can't ignore yourself.") return diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index bbc0ada952..d540b5b963 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -86,17 +86,17 @@ ..() to_chat(user, "Alt-click to take a candy corn.") -/obj/item/clothing/head/fedora/det_hat/AltClick() - ..() - if(ismob(loc)) - var/mob/M = loc - if(candy_cooldown < world.time) - var/obj/item/reagent_containers/food/snacks/candy_corn/CC = new /obj/item/reagent_containers/food/snacks/candy_corn(src) - M.put_in_hands(CC) - to_chat(M, "You slip a candy corn from your hat.") - candy_cooldown = world.time+1200 - else - to_chat(M, "You just took a candy corn! You should wait a couple minutes, lest you burn through your stash.") +/obj/item/clothing/head/fedora/det_hat/AltClick(mob/user) + if(user.canUseTopic(src, be_close=TRUE)) + ..() + if(loc == user) + if(candy_cooldown < world.time) + var/obj/item/reagent_containers/food/snacks/candy_corn/CC = new /obj/item/reagent_containers/food/snacks/candy_corn(src) + user.put_in_hands(CC) + to_chat(user, "You slip a candy corn from your hat.") + candy_cooldown = world.time+1200 + else + to_chat(user, "You just took a candy corn! You should wait a couple minutes, lest you burn through your stash.") //Mime diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 8422b5b76f..38c7e2d118 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -78,6 +78,41 @@ message = pick("Oink!","Squeeeeeeee!","Oink Oink!") return message +///frog mask - reeee!! +obj/item/clothing/mask/frog + name = "frog mask" + desc = "An ancient mask carved in the shape of a frog.
Sanity is like gravity, all it needs is a push." + icon_state = "frog" + item_state = "frog" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + w_class = WEIGHT_CLASS_SMALL + var/voicechange = TRUE + +/obj/item/clothing/mask/frog/attack_self(mob/user) + voicechange = !voicechange + to_chat(user, "You turn the voice box [voicechange ? "on" : "off"]!") + +/obj/item/clothing/mask/frog/speechModification(message) //whenever you speak + if(voicechange) + if(prob(5)) //sometimes, the angry spirit finds others words to speak. + message = pick("HUUUUU!!","SMOOOOOKIN'!!","Hello my baby, hello my honey, hello my rag-time gal.", "Feels bad, man.", "GIT DIS GUY OFF ME!!" ,"SOMEBODY STOP ME!!", "NORMIES, GET OUT!!") + else + message = pick("Ree!!", "Reee!!","REEE!!","REEEEE!!") //but its usually just angry gibberish, + return message + +obj/item/clothing/mask/frog/cursed + flags_1 = NODROP_1 //reee!! + +/obj/item/clothing/mask/frog/cursed/attack_self(mob/user) + return //no voicebox to alter. + +/obj/item/clothing/mask/frog/cursed/equipped(mob/user, slot) + var/mob/living/carbon/C = user + if(C.wear_mask == src) + to_chat(user, "[src] was cursed! Ree!!") + return ..() + + /obj/item/clothing/mask/cowmask name = "Cowface" desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!" @@ -214,4 +249,4 @@ desc = "A burlap sack with eyeholes." icon_state = "scarecrow_sack" item_state = "scarecrow_sack" - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR \ No newline at end of file + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm index 42c23621ec..30afa31f60 100644 --- a/code/modules/clothing/spacesuits/flightsuit.dm +++ b/code/modules/clothing/spacesuits/flightsuit.dm @@ -76,8 +76,8 @@ //This is probably too much code just for EMP damage. var/emp_damage = 0 //One hit should make it hard to control, continuous hits will cripple it and then simply shut it off/make it crash. Direct hits count more. - var/emp_strong_damage = 2 - var/emp_weak_damage = 1.1 + var/emp_strong_damage = 4 + var/emp_weak_damage = 2.5 var/emp_heal_amount = 0.06 //How much emp damage to heal per process. var/emp_disable_threshold = 3 //3 weak ion, 2 strong ion hits. var/emp_disabled = FALSE @@ -757,7 +757,6 @@ resistance_flags = FIRE_PROOF | ACID_PROOF helmettype = /obj/item/clothing/head/helmet/space/hardsuit/flightsuit jetpack = null - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/gun, /obj/item/reagent_containers/spray/pepper, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs) actions_types = list(/datum/action/item_action/flightsuit/toggle_helmet, /datum/action/item_action/flightsuit/toggle_boots, /datum/action/item_action/flightsuit/toggle_flightpack, /datum/action/item_action/flightsuit/lock_suit) armor = list(melee = 20, bullet = 20, laser = 20, energy = 10, bomb = 30, bio = 100, rad = 75, fire = 100, acid = 100) max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT @@ -772,6 +771,10 @@ var/flight = FALSE var/maint_panel = FALSE +/obj/item/clothing/suit/space/hardsuit/flightsuit/Initialize() + . = ..() + allowed = GLOB.advanced_hardsuit_allowed + /obj/item/clothing/suit/space/hardsuit/flightsuit/full/Initialize() makepack() makeshoes() @@ -1077,7 +1080,7 @@ armor = list(melee = 20, bullet = 20, laser = 20, energy = 10, bomb = 30, bio = 100, rad = 75, fire = 100, acid = 100) max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT var/list/datahuds = list(DATA_HUD_SECURITY_ADVANCED, DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC) - var/zoom_range = 14 + var/zoom_range = 12 var/zoom = FALSE actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/flightpack/zoom) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 75a63352e2..6cc5756658 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -499,10 +499,13 @@ name = "security hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." item_state = "sec_hardsuit" - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs) armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security +/obj/item/clothing/suit/space/hardsuit/security/Initialize() + . = ..() + allowed = GLOB.security_hardsuit_allowed + //Head of Security hardsuit /obj/item/clothing/head/helmet/space/hardsuit/security/hos name = "head of security's hardsuit helmet" @@ -541,13 +544,16 @@ desc = "A MK.II SWAT suit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available Usually reserved for heavy hitter corporate security, this one has a regal finish in Nanotrasen company colors. Better not let the assistants get a hold of it." icon_state = "caparmor" item_state = "capspacesuit" - allowed = list(/obj/item/tank/internals, /obj/item/device/flashlight, /obj/item/gun/energy, /obj/item/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs) armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100) resistance_flags = FIRE_PROOF | ACID_PROOF heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT //this needed to be added a long fucking time ago helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain +/obj/item/clothing/suit/space/hardsuit/captain/Initialize() + . = ..() + allowed = GLOB.security_hardsuit_allowed + //Clown /obj/item/clothing/head/helmet/space/hardsuit/clown name = "cosmohonk hardsuit helmet" @@ -612,7 +618,7 @@ desc = "A hardsuit with built in energy shielding. Will rapidly recharge when not under fire." icon_state = "hardsuit-hos" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/gun, /obj/item/reagent_containers/spray/pepper, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs) + allowed = null armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 100, acid = 100) resistance_flags = FIRE_PROOF | ACID_PROOF var/current_charges = 3 @@ -623,6 +629,11 @@ var/shield_state = "shield-old" var/shield_on = "shield-old" +/obj/item/clothing/suit/space/hardsuit/shielded/Initialize() + . = ..() + if(!allowed) + allowed = GLOB.advanced_hardsuit_allowed + /obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) recharge_cooldown = world.time + recharge_delay if(current_charges > 0) diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index a3b68dc151..a56afb94ae 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -3,7 +3,7 @@ /obj/item/clothing/suit/space/eva/plasmaman name = "EVA plasma envirosuit" - desc = "A special plasma containment suit designed to be space-worthy, as well as worn over other clothing. Like it's smaller counterpart, it can automatically extinguish the wearer in a crisis, and holds twice as many charges." + desc = "A special plasma containment suit designed to be space-worthy, as well as worn over other clothing. Like its smaller counterpart, it can automatically extinguish the wearer in a crisis, and holds twice as many charges." allowed = list(/obj/item/gun, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword, /obj/item/restraints/handcuffs, /obj/item/tank) armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75) resistance_flags = FIRE_PROOF diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 5fa3a5fa35..b1fcfb1e89 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -1,5 +1,5 @@ /obj/item/clothing/suit/armor - allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/device/flashlight/seclite, /obj/item/melee/classic_baton/telescopic, /obj/item/kitchen/knife/combat, /obj/item/tank/internals/emergency_oxygen) + allowed = null body_parts_covered = CHEST cold_protection = CHEST|GROIN min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT @@ -11,6 +11,11 @@ resistance_flags = 0 armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) +/obj/item/clothing/suit/armor/Initialize() + . = ..() + if(!allowed) + allowed = GLOB.security_vest_allowed + /obj/item/clothing/suit/armor/vest name = "armor vest" desc = "A slim Type I armored vest that provides decent protection against most types of damage." @@ -153,10 +158,12 @@ name = "detective's armor vest" desc = "An armored vest with a detective's badge on it." icon_state = "detective-armor" - allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/reagent_containers/spray/pepper, /obj/item/device/flashlight, /obj/item/gun/energy, /obj/item/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/device/detective_scanner, /obj/item/device/taperecorder, /obj/item/melee/classic_baton) resistance_flags = FLAMMABLE dog_fashion = null +/obj/item/clothing/suit/armor/vest/det_suit/Initialize() + . = ..() + allowed = GLOB.detective_vest_allowed //Reactive armor /obj/item/clothing/suit/armor/reactive diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 71c86ca5fb..537dd86639 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -24,7 +24,7 @@ /obj/item/clothing/neck/cloak/hos name = "head of security's cloak" - desc = "Worn by Securistan, ruling the station with an iron fist. It's slightly armored." + desc = "Worn by Securistan, ruling the station with an iron fist." icon_state = "hoscloak" /obj/item/clothing/neck/cloak/qm @@ -33,17 +33,17 @@ /obj/item/clothing/neck/cloak/cmo name = "chief medical officer's cloak" - desc = "Worn by Meditopia, the valiant men and women keeping pestilence at bay. It's slightly shielded from contaminants." + desc = "Worn by Meditopia, the valiant men and women keeping pestilence at bay." icon_state = "cmocloak" /obj/item/clothing/neck/cloak/ce name = "chief engineer's cloak" - desc = "Worn by Engitopia, wielders of an unlimited power. It's slightly shielded against radiation." + desc = "Worn by Engitopia, wielders of an unlimited power." icon_state = "cecloak" /obj/item/clothing/neck/cloak/rd name = "research director's cloak" - desc = "Worn by Sciencia, thaumaturges and researchers of the universe. It's slightly shielded from contaminants." + desc = "Worn by Sciencia, thaumaturges and researchers of the universe." icon_state = "rdcloak" /obj/item/clothing/neck/cloak/cap diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 5211dd7938..7c45bb6192 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -94,11 +94,14 @@ item_state = "det_suit" blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/reagent_containers/spray/pepper, /obj/item/device/flashlight, /obj/item/gun/energy, /obj/item/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/device/detective_scanner, /obj/item/device/taperecorder, /obj/item/melee/classic_baton) armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45) cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS +/obj/item/clothing/suit/det_suit/Initialize() + . = ..() + allowed = GLOB.detective_vest_allowed + /obj/item/clothing/suit/det_suit/grey name = "noir trenchcoat" desc = "A hard-boiled private investigator's grey trenchcoat." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index e50cb8ca6b..8edf1e4ee2 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -134,9 +134,12 @@ item_state = "owl_wings" togglename = "wings" body_parts_covered = ARMS|CHEST - allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/device/flashlight/seclite, /obj/item/melee/classic_baton/telescopic) actions_types = list(/datum/action/item_action/toggle_wings) +/obj/item/clothing/suit/toggle/owlwings/Initialize() + . = ..() + allowed = GLOB.security_vest_allowed + /obj/item/clothing/suit/toggle/owlwings/griffinwings name = "griffon cloak" desc = "A plush white cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive your captives mad." @@ -477,9 +480,12 @@ icon_state = "coatcaptain" item_state = "coatcaptain" armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 50) - allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/ballistic, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/hooded/winterhood/captain +/obj/item/clothing/suit/hooded/wintercoat/captain/Initialize() + . = ..() + allowed = GLOB.security_wintercoat_allowed + /obj/item/clothing/head/hooded/winterhood/captain icon_state = "winterhood_captain" @@ -488,9 +494,12 @@ icon_state = "coatsecurity" item_state = "coatsecurity" armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 45) - allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/ballistic, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/device/flashlight, /obj/item/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/hooded/winterhood/security +/obj/item/clothing/suit/hooded/wintercoat/security/Initialize() + . = ..() + allowed = GLOB.security_wintercoat_allowed + /obj/item/clothing/head/hooded/winterhood/security icon_state = "winterhood_security" @@ -498,7 +507,7 @@ name = "medical winter coat" icon_state = "coatmedical" item_state = "coatmedical" - allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic) + allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 45) hoodtype = /obj/item/clothing/head/hooded/winterhood/medical @@ -509,7 +518,7 @@ name = "science winter coat" icon_state = "coatscience" item_state = "coatscience" - allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic) + allowed = list(/obj/item/device/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/device/healthanalyzer, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0) hoodtype = /obj/item/clothing/head/hooded/winterhood/science @@ -521,7 +530,7 @@ icon_state = "coatengineer" item_state = "coatengineer" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20, fire = 30, acid = 45) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/device/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser) + allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/device/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering /obj/item/clothing/head/hooded/winterhood/engineering @@ -540,7 +549,7 @@ name = "hydroponics winter coat" icon_state = "coathydro" item_state = "coathydro" - allowed = list(/obj/item/reagent_containers/spray/plantbgone, /obj/item/device/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/cultivator, /obj/item/reagent_containers/spray/pestspray, /obj/item/hatchet, /obj/item/storage/bag/plants) + allowed = list(/obj/item/reagent_containers/spray/plantbgone, /obj/item/device/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/cultivator, /obj/item/reagent_containers/spray/pestspray, /obj/item/hatchet, /obj/item/storage/bag/plants, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) hoodtype = /obj/item/clothing/head/hooded/winterhood/hydro /obj/item/clothing/head/hooded/winterhood/hydro diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 20bdd96e1a..13aed37142 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -64,10 +64,11 @@ /obj/item/clothing/accessory/proc/on_uniform_dropped(obj/item/clothing/under/U, user) return -/obj/item/clothing/accessory/AltClick() - if(initial(above_suit)) - above_suit = !above_suit - to_chat(usr, "\The [src] will be worn [above_suit ? "above" : "below"] your suit.") +/obj/item/clothing/accessory/AltClick(mob/user) + if(user.canUseTopic(src, be_close=TRUE)) + if(initial(above_suit)) + above_suit = !above_suit + to_chat(user, "[src] will be worn [above_suit ? "above" : "below"] your suit.") /obj/item/clothing/accessory/examine(mob/user) ..() diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 65a78d0ef0..191c2b442b 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -179,6 +179,16 @@ time = 40 category = CAT_ROBOT +/datum/crafting_recipe/honkbot + name = "Honkbot" + result = /mob/living/simple_animal/bot/honkbot + reqs = list(/obj/item/storage/box/clown = 1, + /obj/item/bodypart/r_arm/robot = 1, + /obj/item/device/assembly/prox_sensor = 1, + /obj/item/bikehorn/ = 1) + time = 40 + category = CAT_ROBOT + /datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but name = "Pneumatic Cannon" result = /obj/item/pneumatic_cannon/ghetto diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index daf7643ff3..a4b2a3106c 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -40,7 +40,7 @@ /datum/round_event_control/proc/canSpawnEvent(var/players_amt, var/gamemode) if(occurrences >= max_occurrences) return FALSE - if(earliest_start >= world.time) + if(earliest_start >= world.time-SSticker.round_start_time) return FALSE if(wizardevent != SSevents.wizardmode) return FALSE diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index 160c42a9a5..2c698cb7dc 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -124,7 +124,14 @@ "You're the vomit to my flyperson.", "You must be liquid dark matter, because you're pulling me closer.", "Not even sorium can drive me away from you.", - "Wanna make like a borg and do some heavy petting?" ) + "Wanna make like a borg and do some heavy petting?", + "Are you powering the station? Because you super matter to me.", + "I wish science could make me a bag of holding you.", + "Let's call the emergency CUDDLE.", + "I must be tripping on BZ, because I saw an angel walk by.", + "Wanna empty out my tool storage?", + "Did you visit the medbay after you fell from heaven?", + "Are you wearing space pants? Wanna not be?" ) /obj/item/valentine/attackby(obj/item/W, mob/user, params) ..() @@ -174,8 +181,9 @@ "A heart-shaped candy that reads: WAG MY TAIL", "A heart-shaped candy that reads: VALIDTINES", "A heart-shaped candy that reads: FACEHUGGER", - "A heart-shaped candy that reads: DOMINATOR", - "A heart-shaped candy that reads: GET TESLA'D", - "A heart-shaped candy that reads: COCK CULT", - "A heart-shaped candy that reads: PET ME") + "A heart-shaped candy that reads: BOX OF HUGS", + "A heart-shaped candy that reads: REEBE MINE", + "A heart-shaped candy that reads: PET ME", + "A heart-shaped candy that reads: TO THE DORMS", + "A heart-shaped candy that reads: DIS MEMBER") icon_state = pick("candyheart", "candyheart2", "candyheart3", "candyheart4") diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm index 7940eaeec8..b651294308 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -4,8 +4,9 @@ name = "Meteor Wave: Normal" typepath = /datum/round_event/meteor_wave weight = 4 - min_players = 5 + min_players = 15 max_occurrences = 3 + earliest_start = 25 MINUTES /datum/round_event/meteor_wave startWhen = 6 @@ -54,9 +55,10 @@ /datum/round_event_control/meteor_wave/threatening name = "Meteor Wave: Threatening" typepath = /datum/round_event/meteor_wave/threatening - weight = 2 - min_players = 5 + weight = 5 + min_players = 20 max_occurrences = 3 + earliest_start = 35 MINUTES /datum/round_event/meteor_wave/threatening wave_name = "threatening" @@ -64,9 +66,10 @@ /datum/round_event_control/meteor_wave/catastrophic name = "Meteor Wave: Catastrophic" typepath = /datum/round_event/meteor_wave/catastrophic - weight = 1 - min_players = 5 + weight = 7 + min_players = 25 max_occurrences = 3 + earliest_start = 45 MINUTES /datum/round_event/meteor_wave/catastrophic wave_name = "catastrophic" diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index d55470e633..50004cda9c 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -169,7 +169,7 @@ var/datum/gas_mixture/GM = T.air if(!GM.gases[/datum/gas/oxygen]) return - GM.gases[/datum/gas/oxygen][MOLES] -= severity * holder.energy + GM.gases[/datum/gas/oxygen][MOLES] = max(GM.gases[/datum/gas/oxygen][MOLES] - severity * holder.energy, 0) GM.garbage_collect() /datum/spacevine_mutation/nitro_eater @@ -184,7 +184,7 @@ var/datum/gas_mixture/GM = T.air if(!GM.gases[/datum/gas/nitrogen]) return - GM.gases[/datum/gas/nitrogen][MOLES] -= severity * holder.energy + GM.gases[/datum/gas/nitrogen][MOLES] = max(GM.gases[/datum/gas/nitrogen][MOLES] - severity * holder.energy, 0) GM.garbage_collect() /datum/spacevine_mutation/carbondioxide_eater @@ -199,7 +199,7 @@ var/datum/gas_mixture/GM = T.air if(!GM.gases[/datum/gas/carbon_dioxide]) return - GM.gases[/datum/gas/carbon_dioxide][MOLES] -= severity * holder.energy + GM.gases[/datum/gas/carbon_dioxide][MOLES] = max(GM.gases[/datum/gas/carbon_dioxide][MOLES] - severity * holder.energy, 0) GM.garbage_collect() /datum/spacevine_mutation/plasma_eater @@ -214,7 +214,7 @@ var/datum/gas_mixture/GM = T.air if(!GM.gases[/datum/gas/plasma]) return - GM.gases[/datum/gas/plasma][MOLES] -= severity * holder.energy + GM.gases[/datum/gas/plasma][MOLES] = max(GM.gases[/datum/gas/plasma][MOLES] - severity * holder.energy, 0) GM.garbage_collect() /datum/spacevine_mutation/thorns diff --git a/code/modules/fields/peaceborg_dampener.dm b/code/modules/fields/peaceborg_dampener.dm index 5e0fbdfb2b..79bd866fca 100644 --- a/code/modules/fields/peaceborg_dampener.dm +++ b/code/modules/fields/peaceborg_dampener.dm @@ -42,7 +42,7 @@ if(R.has_buckled_mobs()) for(var/mob/living/L in R.buckled_mobs) L.visible_message("[L] is knocked off of [R] by the charge in [R]'s chassis induced by [name]!") //I know it's bad. - L.Knockdown(60) + L.Knockdown(10) R.unbuckle_mob(L) do_sparks(5, 0, L) ..() diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 99dbe7102a..eed00add65 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -905,45 +905,47 @@ GLOBAL_LIST_INIT(hallucinations_major, list( alert_type = specific feedback_details += "Type: [alert_type]" switch(alert_type) - if("oxy") - target.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy, override = TRUE) + if("not_enough_oxy") + target.throw_alert(alert_type, /obj/screen/alert/not_enough_oxy, override = TRUE) if("not_enough_tox") - target.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/not_enough_tox, override = TRUE) if("not_enough_co2") - target.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/not_enough_co2, override = TRUE) if("too_much_oxy") - target.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/too_much_oxy, override = TRUE) if("too_much_co2") - target.throw_alert("too_much_co2", /obj/screen/alert/too_much_co2, override = TRUE) - if("tox_in_air") - target.throw_alert("too_much_tox", /obj/screen/alert/too_much_tox, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/too_much_co2, override = TRUE) + if("too_much_tox") + target.throw_alert(alert_type, /obj/screen/alert/too_much_tox, override = TRUE) if("nutrition") if(prob(50)) - target.throw_alert("nutrition", /obj/screen/alert/fat, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/fat, override = TRUE) else - target.throw_alert("nutrition", /obj/screen/alert/starving, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/starving, override = TRUE) if("weightless") - target.throw_alert("weightless", /obj/screen/alert/weightless, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/weightless, override = TRUE) if("fire") - target.throw_alert("fire", /obj/screen/alert/fire, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/fire, override = TRUE) if("temphot") - target.throw_alert("temp", /obj/screen/alert/hot, 3, override = TRUE) + alert_type = "temp" + target.throw_alert(alert_type, /obj/screen/alert/hot, 3, override = TRUE) if("tempcold") - target.throw_alert("temp", /obj/screen/alert/cold, 3, override = TRUE) + alert_type = "temp" + target.throw_alert(alert_type, /obj/screen/alert/cold, 3, override = TRUE) if("pressure") if(prob(50)) - target.throw_alert("pressure", /obj/screen/alert/highpressure, 2, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/highpressure, 2, override = TRUE) else - target.throw_alert("pressure", /obj/screen/alert/lowpressure, 2, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/lowpressure, 2, override = TRUE) //BEEP BOOP I AM A ROBOT if("newlaw") - target.throw_alert("newlaw", /obj/screen/alert/newlaw, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/newlaw, override = TRUE) if("locked") - target.throw_alert("locked", /obj/screen/alert/locked, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/locked, override = TRUE) if("hacked") - target.throw_alert("hacked", /obj/screen/alert/hacked, override = TRUE) + target.throw_alert(alert_type, /obj/screen/alert/hacked, override = TRUE) if("charge") - target.throw_alert("charge",/obj/screen/alert/emptycell, override = TRUE) + target.throw_alert(alert_type,/obj/screen/alert/emptycell, override = TRUE) sleep(duration) target.clear_alert(alert_type, clear_override = TRUE) qdel(src) diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 3b12913fe6..c115ef51af 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -19,7 +19,7 @@ "capsaicin" = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"), "enzyme" = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"), "soysauce" = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"), - "frostoil" = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in it's passage"), + "frostoil" = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in its passage"), "sodiumchloride" = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"), diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index 0699e22547..7c2bacb6bf 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -24,8 +24,6 @@ /obj/machinery/processor/process() ..() - // The irony - // To be clear, if it's grinding, then it can't suck them up if(processing) return var/mob/living/simple_animal/slime/picked_slime @@ -43,125 +41,44 @@ return src.visible_message("[picked_slime] is sucked into [src].") - picked_slime.loc = src + picked_slime.forceMove(src) -/datum/food_processor_process - var/input - var/output - var/time = 40 -/datum/food_processor_process/proc/process_food(loc, what, obj/machinery/processor/processor) - if (src.output && loc && processor) - for(var/i = 0, i < processor.rating_amount, i++) - new src.output(loc) - if (what) - qdel(what) // Note to self: Make this safer - - /* objs */ -/datum/food_processor_process/meat - input = /obj/item/reagent_containers/food/snacks/meat/slab - output = /obj/item/reagent_containers/food/snacks/faggot - -/datum/food_processor_process/bacon - input = /obj/item/reagent_containers/food/snacks/meat/rawcutlet - output = /obj/item/reagent_containers/food/snacks/meat/rawbacon - -/datum/food_processor_process/potatowedges - input = /obj/item/reagent_containers/food/snacks/grown/potato/wedges - output = /obj/item/reagent_containers/food/snacks/fries - -/datum/food_processor_process/sweetpotato - input = /obj/item/reagent_containers/food/snacks/grown/potato/sweet - output = /obj/item/reagent_containers/food/snacks/yakiimo - -/datum/food_processor_process/potato - input = /obj/item/reagent_containers/food/snacks/grown/potato - output = /obj/item/reagent_containers/food/snacks/tatortot - -/datum/food_processor_process/carrot - input = /obj/item/reagent_containers/food/snacks/grown/carrot - output = /obj/item/reagent_containers/food/snacks/carrotfries - -/datum/food_processor_process/soybeans - input = /obj/item/reagent_containers/food/snacks/grown/soybeans - output = /obj/item/reagent_containers/food/snacks/soydope - -/datum/food_processor_process/spaghetti - input = /obj/item/reagent_containers/food/snacks/doughslice - output = /obj/item/reagent_containers/food/snacks/spaghetti - -/datum/food_processor_process/corn - input = /obj/item/reagent_containers/food/snacks/grown/corn - output = /obj/item/reagent_containers/food/snacks/tortilla - -/datum/food_processor_process/parsnip - input = /obj/item/reagent_containers/food/snacks/grown/parsnip - output = /obj/item/reagent_containers/food/snacks/roastparsnip - -/* mobs */ -/datum/food_processor_process/mob/process_food(loc, what, processor) - ..() +/obj/machinery/processor/proc/process_food(datum/food_processor_process/recipe, atom/movable/what) + if (recipe.output && loc && !QDELETED(src)) + for(var/i = 0, i < rating_amount, i++) + new recipe.output(drop_location()) + if (ismob(what)) + var/mob/themob = what + themob.gib(TRUE,TRUE,TRUE) + else + qdel(what) -/datum/food_processor_process/mob/slime/process_food(loc, what, obj/machinery/processor/processor) +/obj/machinery/processor/slime/process_food(datum/food_processor_process/recipe, atom/movable/what) var/mob/living/simple_animal/slime/S = what - var/C = S.cores - if(S.stat != DEAD) - S.loc = loc - S.visible_message("[C] crawls free of the processor!") - return - for(var/i in 1 to (C+processor.rating_amount-1)) - new S.coretype(loc) - SSblackbox.add_details("slime_core_harvested","[replacetext(S.colour," ","_")]") + if (istype(S)) + var/C = S.cores + if(S.stat != DEAD) + S.forceMove(drop_location()) + S.visible_message("[C] crawls free of the processor!") + return + for(var/i in 1 to (C+rating_amount-1)) + var/atom/movable/item = new S.coretype(drop_location()) + adjust_item_drop_location(item) + SSblackbox.add_details("slime_core_harvested","[replacetext(S.colour," ","_")]") ..() -/datum/food_processor_process/mob/slime/input = /mob/living/simple_animal/slime -/datum/food_processor_process/mob/slime/output = null - -/datum/food_processor_process/mob/monkey/process_food(loc, what, processor) - var/mob/living/carbon/monkey/O = what - if (O.client) //grief-proof - O.loc = loc - O.visible_message("Suddenly [O] jumps out from the processor!", \ - "You jump out from the processor!", \ - "You hear chimpering.") - return - var/obj/bucket = new /obj/item/reagent_containers/glass/bucket(loc) - - var/datum/reagent/blood/B = new() - B.holder = bucket - B.volume = 70 - //set reagent data - B.data["donor"] = O - - for(var/thing in O.viruses) - var/datum/disease/D = thing - if(!(D.spread_flags & VIRUS_SPREAD_SPECIAL)) - B.data["viruses"] += D.Copy() - if(O.has_dna()) - B.data["blood_DNA"] = O.dna.unique_enzymes - - if(O.resistances&&O.resistances.len) - B.data["resistances"] = O.resistances.Copy() - bucket.reagents.reagent_list += B - bucket.reagents.update_total() - bucket.on_reagent_change() - //bucket_of_blood.reagents.handle_reactions() //blood doesn't react - ..() - -/datum/food_processor_process/mob/monkey/input = /mob/living/carbon/monkey -/datum/food_processor_process/mob/monkey/output = null /obj/machinery/processor/proc/select_recipe(X) - for (var/Type in subtypesof(/datum/food_processor_process) - /datum/food_processor_process/mob) - var/datum/food_processor_process/P = new Type() - if (!istype(X, P.input)) + for (var/type in subtypesof(/datum/food_processor_process) - /datum/food_processor_process/mob) + var/datum/food_processor_process/recipe = new type() + if (!istype(X, recipe.input) || !istype(src, recipe.required_machine)) continue - return P - return 0 + return recipe /obj/machinery/processor/attackby(obj/item/O, mob/user, params) if(src.processing) - to_chat(user, "The processor is in the process of processing!") + to_chat(user, "[src] is in the process of processing!") return 1 if(default_deconstruction_screwdriver(user, "processor", "processor1", O)) return @@ -205,12 +122,12 @@ return ..() /obj/machinery/processor/attack_hand(mob/user) - if (src.stat != 0) //NOPOWER etc + if(stat & (NOPOWER|BROKEN)) return if(src.processing) - to_chat(user, "The processor is in the process of processing!") + to_chat(user, "[src] is in the process of processing!") return 1 - if(user.a_intent == INTENT_GRAB && user.pulling && (isslime(user.pulling) || ismonkey(user.pulling))) + if(user.a_intent == INTENT_GRAB && user.pulling && select_recipe(user.pulling)) if(user.grab_state < GRAB_AGGRESSIVE) to_chat(user, "You need a better grip to do that!") return @@ -220,7 +137,7 @@ user.stop_pulling() return if(src.contents.len == 0) - to_chat(user, "The processor is empty!") + to_chat(user, "[src] is empty!") return 1 processing = TRUE user.visible_message("[user] turns on [src].", \ @@ -238,12 +155,12 @@ var/offset = prob(50) ? -2 : 2 animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = (total_time / rating_speed)*5) //start shaking sleep(total_time / rating_speed) - for(var/O in src.contents) + for(var/atom/movable/O in src.contents) var/datum/food_processor_process/P = select_recipe(O) if (!P) - log_admin("DEBUG: [O] in processor havent suitable recipe. How do you put it in?") //-rastaf0 + log_admin("DEBUG: [O] in processor havent suitable recipe. How do you put it in?") continue - P.process_food(src.loc, O, src) + process_food(P, O) pixel_x = initial(pixel_x) //return to its spot after shaking processing = FALSE src.visible_message("\The [src] finishes processing.") @@ -267,10 +184,24 @@ return /obj/machinery/processor/slime - name = "Slime processor" + name = "slime processor" desc = "An industrial grinder with a sticker saying appropriated for science department. Keep hands clear of intake area while operating." /obj/machinery/processor/slime/Initialize() . = ..() var/obj/item/circuitboard/machine/B = new /obj/item/circuitboard/machine/processor/slime(null) - B.apply_default_parts(src) \ No newline at end of file + B.apply_default_parts(src) + +/obj/machinery/processor/slime/adjust_item_drop_location(atom/movable/AM) + var/static/list/slimecores = subtypesof(/obj/item/slime_extract) + var/i = 0 + if(!(i = slimecores.Find(AM.type))) // If the item is not found + return + if (i <= 16) // If in the first 12 slots + AM.pixel_x = -12 + ((i%4)*8) + AM.pixel_y = -12 + (round(i/4)*8) + return i + var/ii = i - 16 + AM.pixel_x = -8 + ((ii%3)*8) + AM.pixel_y = -8 + (round(ii/3)*8) + return i diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index efd877b9dc..46e2f3ea5f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -194,6 +194,7 @@ break if(O.name == params["name"]) O.forceMove(drop_location()) + adjust_item_drop_location(O) desired-- return TRUE return FALSE diff --git a/code/modules/food_and_drinks/recipes/processor_recipes.dm b/code/modules/food_and_drinks/recipes/processor_recipes.dm new file mode 100644 index 0000000000..1da81b99ec --- /dev/null +++ b/code/modules/food_and_drinks/recipes/processor_recipes.dm @@ -0,0 +1,50 @@ +/datum/food_processor_process + var/input + var/output + var/time = 40 + var/required_machine = /obj/machinery/processor + +/datum/food_processor_process/meat + input = /obj/item/reagent_containers/food/snacks/meat/slab + output = /obj/item/reagent_containers/food/snacks/faggot + +/datum/food_processor_process/bacon + input = /obj/item/reagent_containers/food/snacks/meat/rawcutlet + output = /obj/item/reagent_containers/food/snacks/meat/rawbacon + +/datum/food_processor_process/potatowedges + input = /obj/item/reagent_containers/food/snacks/grown/potato/wedges + output = /obj/item/reagent_containers/food/snacks/fries + +/datum/food_processor_process/sweetpotato + input = /obj/item/reagent_containers/food/snacks/grown/potato/sweet + output = /obj/item/reagent_containers/food/snacks/yakiimo + +/datum/food_processor_process/potato + input = /obj/item/reagent_containers/food/snacks/grown/potato + output = /obj/item/reagent_containers/food/snacks/tatortot + +/datum/food_processor_process/carrot + input = /obj/item/reagent_containers/food/snacks/grown/carrot + output = /obj/item/reagent_containers/food/snacks/carrotfries + +/datum/food_processor_process/soybeans + input = /obj/item/reagent_containers/food/snacks/grown/soybeans + output = /obj/item/reagent_containers/food/snacks/soydope + +/datum/food_processor_process/spaghetti + input = /obj/item/reagent_containers/food/snacks/doughslice + output = /obj/item/reagent_containers/food/snacks/spaghetti + +/datum/food_processor_process/corn + input = /obj/item/reagent_containers/food/snacks/grown/corn + output = /obj/item/reagent_containers/food/snacks/tortilla + +/datum/food_processor_process/parsnip + input = /obj/item/reagent_containers/food/snacks/grown/parsnip + output = /obj/item/reagent_containers/food/snacks/roastparsnip + +/datum/food_processor_process/mob/slime + input = /mob/living/simple_animal/slime + output = null + required_machine = /obj/machinery/processor/slime \ No newline at end of file diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm index 408da4c401..602cef5f5e 100644 --- a/code/modules/goonchat/browserOutput.dm +++ b/code/modules/goonchat/browserOutput.dm @@ -158,7 +158,7 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic var/list/row = src.connectionHistory[i] if (!row || row.len < 3 || (!row["ckey"] || !row["compid"] || !row["ip"])) //Passed malformed history object return - if (world.IsBanned(row["ckey"], row["compid"], row["ip"])) + if (world.IsBanned(row["ckey"], row["compid"], row["ip"], real_bans_only=TRUE)) found = row break diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 751bc53eac..388a9d6893 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -33,7 +33,7 @@ if(!end_month) end_month = begin_month if(begin_week && begin_weekday) - if(begin_week == ww && begin_weekday == ddd) + if(begin_week == ww && begin_weekday == ddd && begin_month == mm) return TRUE if(end_month > begin_month) //holiday spans multiple months in one year if(mm == end_month) //in final month diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index cd2a584251..97b610a5d2 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -176,7 +176,7 @@ /obj/machinery/computer/holodeck/proc/generate_program_list() for(var/typekey in subtypesof(program_type)) var/area/holodeck/A = locate(typekey) in GLOB.sortedAreas - if(!A || A == offline_program || !A.contents.len) + if(!A || !A.contents.len) continue var/list/info_this = list() info_this["name"] = A.name diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 442b75c972..a1b95065c6 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -48,7 +48,7 @@ Head of Security gloves = /obj/item/clothing/gloves/color/black/hos head = /obj/item/clothing/head/HoS/beret glasses = /obj/item/clothing/glasses/hud/security/sunglasses - suit_store = /obj/item/gun/energy/e_gun + suit_store = /obj/item/gun/energy/e_gun/cx r_pocket = /obj/item/device/assembly/flash/handheld l_pocket = /obj/item/restraints/handcuffs backpack_contents = list(/obj/item/melee/baton/loaded=1) diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 382237e5c3..910cc6fe60 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -74,7 +74,7 @@ if(T.y+height > world.maxy) return - var/list/bounds = maploader.load_map(file(mappath), T.x, T.y, T.z, cropMap=TRUE) + var/list/bounds = maploader.load_map(file(mappath), T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS)) if(!bounds) return diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index 3d0c1ccf1d..8cf6c56037 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -319,6 +319,11 @@ obj/docking_port/stationary/public_mining_dock return for(var/L in landing_turfs) //You land NEAR the base, not IN it. + if(!L) //This happens at map edges + to_chat(user, "Unable to secure a valid docking zone. Please try again in an open area near, but not within the aux. mining base.") + SSshuttle.stationary.Remove(Mport) + qdel(Mport) + return if(istype(get_area(L), /area/shuttle/auxillary_base)) to_chat(user, "The mining shuttle must not land within the mining base itself.") SSshuttle.stationary.Remove(Mport) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 52db510af3..4a0e4db98f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -31,6 +31,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/mob/observetarget = null //The target mob that the ghost is observing. Used as a reference in logout() var/ghost_hud_enabled = 1 //did this ghost disable the on-screen HUD? var/data_huds_on = 0 //Are data HUDs currently enabled? + var/health_scan = FALSE //Are health scans currently enabled? var/list/datahuds = list(DATA_HUD_SECURITY_ADVANCED, DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC) //list of data HUDs shown to ghosts. var/ghost_orbit = GHOST_ORBIT_CIRCLE @@ -671,6 +672,18 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp to_chat(src, "Data HUDs enabled.") data_huds_on = 1 +/mob/dead/observer/verb/toggle_health_scan() + set name = "Toggle Health Scan" + set desc = "Toggles whether you health-scan living beings on click" + set category = "Ghost" + + if(health_scan) //remove old huds + to_chat(src, "Health scan disabled.") + health_scan = FALSE + else + to_chat(src, "Health scan enabled.") + health_scan = TRUE + /mob/dead/observer/verb/restore_ghost_appearance() set name = "Restore Ghost Character" set desc = "Sets your deadchat name and ghost appearance to your \ diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 1d6f7f6484..9cccd4418d 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -130,10 +130,12 @@ /mob/living/carbon/attack_paw(mob/living/carbon/monkey/M) - for(var/thing in viruses) - var/datum/disease/D = thing - if(D.spread_flags & VIRUS_SPREAD_CONTACT_SKIN) - M.ContactContractDisease(D) + + if(can_inject(M, TRUE)) + for(var/thing in viruses) + var/datum/disease/D = thing + if((D.spread_flags & VIRUS_SPREAD_CONTACT_SKIN) && prob(85)) + M.ContactContractDisease(D) for(var/thing in M.viruses) var/datum/disease/D = thing diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 89a30f0733..991fd7a94d 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -75,24 +75,54 @@ /datum/emote/living/carbon/human/wag/run_emote(mob/user, params) . = ..() var/mob/living/carbon/human/H = user - if(.) + if(!H.is_wagging_tail()) H.startTailWag() else H.endTailWag() +/mob/living/carbon/human/proc/is_wagging_tail() + return (dna && dna.species && ("waggingtail_lizard" in dna.species.mutant_bodyparts || "waggingtail_human" in dna.species.mutant_bodyparts)) + /datum/emote/living/carbon/human/wag/can_run_emote(mob/user, status_check = TRUE) if(!..()) return FALSE var/mob/living/carbon/human/H = user - if(H.dna && H.dna.species && ((H.dna.features["tail_lizard"] != "None") || (H.dna.features["tail_human"] != "None") || ("mam_tail" in H.dna.species.mutant_bodyparts))) + if(H.dna && H.dna.species && (("tail_lizard" in H.dna.species.mutant_bodyparts) || ("waggingtail_lizard" in H.dna.species.mutant_bodyparts) || (H.dna.features["tail_human"] != "None"))) return TRUE /datum/emote/living/carbon/human/wag/select_message_type(mob/user) . = ..() var/mob/living/carbon/human/H = user - if(("waggingtail_lizard" in H.dna.species.mutant_bodyparts) || ("waggingtail_human" in H.dna.species.mutant_bodyparts) || ("mam_waggingtail" in H.dna.species.mutant_bodyparts)) + if(("waggingtail_lizard" in H.dna.species.mutant_bodyparts) || ("waggingtail_human" in H.dna.species.mutant_bodyparts)) . = null +//Don't know where else to put this, it's basically an emote +/mob/living/carbon/human/proc/startTailWag() + if(!dna || !dna.species) + return + if("tail_lizard" in dna.species.mutant_bodyparts) + dna.species.mutant_bodyparts -= "tail_lizard" + dna.species.mutant_bodyparts -= "spines" + dna.species.mutant_bodyparts |= "waggingtail_lizard" + dna.species.mutant_bodyparts |= "waggingspines" + if("tail_human" in dna.species.mutant_bodyparts) + dna.species.mutant_bodyparts -= "tail_human" + dna.species.mutant_bodyparts |= "waggingtail_human" + update_body() + +/mob/living/carbon/human/proc/endTailWag() + if(!dna || !dna.species) + return + if("waggingtail_lizard" in dna.species.mutant_bodyparts) + dna.species.mutant_bodyparts -= "waggingtail_lizard" + dna.species.mutant_bodyparts -= "waggingspines" + dna.species.mutant_bodyparts |= "tail_lizard" + dna.species.mutant_bodyparts |= "spines" + if("waggingtail_human" in dna.species.mutant_bodyparts) + dna.species.mutant_bodyparts -= "waggingtail_human" + dna.species.mutant_bodyparts |= "tail_human" + update_body() + /datum/emote/living/carbon/human/wing key = "wing" key_third_person = "wings" @@ -121,41 +151,7 @@ var/mob/living/carbon/human/H = user if(H.dna && H.dna.species && (H.dna.features["wings"] != "None")) return TRUE - -//Don't know where else to put this, it's basically an emote -/mob/living/carbon/human/proc/startTailWag() - if(!dna || !dna.species) - return - if("tail_lizard" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "tail_lizard" - dna.species.mutant_bodyparts -= "spines" - dna.species.mutant_bodyparts |= "waggingtail_lizard" - dna.species.mutant_bodyparts |= "waggingspines" - if("tail_human" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "tail_human" - dna.species.mutant_bodyparts |= "waggingtail_human" - if("mam_tail" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "mam_tail" - dna.species.mutant_bodyparts |= "mam_waggingtail" - update_body() - - -/mob/living/carbon/human/proc/endTailWag() - if(!dna || !dna.species) - return - if("waggingtail_lizard" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "waggingtail_lizard" - dna.species.mutant_bodyparts -= "waggingspines" - dna.species.mutant_bodyparts |= "tail_lizard" - dna.species.mutant_bodyparts |= "spines" - if("waggingtail_human" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "waggingtail_human" - dna.species.mutant_bodyparts |= "tail_human" - if("mam_waggingtail" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "mam_waggingtail" - dna.species.mutant_bodyparts |= "mam_tail" - update_body() - + /mob/living/carbon/human/proc/OpenWings() if(!dna || !dna.species) return diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm new file mode 100644 index 0000000000..5effff5bd3 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -0,0 +1,140 @@ +/datum/species/dullahan + name = "dullahan" + id = "dullahan" + default_color = "FFFFFF" + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NOBREATH,NOHUNGER) + mutant_bodyparts = list("tail_human", "ears", "wings") + default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") + use_skintones = TRUE + mutant_brain = /obj/item/organ/brain/dullahan + mutanteyes = /obj/item/organ/eyes/dullahan + mutanttongue = /obj/item/organ/tongue/dullahan + mutantears = /obj/item/organ/ears/dullahan + blacklisted = TRUE + limbs_id = "human" + skinned_type = /obj/item/stack/sheet/animalhide/human + + var/obj/item/dullahan_relay/myhead + + +/datum/species/dullahan/check_roundstart_eligible() + if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) + return TRUE + return FALSE + +/datum/species/dullahan/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) + . = ..() + H.flags_1 &= ~HEAR_1 + var/obj/item/bodypart/head/head = H.get_bodypart("head") + if(head) + head.drop_limb() + head.flags_1 = HEAR_1 + head.throwforce = 25 + myhead = new /obj/item/dullahan_relay (head, H) + H.put_in_hands(head) + +/datum/species/dullahan/on_species_loss(mob/living/carbon/human/H) + H.flags_1 |= ~HEAR_1 + H.reset_perspective(H) + if(myhead) + var/obj/item/dullahan_relay/DR = myhead + myhead = null + DR.owner = null + qdel(DR) + H.regenerate_limb("head",FALSE) + ..() + +/datum/species/dullahan/spec_life(mob/living/carbon/human/H) + if(QDELETED(myhead)) + myhead = null + H.gib() + var/obj/item/bodypart/head/head2 = H.get_bodypart("head") + if(head2) + myhead = null + H.gib() + +/datum/species/dullahan/proc/update_vision_perspective(mob/living/carbon/human/H) + var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES) + if(eyes) + H.update_tint() + if(eyes.tint) + H.reset_perspective(H) + else + H.reset_perspective(myhead) + +/obj/item/organ/brain/dullahan + decoy_override = TRUE + vital = FALSE + +/obj/item/organ/tongue/dullahan + zone = "abstract" + +/obj/item/organ/tongue/dullahan/TongueSpeech(var/message) + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + if(H.dna.species.id == "dullahan") + var/datum/species/dullahan/D = H.dna.species + if(isobj(D.myhead.loc)) + var/obj/O = D.myhead.loc + O.say(message) + message = "" + return message + +/obj/item/organ/ears/dullahan + zone = "abstract" + +/obj/item/organ/eyes/dullahan + name = "head vision" + desc = "An abstraction." + actions_types = list(/datum/action/item_action/organ_action/dullahan) + zone = "abstract" + +/datum/action/item_action/organ_action/dullahan + name = "Toggle Perspective" + desc = "Switch between seeing normally from your head, or blindly from your body." + +/datum/action/item_action/organ_action/dullahan/Trigger() + . = ..() + var/obj/item/organ/eyes/dullahan/DE = target + if(DE.tint) + DE.tint = 0 + else + DE.tint = INFINITY + + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + if(H.dna.species.id == "dullahan") + var/datum/species/dullahan/D = H.dna.species + D.update_vision_perspective(H) + +/obj/item/dullahan_relay + var/mob/living/owner + flags_1 = HEAR_1 + +/obj/item/dullahan_relay/Initialize(mapload,new_owner) + . = ..() + owner = new_owner + START_PROCESSING(SSobj, src) + +/obj/item/dullahan_relay/process() + if(!istype(loc, /obj/item/bodypart/head) || QDELETED(owner)) + . = PROCESS_KILL + qdel(src) + +/obj/item/dullahan_relay/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) + if(!QDELETED(owner)) + message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode) + to_chat(owner,message) + else + qdel(src) + + +/obj/item/dullahan_relay/Destroy() + if(!QDELETED(owner)) + var/mob/living/carbon/human/H = owner + if(H.dna.species.id == "dullahan") + var/datum/species/dullahan/D = H.dna.species + D.myhead = null + owner.gib() + owner = null + ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 10e2dedfd6..f724b0d617 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -22,6 +22,7 @@ limbs_id = "golem" fixed_mut_color = "aaa" var/info_text = "As an Iron Golem, you don't have any special traits." + var/random_eligible = TRUE //If false, the golem subtype can't be made through golem mutation toxin var/prefix = "Iron" var/list/special_names @@ -44,11 +45,20 @@ name = "Random Golem" blacklisted = FALSE dangerous_existence = FALSE + var/static/list/random_golem_types /datum/species/golem/random/on_species_gain(mob/living/carbon/C, datum/species/old_species) ..() - var/list/golem_types = typesof(/datum/species/golem) - src.type - var/datum/species/golem/golem_type = pick(golem_types) + if(!random_golem_types) + random_golem_types = subtypesof(/datum/species/golem) - type + for(var/V in random_golem_types) + var/datum/species/golem/G = V + if(!initial(G.random_eligible)) + random_golem_types -= G + to_chat(world, "Excluding golem type [initial(G.id)]") + else + to_chat(world, "Allowing golem type [initial(G.id)]") + var/datum/species/golem/golem_type = pick(random_golem_types) var/mob/living/carbon/human/H = C H.set_species(golem_type) to_chat(H, "[initial(golem_type.info_text)]") @@ -241,7 +251,7 @@ heatmod = 1.5 info_text = "As a Wooden Golem, you have plant-like traits: you take damage from extreme temperatures, can be set on fire, and have lower armor than a normal golem. You regenerate when in the light and wither in the darkness." prefix = "Wooden" - special_names = list("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") + special_names = list("Bark", "Willow", "Catalpa", "Woody", "Oak", "Sap", "Twig", "Branch", "Maple", "Birch", "Elm", "Basswood", "Cottonwood", "Larch", "Aspen", "Ash", "Beech", "Buckeye", "Cedar", "Chestnut", "Cypress", "Fir", "Hawthorn", "Hazel", "Hickory", "Ironwood", "Juniper", "Leaf", "Mangrove", "Palm", "Pawpaw", "Pine", "Poplar", "Redwood", "Redbud", "Sassafras", "Spruce", "Sumac", "Trunk", "Walnut", "Yew") human_surname_chance = 0 special_name_chance = 100 @@ -596,7 +606,7 @@ info_text = "As a clockwork golem, you are faster than \ other types of golem (being a machine), and are immune to electric shocks." species_traits = list(NO_UNDERWEAR, NOTRANSSTING, NOBREATH, NOZOMBIE, VIRUSIMMUNE, RADIMMUNE, NOBLOOD, RESISTCOLD, RESISTPRESSURE, PIERCEIMMUNE) - armor = 40 //Reinforced, but also slim to allow for fast movement + armor = 20 //Reinforced, but much less so to allow for fast movement attack_verb = "smash" attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg' sexes = FALSE @@ -638,7 +648,8 @@ has_corpse = TRUE blacklisted = TRUE dangerous_existence = TRUE - + random_eligible = FALSE + /datum/species/golem/cloth name = "Cloth Golem" id = "cloth golem" diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index de0b5efdff..0d309876c7 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -24,9 +24,8 @@ to_chat(C, "[info_text]") C.skin_tone = "albino" C.update_body(0) - if(C.mind) - var/obj/effect/proc_holder/spell/targeted/shapeshift/bat/B = new - C.mind.AddSpell(B) + var/obj/effect/proc_holder/spell/targeted/shapeshift/bat/B = new + C.AddSpell(B) /datum/species/vampire/on_species_loss(mob/living/carbon/C) . = ..() @@ -45,7 +44,7 @@ C.adjustOxyLoss(-4) C.adjustCloneLoss(-4) return - C.blood_volume -= 1.5 + C.blood_volume -= 0.75 if(C.blood_volume <= BLOOD_VOLUME_SURVIVE) to_chat(C, "You ran out of blood!") C.dust() @@ -123,8 +122,4 @@ invocation = "Squeak!" charge_max = 50 cooldown_min = 50 - shapeshift_type = /mob/living/simple_animal/hostile/retaliate/bat - current_shapes = list(/mob/living/simple_animal/hostile/retaliate/bat) - current_casters = list() - possible_shapes = list(/mob/living/simple_animal/hostile/retaliate/bat) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 0d50285859..f69a1973b3 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -207,10 +207,10 @@ if(breath_gases[/datum/gas/tritium]) var/tritium_partialpressure = (breath_gases[/datum/gas/tritium][MOLES]/breath.total_moles())*breath_pressure radiation += tritium_partialpressure/10 - //Brown Gas - if (breath_gases[/datum/gas/brown_gas]) - var/browns_partialpressure = (breath_gases[/datum/gas/brown_gas][MOLES]/breath.total_moles())*breath_pressure - adjustFireLoss(browns_partialpressure/4) + //NITRYL + if (breath_gases[/datum/gas/nitryl]) + var/nitryl_partialpressure = (breath_gases[/datum/gas/nitryl][MOLES]/breath.total_moles())*breath_pressure + adjustFireLoss(nitryl_partialpressure/4) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3a38ae8040..66869aa66a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -105,7 +105,8 @@ //Called when we bump onto a mob /mob/living/proc/MobCollide(mob/M) - + //Even if we don't push/swap places, we "touched" them, so spread fire + spreadFire(M) //Also diseases for(var/thing in viruses) var/datum/disease/D = thing @@ -120,29 +121,6 @@ if(now_pushing) return TRUE - //TODO FOR LATER PRS: Make passing tables an automatic thing for flying and passable objects be determined better to prevent huge amounts of flags being set when mobs fly. - if((movement_type) ^ (M.movement_type)) //Fly past each other. - now_pushing = TRUE - var/old = pass_flags & PASSMOB - var/old_p = pulling? (pulling.pass_flags & PASSMOB) : NONE - var/atom/movable/cached = pulling - pass_flags |= PASSMOB - var/obj/item/I = cached - if(cached && (isliving(cached) || (istype(I) && (I.w_class < WEIGHT_CLASS_BULKY)))) - var/mob/living/l = cached - if(l.mob_size <= mob_size) - cached.pass_flags |= PASSMOB - Move(get_turf(M)) - if(!old) - pass_flags &= ~PASSMOB - if(cached && !old_p) - cached.pass_flags &= ~PASSMOB - cached = null - now_pushing = FALSE - return TRUE - - //Even if we don't push/swap places, we "touched" them, so spread fire - spreadFire(M) //Should stop you pushing a restrained person out of the way if(isliving(M)) @@ -501,21 +479,21 @@ if(isopenturf(loc) && !is_flying()) var/turf/open/T = loc . += T.slowdown - var/static/config_run_delay - var/static/config_walk_delay + var/static/datum/config_entry/number/run_delay/config_run_delay + var/static/datum/config_entry/number/walk_delay/config_walk_delay if(isnull(config_run_delay)) config_run_delay = CONFIG_GET(number/run_delay) config_walk_delay = CONFIG_GET(number/walk_delay) if(ignorewalk) - . += config_run_delay + . += config_run_delay.value_cache else switch(m_intent) if(MOVE_INTENT_RUN) if(drowsyness > 0) . += 6 - . += config_run_delay + . += config_run_delay.value_cache if(MOVE_INTENT_WALK) - . += config_walk_delay + . += config_walk_delay.value_cache /mob/living/proc/makeTrail(turf/target_turf, turf/start, direction) if(!has_gravity()) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 7e3d1cd320..c141460731 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -69,7 +69,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( "÷" = "cords" )) -/mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null) +/mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE) var/static/list/crit_allowed_modes = list(MODE_WHISPER = TRUE, MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) var/static/list/unconscious_allowed_modes = list(MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) @@ -105,7 +105,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( say_dead(original_message) return - if(check_emote(original_message) || !can_speak_basic(original_message)) + if(check_emote(original_message) || !can_speak_basic(original_message, ignore_spam)) return if(in_critical) @@ -270,12 +270,12 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(can_speak_basic(message) && can_speak_vocal(message)) return 1 -/mob/living/proc/can_speak_basic(message) //Check BEFORE handling of xeno and ling channels +/mob/living/proc/can_speak_basic(message, ignore_spam = FALSE) //Check BEFORE handling of xeno and ling channels if(client) if(client.prefs.muted & MUTE_IC) to_chat(src, "You cannot speak in IC (muted).") return 0 - if(client.handle_spam_prevention(message,MUTE_IC)) + if(!ignore_spam && client.handle_spam_prevention(message,MUTE_IC)) return 0 return 1 diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 3758e73688..293f4892e4 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -634,14 +634,17 @@ /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, + /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/melee/transforming/energy/sword/cyborg/saw, /obj/item/roller/robo, /obj/item/card/emag, /obj/item/crowbar/cyborg, + /obj/item/extinguisher/mini, /obj/item/pinpointer/syndicate_cyborg, /obj/item/stack/medical/gauze/cyborg, - /obj/item/gun/medbeam) + /obj/item/gun/medbeam, + /obj/item/organ_storage) ratvar_modules = list( /obj/item/clockwork/slab/cyborg/medical, /obj/item/clockwork/weapon/ratvarian_spear) diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 6c23fed112..0ef926f942 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -282,11 +282,11 @@ var/skin = null //Same as medbot, set to tox or ointment for the respective kits. w_class = WEIGHT_CLASS_NORMAL - /obj/item/firstaid_arm_assembly/New() - ..() - spawn(5) - if(skin) - add_overlay("kit_skin_[skin]") +/obj/item/firstaid_arm_assembly/New() + ..() + spawn(5) + if(skin) + add_overlay("kit_skin_[skin]") /obj/item/storage/firstaid/attackby(obj/item/bodypart/S, mob/user, params) diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index f76042ab69..1ae1c7d3a6 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -8,6 +8,7 @@ anchored = FALSE health = 25 maxHealth = 25 + spacewalk = TRUE radio_key = /obj/item/device/encryptionkey/headset_eng radio_channel = "Engineering" @@ -45,9 +46,6 @@ access_card.access += J.get_access() prev_access = access_card.access -/mob/living/simple_animal/bot/floorbot/Process_Spacemove(movement_dir = 0) - return 1 - /mob/living/simple_animal/bot/floorbot/turn_on() . = ..() update_icon() diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index a33cee8d2d..06c953a2da 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -343,7 +343,7 @@ if(C.stat == DEAD || (C.status_flags & FAKEDEATH)) return FALSE //welp too late for them! - if(!(loc == C.loc) || !(isturf(C.loc) && isturf(loc))) + if(!(loc == C.loc) && !(isturf(C.loc) && isturf(loc))) return FALSE if(C.suiciding) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 5f216b7903..0e6ecf1672 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -10,6 +10,7 @@ speak_chance = 1 icon = 'icons/mob/mob.dmi' speed = 0 + spacewalk = TRUE a_intent = INTENT_HARM stop_automated_movement = 1 status_flags = CANPUSH @@ -85,9 +86,6 @@ else if(src != M) return ..() -/mob/living/simple_animal/hostile/construct/Process_Spacemove(movement_dir = 0) - return 1 - /mob/living/simple_animal/hostile/construct/narsie_act() return diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index cf1b9b08cc..73cdd6f866 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -12,6 +12,8 @@ name = "Syndicate Operative" id_job = "Operative" id_access_list = list(ACCESS_SYNDICATE) + hair_style = "Bald" + facial_hair_style = "Shaved" outfit = /datum/outfit/syndicatesoldiercorpse /datum/outfit/syndicatesoldiercorpse @@ -31,6 +33,8 @@ name = "Syndicate Commando" id_job = "Operative" id_access_list = list(ACCESS_SYNDICATE) + hair_style = "Bald" + facial_hair_style = "Shaved" outfit = /datum/outfit/syndicatecommandocorpse /datum/outfit/syndicatecommandocorpse @@ -50,6 +54,8 @@ name = "Syndicate Stormtrooper" id_job = "Operative" id_access_list = list(ACCESS_SYNDICATE) + hair_style = "Bald" + facial_hair_style = "Shaved" outfit = /datum/outfit/syndicatestormtroopercorpse /datum/outfit/syndicatestormtroopercorpse @@ -67,11 +73,16 @@ /obj/effect/mob_spawn/human/clown/corpse roundstart = FALSE instant = TRUE - + skin_tone = "caucasian1" + hair_style = "Bald" + facial_hair_style = "Shaved" /obj/effect/mob_spawn/human/corpse/pirate name = "Pirate" + skin_tone = "Caucasian1" //all pirates are white because it's easier that way outfit = /datum/outfit/piratecorpse + hair_style = "Bald" + facial_hair_style = "Shaved" /datum/outfit/piratecorpse name = "Pirate Corpse" @@ -94,12 +105,17 @@ /obj/effect/mob_spawn/human/corpse/russian name = "Russian" outfit = /datum/outfit/russiancorpse + hair_style = "Bald" + facial_hair_style = "Shaved" /datum/outfit/russiancorpse name = "Russian Corpse" uniform = /obj/item/clothing/under/soviet shoes = /obj/item/clothing/shoes/jackboots head = /obj/item/clothing/head/bearpelt + gloves = /obj/item/clothing/gloves/color/black + mask = /obj/item/clothing/mask/gas + /obj/effect/mob_spawn/human/corpse/russian/ranged @@ -109,6 +125,7 @@ name = "Ranged Russian Corpse" head = /obj/item/clothing/head/ushanka + /obj/effect/mob_spawn/human/corpse/russian/ranged/trooper outfit = /datum/outfit/russiancorpse/ranged/trooper @@ -119,8 +136,8 @@ shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat ears = /obj/item/device/radio/headset - mask = /obj/item/clothing/mask/balaclava head = /obj/item/clothing/head/helmet/alt + mask = /obj/item/clothing/mask/balaclava /obj/effect/mob_spawn/human/corpse/russian/ranged/officer @@ -131,7 +148,7 @@ name = "Russian Officer Corpse" uniform = /obj/item/clothing/under/rank/security/navyblue/russian suit = /obj/item/clothing/suit/security/officer/russian - shoes = /obj/item/clothing/shoes/laceup + shoes = /obj/item/clothing/shoes/combat ears = /obj/item/device/radio/headset head = /obj/item/clothing/head/ushanka @@ -139,6 +156,9 @@ /obj/effect/mob_spawn/human/corpse/wizard name = "Space Wizard Corpse" outfit = /datum/outfit/wizardcorpse + hair_style = "Bald" + facial_hair_style = "Long Beard" + skin_tone = "Caucasian1" /datum/outfit/wizardcorpse name = "Space Wizard Corpse" @@ -153,6 +173,8 @@ id_job = "Private Security Force" id_access = "Security Officer" outfit = /datum/outfit/nanotrasensoldiercorpse2 + hair_style = "Bald" + facial_hair_style = "Shaved" /datum/outfit/nanotrasensoldiercorpse2 name = "NT Private Security Officer Corpse" diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 865ae48b4c..1829a85344 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -320,6 +320,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians forceMove(summoner.loc) new /obj/effect/temp_visual/guardian/phase(loc) cooldown = world.time + 10 + reset_perspective() return TRUE return FALSE diff --git a/code/modules/mob/living/simple_animal/guardian/types/standard.dm b/code/modules/mob/living/simple_animal/guardian/types/standard.dm index 72bb57513e..4edd9d9e41 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/standard.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/standard.dm @@ -24,7 +24,7 @@ /mob/living/simple_animal/hostile/guardian/punch/AttackingTarget() . = ..() if(isliving(target)) - src.say("[src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry]!!") + say("[battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry]!!", ignore_spam = TRUE) playsound(loc, src.attack_sound, 50, 1, 1) playsound(loc, src.attack_sound, 50, 1, 1) playsound(loc, src.attack_sound, 50, 1, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 6b08d041c0..ef662c8f5a 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -20,6 +20,7 @@ response_harm = "hits" maxHealth = 60 health = 60 + spacewalk = TRUE var/armored = FALSE obj_damage = 60 @@ -67,9 +68,6 @@ maxHealth = 120 armored = TRUE -/mob/living/simple_animal/hostile/bear/Process_Spacemove(movement_dir = 0) - return 1 //No drifting in space for space bears! - /mob/living/simple_animal/hostile/bear/update_icons() ..() if(armored) diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 0213a79e4a..02252254c9 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -28,6 +28,7 @@ response_harm = "squashes" maxHealth = 10 health = 10 + spacewalk = TRUE faction = list("hostile") move_to_delay = 0 obj_damage = 0 @@ -52,11 +53,6 @@ var/static/beehometypecache = typecacheof(/obj/structure/beebox) var/static/hydroponicstypecache = typecacheof(/obj/machinery/hydroponics) - -/mob/living/simple_animal/hostile/poison/bees/Process_Spacemove(movement_dir = 0) - return 1 - - /mob/living/simple_animal/hostile/poison/bees/Initialize() . = ..() generate_bee_visuals() diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 806a916421..4be394e2b5 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -18,6 +18,7 @@ speed = 0 maxHealth = 25 health = 25 + spacewalk = TRUE harm_intent_damage = 8 obj_damage = 50 @@ -36,9 +37,6 @@ pressure_resistance = 200 gold_core_spawnable = 1 -/mob/living/simple_animal/hostile/carp/Process_Spacemove(movement_dir = 0) - return 1 //No drifting in space for space carp! //original comments do not steal - /mob/living/simple_animal/hostile/carp/AttackingTarget() . = ..() if(. && ishuman(target)) diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index 1807e39a71..173c8a6b8d 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -1,44 +1,42 @@ -/mob/living/simple_animal/hostile/faithless - name = "The Faithless" - desc = "The Wish Granter's faith in humanity, incarnate." - icon_state = "faithless" - icon_living = "faithless" - icon_dead = "faithless_dead" - gender = MALE - speak_chance = 0 - turns_per_move = 5 - response_help = "passes through" - response_disarm = "shoves" - response_harm = "hits" - emote_taunt = list("wails") - taunt_chance = 25 - speed = 0 - maxHealth = 80 - health = 80 - stat_attack = UNCONSCIOUS - robust_searching = 1 - - harm_intent_damage = 10 - obj_damage = 50 - melee_damage_lower = 15 - melee_damage_upper = 15 - attacktext = "grips" - attack_sound = 'sound/hallucinations/growl1.ogg' - speak_emote = list("growls") - - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - - faction = list("faithless") - gold_core_spawnable = 1 - -/mob/living/simple_animal/hostile/faithless/Process_Spacemove(movement_dir = 0) - return 1 - -/mob/living/simple_animal/hostile/faithless/AttackingTarget() - . = ..() - if(. && prob(12) && iscarbon(target)) - var/mob/living/carbon/C = target - C.Knockdown(60) - C.visible_message("\The [src] knocks down \the [C]!", \ - "\The [src] knocks you down!") +/mob/living/simple_animal/hostile/faithless + name = "The Faithless" + desc = "The Wish Granter's faith in humanity, incarnate." + icon_state = "faithless" + icon_living = "faithless" + icon_dead = "faithless_dead" + gender = MALE + speak_chance = 0 + turns_per_move = 5 + response_help = "passes through" + response_disarm = "shoves" + response_harm = "hits" + emote_taunt = list("wails") + taunt_chance = 25 + speed = 0 + maxHealth = 80 + health = 80 + spacewalk = TRUE + stat_attack = UNCONSCIOUS + robust_searching = 1 + + harm_intent_damage = 10 + obj_damage = 50 + melee_damage_lower = 15 + melee_damage_upper = 15 + attacktext = "grips" + attack_sound = 'sound/hallucinations/growl1.ogg' + speak_emote = list("growls") + + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + + faction = list("faithless") + gold_core_spawnable = 1 + +/mob/living/simple_animal/hostile/faithless/AttackingTarget() + . = ..() + if(. && prob(12) && iscarbon(target)) + var/mob/living/carbon/C = target + C.Knockdown(60) + C.visible_message("\The [src] knocks down \the [C]!", \ + "\The [src] knocks you down!") diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index aa288e52d7..3ea1be6f03 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -206,6 +206,7 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = 1500 + poison_type = "frost_oil" color = rgb(114,228,250) gold_core_spawnable = 0 @@ -214,6 +215,7 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = 1500 + poison_type = "frost_oil" color = rgb(114,228,250) gold_core_spawnable = 0 @@ -222,6 +224,7 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = 1500 + poison_type = "frost_oil" color = rgb(114,228,250) gold_core_spawnable = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index b81d58b329..7f12e684e8 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -36,6 +36,7 @@ Difficulty: Medium desc = "Guardians of the necropolis." health = 2500 maxHealth = 2500 + spacewalk = TRUE attacktext = "chomps" attack_sound = 'sound/magic/demon_attack1.ogg' icon_state = "dragon" @@ -97,9 +98,6 @@ Difficulty: Medium if(!swooping) ..() -/mob/living/simple_animal/hostile/megafauna/dragon/Process_Spacemove(movement_dir = 0) - return 1 - /mob/living/simple_animal/hostile/megafauna/dragon/OpenFire() if(swooping) return @@ -385,6 +383,7 @@ Difficulty: Medium melee_damage_lower = 30 damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) loot = list() + crusher_loot = list() butcher_results = list(/obj/item/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) /mob/living/simple_animal/hostile/megafauna/dragon/lesser/grant_achievement(medaltype,scoretype) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 5b987edc0e..ee0c16a768 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -21,6 +21,7 @@ Difficulty: Medium name = "Legion" health = 800 maxHealth = 800 + spacewalk = TRUE icon_state = "legion" icon_living = "legion" desc = "One of many." @@ -139,9 +140,6 @@ Difficulty: Medium loot = list(/obj/structure/closet/crate/necropolis/tendril) ..() -/mob/living/simple_animal/hostile/megafauna/legion/Process_Spacemove(movement_dir = 0) - return 1 - /obj/item/device/gps/internal/legion icon_state = null gpstag = "Echoing Signal" diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index f058464981..8ad8babb36 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -1,68 +1,66 @@ -/mob/living/simple_animal/hostile/pirate - name = "Pirate" - desc = "Does what he wants cause a pirate is free." - icon = 'icons/mob/simple_human.dmi' - icon_state = "piratemelee" - icon_living = "piratemelee" - icon_dead = "piratemelee_dead" - speak_chance = 0 - turns_per_move = 5 - response_help = "pushes" - response_disarm = "shoves" - response_harm = "hits" - speed = 0 - maxHealth = 100 - health = 100 - - harm_intent_damage = 5 - obj_damage = 60 - melee_damage_lower = 30 - melee_damage_upper = 30 - attacktext = "slashes" - attack_sound = 'sound/weapons/bladeslice.ogg' - - atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 15 - speak_emote = list("yarrs") - loot = list(/obj/effect/mob_spawn/human/corpse/pirate, +/mob/living/simple_animal/hostile/pirate + name = "Pirate" + desc = "Does what he wants cause a pirate is free." + icon = 'icons/mob/simple_human.dmi' + icon_state = "piratemelee" + icon_living = "piratemelee" + icon_dead = "piratemelee_dead" + speak_chance = 0 + turns_per_move = 5 + response_help = "pushes" + response_disarm = "shoves" + response_harm = "hits" + speed = 0 + maxHealth = 100 + health = 100 + spacewalk = TRUE + + harm_intent_damage = 5 + obj_damage = 60 + melee_damage_lower = 30 + melee_damage_upper = 30 + attacktext = "slashes" + attack_sound = 'sound/weapons/bladeslice.ogg' + + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + unsuitable_atmos_damage = 15 + speak_emote = list("yarrs") + loot = list(/obj/effect/mob_spawn/human/corpse/pirate, /obj/item/melee/transforming/energy/sword/pirate) - del_on_death = 1 - faction = list("pirate") - -/mob/living/simple_animal/hostile/pirate/ranged - name = "Pirate Gunner" - icon_state = "pirateranged" - icon_living = "pirateranged" - icon_dead = "piratemelee_dead" - projectilesound = 'sound/weapons/laser.ogg' - ranged = 1 - rapid = 1 - retreat_distance = 5 - minimum_distance = 5 - projectiletype = /obj/item/projectile/beam/laser - loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged, - /obj/item/gun/energy/laser) - -/mob/living/simple_animal/hostile/pirate/space - name = "Space Pirate" - icon_state = "piratespace" - icon_living = "piratespace" - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - speed = 1 - -/mob/living/simple_animal/hostile/pirate/space/ranged - name = "Space Pirate Gunner" - icon_state = "piratespaceranged" - icon_living = "piratespaceranged" - projectilesound = 'sound/weapons/laser.ogg' - ranged = 1 - rapid = 1 - retreat_distance = 5 - minimum_distance = 5 - projectiletype = /obj/item/projectile/beam/laser - loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged, - /obj/item/gun/energy/laser) - -/mob/living/simple_animal/hostile/pirate/space/Process_Spacemove(movement_dir = 0) - return 1 + del_on_death = 1 + faction = list("pirate") + +/mob/living/simple_animal/hostile/pirate/ranged + name = "Pirate Gunner" + icon_state = "pirateranged" + icon_living = "pirateranged" + icon_dead = "piratemelee_dead" + projectilesound = 'sound/weapons/laser.ogg' + ranged = 1 + rapid = 1 + retreat_distance = 5 + minimum_distance = 5 + projectiletype = /obj/item/projectile/beam/laser + loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged, + /obj/item/gun/energy/laser) + +/mob/living/simple_animal/hostile/pirate/space + name = "Space Pirate" + icon_state = "piratespace" + icon_living = "piratespace" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + speed = 1 + +/mob/living/simple_animal/hostile/pirate/space/ranged + name = "Space Pirate Gunner" + icon_state = "piratespaceranged" + icon_living = "piratespaceranged" + projectilesound = 'sound/weapons/laser.ogg' + ranged = 1 + rapid = 1 + retreat_distance = 5 + minimum_distance = 5 + projectiletype = /obj/item/projectile/beam/laser + loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged, + /obj/item/gun/energy/laser) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index 6a96c06978..2fb4eb61bd 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -12,6 +12,7 @@ speak_chance = 0 maxHealth = 15 health = 15 + spacewalk = TRUE see_in_dark = 10 harm_intent_damage = 6 melee_damage_lower = 6 @@ -34,4 +35,5 @@ //Space bats need no air to fly in. atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 \ No newline at end of file + minbodytemp = 0 + diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm index d6d46b1a46..d050b4143d 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -23,7 +23,7 @@ environment_smash = ENVIRONMENT_SMASH_NONE del_on_death = 0 -/mob/living/simple_animal/hostile/retaliate/nanotrasenpeace +/mob/living/simple_animal/hostile/retaliate/nanotrasenpeace //this should be in a different file name = "Nanotrasen Private Security Officer" desc = "An officer part of Nanotrasen's private security force." icon = 'icons/mob/simple_human.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index b207b82e26..8fc327702b 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -45,8 +45,6 @@ sight = SEE_SELF|SEE_MOBS|SEE_OBJS|SEE_TURFS anchored = TRUE - gold_core_spawnable = 1 - var/cannot_be_seen = 1 var/mob/living/creator = null diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 11331e7ab7..a17ec0ff66 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -55,6 +55,7 @@ status_flags = 0 maxHealth = 170 health = 170 + spacewalk = TRUE /mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/item/projectile/Proj) if(!Proj) @@ -75,9 +76,6 @@ loot = list(/obj/effect/gibspawner/human) speed = 1 -/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(movement_dir = 0) - return 1 - /mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper icon_state = "syndicatemeleestormtrooper" icon_living = "syndicatemeleestormtrooper" @@ -106,11 +104,9 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 speed = 1 + spacewalk = TRUE loot = list(/obj/effect/gibspawner/human) -/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(movement_dir = 0) - return 1 - /mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper icon_state = "syndicaterangedstormtrooper" icon_living = "syndicaterangedstormtrooper" diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index c3eff66d18..881215e97b 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -109,7 +109,7 @@ w_class = WEIGHT_CLASS_NORMAL layer = MOB_LAYER origin_tech = "biotech=6" - var/list/banned_mobs() + var/list/banned_mobs /obj/item/asteroid/fugu_gland/afterattack(atom/target, mob/user, proximity_flag) if(proximity_flag && isanimal(target)) diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index d7c4f0cb03..ab2126e7b9 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -8,6 +8,7 @@ icon_living = "shade" maxHealth = 50 health = 50 + spacewalk = TRUE healable = 0 speak_emote = list("hisses") emote_hear = list("wails.","screeches.") @@ -40,9 +41,6 @@ return 0 return ..() -/mob/living/simple_animal/shade/Process_Spacemove(movement_dir = 0) - return TRUE //this doesn't make much sense; you'd thing TRUE would mean it'd process spacemove but it means it doesn't - /mob/living/simple_animal/shade/attack_animal(mob/living/simple_animal/M) if(isconstruct(M)) var/mob/living/simple_animal/hostile/construct/C = M diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 37dd143e96..4a83f5df89 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -7,6 +7,8 @@ GLOB.living_mob_list -= src GLOB.all_clockwork_mobs -= src GLOB.mob_directory -= tag + for (var/alert in alerts) + clear_alert(alert, TRUE) if(observers && observers.len) for(var/M in observers) var/mob/dead/observe = M diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 5260ace246..497f0536a0 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -46,6 +46,7 @@ var/slurring = 0 //Carbon var/cultslurring = 0 //Carbon var/real_name = null + var/spacewalk = FALSE var/druggy = 0 //Carbon var/confused = 0 //Carbon var/resting = 0 //Carbon diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index e99a4e0ae8..ad38ba98ac 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -297,7 +297,7 @@ ///For moving in space ///return TRUE for movement 0 for none /mob/Process_Spacemove(movement_dir = 0) - if(..()) + if(spacewalk || ..()) return TRUE var/atom/movable/backup = get_spacemove_backup() if(backup) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index d17b79eddc..18ca605965 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -461,7 +461,11 @@ qdel(src) /mob/proc/become_overmind(starting_points = 60) - var/mob/camera/blob/B = new /mob/camera/blob(loc, starting_points) + var/turf/T = get_turf(loc) //just to avoid messing up in lockers + var/area/A = get_area(T) + if(((A && !A.blob_allowed) || !(T.z in GLOB.station_z_levels)) && LAZYLEN(GLOB.blobstart)) + T = get_turf(pick(GLOB.blobstart)) + var/mob/camera/blob/B = new /mob/camera/blob(T, starting_points) B.key = key . = B qdel(src) diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index 4396e0e544..41dce90997 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -130,7 +130,7 @@ for(var/A in GLOB.ntnet_global.available_station_software) var/datum/computer_file/program/P = A // Only those programs our user can run will show in the list - if(!P.can_run(user,transfer = 1)) + if(!P.can_run(user,transfer = 1) || hard_drive.find_file_by_name(P.filename)) continue all_entries.Add(list(list( "filename" = P.filename, @@ -144,6 +144,8 @@ var/list/hacked_programs[0] for(var/S in GLOB.ntnet_global.available_antag_software) var/datum/computer_file/program/P = S + if(hard_drive.find_file_by_name(P.filename)) + continue data["hackedavailable"] = 1 hacked_programs.Add(list(list( "filename" = P.filename, diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm index 5a65a58d76..29552c8a47 100644 --- a/code/modules/ninja/energy_katana.dm +++ b/code/modules/ninja/energy_katana.dm @@ -28,6 +28,10 @@ spark_system.set_up(5, 0, src) spark_system.attach(src) +/obj/item/energy_katana/attack_self(mob/user) + dash_toggled = !dash_toggled + to_chat(user, "You [dash_toggled ? "enable" : "disable"] the dash function on [src].") + /obj/item/energy_katana/afterattack(atom/target, mob/user, proximity_flag, click_parameters) if(dash_toggled) jaunt.Teleport(user, target) @@ -99,5 +103,3 @@ max_charges = 3 charge_rate = 30 recharge_sound = null - - diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index ec23f5b7f8..dc63253681 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -48,24 +48,31 @@ By design, d1 is the smallest direction and d2 is the highest var/obj/item/stack/cable_coil/stored var/cable_color = "red" + color = "#ff0000" /obj/structure/cable/yellow cable_color = "yellow" + color = "#ffff00" /obj/structure/cable/green cable_color = "green" + color = "#00aa00" /obj/structure/cable/blue cable_color = "blue" + color = "#1919c8" /obj/structure/cable/pink cable_color = "pink" + color = "#ff3cc8" /obj/structure/cable/orange cable_color = "orange" + color = "#ff8000" /obj/structure/cable/cyan cable_color = "cyan" + color = "#00ffff" /obj/structure/cable/white cable_color = "white" @@ -123,6 +130,7 @@ By design, d1 is the smallest direction and d2 is the highest icon_state = "[d1]-[d2]-f" else icon_state = "[d1]-[d2]" + color = null add_atom_colour(cable_color, FIXED_COLOUR_PRIORITY) /obj/structure/cable/proc/handlecable(obj/item/W, mob/user, params) @@ -523,6 +531,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai /obj/item/stack/cable_coil/update_icon() icon_state = "[initial(item_state)][amount < 3 ? amount : ""]" name = "cable [amount < 3 ? "piece" : "coil"]" + color = null add_atom_colour(item_color, FIXED_COLOUR_PRIORITY) /obj/item/stack/cable_coil/attack_hand(mob/user) @@ -743,30 +752,38 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai /obj/item/stack/cable_coil/red item_color = "red" + color = "#ff0000" /obj/item/stack/cable_coil/yellow item_color = "yellow" + color = "#ffff00" /obj/item/stack/cable_coil/blue item_color = "blue" + color = "#1919c8" /obj/item/stack/cable_coil/green item_color = "green" + color = "#00aa00" /obj/item/stack/cable_coil/pink item_color = "pink" + color = "#ff3ccd" /obj/item/stack/cable_coil/orange item_color = "orange" + color = "#ff8000" /obj/item/stack/cable_coil/cyan item_color = "cyan" + color = "#00ffff" /obj/item/stack/cable_coil/white item_color = "white" /obj/item/stack/cable_coil/random item_color = null + color = "#ffffff" /obj/item/stack/cable_coil/random/five amount = 5 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 3f70f4f8ff..d89da3e37b 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -101,21 +101,32 @@ /obj/item/projectile/proc/on_hit(atom/target, blocked = FALSE) var/turf/target_loca = get_turf(target) + + var/hitx + var/hity + if(target == original) + hitx = target.pixel_x + p_x - 16 + hity = target.pixel_y + p_y - 16 + else + hitx = target.pixel_x + rand(-8, 8) + hity = target.pixel_y + rand(-8, 8) + if(!nodamage && (damage_type == BRUTE || damage_type == BURN) && iswallturf(target_loca) && prob(75)) var/turf/closed/wall/W = target_loca - var/mutable_appearance/decal = mutable_appearance('icons/effects/effects.dmi', "bullet_hole", TURF_DECAL_LAYER) - if(target == original) - decal.pixel_x = target.pixel_x + p_x - 16 - decal.pixel_y = target.pixel_y + p_y - 16 - else - decal.pixel_x = target.pixel_x + rand(2, -2) - decal.pixel_y = target.pixel_y + rand(2, -2) - W.add_damage_decal(decal) + if(impact_effect_type) + new impact_effect_type(target_loca, hitx, hity) + + W.add_dent(WALL_DENT_SHOT, hitx, hity) + + return 0 + if(!isliving(target)) if(impact_effect_type) - new impact_effect_type(target_loca, target, src) + new impact_effect_type(target_loca, hitx, hity) return 0 + var/mob/living/L = target + if(blocked != 100) // not completely blocked if(damage && L.blood_volume && damage_type == BRUTE) var/splatter_dir = dir @@ -128,7 +139,7 @@ if(prob(33)) L.add_splatter_floor(target_loca) else if(impact_effect_type) - new impact_effect_type(target_loca, target, src) + new impact_effect_type(target_loca, hitx, hity) var/organ_hit_text = "" var/limb_hit = L.check_limb_hit(def_zone)//to get the correct message info. diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index f1da846ebc..7c764e26cb 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -62,11 +62,13 @@ /obj/machinery/chem_master/attackby(obj/item/I, mob/user, params) if(default_deconstruction_screwdriver(user, "mixer0_nopower", "mixer0", I)) if(beaker) - beaker.loc = src.loc + beaker.forceMove(drop_location()) + adjust_item_drop_location(beaker) beaker = null reagents.clear_reagents() if(bottle) - bottle.loc = src.loc + bottle.forceMove(drop_location()) + adjust_item_drop_location(bottle) bottle = null return @@ -153,7 +155,8 @@ switch(action) if("eject") if(beaker) - beaker.loc = src.loc + beaker.forceMove(drop_location()) + adjust_item_drop_location(beaker) beaker = null reagents.clear_reagents() icon_state = "mixer0" @@ -161,7 +164,8 @@ if("ejectp") if(bottle) - bottle.loc = src.loc + bottle.forceMove(drop_location()) + adjust_item_drop_location(bottle) bottle = null . = TRUE @@ -214,16 +218,15 @@ if(bottle && bottle.contents.len < bottle.storage_slots) P = new/obj/item/reagent_containers/pill(bottle) else - P = new/obj/item/reagent_containers/pill(src.loc) + P = new/obj/item/reagent_containers/pill(drop_location()) P.name = trim("[name] pill") - P.pixel_x = rand(-7, 7) //random position - P.pixel_y = rand(-7, 7) + adjust_item_drop_location(P) reagents.trans_to(P,vol_each) else var/name = stripped_input(usr, "Name:", "Name your pack!", reagents.get_master_reagent_name(), MAX_NAME_LEN) if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) return - var/obj/item/reagent_containers/food/condiment/pack/P = new/obj/item/reagent_containers/food/condiment/pack(src.loc) + var/obj/item/reagent_containers/food/condiment/pack/P = new/obj/item/reagent_containers/food/condiment/pack(drop_location()) P.originalname = name P.name = trim("[name] pack") @@ -248,10 +251,9 @@ var/obj/item/reagent_containers/pill/P for(var/i = 0; i < amount; i++) - P = new/obj/item/reagent_containers/pill/patch(src.loc) + P = new/obj/item/reagent_containers/pill/patch(drop_location()) P.name = trim("[name] patch") - P.pixel_x = rand(-7, 7) //random position - P.pixel_y = rand(-7, 7) + adjust_item_drop_location(P) reagents.trans_to(P,vol_each) . = TRUE @@ -264,7 +266,7 @@ var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN) if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) return - var/obj/item/reagent_containers/food/condiment/P = new(src.loc) + var/obj/item/reagent_containers/food/condiment/P = new(drop_location()) P.originalname = name P.name = trim("[name] bottle") reagents.trans_to(P, P.volume) @@ -280,15 +282,15 @@ var/obj/item/reagent_containers/glass/bottle/P for(var/i = 0; i < amount_full; i++) - P = new/obj/item/reagent_containers/glass/bottle(src.loc) - P.pixel_x = rand(-7, 7) //random position - P.pixel_y = rand(-7, 7) + P = new/obj/item/reagent_containers/glass/bottle(drop_location()) P.name = trim("[name] bottle") + adjust_item_drop_location(P) reagents.trans_to(P, 30) if(vol_part) - P = new/obj/item/reagent_containers/glass/bottle(src.loc) + P = new/obj/item/reagent_containers/glass/bottle(drop_location()) P.name = trim("[name] bottle") + adjust_item_drop_location(P) reagents.trans_to(P, vol_part) . = TRUE @@ -328,6 +330,29 @@ return 0 +/obj/machinery/chem_master/adjust_item_drop_location(atom/movable/AM) // Special version for chemmasters and condimasters + if (AM == beaker) + AM.pixel_x = -8 + AM.pixel_y = 8 + return null + else if (AM == bottle) + if (length(bottle.contents)) + AM.pixel_x = -13 + else + AM.pixel_x = -7 + AM.pixel_y = -8 + return null + else + var/md5 = md5(AM.name) +#if DM_VERSION > 511 +#warn Refactor the loop in /obj/machinery/chem_master/adjust_item_drop_location() to make use of 512's list-like access to characters in a string +#endif + for (var/i in 1 to 32) + . += hex2num(copytext(md5,i,i+1)) + . = . % 9 + AM.pixel_x = ((.%3)*6) + AM.pixel_y = -8 + (round( . / 3)*8) + /obj/machinery/chem_master/condimaster name = "CondiMaster 3000" desc = "Used to create condiments and other cooking supplies." diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm index 63f7e48281..dc92dd3b52 100644 --- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm +++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm @@ -1,6 +1,6 @@ /obj/machinery/smoke_machine - name = "Smoke Machine" - desc = "Seriously man?" + name = "smoke machine" + desc = "A machine with a centrifuge installed into it. It produces smoke with any reagents you put into the machine." icon = 'icons/obj/chemical.dmi' icon_state = "smoke0" density = TRUE @@ -11,9 +11,9 @@ var/cooldown = 0 var/screen = "home" var/useramount = 30 // Last used amount - var/volume = 1000 + var/volume = 300 var/setting = 3 - var/list/possible_settings = list(3,6,9,12,15) + var/list/possible_settings = list(3,6,9) /datum/effect_system/smoke_spread/chem/smoke_machine/set_up(datum/reagents/carry, setting = 3, efficiency = 10, loc) amount = setting @@ -66,7 +66,7 @@ /obj/machinery/smoke_machine/attackby(obj/item/I, mob/user, params) add_fingerprint(user) - if(istype(I, /obj/item/reagent_containers)) + if(istype(I, /obj/item/reagent_containers) && I.is_open_container()) var/obj/item/reagent_containers/RC = I var/units = RC.reagents.trans_to(src, RC.amount_per_transfer_from_this) if(units) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index c93ca30841..e2be37f46f 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1175,10 +1175,10 @@ M.AdjustUnconscious(-20, 0) M.adjustStaminaLoss(-0.5*REM, 0) -/datum/reagent/browngas - name = "Brown gas" - id = "brown_gas" - description = "A strange brown gas that makes you feel faster" +/datum/reagent/nitryl + name = "Nitryl" + id = "no2" + description = "A highly reactive gas that makes you feel faster" reagent_state = GAS metabolization_rate = REAGENTS_METABOLISM color = "90560B" diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 3a5f1c3f96..28a07d5862 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -199,7 +199,6 @@ Borg Shaker to_chat(usr, "It is currently empty! Please allow some time for the synthesizer to produce more.") /obj/item/reagent_containers/borghypo/borgshaker/hacked - ..() name = "cyborg shaker" desc = "Will mix drinks that knock them dead." icon = 'icons/obj/drinks.dmi' diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index c0cd009104..d6fad81f64 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -73,8 +73,8 @@ list_reagents = list("chloralhydrate" = 15) /obj/item/reagent_containers/glass/bottle/charcoal - name = "antitoxin bottle" - desc = "A small bottle of charcoal." + name = "charcoal bottle" + desc = "A small bottle of charcoal, which removes toxins and other chemicals from the bloodstream." list_reagents = list("charcoal" = 30) /obj/item/reagent_containers/glass/bottle/mutagen diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 4b7ba22574..80efa8e293 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -217,7 +217,7 @@ list_reagents = list("silver_sulfadiazine" = 50) /obj/item/reagent_containers/glass/beaker/large/charcoal - name = "antitoxin reserve tank" + name = "charcoal reserve tank" list_reagents = list("charcoal" = 50) /obj/item/reagent_containers/glass/beaker/large/epinephrine diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 2fe94933d7..14346ee13b 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -315,13 +315,21 @@ category = list ("Misc. Machinery") /datum/design/board/processor - name = "Machine Design (Processor Board)" - desc = "The circuit board for a processor." + name = "Machine Design (Food Processor Board)" + desc = "The circuit board for a food processor." id = "processor" req_tech = list("programming" = 1) build_path = /obj/item/circuitboard/machine/processor category = list ("Misc. Machinery") +/datum/design/board/slimeprocessor + name = "Machine Design (Slime Processor Board)" + desc = "The circuit board for a slime processor." + id = "slimeprocessor" + req_tech = list("programming" = 1, "plasmatech" = 1) + build_path = /obj/item/circuitboard/machine/processor/slime + category = list ("Misc. Machinery") + /datum/design/board/recycler name = "Machine Design (Recycler Board)" desc = "The circuit board for a recycler." diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index cca88a0dda..83957a7285 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -196,6 +196,7 @@ to_chat(SM, "All at once it makes sense: you know what you are and who you are! Self awareness is yours!") to_chat(SM, "You are grateful to be self aware and owe [user.real_name] a great debt. Serve [user.real_name], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.") to_chat(user, "[SM] accepts [src] and suddenly becomes attentive and aware. It worked!") + SM.copy_known_languages_from(user, TRUE) qdel(src) else to_chat(user, "[SM] looks interested for a moment, but then looks back down. Maybe you should try again later.") diff --git a/code/modules/ruins/spaceruin_code/oldstation.dm b/code/modules/ruins/spaceruin_code/oldstation.dm index 2365c0c773..edea4fe0c1 100644 --- a/code/modules/ruins/spaceruin_code/oldstation.dm +++ b/code/modules/ruins/spaceruin_code/oldstation.dm @@ -39,7 +39,7 @@ /obj/item/paper/fluff/ruins/oldstation/protoinv name = "Laboratory Inventory" info = "*Inventory*

(1) Prototype Hardsuit

(1)Health Analyser

(1)Prototype Energy Gun

(1)Singularity Generation Disk

DO NOT REMOVE WITHOUT \ - THE CAPTAIN AND RESEARCH DIRECTOR'S AUTHORISATION" + THE CAPTAIN AND RESEARCH DIRECTOR'S AUTHORISATION" /obj/item/paper/fluff/ruins/oldstation/report name = "Crew Reawakening Report" diff --git a/code/modules/server_tools/nudge.py b/code/modules/server_tools/nudge.py deleted file mode 100644 index 3d94ccdad7..0000000000 --- a/code/modules/server_tools/nudge.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python3 -import sys -import pickle -import socket - - -def pack(): - data = sys.argv[1] - - nudge(str.encode(data)) - - -def nudge(data): - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - with open('config/server_to_tool_bridge_port.txt', 'r') as myfile: - portstr=myfile.read().replace('\n', '').strip() - s.connect(("localhost", int(portstr))) - s.send(data) - s.close() - -if __name__ == "__main__" and len(sys.argv) > 1: - pack() diff --git a/code/modules/server_tools/server_tools.dm b/code/modules/server_tools/server_tools.dm deleted file mode 100644 index 9cacb4542f..0000000000 --- a/code/modules/server_tools/server_tools.dm +++ /dev/null @@ -1,93 +0,0 @@ -GLOBAL_VAR_INIT(reboot_mode, REBOOT_MODE_NORMAL) //if the world should request the service to kill it at reboot -GLOBAL_PROTECT(reboot_mode) - -/world/proc/RunningService() - return params[SERVICE_WORLD_PARAM] - -/proc/ServiceVersion() - if(world.RunningService()) - return world.params[SERVICE_VERSION_PARAM] - -/world/proc/ExportService(command) - return RunningService() && shell("python code/modules/server_tools/nudge.py \"[command]\"") == 0 - -/world/proc/IRCBroadcast(msg) - ExportService("[SERVICE_REQUEST_IRC_BROADCAST] [msg]") - -/world/proc/ServiceEndProcess() - log_world("Sending shutdown request!"); - sleep(1) //flush the buffers - ExportService(SERVICE_REQUEST_KILL_PROCESS) - -//called at the exact moment the world is supposed to reboot -/world/proc/ServiceReboot() - switch(GLOB.reboot_mode) - if(REBOOT_MODE_HARD) - to_chat(src, "Hard reboot triggered, you will automatically reconnect...") - ServiceEndProcess() - if(REBOOT_MODE_SHUTDOWN) - to_chat(src, "The server is shutting down...") - ServiceEndProcess() - else - ExportService(SERVICE_REQUEST_WORLD_REBOOT) //just let em know - -/world/proc/ServiceCommand(list/params) - var/sCK = RunningService() - var/their_sCK = params[SERVICE_CMD_PARAM_KEY] - - if(!their_sCK || their_sCK != sCK) - return "Invalid comms key!"; - - var/command = params[SERVICE_CMD_PARAM_COMMAND] - if(!command) - return "No command!" - - var/static/last_irc_status = 0 - switch(command) - if(SERVICE_CMD_HARD_REBOOT) - if(GLOB.reboot_mode != REBOOT_MODE_HARD) - GLOB.reboot_mode = REBOOT_MODE_HARD - log_world("Hard reboot requested by service") - message_admins("The world will hard reboot at the end of the game. Requested by service.") - SSblackbox.set_val("service_hard_restart", TRUE) - if(SERVICE_CMD_GRACEFUL_SHUTDOWN) - if(GLOB.reboot_mode != REBOOT_MODE_SHUTDOWN) - GLOB.reboot_mode = REBOOT_MODE_SHUTDOWN - log_world("Shutdown requested by service") - message_admins("The world will shutdown at the end of the game. Requested by service.") - SSblackbox.set_val("service_shutdown", TRUE) - if(SERVICE_CMD_WORLD_ANNOUNCE) - var/msg = params["message"] - if(!istext(msg) || !msg) - return "No message set!" - to_chat(src, "[html_encode(msg)]") - return "SUCCESS" - if(SERVICE_CMD_IRC_STATUS) - var/rtod = REALTIMEOFDAY - if(rtod - last_irc_status < IRC_STATUS_THROTTLE) - return - last_irc_status = rtod - var/list/adm = get_admin_counts() - var/list/allmins = adm["total"] - var/status = "Admins: [allmins.len] (Active: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Stealth: [english_list(adm["stealth"])] Skipped: [english_list(adm["noflags"])]). " - status += "Players: [GLOB.clients.len] (Active: [get_active_player_count(0,1,0)]). Mode: [SSticker.mode ? SSticker.mode.name : "Not started"]." - return status - if(SERVICE_CMD_IRC_CHECK) - var/rtod = REALTIMEOFDAY - if(rtod - last_irc_status < IRC_STATUS_THROTTLE) - return - last_irc_status = rtod - var/config_server = CONFIG_GET(string/server) - return "[GLOB.round_id ? "Round #[GLOB.round_id]: " : ""][GLOB.clients.len] players on [SSmapping.config.map_name], Mode: [GLOB.master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [config_server ? config_server : "[world.internet_address]:[world.port]"]" - if(SERVICE_CMD_ADMIN_MSG) - return IrcPm(params[SERVICE_CMD_PARAM_TARGET], params[SERVICE_CMD_PARAM_MESSAGE], params[SERVICE_CMD_PARAM_SENDER]) - - if(SERVICE_CMD_NAME_CHECK) - log_admin("IRC Name Check: [params[SERVICE_CMD_PARAM_SENDER]] on [params[SERVICE_CMD_PARAM_TARGET]]") - message_admins("IRC name checking on [params[SERVICE_CMD_PARAM_TARGET]] from [params[SERVICE_CMD_PARAM_SENDER]]") - return keywords_lookup(params[SERVICE_CMD_PARAM_TARGET], 1) - if(SERVICE_CMD_ADMIN_WHO) - return ircadminwho() - else - return "Unknown command: [command]" - diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 6af111506d..7f99829843 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -64,7 +64,7 @@ var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj user.client.images += the_eye.placement_images user.client.images += the_eye.placed_images - user.client.view = view_range + user.client.change_view(view_range) /obj/machinery/computer/camera_advanced/shuttle_docker/remove_eye_control(mob/living/user) ..() @@ -72,7 +72,7 @@ var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj user.client.images -= the_eye.placement_images user.client.images -= the_eye.placed_images - user.client.view = world.view + user.client.change_view(world.view) /obj/machinery/computer/camera_advanced/shuttle_docker/proc/placeLandingSpot() if(!checkLandingSpot()) diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index 70fa37d207..d68777c84a 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -44,40 +44,46 @@ All ShuttleMove procs go here return move_mode // Called on the old turf to move the turf data -/turf/proc/onShuttleMove(turf/newT, turf_type, baseturf_type, rotation, list/movement_force, move_dir) +/turf/proc/onShuttleMove(turf/newT, list/movement_force, move_dir) if(newT == src) // In case of in place shuttle rotation shenanigans. return - //Destination turf changes var/destination_turf_type = newT.type - copyTurf(newT) + newT = copyTurf(newT) newT.baseturf = destination_turf_type - + //Air stuff + newT.blocks_air = TRUE + newT.air_update_turf(TRUE) + blocks_air = TRUE + air_update_turf(TRUE) if(isopenturf(newT)) var/turf/open/new_open = newT new_open.copy_air_with_tile(src) - //Source turf changes - ChangeTurf(turf_type, baseturf_type, FALSE, TRUE) - - if(rotation) - newT.shuttleRotate(rotation) //see shuttle_rotate.dm - return TRUE // Called on the new turf after everything has been moved -/turf/proc/afterShuttleMove(turf/oldT) +/turf/proc/afterShuttleMove(turf/oldT, turf_type, baseturf_type, rotation) + //Dealing with the turf we left behind + oldT.TransferComponents(src) + oldT.ChangeTurf(turf_type, baseturf_type, FALSE, TRUE) + + // Rotate and let the air move again + if(rotation) + shuttleRotate(rotation) //see shuttle_rotate.dm + return TRUE ///////////////////////////////////////////////////////////////////////////////////// // Called on every atom in shuttle turf contents before anything has been moved // returns the new move_mode (based on the old) +// WARNING: Do not leave turf contents in beforeShuttleMove or dock() will runtime /atom/movable/proc/beforeShuttleMove(turf/newT, rotation, move_mode) return move_mode // Called on atoms to move the atom to the new location -/atom/movable/proc/onShuttleMove(turf/newT, turf/oldT, rotation, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) +/atom/movable/proc/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) if(newT == oldT) // In case of in place shuttle rotation shenanigans. return @@ -85,18 +91,18 @@ All ShuttleMove procs go here if(loc != oldT) return - if(rotation) - shuttleRotate(rotation) //see shuttle_rotate.dm loc = newT return TRUE // Called on atoms after everything has been moved -/atom/movable/proc/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/atom/movable/proc/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) if(light) update_light() + if(rotation) + shuttleRotate(rotation) update_parallax_contents() - + return TRUE ///////////////////////////////////////////////////////////////////////////////////// @@ -127,22 +133,12 @@ All ShuttleMove procs go here return TRUE // Called on areas after everything has been moved -/area/proc/afterShuttleMove() +/area/proc/afterShuttleMove(new_parallax_dir) + parallax_movedir = new_parallax_dir return TRUE /************************************Turf move procs************************************/ -/turf/open/afterShuttleMove(turf/oldT) //Recalculates SSair stuff for turfs on both sides - . = ..() - SSair.remove_from_active(src) - SSair.remove_from_active(oldT) - - src.CalculateAdjacentTurfs() - oldT.CalculateAdjacentTurfs() - - SSair.add_to_active(src, TRUE) - SSair.add_to_active(oldT, TRUE) - /************************************Area move procs************************************/ /************************************Machinery move procs************************************/ @@ -155,7 +151,7 @@ All ShuttleMove procs go here A.air_tight = TRUE INVOKE_ASYNC(A, /obj/machinery/door/.proc/close) -/obj/machinery/door/airlock/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/door/airlock/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() shuttledocked = 1 for(var/obj/machinery/door/airlock/A in range(1, src)) @@ -167,11 +163,11 @@ All ShuttleMove procs go here . |= MOVE_CONTENTS GLOB.cameranet.removeCamera(src) -/obj/machinery/camera/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/camera/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() GLOB.cameranet.addCamera(src) -/obj/machinery/telecomms/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/telecomms/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() listening_level = z // Update listening Z, just in case you have telecomm relay on a shuttle @@ -179,12 +175,12 @@ All ShuttleMove procs go here . = ..() recharging_turf = get_step(loc, dir) -/obj/machinery/atmospherics/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/atmospherics/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() if(pipe_vision_img) pipe_vision_img.loc = loc -/obj/machinery/computer/auxillary_base/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/computer/auxillary_base/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() if(z == ZLEVEL_MINING) //Avoids double logging and landing on other Z-levels due to badminnery SSblackbox.add_details("colonies_dropped", "[x]|[y]|[z]") //Number of times a base has been dropped! @@ -194,7 +190,7 @@ All ShuttleMove procs go here on = FALSE update_list() -/obj/machinery/gravity_generator/main/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/gravity_generator/main/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() if(charge_count != 0 && charging_state != POWER_UP) on = TRUE @@ -205,7 +201,7 @@ All ShuttleMove procs go here if(. & MOVE_AREA) . |= MOVE_CONTENTS -/obj/machinery/atmospherics/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/atmospherics/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() var/missing_nodes = FALSE for(DEVICE_TYPE_LOOP) @@ -234,7 +230,7 @@ All ShuttleMove procs go here // atmosinit() calls update_icon(), so we don't need to call it update_icon() -/obj/machinery/atmospherics/pipe/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/atmospherics/pipe/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() var/turf/T = loc hide(T.intact) @@ -244,7 +240,7 @@ All ShuttleMove procs go here GLOB.navbeacons["[z]"] -= src GLOB.deliverybeacons -= src -/obj/machinery/navbeacon/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/navbeacon/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() var/turf/T = loc hide(T.intact) @@ -256,7 +252,7 @@ All ShuttleMove procs go here GLOB.deliverybeacons += src GLOB.deliverybeacontags += location -/obj/machinery/power/terminal/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/machinery/power/terminal/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() var/turf/T = src.loc if(level==1) @@ -264,19 +260,19 @@ All ShuttleMove procs go here /************************************Item move procs************************************/ -/obj/item/storage/pod/afterShuttleMove(turf/newT, turf/oldT, rotation, list/movement_force, move_dir, old_dock) +/obj/item/storage/pod/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() unlocked = TRUE // If the pod was launched, the storage will always open. /************************************Mob move procs************************************/ -/mob/onShuttleMove(turf/newT, turf/oldT, rotation, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) +/mob/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) if(!move_on_shuttle) return . = ..() -/mob/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/mob/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() if(client && movement_force) var/shake_force = max(movement_force["THROW"], movement_force["KNOCKDOWN"]) @@ -284,7 +280,7 @@ All ShuttleMove procs go here shake_force *= 0.25 shake_camera(src, shake_force, 1) -/mob/living/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/mob/living/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() if(movement_force && !buckled) if(movement_force["THROW"]) @@ -296,7 +292,7 @@ All ShuttleMove procs go here if(movement_force["KNOCKDOWN"]) Knockdown(movement_force["KNOCKDOWN"]) -/mob/living/simple_animal/hostile/megafauna/onShuttleMove(turf/newT, turf/oldT, rotation, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) +/mob/living/simple_animal/hostile/megafauna/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) . = ..() message_admins("Megafauna [src] [ADMIN_FLW(src)] moved via shuttle from [ADMIN_COORDJMP(oldT)] to [ADMIN_COORDJMP(loc)]") @@ -312,11 +308,11 @@ All ShuttleMove procs go here if(. & MOVE_AREA) . |= MOVE_CONTENTS -/obj/structure/disposalpipe/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/structure/disposalpipe/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() update() -/obj/structure/cable/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir) +/obj/structure/cable/afterShuttleMove(list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() var/turf/T = loc if(level==1) @@ -330,20 +326,20 @@ All ShuttleMove procs go here /************************************Misc move procs************************************/ -/atom/movable/lighting_object/onShuttleMove(turf/newT, turf/oldT, rotation, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) +/atom/movable/lighting_object/onShuttleMove() return FALSE -/atom/movable/light/onShuttleMove(turf/newT, turf/oldT, rotation, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) +/atom/movable/light/onShuttleMove() return FALSE -/obj/docking_port/stationary/onShuttleMove(turf/newT, turf/oldT, rotation, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) - if(!moving_dock.can_move_docking_ports || (old_dock == src)) +/obj/docking_port/stationary/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) + if(!moving_dock.can_move_docking_ports || old_dock == src) return FALSE . = ..() -/obj/docking_port/stationary/public_mining_dock/onShuttleMove(turf/newT, turf/oldT, rotation, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) +/obj/docking_port/stationary/public_mining_dock/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) id = "mining_public" //It will not move with the base, but will become enabled as a docking point. -/obj/effect/abstract/proximity_checker/onShuttleMove(turf/newT, turf/oldT, rotation, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) +/obj/effect/abstract/proximity_checker/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) //timer so it only happens once addtimer(CALLBACK(monitor, /datum/proximity_monitor/proc/SetRange, monitor.current_range, TRUE), 0, TIMER_UNIQUE) diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 0f5567fd90..4061994cce 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -416,7 +416,8 @@ mode = SHUTTLE_RECALL /obj/docking_port/mobile/proc/enterTransit() - if(SSshuttle.lockdown && (z in GLOB.station_z_levels)) //emp went off, no escape + if((SSshuttle.lockdown && (z in GLOB.station_z_levels)) || !canMove()) //emp went off, no escape + mode = SHUTTLE_IDLE return previous = null // if(!destination) @@ -513,9 +514,17 @@ return DOCKING_IMMOBILIZED var/obj/docking_port/stationary/old_dock = get_docked() - var/underlying_turf_type = /turf/open/space //The turf that gets placed under where the shuttle moved from - var/underlying_baseturf_type = /turf/open/space //The baseturf that the gets assigned to the turf_type above - var/underlying_area_type = /area/space //The area that gets placed under where the shuttle moved from + + // The turf that gets placed under where the shuttle moved from + var/underlying_turf_type = /turf/open/space + + // The baseturf that the gets assigned to the turf_type above + var/underlying_baseturf_type = /turf/open/space + + // The area that gets placed under where the shuttle moved from + var/underlying_area_type = /area/space + + // The baseturf cache is a typecache of what counts as a baseturf to be left behind var/list/baseturf_cache if(old_dock) //Dock overwrites if(old_dock.turf_type) @@ -527,7 +536,6 @@ if(old_dock.baseturf_cache) baseturf_cache = old_dock.baseturf_cache if(!baseturf_cache) - //Don't want to call this needlessly baseturf_cache = typecacheof(underlying_baseturf_type) /************************************************************************************************************** @@ -540,6 +548,8 @@ var/list/new_turfs = return_ordered_turfs(new_dock.x, new_dock.y, new_dock.z, new_dock.dir) /**************************************************************************************************************/ + // The underlying old area is the area assumed to be under the shuttle's starting location + // If it no longer/has never existed it will be created var/area/underlying_old_area = locate(underlying_area_type) in GLOB.sortedAreas if(!underlying_old_area) underlying_old_area = new underlying_area_type(null) @@ -562,11 +572,11 @@ CHECK_TICK /****************************************All beforeShuttleMove procs*****************************************/ - var/index = 0 - for(var/place in old_turfs) - index++ - var/turf/oldT = place - var/turf/newT = new_turfs[index] + + for(var/i in 1 to old_turfs.len) + CHECK_TICK + var/turf/oldT = old_turfs[i] + var/turf/newT = new_turfs[i] if(!newT) return DOCKING_NULL_DESTINATION if(!oldT) @@ -575,8 +585,9 @@ var/area/old_area = oldT.loc var/move_mode = old_area.beforeShuttleMove(shuttle_areas) //areas - for(var/i in 1 to oldT.contents.len) - var/atom/movable/moving_atom = oldT.contents[i] + var/list/old_contents = oldT.contents + for(var/k in 1 to old_contents.len) + var/atom/movable/moving_atom = old_contents[k] if(moving_atom.loc != oldT) //fix for multi-tile objects continue move_mode = moving_atom.beforeShuttleMove(newT, rotation, move_mode) //atoms @@ -587,60 +598,68 @@ if(move_mode & MOVE_AREA) areas_to_move[old_area] = TRUE - old_turfs[place] = move_mode - CHECK_TICK + old_turfs[oldT] = move_mode /*******************************************All onShuttleMove procs******************************************/ - index = 0 - for(var/place in old_turfs) - index++ - var/turf/oldT = place - var/turf/newT = new_turfs[index] - var/move_mode = old_turfs[place] + for(var/i in 1 to old_turfs.len) + var/turf/oldT = old_turfs[i] + var/turf/newT = new_turfs[i] + var/move_mode = old_turfs[oldT] if(move_mode & MOVE_CONTENTS) - for(var/thing in oldT) - var/atom/movable/moving_atom = thing + for(var/k in oldT) + var/atom/movable/moving_atom = k if(moving_atom.loc != oldT) //fix for multi-tile objects continue - moving_atom.onShuttleMove(newT, oldT, rotation, movement_force, movement_direction, old_dock, src)//atoms + moving_atom.onShuttleMove(newT, oldT, movement_force, movement_direction, old_dock, src) //atoms moved_atoms += moving_atom + if(move_mode & MOVE_TURF) - oldT.onShuttleMove(newT, underlying_turf_type, underlying_baseturf_type, rotation, movement_force, movement_direction)//turfs + oldT.onShuttleMove(newT, movement_force, movement_direction) //turfs + if(move_mode & MOVE_AREA) var/area/shuttle_area = oldT.loc shuttle_area.onShuttleMove(oldT, newT, underlying_old_area) //areas /******************************************All afterShuttleMove procs****************************************/ - index = 0 - for(var/thing in old_turfs) - index++ - var/turf/oldT = thing - var/turf/newT = new_turfs[index] - newT.afterShuttleMove(oldT) //turfs - CHECK_TICK - - for(var/i in 1 to moved_atoms.len) - var/atom/movable/moved_object = moved_atoms[i] - moved_object.afterShuttleMove(movement_force, dir, preferred_direction, movement_direction) //atoms - CHECK_TICK - underlying_old_area.afterShuttleMove() - for(var/thing in areas_to_move) - var/area/internal_area = thing - internal_area.afterShuttleMove() //areas - CHECK_TICK - // Parallax handling + // This needs to be done before the atom after move var/new_parallax_dir = FALSE if(istype(new_dock, /obj/docking_port/stationary/transit)) new_parallax_dir = preferred_direction - for(var/i in shuttle_areas) - var/area/place = i - place.parallax_movedir = new_parallax_dir + for(var/i in 1 to areas_to_move.len) CHECK_TICK + var/area/internal_area = areas_to_move[i] + internal_area.afterShuttleMove(new_parallax_dir) //areas + + for(var/i in 1 to old_turfs.len) + CHECK_TICK + if(!(old_turfs[old_turfs[i]] & MOVE_TURF)) + continue + var/turf/oldT = old_turfs[i] + var/turf/newT = new_turfs[i] + newT.afterShuttleMove(oldT, underlying_turf_type, underlying_baseturf_type, rotation) //turfs + + for(var/i in 1 to moved_atoms.len) + CHECK_TICK + var/atom/movable/moved_object = moved_atoms[i] + moved_object.afterShuttleMove(movement_force, dir, preferred_direction, movement_direction, rotation)//atoms + + for(var/i in 1 to old_turfs.len) + CHECK_TICK + // Objects can block air so either turf or content changes means an air update is needed + if(!(old_turfs[old_turfs[i]] & MOVE_CONTENTS | MOVE_TURF)) + continue + var/turf/oldT = old_turfs[i] + var/turf/newT = new_turfs[i] + oldT.blocks_air = initial(oldT.blocks_air) + oldT.air_update_turf(TRUE) + newT.blocks_air = initial(newT.blocks_air) + newT.air_update_turf(TRUE) + check_poddoors() new_dock.last_dock_time = world.time setDir(new_dock.dir) diff --git a/code/modules/shuttle/shuttle_rotate.dm b/code/modules/shuttle/shuttle_rotate.dm index d7e5f5eee7..d322f2cd32 100644 --- a/code/modules/shuttle/shuttle_rotate.dm +++ b/code/modules/shuttle/shuttle_rotate.dm @@ -6,50 +6,55 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate /************************************Base proc************************************/ -/atom/proc/shuttleRotate(rotation) - //rotate our direction - setDir(angle2dir(rotation+dir2angle(dir))) +/atom/proc/shuttleRotate(rotation, params=ROTATE_DIR|ROTATE_SMOOTH|ROTATE_OFFSET) + if(params & ROTATE_DIR) + //rotate our direction + setDir(angle2dir(rotation+dir2angle(dir))) //resmooth if need be. - if(smooth) + if(smooth && (params & ROTATE_SMOOTH)) queue_smooth(src) //rotate the pixel offsets too. - if (pixel_x || pixel_y) - if (rotation < 0) + if((pixel_x || pixel_y) && (params & ROTATE_OFFSET)) + if(rotation < 0) rotation += 360 - for (var/turntimes=rotation/90;turntimes>0;turntimes--) + for(var/turntimes=rotation/90;turntimes>0;turntimes--) var/oldPX = pixel_x var/oldPY = pixel_y pixel_x = oldPY pixel_y = (oldPX*(-1)) + SendSignal(COMSIG_ATOM_ROTATE, rotation, params) + /************************************Turf rotate procs************************************/ -/turf/closed/mineral/shuttleRotate(rotation) - setDir(angle2dir(rotation+dir2angle(dir))) - queue_smooth(src) +/turf/closed/mineral/shuttleRotate(rotation, params) + params &= ~ROTATE_OFFSET + return ..() /************************************Mob rotate procs************************************/ //override to avoid rotating pixel_xy on mobs -/mob/shuttleRotate(rotation) +/mob/shuttleRotate(rotation, params) + params = NONE + . = ..() if(!buckled) setDir(angle2dir(rotation+dir2angle(dir))) -/mob/dead/observer/shuttleRotate(rotation) +/mob/dead/observer/shuttleRotate(rotation, params) . = ..() update_icon() /************************************Structure rotate procs************************************/ -/obj/structure/door_assembly/door_assembly_pod/shuttleRotate(rotation) +/obj/structure/door_assembly/door_assembly_pod/shuttleRotate(rotation, params) . = ..() expected_dir = angle2dir(rotation+dir2angle(dir)) -/obj/structure/cable/shuttleRotate(rotation) - //..() is not called because wires are not supposed to have a non-default direction - //Rotate connections +/obj/structure/cable/shuttleRotate(rotation, params) + params &= ~ROTATE_DIR + . = ..() if(d1) d1 = angle2dir(rotation+dir2angle(d1)) if(d2) @@ -63,7 +68,7 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate update_icon() //Fixes dpdir on shuttle rotation -/obj/structure/disposalpipe/shuttleRotate(rotation) +/obj/structure/disposalpipe/shuttleRotate(rotation, params) . = ..() var/new_dpdir = 0 for(var/D in GLOB.cardinals) @@ -71,16 +76,17 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate new_dpdir = new_dpdir | angle2dir(rotation+dir2angle(D)) dpdir = new_dpdir -/obj/structure/table/wood/bar/shuttleRotate(rotation) +/obj/structure/table/wood/bar/shuttleRotate(rotation, params) . = ..() boot_dir = angle2dir(rotation + dir2angle(boot_dir)) -/obj/structure/alien/weeds/shuttleRotate(rotation) - return +/obj/structure/alien/weeds/shuttleRotate(rotation, params) + params &= ~ROTATE_OFFSET + return ..() /************************************Machine rotate procs************************************/ -/obj/machinery/atmospherics/shuttleRotate(rotation) +/obj/machinery/atmospherics/shuttleRotate(rotation, params) var/list/real_node_connect = getNodeConnects() for(DEVICE_TYPE_LOOP) real_node_connect[I] = angle2dir(rotation+dir2angle(real_node_connect[I])) @@ -95,13 +101,15 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate nodes[new_pos] = nodes_copy[I] //prevents shuttles attempting to rotate this since it messes up sprites -/obj/machinery/gateway/shuttleRotate() - return +/obj/machinery/gateway/shuttleRotate(rotation, params) + params = NONE + return ..() -/obj/machinery/door/airlock/survival_pod/shuttleRotate(rotation) +/obj/machinery/door/airlock/survival_pod/shuttleRotate(rotation, params) expected_dir = angle2dir(rotation+dir2angle(dir)) return ..() //prevents shuttles attempting to rotate this since it messes up sprites -/obj/machinery/gravity_generator/shuttleRotate() - return \ No newline at end of file +/obj/machinery/gravity_generator/shuttleRotate(rotation, params) + params = NONE + return ..() \ No newline at end of file diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index f7e555ab44..d991a3df9c 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -133,7 +133,7 @@ mind.transfer_to(lich) mind.grab_ghost(force=TRUE) lich.hardset_dna(null,null,lich.real_name,null, new /datum/species/skeleton) - to_chat(lich, "Your bones clatter and shutter as you are pulled back into this world!") + to_chat(lich, "Your bones clatter and shudder as you are pulled back into this world!") var/turf/body_turf = get_turf(old_body) lich.Knockdown(200 + 200*resurrections) resurrections++ diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index c32c45c86a..4ee1b678f0 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -11,9 +11,10 @@ invocation_type = "shout" action_icon_state = "shapeshift" + var/revert_on_death = TRUE + var/die_with_shapeshifted_form = TRUE + var/shapeshift_type - var/list/current_shapes = list() - var/list/current_casters = list() var/list/possible_shapes = list(/mob/living/simple_animal/mouse,\ /mob/living/simple_animal/pet/dog/corgi,\ /mob/living/simple_animal/hostile/carp/ranged/chaos,\ @@ -22,6 +23,11 @@ /mob/living/simple_animal/hostile/construct/armored) /obj/effect/proc_holder/spell/targeted/shapeshift/cast(list/targets,mob/user = usr) + if(src in user.mob_spell_list) + user.mob_spell_list.Remove(src) + user.mind.AddSpell(src) + if(user.buckled) + user.buckled.unbuckle_mob(src,force=TRUE) for(var/mob/living/M in targets) if(!shapeshift_type) var/list/animal_list = list() @@ -35,46 +41,33 @@ if(!shapeshift_type) //If you aren't gonna decide I am! shapeshift_type = pick(animal_list) shapeshift_type = animal_list[shapeshift_type] - if(M in current_shapes) + + var/obj/shapeshift_holder/S = locate() in M + if(S) Restore(M) else Shapeshift(M) + /obj/effect/proc_holder/spell/targeted/shapeshift/proc/Shapeshift(mob/living/caster) - for(var/mob/living/M in caster) - if(M.status_flags & GODMODE) - to_chat(caster, "You're already shapeshifted!") - return + var/obj/shapeshift_holder/H = locate() in caster + if(H) + to_chat(caster, "You're already shapeshifted!") + return var/mob/living/shape = new shapeshift_type(caster.loc) - caster.loc = shape - caster.status_flags |= GODMODE - - current_shapes |= shape - current_casters |= caster + H = new(shape,src,caster) clothes_req = 0 human_req = 0 - caster.mind.transfer_to(shape) - /obj/effect/proc_holder/spell/targeted/shapeshift/proc/Restore(mob/living/shape) - var/mob/living/caster - for(var/mob/living/M in shape) - if(M in current_casters) - caster = M - break - if(!caster) - return - caster.loc = shape.loc - caster.status_flags &= ~GODMODE + var/obj/shapeshift_holder/H = locate() in shape + if(!H) + return + H.restore() clothes_req = initial(clothes_req) human_req = initial(human_req) - current_casters.Remove(caster) - current_shapes.Remove(shape) - - shape.mind.transfer_to(caster) - qdel(shape) //Gib it maybe ? /obj/effect/proc_holder/spell/targeted/shapeshift/dragon name = "Dragon Form" @@ -82,6 +75,85 @@ invocation = "RAAAAAAAAWR!" shapeshift_type = /mob/living/simple_animal/hostile/megafauna/dragon/lesser - list/current_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser) - list/current_casters = list() - list/possible_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser) + + +/obj/shapeshift_holder + name = "Shapeshift holder" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ON_FIRE | UNACIDABLE | ACID_PROOF + var/mob/living/stored + var/mob/living/shape + var/restoring = FALSE + var/datum/soullink/shapeshift/slink + var/obj/effect/proc_holder/spell/targeted/shapeshift/source + +/obj/shapeshift_holder/Initialize(mapload,obj/effect/proc_holder/spell/targeted/shapeshift/source,mob/living/caster) + . = ..() + src.source = source + shape = loc + if(!istype(shape)) + CRASH("shapeshift holder created outside mob/living") + stored = caster + if(stored.mind) + stored.mind.transfer_to(shape) + stored.forceMove(src) + stored.notransform = TRUE + slink = soullink(/datum/soullink/shapeshift, stored , shape) + slink.source = src + +/obj/shapeshift_holder/Destroy() + if(!restoring) + restore() + stored = null + shape = null + . = ..() + +/obj/shapeshift_holder/Moved() + . = ..() + if(!restoring || QDELETED(src)) + restore() + +/obj/shapeshift_holder/handle_atom_del(atom/A) + if(A == stored && !restoring) + restore() + +/obj/shapeshift_holder/Exited(atom/movable/AM) + if(AM == stored && !restoring) + restore() + +/obj/shapeshift_holder/proc/casterDeath() + //Something kills the stored caster through direct damage. + if(source.revert_on_death) + restore(death=TRUE) + else + shape.death() + +/obj/shapeshift_holder/proc/shapeDeath() + //Shape dies. + if(source.die_with_shapeshifted_form) + if(source.revert_on_death) + restore(death=TRUE) + else + restore() + +/obj/shapeshift_holder/proc/restore(death=FALSE) + restoring = TRUE + qdel(slink) + stored.forceMove(get_turf(src)) + stored.notransform = FALSE + if(shape.mind) + shape.mind.transfer_to(stored) + if(death) + stored.death() + qdel(shape) + qdel(src) + +/datum/soullink/shapeshift + var/obj/shapeshift_holder/source + +/datum/soullink/shapeshift/ownerDies(gibbed, mob/living/owner) + if(source) + source.casterDeath(gibbed) + +/datum/soullink/shapeshift/sharerDies(gibbed, mob/living/sharer) + if(source) + source.shapeDeath(gibbed) diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 279589c4b1..9784dd115c 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -121,14 +121,22 @@ O.transfer_to_limb(src, C) update_icon_dropped() - forceMove(T) C.update_health_hud() //update the healthdoll C.update_body() C.update_hair() C.update_canmove() + + if(!T) // T = null happens when a "dummy human" used for rendering icons on prefs screen gets its limbs replaced. + qdel(src) + return + if(is_pseudopart) drop_organs(C) //Psuedoparts shouldn't have organs, but just in case qdel(src) + return + + forceMove(T) + //when a limb is dropped, the internal organs are removed from the mob and put into the limb diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index c0b69e658c..a4d317ad2a 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -124,39 +124,37 @@ cut_overlays() . = ..() if(dropped) //certain overlays only appear when the limb is being detached from its owner. - var/datum/sprite_accessory/S if(status != BODYPART_ROBOTIC) //having a robotic head hides certain features. //facial hair if(facial_hair_style) - S = GLOB.facial_hair_styles_list[facial_hair_style] + var/datum/sprite_accessory/S = GLOB.facial_hair_styles_list[facial_hair_style] if(S) var/image/facial_overlay = image(S.icon, "[S.icon_state]", -HAIR_LAYER, SOUTH) facial_overlay.color = "#" + facial_hair_color facial_overlay.alpha = hair_alpha . += facial_overlay - var/image/hair_overlay = image(layer = -HAIR_LAYER, dir = SOUTH) - . += hair_overlay //Applies the debrained overlay if there is no brain if(!brain) + var/image/debrain_overlay = image(layer = -HAIR_LAYER, dir = SOUTH) if(animal_origin == ALIEN_BODYPART) - hair_overlay.icon = 'icons/mob/animal_parts.dmi' - hair_overlay.icon_state = "debrained_alien" + debrain_overlay.icon = 'icons/mob/animal_parts.dmi' + debrain_overlay.icon_state = "debrained_alien" else if(animal_origin == LARVA_BODYPART) - hair_overlay.icon = 'icons/mob/animal_parts.dmi' - hair_overlay.icon_state = "debrained_larva" + debrain_overlay.icon = 'icons/mob/animal_parts.dmi' + debrain_overlay.icon_state = "debrained_larva" else if(!(NOBLOOD in species_flags_list)) - hair_overlay.icon = 'icons/mob/human_face.dmi' - hair_overlay.icon_state = "debrained" + debrain_overlay.icon = 'icons/mob/human_face.dmi' + debrain_overlay.icon_state = "debrained" + . += debrain_overlay else - if(hair_style) - S = GLOB.hair_styles_list[hair_style] - if(S) - hair_overlay.icon = icon - hair_overlay.icon_state = "[S.icon_state]" - hair_overlay.color = "#" + hair_color - hair_overlay.alpha = hair_alpha + var/datum/sprite_accessory/S2 = GLOB.hair_styles_list[hair_style] + if(S2) + var/image/hair_overlay = image(S2.icon, "[S2.icon_state]", -HAIR_LAYER, SOUTH) + hair_overlay.color = "#" + hair_color + hair_overlay.alpha = hair_alpha + . += hair_overlay // lipstick diff --git a/code/modules/surgery/cavity_implant.dm b/code/modules/surgery/cavity_implant.dm index 8bad429102..0d13e81188 100644 --- a/code/modules/surgery/cavity_implant.dm +++ b/code/modules/surgery/cavity_implant.dm @@ -17,6 +17,11 @@ var/obj/item/bodypart/chest/CH = target.get_bodypart("chest") IC = CH.cavity_item if(tool) + if(istype(tool, /obj/item/surgical_drapes) || istype(tool, /obj/item/bedsheet)) + var/obj/item/inactive = user.get_inactive_held_item() + if(istype(inactive, /obj/item/cautery) || istype(inactive, /obj/item/screwdriver) || iscyborg(user)) + attempt_cancel_surgery(surgery, tool, target, user) + return -1 user.visible_message("[user] begins to insert [tool] into [target]'s [target_zone].", "You begin to insert [tool] into [target]'s [target_zone]...") else user.visible_message("[user] checks for items in [target]'s [target_zone].", "You check for items in [target]'s [target_zone]...") diff --git a/code/modules/surgery/eye_surgery.dm b/code/modules/surgery/eye_surgery.dm index 9099489420..6c340b61f5 100644 --- a/code/modules/surgery/eye_surgery.dm +++ b/code/modules/surgery/eye_surgery.dm @@ -14,7 +14,7 @@ /datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target) var/obj/item/organ/eyes/E = target.getorganslot(ORGAN_SLOT_EYES) if(!E) - to_chat(user, "It's hard to do surgery on someones eyes when they don't have any.") + to_chat(user, "It's hard to do surgery on someone's eyes when they don't have any.") return FALSE /datum/surgery_step/fix_eyes/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index a4e9b16989..d37b17ae35 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -1,173 +1,171 @@ -/proc/attempt_initiate_surgery(obj/item/I, mob/living/M, mob/user) - if(!istype(M)) - return - - var/mob/living/carbon/C - var/obj/item/bodypart/affecting - var/selected_zone = user.zone_selected - - if(iscarbon(M)) - C = M - affecting = C.get_bodypart(check_zone(selected_zone)) - - if(!M.lying && !isslime(M)) //if they're prone or a slime - return - - var/datum/surgery/current_surgery - - for(var/datum/surgery/S in M.surgeries) - if(S.location == selected_zone) - current_surgery = S - - if(!current_surgery) - var/list/all_surgeries = GLOB.surgeries_list.Copy() - var/list/available_surgeries = list() - - for(var/datum/surgery/S in all_surgeries) - if(!S.possible_locs.Find(selected_zone)) - continue - if(affecting) - if(!S.requires_bodypart) - continue - if(S.requires_bodypart_type && affecting.status == BODYPART_ROBOTIC) - continue - if(S.requires_real_bodypart && affecting.is_pseudopart) - continue - else if(C && S.requires_bodypart) //mob with no limb in surgery zone when we need a limb - continue - if(!S.can_start(user, M)) - continue - for(var/path in S.species) - if(istype(M, path)) - available_surgeries[S.name] = S - break - - var/P = input("Begin which procedure?", "Surgery", null, null) as null|anything in available_surgeries - if(P && user && user.Adjacent(M) && (I in user)) - var/datum/surgery/S = available_surgeries[P] - - for(var/datum/surgery/other in M.surgeries) - if(other.location == S.location) - return //during the input() another surgery was started at the same location. - - //we check that the surgery is still doable after the input() wait. - if(C) - affecting = C.get_bodypart(check_zone(selected_zone)) - if(affecting) - if(!S.requires_bodypart) - return - if(S.requires_bodypart_type && affecting.status == BODYPART_ROBOTIC) - return - else if(C && S.requires_bodypart) - return - if(!S.can_start(user, M)) - return - - if(S.ignore_clothes || get_location_accessible(M, selected_zone)) - var/datum/surgery/procedure = new S.type(M, selected_zone, affecting) - user.visible_message("[user] drapes [I] over [M]'s [parse_zone(selected_zone)] to prepare for \an [procedure.name].", \ - "You drape [I] over [M]'s [parse_zone(selected_zone)] to prepare for \an [procedure.name].") - - add_logs(user, M, "operated", addition="Operation type: [procedure.name], location: [selected_zone]") - else - to_chat(user, "You need to expose [M]'s [parse_zone(selected_zone)] first!") - - else if(!current_surgery.step_in_progress) - if(current_surgery.status == 1) - M.surgeries -= current_surgery - user.visible_message("[user] removes the drapes from [M]'s [parse_zone(selected_zone)].", \ - "You remove the drapes from [M]'s [parse_zone(selected_zone)].") - qdel(current_surgery) - else if(current_surgery.can_cancel) - if(current_surgery.requires_bodypart_type == BODYPART_ORGANIC) - if(istype(user.get_inactive_held_item(), /obj/item/cautery)) - M.surgeries -= current_surgery - user.visible_message("[user] mends the incision and removes the drapes from [M]'s [parse_zone(selected_zone)].", \ - "You mend the incision and remove the drapes from [M]'s [parse_zone(selected_zone)].") - qdel(current_surgery) - else - to_chat(user, "You need to hold a cautery in inactive hand to stop [M]'s surgery!") - else if(current_surgery.requires_bodypart_type == BODYPART_ROBOTIC) - if(istype(user.get_inactive_held_item(), /obj/item/screwdriver)) - M.surgeries -= current_surgery - user.visible_message("[user] screw the shell and removes the drapes from [M]'s [parse_zone(selected_zone)].", \ - "You screw the shell and remove the drapes from [M]'s [parse_zone(selected_zone)].") - qdel(current_surgery) - else - to_chat(user, "You need to hold a screwdriver in inactive hand to stop [M]'s surgery!") - - return 1 - - - -/proc/get_location_modifier(mob/M) - var/turf/T = get_turf(M) - if(locate(/obj/structure/table/optable, T)) - return 1 - else if(locate(/obj/structure/table, T)) - return 0.8 - else if(locate(/obj/structure/bed, T)) - return 0.7 - else - return 0.5 - - -/proc/get_location_accessible(mob/M, location) - var/covered_locations = 0 //based on body_parts_covered - var/face_covered = 0 //based on flags_inv - var/eyesmouth_covered = 0 //based on flags_cover - if(iscarbon(M)) - var/mob/living/carbon/C = M - for(var/obj/item/clothing/I in list(C.back, C.wear_mask, C.head)) - covered_locations |= I.body_parts_covered - face_covered |= I.flags_inv - eyesmouth_covered |= I.flags_cover - if(ishuman(C)) - var/mob/living/carbon/human/H = C - for(var/obj/item/I in list(H.wear_suit, H.w_uniform, H.shoes, H.belt, H.gloves, H.glasses, H.ears)) - covered_locations |= I.body_parts_covered - face_covered |= I.flags_inv - eyesmouth_covered |= I.flags_cover - - switch(location) - if("head") - if(covered_locations & HEAD) - return 0 - if("eyes") - if(covered_locations & HEAD || face_covered & HIDEEYES || eyesmouth_covered & GLASSESCOVERSEYES) - return 0 - if("mouth") - if(covered_locations & HEAD || face_covered & HIDEFACE || eyesmouth_covered & MASKCOVERSMOUTH || eyesmouth_covered & HEADCOVERSMOUTH) - return 0 - if("chest") - if(covered_locations & CHEST) - return 0 - if("groin") - if(covered_locations & GROIN) - return 0 - if("l_arm") - if(covered_locations & ARM_LEFT) - return 0 - if("r_arm") - if(covered_locations & ARM_RIGHT) - return 0 - if("l_leg") - if(covered_locations & LEG_LEFT) - return 0 - if("r_leg") - if(covered_locations & LEG_RIGHT) - return 0 - if("l_hand") - if(covered_locations & HAND_LEFT) - return 0 - if("r_hand") - if(covered_locations & HAND_RIGHT) - return 0 - if("l_foot") - if(covered_locations & FOOT_LEFT) - return 0 - if("r_foot") - if(covered_locations & FOOT_RIGHT) - return 0 - - return 1 +/proc/attempt_initiate_surgery(obj/item/I, mob/living/M, mob/user) + if(!istype(M)) + return + + var/mob/living/carbon/C + var/obj/item/bodypart/affecting + var/selected_zone = user.zone_selected + + if(iscarbon(M)) + C = M + affecting = C.get_bodypart(check_zone(selected_zone)) + + if(!M.lying && !isslime(M)) //if they're prone or a slime + return + + var/datum/surgery/current_surgery + + for(var/datum/surgery/S in M.surgeries) + if(S.location == selected_zone) + current_surgery = S + + if(!current_surgery) + var/list/all_surgeries = GLOB.surgeries_list.Copy() + var/list/available_surgeries = list() + + for(var/datum/surgery/S in all_surgeries) + if(!S.possible_locs.Find(selected_zone)) + continue + if(affecting) + if(!S.requires_bodypart) + continue + if(S.requires_bodypart_type && affecting.status != S.requires_bodypart_type) + continue + if(S.requires_real_bodypart && affecting.is_pseudopart) + continue + else if(C && S.requires_bodypart) //mob with no limb in surgery zone when we need a limb + continue + if(!S.can_start(user, M)) + continue + for(var/path in S.species) + if(istype(M, path)) + available_surgeries[S.name] = S + break + + var/P = input("Begin which procedure?", "Surgery", null, null) as null|anything in available_surgeries + if(P && user && user.Adjacent(M) && (I in user)) + var/datum/surgery/S = available_surgeries[P] + + for(var/datum/surgery/other in M.surgeries) + if(other.location == S.location) + return //during the input() another surgery was started at the same location. + + //we check that the surgery is still doable after the input() wait. + if(C) + affecting = C.get_bodypart(check_zone(selected_zone)) + if(affecting) + if(!S.requires_bodypart) + return + if(S.requires_bodypart_type && affecting.status != S.requires_bodypart_type) + return + else if(C && S.requires_bodypart) + return + if(!S.can_start(user, M)) + return + + if(S.ignore_clothes || get_location_accessible(M, selected_zone)) + var/datum/surgery/procedure = new S.type(M, selected_zone, affecting) + user.visible_message("[user] drapes [I] over [M]'s [parse_zone(selected_zone)] to prepare for \an [procedure.name].", \ + "You drape [I] over [M]'s [parse_zone(selected_zone)] to prepare for \an [procedure.name].") + + add_logs(user, M, "operated", addition="Operation type: [procedure.name], location: [selected_zone]") + else + to_chat(user, "You need to expose [M]'s [parse_zone(selected_zone)] first!") + + else if(!current_surgery.step_in_progress) + attempt_cancel_surgery(current_surgery, I, M, user) + + return 1 + +/proc/attempt_cancel_surgery(datum/surgery/S, obj/item/I, mob/living/M, mob/user) + var/selected_zone = user.zone_selected + if(S.status == 1) + M.surgeries -= S + user.visible_message("[user] removes [I] from [M]'s [parse_zone(selected_zone)].", \ + "You remove [I] from [M]'s [parse_zone(selected_zone)].") + qdel(S) + else if(S.can_cancel) + var/close_tool_type = /obj/item/cautery + var/obj/item/close_tool = user.get_inactive_held_item() + var/is_robotic = S.requires_bodypart_type == BODYPART_ROBOTIC + if(is_robotic) + close_tool_type = /obj/item/screwdriver + if(istype(close_tool, close_tool_type) || iscyborg(user)) + M.surgeries -= S + user.visible_message("[user] closes [M]'s [parse_zone(selected_zone)] with [close_tool] and removes [I].", \ + "You close [M]'s [parse_zone(selected_zone)] with [close_tool] and remove [I].") + qdel(S) + else + to_chat(user, "You need to hold a [is_robotic ? "screwdriver" : "cautery"] in your inactive hand to stop [M]'s surgery!") + +/proc/get_location_modifier(mob/M) + var/turf/T = get_turf(M) + if(locate(/obj/structure/table/optable, T)) + return 1 + else if(locate(/obj/structure/table, T)) + return 0.8 + else if(locate(/obj/structure/bed, T)) + return 0.7 + else + return 0.5 + + +/proc/get_location_accessible(mob/M, location) + var/covered_locations = 0 //based on body_parts_covered + var/face_covered = 0 //based on flags_inv + var/eyesmouth_covered = 0 //based on flags_cover + if(iscarbon(M)) + var/mob/living/carbon/C = M + for(var/obj/item/clothing/I in list(C.back, C.wear_mask, C.head)) + covered_locations |= I.body_parts_covered + face_covered |= I.flags_inv + eyesmouth_covered |= I.flags_cover + if(ishuman(C)) + var/mob/living/carbon/human/H = C + for(var/obj/item/I in list(H.wear_suit, H.w_uniform, H.shoes, H.belt, H.gloves, H.glasses, H.ears)) + covered_locations |= I.body_parts_covered + face_covered |= I.flags_inv + eyesmouth_covered |= I.flags_cover + + switch(location) + if("head") + if(covered_locations & HEAD) + return 0 + if("eyes") + if(covered_locations & HEAD || face_covered & HIDEEYES || eyesmouth_covered & GLASSESCOVERSEYES) + return 0 + if("mouth") + if(covered_locations & HEAD || face_covered & HIDEFACE || eyesmouth_covered & MASKCOVERSMOUTH || eyesmouth_covered & HEADCOVERSMOUTH) + return 0 + if("chest") + if(covered_locations & CHEST) + return 0 + if("groin") + if(covered_locations & GROIN) + return 0 + if("l_arm") + if(covered_locations & ARM_LEFT) + return 0 + if("r_arm") + if(covered_locations & ARM_RIGHT) + return 0 + if("l_leg") + if(covered_locations & LEG_LEFT) + return 0 + if("r_leg") + if(covered_locations & LEG_RIGHT) + return 0 + if("l_hand") + if(covered_locations & HAND_LEFT) + return 0 + if("r_hand") + if(covered_locations & HAND_RIGHT) + return 0 + if("l_foot") + if(covered_locations & FOOT_LEFT) + return 0 + if("r_foot") + if(covered_locations & FOOT_RIGHT) + return 0 + + return 1 diff --git a/code/modules/surgery/limb_augmentation.dm b/code/modules/surgery/limb_augmentation.dm index b5081370f0..25d914b0fb 100644 --- a/code/modules/surgery/limb_augmentation.dm +++ b/code/modules/surgery/limb_augmentation.dm @@ -15,15 +15,17 @@ /datum/surgery_step/add_limb name = "replace limb" - implements = list(/obj/item/bodypart = 100) + implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100) time = 32 var/obj/item/bodypart/L = null // L because "limb" /datum/surgery_step/add_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + if(istype(tool, /obj/item/organ_storage) && istype(tool.contents[1], /obj/item/bodypart)) + tool = tool.contents[1] var/obj/item/bodypart/aug = tool if(aug.status != BODYPART_ROBOTIC) - to_chat(user, "that's not an augment silly!") + to_chat(user, "That's not an augment, silly!") return -1 if(aug.body_zone != target_zone) to_chat(user, "[tool] isn't the right type for [parse_zone(target_zone)].") @@ -49,6 +51,11 @@ /datum/surgery_step/add_limb/success(mob/user, mob/living/carbon/target, target_zone, obj/item/bodypart/tool, datum/surgery/surgery) if(L) user.visible_message("[user] successfully augments [target]'s [parse_zone(target_zone)]!", "You successfully augment [target]'s [parse_zone(target_zone)].") + if(istype(tool, /obj/item/organ_storage)) + tool.icon_state = initial(tool.icon_state) + tool.desc = initial(tool.desc) + tool.cut_overlays() + tool = tool.contents[1] L.change_bodypart_status(BODYPART_ROBOTIC, TRUE) L.icon = tool.icon L.max_damage = tool.max_damage diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index 10e57babcd..f477535dab 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -152,8 +152,8 @@ if(current_type == "insert") if(istype(tool, /obj/item/organ_storage)) I = tool.contents[1] - tool.icon_state = "evidenceobj" - tool.desc = "A container for holding body parts." + tool.icon_state = initial(tool.icon_state) + tool.desc = initial(tool.desc) tool.cut_overlays() tool = I else diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 65c1e3e1fb..2ed2c2107e 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -95,7 +95,7 @@ var/list/breath_gases = breath.gases - breath.assert_gases(/datum/gas/oxygen, /datum/gas/plasma, /datum/gas/carbon_dioxide, /datum/gas/nitrous_oxide, /datum/gas/bz, /datum/gas/nitrogen, /datum/gas/tritium, /datum/gas/brown_gas, /datum/gas/pluoxium, /datum/gas/stimulum) + breath.assert_gases(/datum/gas/oxygen, /datum/gas/plasma, /datum/gas/carbon_dioxide, /datum/gas/nitrous_oxide, /datum/gas/bz, /datum/gas/nitrogen, /datum/gas/tritium, /datum/gas/nitryl, /datum/gas/pluoxium, /datum/gas/stimulum) //Partial pressures in our breath var/O2_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/oxygen][MOLES])+(8*breath.get_breath_partial_pressure(breath_gases[/datum/gas/pluoxium][MOLES])) @@ -261,25 +261,25 @@ else H.radiation += trit_pp/10 - //Brown Gas - var/brown_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/brown_gas][MOLES]) - if (prob(brown_pp)) + // Nitryl + var/nitryl_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/nitryl][MOLES]) + if (prob(nitryl_pp)) to_chat(H, "Your mouth feels like it's burning!") - if (brown_pp >40) + if (nitryl_pp >40) H.emote("gasp") H.adjustFireLoss(10) - if (prob(brown_pp/2)) + if (prob(nitryl_pp/2)) to_chat(H, "Your throat closes up!") H.silent = max(H.silent, 3) else - H.adjustFireLoss(brown_pp/4) - gas_breathed = breath_gases[/datum/gas/brown_gas][MOLES] + H.adjustFireLoss(nitryl_pp/4) + gas_breathed = breath_gases[/datum/gas/nitryl][MOLES] if (gas_breathed > GAS_STIM_MINIMUM) - H.reagents.add_reagent("brown_gas",1) + H.reagents.add_reagent("nitryl_gas",1) - breath_gases[/datum/gas/brown_gas][MOLES]-=gas_breathed + breath_gases[/datum/gas/nitryl][MOLES]-=gas_breathed gas_breathed = 0 - //Stimulum + // Stimulum gas_breathed = breath_gases[/datum/gas/stimulum][MOLES] if (gas_breathed > GAS_STIM_MINIMUM) H.reagents.add_reagent("stimulum",1) diff --git a/code/modules/surgery/prosthetic_replacement.dm b/code/modules/surgery/prosthetic_replacement.dm index e55f3af009..b3f3953c49 100644 --- a/code/modules/surgery/prosthetic_replacement.dm +++ b/code/modules/surgery/prosthetic_replacement.dm @@ -60,8 +60,8 @@ /datum/surgery_step/add_prosthetic/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(istype(tool, /obj/item/organ_storage)) - tool.icon_state = "evidenceobj" - tool.desc = "A container for holding body parts." + tool.icon_state = initial(tool.icon_state) + tool.desc = initial(tool.desc) tool.cut_overlays() tool = tool.contents[1] if(istype(tool, /obj/item/bodypart) && user.temporarilyRemoveItemFromInventory(tool)) diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 02d896613b..0debce8a5d 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -35,8 +35,8 @@ . = ..() -/obj/vehicle/user_buckle_mob(mob/living/M, mob/user) - if(user.incapacitated()) +/obj/vehicle/user_buckle_mob(mob/living/M, mob/living/user) + if(!istype(user) || user.incapacitated()) return for(var/atom/movable/A in get_turf(src)) if(A.density) diff --git a/config/config.txt b/config/config.txt index 168f5202ac..9aae4a789c 100644 --- a/config/config.txt +++ b/config/config.txt @@ -358,8 +358,6 @@ MINUTE_TOPIC_LIMIT 100 ## Allow admin hrefs that don't use the new token system, will eventually be removed DEBUG_ADMIN_HREFS -<<<<<<< HEAD -======= ###Master Controller High Pop Mode### @@ -380,4 +378,6 @@ HIGH_POP_MC_MODE_AMOUNT 65 ##Disengage high pop mode if player count drops below this DISABLE_HIGH_POP_MC_MODE_AMOUNT 60 ->>>>>>> bc4d4e7... Merge pull request #31374 from MrStonedOne/highpopmode + +## Uncomment to prevent the world from sleeping while no players are connected after initializations +#RESUME_AFTER_INITIALIZATIONS diff --git a/html/changelog.html b/html/changelog.html index a4b13b52cf..45dfe57b20 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -1,7 +1,7 @@ - /tg/ Station 13 Changelog + Citadel Station 13 Changelog