diff --git a/SpacemanDMM.toml b/SpacemanDMM.toml
index b1c71c30062..fced4d4090e 100644
--- a/SpacemanDMM.toml
+++ b/SpacemanDMM.toml
@@ -1,12 +1,38 @@
-[langserver]
-dreamchecker = true
-
+# Keep the keys in this file alphabetical please
[code_standards]
-disallow_relative_type_definitions = true
disallow_relative_proc_definitions = true
+disallow_relative_type_definitions = true
+
+[debugger]
+engine = "auxtools"
[dmdoc]
use_typepath_names = true
-[debugger]
-engine = "auxtools"
+[langserver]
+dreamchecker = true
+
+[map_renderer]
+hide_invisible = [
+ "/obj/effect/landmark",
+ "/obj/effect/mapping_helpers",
+ "/obj/effect/spawner/random_barrier",
+ "/obj/effect/spawner/random_spawners",
+]
+
+[map_renderer.fancy_layers]
+# -10
+"/turf/simulated/floor/plating" = -10
+"/turf/space" = -10
+# -2
+"/turf/simulated/floor/bluegrid" = -2
+"/turf/simulated/floor/carpet" = -2
+"/turf/simulated/floor/engine" = -2
+"/turf/simulated/floor/plasteel" = -2
+"/turf/simulated/floor/wood" = -2
+"/turf/simulated/wall" = -2
+
+[map_renderer.render_passes]
+icon-smoothing = false
+icon-smoothing-2016 = true
+smart-cables = false
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/clownmime.dmm b/_maps/map_files/RandomRuins/SpaceRuins/clownmime.dmm
index 853fed945a1..f3c7a0b0e89 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/clownmime.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/clownmime.dmm
@@ -146,7 +146,7 @@
/turf/simulated/floor/plating/airless,
/area/space/nearstation)
"F" = (
-/obj/structure/computerframe/HONKputer,
+/obj/structure/computerframe,
/turf/simulated/floor/plasteel/airless,
/area/space/nearstation)
"G" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
index afd69a7b5dd..810ff076094 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
@@ -1,4 +1,76 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ tag = ""
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/fans/tiny,
+/obj/machinery/door/poddoor{
+ id_tag = "SSBtestchamber";
+ name = "Syndicate Test Lab Blast Door"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/ruin/unpowered/syndicate_space_base/testlab)
+"ab" = (
+/obj/machinery/door_control{
+ id = "SSBtestchamber";
+ name = "Blast Door Control"
+ },
+/turf/simulated/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/syndicate_space_base/testlab)
+"ac" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/fans/tiny,
+/obj/machinery/door/poddoor{
+ id_tag = "SSBtestchamber";
+ name = "Syndicate Test Lab Blast Door"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/ruin/unpowered/syndicate_space_base/testlab)
+"ad" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/camera/emp_proof{
+ c_tag = "Test Lab West";
+ dir = 4;
+ network = list("SyndicateTestLab")
+ },
+/turf/simulated/floor/engine,
+/area/ruin/unpowered/syndicate_space_base/testlab)
+"ae" = (
+/obj/machinery/camera/emp_proof{
+ c_tag = "Test Lab East";
+ dir = 9;
+ network = list("SyndicateTestLab")
+ },
+/turf/simulated/floor/engine,
+/area/ruin/unpowered/syndicate_space_base/testlab)
"aj" = (
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plasteel{
@@ -17,7 +89,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -87,7 +158,6 @@
specialfunctions = 4
},
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "brown"
},
/area/ruin/unpowered/syndicate_space_base/cargo)
@@ -169,8 +239,7 @@
/area/ruin/unpowered/syndicate_space_base/virology)
"cB" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5;
- level = 1
+ dir = 5
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -181,7 +250,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/light,
@@ -192,8 +260,7 @@
"cD" = (
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 4;
- initialize_directions = 11;
- level = 2
+ initialize_directions = 11
},
/obj/machinery/meter,
/turf/simulated/floor/plating,
@@ -218,8 +285,7 @@
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5;
- level = 1
+ dir = 5
},
/turf/simulated/floor/engine,
/area/ruin/unpowered/syndicate_space_base/testlab)
@@ -256,8 +322,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4;
- initialize_directions = 11;
- level = 1
+ initialize_directions = 11
},
/turf/simulated/floor/plasteel{
icon_state = "floorgrime"
@@ -339,7 +404,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/unary/vent_scrubber/on,
@@ -391,7 +455,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -408,7 +471,6 @@
/obj/machinery/kitchen_machine/microwave,
/obj/structure/table,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -459,7 +521,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
@@ -477,7 +538,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/engine,
@@ -523,7 +583,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/door/firedoor,
@@ -562,7 +621,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plasteel{
@@ -613,8 +671,7 @@
"gZ" = (
/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -651,8 +708,7 @@
/area/ruin/unpowered/syndicate_space_base/chemistry)
"hq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -704,8 +760,7 @@
"hR" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plasteel{
@@ -717,12 +772,10 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -734,14 +787,12 @@
"hX" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4;
- initialize_directions = 11;
- level = 1
+ initialize_directions = 11
},
/obj/structure/cable{
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/structure/cable{
@@ -790,7 +841,6 @@
dir = 4
},
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -801,7 +851,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/door/firedoor,
@@ -944,8 +993,7 @@
"jS" = (
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 4;
- initialize_directions = 11;
- level = 2
+ initialize_directions = 11
},
/obj/machinery/meter,
/turf/simulated/floor/plasteel{
@@ -1073,7 +1121,6 @@
/obj/machinery/optable,
/obj/machinery/light,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "whiteblue";
tag = "icon-whitehall (WEST)"
},
@@ -1147,7 +1194,6 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/yellow{
- d1 = 0;
d2 = 2;
icon_state = "0-2"
},
@@ -1191,18 +1237,6 @@
icon_state = "dark"
},
/area/ruin/unpowered/syndicate_space_base/telecomms)
-"mE" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/structure/fans/tiny,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/ruin/unpowered/syndicate_space_base/testlab)
"mP" = (
/obj/machinery/power/generator,
/obj/structure/cable/yellow,
@@ -1211,9 +1245,7 @@
"mX" = (
/obj/structure/sink{
dir = 4;
- icon_state = "sink";
- pixel_x = 10;
- pixel_y = 0
+ pixel_x = 10
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -1230,7 +1262,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
@@ -1251,7 +1282,6 @@
},
/obj/structure/table,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -1291,7 +1321,6 @@
/area/ruin/unpowered/syndicate_space_base/testlab)
"ny" = (
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "whitegreen";
tag = "icon-whitehall (WEST)"
},
@@ -1316,7 +1345,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plasteel{
@@ -1350,8 +1378,7 @@
"ob" = (
/obj/machinery/door/airlock/hatch/syndicate,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -1366,12 +1393,10 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -1404,14 +1429,6 @@
icon_state = "brown"
},
/area/ruin/unpowered/syndicate_space_base/cargo)
-"ol" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/engine,
-/area/ruin/unpowered/syndicate_space_base/testlab)
"ow" = (
/obj/structure/closet/crate/medical,
/obj/item/storage/firstaid/fire{
@@ -1438,8 +1455,7 @@
tag = "90Curve"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/turf/simulated/floor/plasteel,
/area/ruin/unpowered/syndicate_space_base/cargo)
@@ -1476,7 +1492,6 @@
/obj/machinery/light,
/obj/machinery/cryopod/offstation,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "darkblue"
},
/area/ruin/unpowered/syndicate_space_base/dormitories)
@@ -1488,26 +1503,13 @@
/area/ruin/unpowered/syndicate_space_base/bar)
"pA" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
/area/ruin/unpowered/syndicate_space_base/engineering)
-"pG" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/ruin/unpowered/syndicate_space_base/main)
"pI" = (
/obj/structure/table/reinforced,
/obj/item/retractor,
@@ -1532,7 +1534,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/door/firedoor,
@@ -1550,7 +1551,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/computer/operating,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "whiteblue";
tag = "icon-whitehall (WEST)"
},
@@ -1573,8 +1573,7 @@
"qN" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4;
- initialize_directions = 11;
- level = 1
+ initialize_directions = 11
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/plasteel{
@@ -1614,7 +1613,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plasteel{
@@ -1627,12 +1625,10 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -1666,8 +1662,7 @@
/area/ruin/unpowered/syndicate_space_base/arrivals)
"rK" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -1716,13 +1711,6 @@
icon_state = "dark"
},
/area/ruin/unpowered/syndicate_space_base/arrivals)
-"sw" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
- },
-/turf/simulated/floor/engine,
-/area/ruin/unpowered/syndicate_space_base/testlab)
"sz" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/navbeacon/invisible{
@@ -1733,7 +1721,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -1762,14 +1749,12 @@
/area/ruin/unpowered/syndicate_space_base/telecomms)
"tf" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/structure/cable{
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/alarm/syndicate{
@@ -1794,7 +1779,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
@@ -1813,8 +1797,7 @@
dir = 6
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 6;
- level = 1
+ dir = 6
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -1861,32 +1844,6 @@
icon_state = "dark"
},
/area/ruin/unpowered/syndicate_space_base/main)
-"un" = (
-/obj/structure/cable{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8";
- pixel_y = 0;
- tag = ""
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/fans/tiny,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/ruin/unpowered/syndicate_space_base/testlab)
"uq" = (
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
@@ -1938,7 +1895,6 @@
/area/ruin/unpowered/syndicate_space_base/engineering)
"uJ" = (
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -1964,13 +1920,11 @@
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4;
- initialize_directions = 11;
- level = 1
+ initialize_directions = 11
},
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 1;
- initialize_directions = 11;
- level = 1
+ initialize_directions = 11
},
/turf/simulated/floor/engine,
/area/ruin/unpowered/syndicate_space_base/testlab)
@@ -1980,7 +1934,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/door/firedoor,
@@ -2005,7 +1958,6 @@
"vk" = (
/obj/machinery/kitchen_machine/grill,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -2029,7 +1981,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/structure/cable{
@@ -2127,8 +2078,7 @@
"wc" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 1;
- initialize_directions = 11;
- level = 1
+ initialize_directions = 11
},
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
@@ -2164,7 +2114,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -2233,6 +2182,12 @@
icon_state = "white"
},
/area/ruin/unpowered/syndicate_space_base/virology)
+"wD" = (
+/obj/machinery/computer/arcade,
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/ruin/unpowered/syndicate_space_base/arrivals)
"wJ" = (
/obj/structure/window/plasmareinforced{
dir = 1
@@ -2240,8 +2195,7 @@
/obj/effect/turf_decal/caution/red,
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 4;
- initialize_directions = 11;
- level = 2
+ initialize_directions = 11
},
/obj/machinery/meter,
/turf/simulated/floor/plasteel{
@@ -2252,21 +2206,18 @@
/obj/item/kitchen/rollingpin,
/obj/structure/table,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
/area/ruin/unpowered/syndicate_space_base/bar)
"wX" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/structure/cable{
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/structure/cable{
@@ -2354,7 +2305,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/structure/cable{
@@ -2370,14 +2320,12 @@
/area/ruin/unpowered/syndicate_space_base/main)
"xN" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/structure/cable{
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -2408,7 +2356,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plasteel{
@@ -2420,7 +2367,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/structure/cable{
@@ -2486,9 +2432,7 @@
},
/area/ruin/unpowered/syndicate_space_base/telecomms)
"zs" = (
-/obj/structure/sign/biohazard{
- pixel_y = 0
- },
+/obj/structure/sign/biohazard,
/turf/simulated/wall/mineral/plastitanium/nodiagonal,
/area/ruin/unpowered/syndicate_space_base/virology)
"zG" = (
@@ -2622,8 +2566,7 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
@@ -2676,7 +2619,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -2695,8 +2637,7 @@
/area/ruin/unpowered/syndicate_space_base/main)
"Ce" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -2710,15 +2651,13 @@
/area/ruin/unpowered/syndicate_space_base/arrivals)
"Cj" = (
/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -3;
- pixel_y = 0
+ pixel_x = -3
},
/obj/item/reagent_containers/food/condiment/peppermill{
pixel_x = 3
},
/obj/structure/table,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -2774,7 +2713,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/unary/vent_pump/on,
@@ -2783,8 +2721,7 @@
"Dp" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4;
- initialize_directions = 11;
- level = 1
+ initialize_directions = 11
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/plasteel{
@@ -2814,7 +2751,6 @@
dir = 8
},
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "darkblue"
},
/area/ruin/unpowered/syndicate_space_base/dormitories)
@@ -2826,7 +2762,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plating,
@@ -2864,7 +2799,6 @@
/obj/item/clothing/gloves/combat,
/obj/machinery/light,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "darkred"
},
/area/ruin/unpowered/syndicate_space_base/cargo)
@@ -2878,8 +2812,7 @@
/area/ruin/unpowered/syndicate_space_base/virology)
"El" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -2902,7 +2835,6 @@
dir = 1
},
/obj/structure/cable/yellow{
- d1 = 0;
d2 = 2;
icon_state = "0-2"
},
@@ -2927,7 +2859,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/door/firedoor,
@@ -2999,7 +2930,6 @@
/area/ruin/unpowered/syndicate_space_base/engineering)
"EX" = (
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "darkbluecorners"
},
/area/ruin/unpowered/syndicate_space_base/dormitories)
@@ -3041,7 +2971,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -3060,7 +2989,6 @@
dir = 4
},
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "darkblue"
},
/area/ruin/unpowered/syndicate_space_base/dormitories)
@@ -3119,7 +3047,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -3133,12 +3060,10 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -3173,7 +3098,6 @@
"Go" = (
/obj/machinery/cooker/deepfryer,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -3191,8 +3115,7 @@
/area/ruin/unpowered/syndicate_space_base/dormitories)
"GJ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/structure/extinguisher_cabinet{
pixel_x = -5;
@@ -3202,7 +3125,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -3227,7 +3149,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/door/firedoor,
@@ -3243,8 +3164,7 @@
/area/ruin/unpowered/syndicate_space_base/engineering)
"GY" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
@@ -3281,7 +3201,6 @@
"HB" = (
/obj/structure/sink{
dir = 8;
- icon_state = "sink";
pixel_x = -12;
pixel_y = 2
},
@@ -3357,8 +3276,7 @@
/area/ruin/unpowered/syndicate_space_base/bar)
"Iv" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/turf/simulated/floor/plasteel,
/area/ruin/unpowered/syndicate_space_base/cargo)
@@ -3377,7 +3295,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plasteel{
@@ -3480,7 +3397,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -3494,7 +3410,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/structure/cable{
@@ -3547,7 +3462,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
@@ -3581,7 +3495,6 @@
/obj/machinery/processor,
/obj/structure/table,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -3681,7 +3594,6 @@
/obj/item/reagent_containers/food/drinks/shaker,
/obj/structure/table,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -3706,7 +3618,6 @@
shock_proof = 1
},
/obj/structure/cable/yellow{
- d1 = 0;
d2 = 2;
icon_state = "0-2"
},
@@ -3723,7 +3634,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/structure/cable{
@@ -3734,8 +3644,7 @@
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4;
- initialize_directions = 11;
- level = 1
+ initialize_directions = 11
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/plasteel{
@@ -3828,14 +3737,12 @@
/area/ruin/unpowered/syndicate_space_base/engineering)
"Mi" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/structure/cable{
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/structure/cable{
@@ -3885,7 +3792,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
@@ -3972,7 +3878,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -4002,12 +3907,10 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -4019,7 +3922,6 @@
"Ot" = (
/obj/machinery/light,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "darkred"
},
/area/ruin/unpowered/syndicate_space_base/arrivals)
@@ -4094,7 +3996,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plasteel{
@@ -4137,7 +4038,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/door/firedoor,
@@ -4151,8 +4051,7 @@
"QO" = (
/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -4216,7 +4115,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -4267,7 +4165,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
@@ -4321,8 +4218,7 @@
/area/ruin/unpowered/syndicate_space_base/dormitories)
"SQ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
@@ -4386,8 +4282,7 @@
"Tl" = (
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 4;
- initialize_directions = 11;
- level = 2
+ initialize_directions = 11
},
/turf/simulated/floor/plating,
/area/ruin/unpowered/syndicate_space_base/engineering)
@@ -4461,7 +4356,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/alarm/syndicate{
@@ -4486,8 +4380,7 @@
/area/ruin/unpowered/syndicate_space_base/cargo)
"Us" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/turf/simulated/floor/plasteel{
@@ -4531,7 +4424,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/effect/turf_decal/stripes/line{
@@ -4602,14 +4494,12 @@
dir = 8
},
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "darkblue"
},
/area/ruin/unpowered/syndicate_space_base/dormitories)
"VQ" = (
/obj/machinery/shower{
dir = 8;
- icon_state = "shower";
tag = "icon-shower (WEST)"
},
/obj/item/soap/syndie,
@@ -4625,7 +4515,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plasteel{
@@ -4635,7 +4524,6 @@
"Wi" = (
/obj/machinery/kitchen_machine/candy_maker,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -4662,8 +4550,6 @@
/area/ruin/unpowered/syndicate_space_base/engineering)
"Wz" = (
/obj/structure/sign/lifestar{
- desc = "The Star of Life, a symbol of Medical Aid.";
- icon_state = "lifestar";
name = "Medbay"
},
/turf/simulated/wall/mineral/plastitanium/nodiagonal,
@@ -4674,7 +4560,6 @@
},
/obj/structure/table,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cafeteria";
tag = "icon-cafeteria (NORTHEAST)"
},
@@ -4714,7 +4599,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -4763,7 +4647,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plasteel{
@@ -4774,20 +4657,17 @@
/area/ruin/unpowered/syndicate_space_base/chemistry)
"Ya" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4;
- level = 1
+ dir = 4
},
/obj/structure/cable{
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 1;
- initialize_directions = 11;
- level = 1
+ initialize_directions = 11
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -4798,7 +4678,6 @@
d1 = 1;
d2 = 2;
icon_state = "1-2";
- pixel_y = 0;
tag = ""
},
/obj/machinery/door/firedoor,
@@ -4862,7 +4741,6 @@
d1 = 4;
d2 = 8;
icon_state = "4-8";
- pixel_y = 0;
tag = ""
},
/turf/simulated/floor/plating,
@@ -4926,6 +4804,13 @@
icon_state = "dark"
},
/area/ruin/unpowered/syndicate_space_base/main)
+"ZG" = (
+/obj/machinery/computer/security/telescreen{
+ name = "Test Lab Monitor";
+ network = list("SyndicateTestLab")
+ },
+/turf/simulated/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/syndicate_space_base/testlab)
"ZR" = (
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -6761,7 +6646,7 @@ El
uk
uk
yz
-pG
+ZB
uk
uk
uk
@@ -6837,8 +6722,8 @@ TD
TD
rr
CM
-TD
-TD
+ZG
+ab
TD
CM
ZR
@@ -6897,13 +6782,13 @@ ia
ia
ia
TD
-un
+aa
TD
ia
ia
ia
TD
-mE
+ac
TD
AV
AV
@@ -7022,7 +6907,7 @@ fH
fH
RC
uN
-ol
+ad
RF
RF
dH
@@ -7082,7 +6967,7 @@ TD
Rn
Vl
Vl
-sw
+Ri
Vc
Vl
Vl
@@ -7144,7 +7029,7 @@ TD
Vl
Vl
Vl
-sw
+Ri
Vc
Vl
Vl
@@ -7206,7 +7091,7 @@ TD
Vl
Vl
Vl
-sw
+Ri
Vc
Vl
Vl
@@ -7268,7 +7153,7 @@ TD
Vl
Vl
Vl
-sw
+Ri
Vc
Vl
Vl
@@ -7376,7 +7261,7 @@ yZ
qF
qF
Em
-ss
+wD
WG
WG
aj
@@ -7952,7 +7837,7 @@ qv
Vl
Vl
Vl
-Vl
+ae
Vl
Vl
Vl
diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm
index c03b3cdd09c..9bb63d73f29 100644
--- a/_maps/map_files/generic/centcomm.dmm
+++ b/_maps/map_files/generic/centcomm.dmm
@@ -25,8 +25,7 @@
/area/syndicate_mothership)
"ai" = (
/obj/item/radio/intercom/syndicate{
- pixel_x = 32;
- pixel_y = 0
+ pixel_x = 32
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
@@ -35,7 +34,6 @@
/obj/item/clothing/under/dress/dress_saloon,
/obj/item/clothing/head/hairflower,
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "cult";
tag = "icon-cult"
},
@@ -50,7 +48,6 @@
/obj/effect/landmark/costume/random,
/obj/structure/rack/holorack,
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "cult";
tag = "icon-cult"
},
@@ -68,7 +65,6 @@
/obj/structure/chair/stool/holostool,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "asteroid";
tag = "icon-asteroid"
},
@@ -85,7 +81,6 @@
/area/space)
"ar" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon = 'icons/turf/floors/plating.dmi';
icon_state = "asteroid";
tag = "icon-asteroid"
@@ -109,7 +104,6 @@
/obj/structure/table/holotable/wood,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "asteroid";
tag = "icon-asteroid"
},
@@ -191,7 +185,6 @@
"aL" = (
/obj/structure/flora/ausbushes/fullgrass,
/turf/simulated/floor/holofloor{
- dir = 2;
icon = 'icons/turf/floors/plating.dmi';
icon_state = "asteroid";
tag = "icon-asteroid"
@@ -210,7 +203,6 @@
/area/space)
"aO" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "cult";
tag = "icon-cult"
},
@@ -268,7 +260,6 @@
"aX" = (
/obj/structure/flora/ausbushes/sparsegrass,
/turf/simulated/floor/holofloor{
- dir = 2;
icon = 'icons/turf/floors/plating.dmi';
icon_state = "asteroid";
tag = "icon-asteroid"
@@ -277,7 +268,6 @@
"aY" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "asteroid";
tag = "icon-asteroid"
},
@@ -301,7 +291,6 @@
"bb" = (
/obj/structure/table/holotable/wood,
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "grimy";
tag = "icon-grimy"
},
@@ -316,7 +305,6 @@
/area/holodeck/source_meetinghall)
"bd" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon = 'icons/turf/floors/plating.dmi';
icon_state = "asteroid7";
tag = "icon-asteroid7"
@@ -516,7 +504,6 @@
/area/space)
"bX" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "green"
},
/area/holodeck/source_emptycourt)
@@ -570,7 +557,6 @@
/area/holodeck/source_snowfield)
"cm" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "grimy";
tag = "icon-grimy"
},
@@ -704,8 +690,7 @@
/area/centcom/evac)
"cI" = (
/obj/structure/shuttle/engine/propulsion{
- dir = 8;
- icon_state = "propulsion"
+ dir = 8
},
/turf/simulated/floor/plating/airless,
/area/shuttle/specops)
@@ -763,7 +748,6 @@
"cW" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/plasteel/dark,
@@ -773,7 +757,6 @@
/obj/machinery/kitchen_machine/microwave/upgraded,
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/plasteel/freezer,
@@ -833,7 +816,6 @@
/obj/item/camera,
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/plasteel{
@@ -855,7 +837,6 @@
"di" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/beach/away/sand,
@@ -880,14 +861,12 @@
id_tag = "vox_southeast_lock";
locked = 1;
req_access_txt = "152";
- req_one_access = null;
- req_one_access_txt = "0"
+ req_one_access = null
},
/turf/simulated/floor/plating/nitrogen,
/area/shuttle/vox)
"dp" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "red"
},
/area/holodeck/source_basketball)
@@ -1027,16 +1006,13 @@
"dQ" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/plasteel/grimy,
/area/ninja/outpost)
"dR" = (
/obj/structure/table,
-/obj/machinery/recharger{
- pixel_y = 0
- },
+/obj/machinery/recharger,
/turf/simulated/floor/plasteel/freezer,
/area/ninja/holding)
"dS" = (
@@ -1131,7 +1107,6 @@
/area/syndicate_mothership)
"el" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "green"
},
/area/holodeck/source_basketball)
@@ -1166,15 +1141,6 @@
icon_state = "cafeteria"
},
/area/ninja/holding)
-"eq" = (
-/obj/machinery/light{
- dir = 4;
- icon_state = "tube1"
- },
-/turf/simulated/floor/plasteel{
- icon_state = "bar"
- },
-/area/syndicate_mothership)
"eu" = (
/obj/structure/chair/stool,
/obj/machinery/computer/security/telescreen{
@@ -1237,8 +1203,7 @@
req_access_txt = "150"
},
/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 5;
- icon_state = "intact"
+ dir = 5
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
@@ -1252,14 +1217,12 @@
"eG" = (
/obj/structure/shuttle/engine/propulsion{
dir = 1;
- icon_state = "propulsion";
tag = "icon-propulsion (NORTH)"
},
/turf/simulated/floor/plating/airless,
/area/shuttle/syndicate_elite)
"eH" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "green"
},
/area/holodeck/source_boxingcourt)
@@ -1333,7 +1296,6 @@
"eT" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/obj/machinery/computer/syndicate_depot/teleporter,
@@ -1369,7 +1331,6 @@
/obj/machinery/door_control{
id = "syndicate_sit_1";
name = "Blast Doors";
- pixel_x = 0;
pixel_y = -23;
req_access_txt = "150"
},
@@ -1409,7 +1370,6 @@
},
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/engine,
@@ -1454,7 +1414,7 @@
/turf/simulated/floor/wood,
/area/syndicate_mothership)
"fe" = (
-/obj/machinery/cryopod/right,
+/obj/machinery/cryopod/offstation/right,
/turf/simulated/floor/plasteel/dark,
/area/centcom/specops)
"ff" = (
@@ -1490,7 +1450,7 @@
/turf/simulated/floor/engine/cult,
/area/wizard_station)
"fl" = (
-/obj/machinery/cryopod,
+/obj/machinery/cryopod/offstation,
/turf/simulated/floor/plasteel/dark,
/area/centcom/specops)
"fm" = (
@@ -1512,7 +1472,6 @@
/obj/machinery/vending/magivend,
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/engine/cult,
@@ -1566,8 +1525,7 @@
width = 9
},
/obj/machinery/door/airlock/titanium/glass{
- id_tag = "s_docking_airlock";
- req_one_access_txt = "0"
+ id_tag = "s_docking_airlock"
},
/obj/docking_port/stationary{
dir = 8;
@@ -1640,8 +1598,6 @@
/area/ninja/holding)
"fL" = (
/obj/machinery/computer/cryopod{
- density = 0;
- pixel_x = 0;
pixel_y = 32
},
/turf/simulated/floor/plasteel,
@@ -1696,14 +1652,11 @@
/area/holodeck/source_thunderdomecourt)
"fU" = (
/obj/structure/table/wood,
-/obj/machinery/recharger{
- pixel_y = 0
- },
+/obj/machinery/recharger,
/turf/simulated/floor/engine/cult,
/area/wizard_station)
"fV" = (
/obj/machinery/power/apc{
- dir = 2;
name = "Gamma Armory APC";
pixel_y = -24
},
@@ -1712,15 +1665,13 @@
icon_state = "0-4"
},
/obj/structure/sign/securearea{
- pixel_x = -32;
- pixel_y = 0
+ pixel_x = -32
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/gamma/space)
"fW" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/engine/cult,
@@ -1742,7 +1693,6 @@
"ga" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/plasteel/dark,
@@ -1750,7 +1700,6 @@
"gb" = (
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/plasteel/dark,
@@ -1777,7 +1726,6 @@
"gg" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/plasteel/dark,
@@ -2003,7 +1951,6 @@
/area/space)
"hd" = (
/obj/docking_port/stationary/transit{
- dir = 1;
dwidth = 1;
height = 4;
id = "pod1_transit";
@@ -2028,7 +1975,6 @@
/area/syndicate_mothership)
"hh" = (
/obj/docking_port/stationary/transit{
- dir = 1;
dwidth = 1;
height = 4;
id = "pod2_transit";
@@ -2040,7 +1986,6 @@
"hi" = (
/obj/docking_port/stationary{
area_type = /area/syndicate_mothership;
- dir = 1;
dwidth = 11;
height = 18;
id = "emergency_syndicate";
@@ -2173,8 +2118,7 @@
/area/shuttle/syndicate)
"ic" = (
/obj/structure/closet/fireaxecabinet{
- pixel_x = 32;
- pixel_y = 0
+ pixel_x = 32
},
/obj/machinery/light{
dir = 1;
@@ -2188,7 +2132,6 @@
/area/shuttle/escape)
"id" = (
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "browncorner"
},
/area/shuttle/escape)
@@ -2216,7 +2159,6 @@
/area/syndicate_mothership)
"ij" = (
/obj/item/radio/intercom/syndicate{
- pixel_x = 0;
pixel_y = 25
},
/obj/item/twohanded/required/kirbyplants,
@@ -2315,16 +2257,13 @@
},
/obj/structure/sink{
dir = 4;
- icon_state = "sink";
- pixel_x = 11;
- pixel_y = 0
+ pixel_x = 11
},
/turf/simulated/floor/plasteel/freezer,
/area/syndicate_mothership)
"iB" = (
/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
+ dir = 8
},
/turf/simulated/floor/plasteel{
icon_state = "bar"
@@ -2562,7 +2501,6 @@
"jq" = (
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/obj/structure/closet/syndicate/sst,
@@ -2585,7 +2523,6 @@
"jt" = (
/obj/machinery/light/small{
dir = 4;
- icon_state = "bulb1";
tag = "icon-bulb1 (EAST)"
},
/obj/structure/chair/comfy/shuttle{
@@ -2604,7 +2541,6 @@
"jw" = (
/obj/machinery/light/small{
dir = 8;
- icon_state = "bulb1";
tag = "icon-bulb1 (WEST)"
},
/obj/structure/chair/comfy/shuttle{
@@ -2701,13 +2637,11 @@
/area/syndicate_mothership)
"jH" = (
/obj/machinery/door/window{
- dir = 4;
name = "Infirmary";
req_access_txt = "150"
},
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -2726,7 +2660,6 @@
/area/syndicate_mothership)
"jM" = (
/obj/machinery/door/window{
- dir = 4;
name = "Uplink Management Control";
req_access_txt = "151"
},
@@ -2858,20 +2791,17 @@
/area/shuttle/assault_pod)
"kn" = (
/obj/machinery/sleeper/syndie{
- dir = 2;
- icon_state = "sleeper_s-open"
+ dir = 2
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
"kp" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/obj/machinery/sleeper/syndie{
- dir = 2;
- icon_state = "sleeper_s-open"
+ dir = 2
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
@@ -2880,8 +2810,7 @@
/area/syndicate_mothership)
"ks" = (
/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
+ dir = 8
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
@@ -2964,14 +2893,13 @@
/obj/item/storage/fancy/crayons,
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
"kL" = (
/obj/structure/table,
-/obj/item/gun/energy/ionrifle,
+/obj/item/gun/energy/ionrifle/carbine,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
"kM" = (
@@ -3040,7 +2968,6 @@
/obj/structure/closet/secure_closet/personal,
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/carpet,
@@ -3165,7 +3092,6 @@
/obj/structure/reagent_dispensers/beerkeg,
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/plasteel{
@@ -3187,7 +3113,6 @@
"lv" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/plasteel/freezer,
@@ -3247,7 +3172,6 @@
/obj/structure/chair/stool,
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/plasteel{
@@ -3381,7 +3305,6 @@
"me" = (
/obj/structure/table,
/obj/machinery/processor{
- pixel_x = 0;
pixel_y = 10
},
/turf/simulated/floor/plasteel{
@@ -3391,7 +3314,6 @@
"mf" = (
/obj/machinery/camera{
c_tag = "CentComm Special Ops. Mass Drivers";
- dir = 2;
network = list("ERT","CentComm")
},
/turf/simulated/floor/plasteel/dark{
@@ -3424,7 +3346,6 @@
"mj" = (
/obj/machinery/camera{
c_tag = "CentComm Special Ops. Assault Armor Storage";
- dir = 2;
network = list("ERT","CentComm")
},
/turf/simulated/floor/plasteel/dark{
@@ -3447,7 +3368,6 @@
/obj/structure/table,
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/plasteel{
@@ -3464,7 +3384,6 @@
"mn" = (
/obj/machinery/mass_driver{
dir = 8;
- drive_range = 50;
id_tag = "ASSAULT3";
name = "gravpult"
},
@@ -3552,7 +3471,6 @@
"mB" = (
/obj/machinery/mass_driver{
dir = 8;
- drive_range = 50;
id_tag = "ASSAULT2";
name = "gravpult"
},
@@ -3655,7 +3573,6 @@
/obj/machinery/sleeper/upgraded,
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/carpet,
@@ -3746,7 +3663,6 @@
"nl" = (
/obj/machinery/mass_driver{
dir = 8;
- drive_range = 50;
id_tag = "ASSAULT1";
name = "gravpult"
},
@@ -3765,8 +3681,7 @@
/area/syndicate_mothership)
"nr" = (
/obj/item/radio/intercom/syndicate{
- pixel_x = -32;
- pixel_y = 0
+ pixel_x = -32
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
@@ -3795,7 +3710,6 @@
/obj/item/card/id/centcom,
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/obj/item/door_remote/centcomm,
@@ -3950,7 +3864,6 @@
"nN" = (
/obj/machinery/mass_driver{
dir = 8;
- drive_range = 50;
id_tag = "ASSAULT0";
name = "gravpult"
},
@@ -3968,8 +3881,7 @@
/area/centcom/specops)
"nP" = (
/obj/machinery/mech_bay_recharge_port/upgraded/unsimulated{
- dir = 8;
- icon_state = "recharge_port"
+ dir = 8
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
@@ -4043,7 +3955,6 @@
"ol" = (
/obj/machinery/camera{
c_tag = "CentComm Special Ops. Bathroom";
- dir = 2;
network = list("ERT","CentComm")
},
/obj/structure/table/reinforced,
@@ -4088,7 +3999,6 @@
ailock = 1;
check_synth = 1;
name = "Gamma Turret Control Panel";
- pixel_x = 0;
req_access = list(114)
},
/turf/simulated/floor/plasteel{
@@ -4111,7 +4021,6 @@
/obj/item/storage/box/cups,
/obj/machinery/camera{
c_tag = "CentComm Special Ops. Ready Room North";
- dir = 2;
network = list("ERT","CentComm")
},
/turf/simulated/floor/plasteel/dark,
@@ -4137,7 +4046,6 @@
},
/obj/machinery/camera{
c_tag = "CentComm Special Ops. Starting Room";
- dir = 2;
network = list("ERT","CentComm")
},
/turf/simulated/floor/plasteel/dark{
@@ -4171,14 +4079,11 @@
/obj/item/gun/projectile/shotgun/automatic/combat,
/obj/item/gun/projectile/shotgun/automatic/combat,
/obj/machinery/status_display{
- density = 0;
layer = 4;
- pixel_x = 0;
pixel_y = 32
},
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -4190,7 +4095,6 @@
/obj/item/gun/energy/sniperrifle,
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/obj/machinery/ai_status_display{
@@ -4360,8 +4264,7 @@
/area/shuttle/escape)
"pa" = (
/obj/structure/sign/securearea{
- pixel_x = 32;
- pixel_y = 0
+ pixel_x = 32
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/gamma/space)
@@ -4468,8 +4371,7 @@
/obj/structure/cable{
d1 = 4;
d2 = 8;
- icon_state = "4-8";
- pixel_x = 0
+ icon_state = "4-8"
},
/obj/machinery/mech_bay_recharge_port/upgraded,
/turf/simulated/floor/mineral/plastitanium/red,
@@ -4482,12 +4384,6 @@
/obj/machinery/computer/mech_bay_power_console,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/gamma/space)
-"pt" = (
-/obj/machinery/door/airlock/titanium{
- req_access_txt = "0"
- },
-/turf/simulated/floor/plating,
-/area/shuttle/gamma/space)
"pu" = (
/obj/mecha/combat/durand/loaded{
operation_req_access = list(1)
@@ -4495,8 +4391,7 @@
/obj/structure/cable{
d1 = 4;
d2 = 8;
- icon_state = "4-8";
- pixel_x = 0
+ icon_state = "4-8"
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/gamma/space)
@@ -4554,7 +4449,6 @@
"pK" = (
/obj/machinery/camera{
c_tag = "CentComm Special Ops. Bathroom";
- dir = 2;
network = list("ERT","CentComm")
},
/turf/simulated/floor/plasteel/freezer,
@@ -4562,15 +4456,13 @@
"pL" = (
/obj/machinery/door/airlock/centcom{
name = "Bathroom";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/plasteel/dark,
/area/centcom/specops)
"pN" = (
/obj/machinery/door_control{
desc = "A remote control switch to block view of the singularity.";
- icon_state = "doorctrl0";
id = "GRAVPULTS";
name = "Gravity Catapults";
pixel_x = -6;
@@ -4579,7 +4471,6 @@
},
/obj/machinery/door_control{
desc = "A remote control switch to block view of the singularity.";
- icon_state = "doorctrl0";
id = "ASSAULT";
name = "Mech Storage";
pixel_x = 6;
@@ -4588,7 +4479,6 @@
},
/obj/machinery/door_control{
desc = "A remote control switch to block view of the singularity.";
- icon_state = "doorctrl0";
id = "CCTELE";
name = "Teleporter Access";
pixel_x = -6;
@@ -4619,8 +4509,7 @@
"pR" = (
/obj/machinery/computer/station_alert,
/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_x = 32;
- pixel_y = 0
+ pixel_x = 32
},
/turf/simulated/floor/plasteel{
dir = 5;
@@ -4646,7 +4535,6 @@
"pW" = (
/obj/machinery/newscaster{
layer = 3.3;
- pixel_x = 0;
pixel_y = -27
},
/turf/simulated/floor/plasteel/dark,
@@ -4654,7 +4542,6 @@
"pX" = (
/obj/machinery/door_control{
desc = "A remote control switch to connect the ready room to the rest of Centcom.";
- icon_state = "doorctrl0";
id = "SPECOPS";
name = "Ready Room";
pixel_x = -6;
@@ -4663,7 +4550,6 @@
},
/obj/machinery/door_control{
desc = "A remote control switch to block view of the singularity.";
- icon_state = "doorctrl0";
id = "specopsoffice";
name = "Privacy Shutters";
pixel_x = 6;
@@ -4672,7 +4558,6 @@
},
/obj/machinery/door_control{
desc = "A remote control switch to block view of the singularity.";
- icon_state = "doorctrl0";
id = "CCGAMMA";
name = "Gamma Lockdown";
pixel_x = -6;
@@ -4694,14 +4579,11 @@
"qb" = (
/obj/structure/sink{
dir = 4;
- icon_state = "sink";
- pixel_x = 11;
- pixel_y = 0
+ pixel_x = 11
},
/obj/structure/mirror{
dir = 4;
- pixel_x = 32;
- pixel_y = 0
+ pixel_x = 32
},
/turf/simulated/floor/plasteel/freezer,
/area/centcom/specops)
@@ -4779,8 +4661,7 @@
"qu" = (
/obj/machinery/door/airlock/centcom{
name = "Bathroom";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/plasteel/freezer,
/area/centcom/specops)
@@ -4809,8 +4690,7 @@
"qy" = (
/obj/machinery/door/airlock/centcom{
name = "Unit 4";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/plasteel/freezer,
/area/centcom/bathroom)
@@ -4841,7 +4721,6 @@
"qC" = (
/obj/machinery/shower{
dir = 4;
- icon_state = "shower";
pixel_x = 5;
tag = "icon-shower (EAST)"
},
@@ -4851,7 +4730,6 @@
"qD" = (
/obj/machinery/shower{
dir = 8;
- icon_state = "shower";
pixel_x = -5;
tag = "icon-shower (WEST)"
},
@@ -4960,7 +4838,6 @@
/obj/structure/table,
/obj/machinery/door_control{
desc = "A remote control switch for port-side blast doors.";
- icon_state = "doorctrl0";
id = "CentComPort";
name = "Security Doors";
pixel_y = -4;
@@ -5015,8 +4892,7 @@
"re" = (
/obj/machinery/door/airlock/centcom{
name = "Unit 3";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/plasteel/freezer,
/area/centcom/bathroom)
@@ -5051,9 +4927,7 @@
"rl" = (
/obj/structure/sink{
dir = 4;
- icon_state = "sink";
- pixel_x = 11;
- pixel_y = 0
+ pixel_x = 11
},
/obj/structure/mirror{
pixel_x = 32
@@ -5080,8 +4954,7 @@
"ro" = (
/obj/machinery/door/airlock/centcom{
name = "Unit 2";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/plasteel/freezer,
/area/centcom/bathroom)
@@ -5130,8 +5003,7 @@
"rx" = (
/obj/machinery/door/airlock/centcom{
name = "Bathroom";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/plasteel/freezer,
/area/centcom/evac)
@@ -5160,8 +5032,7 @@
"rD" = (
/obj/machinery/door/airlock/centcom{
name = "Unit 1";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/plasteel/freezer,
/area/centcom/bathroom)
@@ -5180,8 +5051,7 @@
icon_state = "door_locked";
id_tag = "emergency_away";
name = "Arrival Airlock";
- req_access = null;
- req_access_txt = "0"
+ req_access = null
},
/turf/simulated/floor/plating,
/area/centcom/evac)
@@ -5195,7 +5065,6 @@
"rJ" = (
/obj/structure/shuttle/engine/propulsion{
dir = 1;
- icon_state = "propulsion";
tag = "icon-propulsion (NORTH)"
},
/turf/simulated/floor/plating/airless,
@@ -5221,7 +5090,6 @@
/area/centcom/evac)
"rO" = (
/obj/docking_port/stationary{
- dir = 1;
dwidth = 1;
height = 4;
id = "pod1_away";
@@ -5232,7 +5100,6 @@
/area/space)
"rP" = (
/obj/docking_port/stationary{
- dir = 1;
dwidth = 1;
height = 4;
id = "pod2_away";
@@ -5245,7 +5112,6 @@
/obj/structure/window/reinforced,
/obj/structure/shuttle/engine/heater{
dir = 1;
- icon_state = "heater";
tag = "icon-heater (NORTH)"
},
/turf/simulated/floor/plating/airless,
@@ -5258,14 +5124,12 @@
desc = "A warning sign which reads 'EXTERNAL AIRLOCK'";
icon_state = "space";
layer = 4;
- name = "EXTERNAL AIRLOCK";
- pixel_x = 0
+ name = "EXTERNAL AIRLOCK"
},
/turf/simulated/wall/indestructible/riveted,
/area/centcom/evac)
"rW" = (
/obj/docking_port/mobile/emergency{
- dir = 4;
dwidth = 11;
height = 18;
width = 29
@@ -5310,8 +5174,7 @@
"sc" = (
/obj/structure/table,
/obj/item/storage/firstaid/regular{
- pixel_x = 2;
- pixel_y = 0
+ pixel_x = 2
},
/obj/item/storage/firstaid/regular{
pixel_x = -2;
@@ -5331,18 +5194,14 @@
"sg" = (
/obj/machinery/vending/wallmed{
name = "Emergency NanoMed";
- pixel_x = -30;
- pixel_y = 0;
- req_access_txt = "0"
+ pixel_x = -30
},
/turf/simulated/floor/mineral/titanium/blue,
/area/centcom/evac)
"si" = (
/obj/machinery/vending/wallmed{
name = "Emergency NanoMed";
- pixel_x = 30;
- pixel_y = 0;
- req_access_txt = "0"
+ pixel_x = 30
},
/turf/simulated/floor/mineral/titanium/blue,
/area/centcom/evac)
@@ -5383,8 +5242,7 @@
/area/centcom/evac)
"st" = (
/obj/structure/closet/secure_closet/bar{
- req_access = null;
- req_access_txt = "0"
+ req_access = null
},
/turf/simulated/floor/wood,
/area/centcom/evac)
@@ -5400,8 +5258,7 @@
"sx" = (
/obj/machinery/door/airlock/centcom{
name = "Rest Area";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/wood,
/area/centcom/evac)
@@ -5409,7 +5266,6 @@
/obj/machinery/computer/secure_data,
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -5431,9 +5287,7 @@
/area/centcom/evac)
"sC" = (
/obj/machinery/door/window/northright{
- base_state = "right";
dir = 4;
- icon_state = "right";
name = "Security Desk";
req_access_txt = "104"
},
@@ -5491,8 +5345,7 @@
/area/centcom/evac)
"sL" = (
/obj/machinery/door/airlock/hatch{
- name = "Infirmary";
- req_access_txt = "0"
+ name = "Infirmary"
},
/turf/simulated/floor/mineral/titanium/yellow,
/area/centcom/evac)
@@ -5522,25 +5375,21 @@
desc = "A warning sign which reads 'EXTERNAL AIRLOCK'";
icon_state = "space";
layer = 4;
- name = "EXTERNAL AIRLOCK";
- pixel_x = 0
+ name = "EXTERNAL AIRLOCK"
},
/turf/simulated/wall/indestructible/fakeglass,
/area/centcom/ferry)
"sR" = (
/obj/machinery/door/airlock/centcom{
name = "Medical Treatment Post";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/plasteel,
/area/centcom/evac)
"sS" = (
/obj/machinery/vending/wallmed{
name = "Emergency NanoMed";
- pixel_x = -30;
- pixel_y = 0;
- req_access_txt = "0"
+ pixel_x = -30
},
/turf/simulated/floor/mineral/titanium,
/area/centcom/evac)
@@ -5552,7 +5401,6 @@
/area/tdome/tdomeobserve)
"sU" = (
/obj/structure/table{
- dir = 2;
icon_state = "tabledir"
},
/obj/item/reagent_containers/food/drinks/cans/cola,
@@ -5631,8 +5479,7 @@
"td" = (
/obj/machinery/door/airlock/external{
id_tag = "ferry_away";
- name = "Ferry Airlock";
- req_access_txt = "0"
+ name = "Ferry Airlock"
},
/turf/simulated/floor/plating,
/area/centcom/ferry)
@@ -5678,9 +5525,7 @@
"tk" = (
/obj/machinery/vending/wallmed{
name = "Emergency NanoMed";
- pixel_x = 30;
- pixel_y = 0;
- req_access_txt = "0"
+ pixel_x = 30
},
/obj/machinery/vending/snack,
/turf/simulated/floor/mineral/titanium/blue,
@@ -5712,8 +5557,7 @@
/area/centcom/evac)
"tp" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 9;
- icon_state = "intact"
+ dir = 9
},
/turf/simulated/floor/plasteel/white,
/area/centcom/evac)
@@ -5787,16 +5631,9 @@
/area/centcom/evac)
"tx" = (
/obj/structure/table,
-/obj/item/reagent_containers/glass/beaker/cryoxadone{
- pixel_x = 0;
- pixel_y = 0
- },
-/obj/item/reagent_containers/glass/beaker/cryoxadone{
- pixel_x = 0;
- pixel_y = 0
- },
+/obj/item/reagent_containers/glass/beaker/cryoxadone,
+/obj/item/reagent_containers/glass/beaker/cryoxadone,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "whiteblue";
tag = "icon-whitehall (WEST)"
},
@@ -5810,7 +5647,6 @@
name = "Canister: \[O2] (CRYO)"
},
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "whiteblue";
tag = "icon-whitehall (WEST)"
},
@@ -5833,7 +5669,6 @@
/obj/item/storage/firstaid/adv,
/obj/item/storage/firstaid/brute,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "whiteblue";
tag = "icon-whitehall (WEST)"
},
@@ -6051,11 +5886,9 @@
/obj/structure/table,
/obj/machinery/door_control{
desc = "A remote control switch for port-side blast doors.";
- icon_state = "doorctrl0";
id = "thunderdome";
name = "Main Blast Doors";
pixel_x = -3;
- pixel_y = 0;
req_access_txt = "104"
},
/turf/simulated/floor/plasteel{
@@ -6072,7 +5905,6 @@
/area/tdome/tdomeadmin)
"uc" = (
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "greencorner"
},
/area/centcom/control)
@@ -6112,10 +5944,8 @@
/obj/structure/table,
/obj/machinery/door_control{
desc = "A remote control switch for port-side blast doors.";
- icon_state = "doorctrl0";
id = "thunderdomehea";
name = "Ranged Gear";
- pixel_x = 0;
pixel_y = 5;
req_access_txt = "104"
},
@@ -6128,10 +5958,8 @@
/obj/structure/table,
/obj/machinery/door_control{
desc = "A remote control switch for port-side blast doors.";
- icon_state = "doorctrl0";
id = "thunderdomeaxe";
name = "Specialist Supply";
- pixel_x = 0;
pixel_y = 5;
req_access_txt = "104"
},
@@ -6141,10 +5969,8 @@
/obj/structure/table,
/obj/machinery/door_control{
desc = "A remote control switch for port-side blast doors.";
- icon_state = "doorctrl0";
id = "thunderdomegen";
name = "General Equiptment";
- pixel_x = 0;
pixel_y = 5;
req_access_txt = "104"
},
@@ -6186,7 +6012,6 @@
"uq" = (
/obj/machinery/camera{
c_tag = "CentComm Special Ops. Bathroom";
- dir = 2;
network = list("ERT","CentComm")
},
/turf/simulated/floor/plasteel/dark,
@@ -6729,15 +6554,13 @@
/area/admin)
"vN" = (
/obj/machinery/door/airlock/hatch{
- name = "Clothing Storage";
- req_access_txt = "0"
+ name = "Clothing Storage"
},
/turf/simulated/floor/plasteel,
/area/admin)
"vO" = (
/obj/machinery/door/airlock/hatch{
- name = "Mecha Room";
- req_access_txt = "0"
+ name = "Mecha Room"
},
/turf/simulated/floor/plasteel,
/area/admin)
@@ -6787,8 +6610,7 @@
/area/admin)
"wc" = (
/obj/machinery/door/airlock/hatch{
- name = "External Airlock";
- req_access_txt = "0"
+ name = "External Airlock"
},
/turf/simulated/floor/plasteel,
/area/admin)
@@ -6828,8 +6650,7 @@
/area/space)
"wl" = (
/obj/machinery/door/airlock/hatch{
- name = "Armory";
- req_access_txt = "0"
+ name = "Armory"
},
/turf/simulated/floor/plasteel,
/area/admin)
@@ -7037,8 +6858,7 @@
opacity = 0
},
/obj/machinery/door/airlock/hatch{
- name = "Chem Lab";
- req_access_txt = "0"
+ name = "Chem Lab"
},
/turf/simulated/floor/plasteel/freezer,
/area/admin)
@@ -7089,7 +6909,6 @@
"wM" = (
/obj/structure/mirror{
dir = 4;
- pixel_x = 0;
pixel_y = -32
},
/turf/simulated/floor/plasteel,
@@ -7117,11 +6936,9 @@
/obj/item/gun/energy/pulse/pistol,
/obj/machinery/door_control{
desc = "A remote control switch to lock down the admin lab.";
- icon_state = "doorctrl0";
id = "ADMINCHEMLOCKDOWN";
name = "Lockdown";
- pixel_y = 24;
- req_access_txt = "0"
+ pixel_y = 24
},
/turf/simulated/floor/carpet,
/area/admin)
@@ -7248,8 +7065,7 @@
"xl" = (
/obj/structure/table,
/obj/machinery/door/window/southleft{
- name = "security checkpoint";
- req_access_txt = "0"
+ name = "security checkpoint"
},
/turf/simulated/floor/carpet,
/area/admin)
@@ -7301,8 +7117,7 @@
/area/admin)
"xr" = (
/obj/machinery/door/airlock/hatch{
- name = "Tool Storage";
- req_access_txt = "0"
+ name = "Tool Storage"
},
/turf/simulated/floor/plasteel/dark,
/area/admin)
@@ -7371,8 +7186,7 @@
/obj/structure/table,
/obj/item/grenade/syndieminibomb{
pixel_x = 4;
- pixel_y = 2;
- pixel_z = 0
+ pixel_y = 2
},
/obj/item/grenade/syndieminibomb{
pixel_x = -1
@@ -7381,9 +7195,7 @@
/area/admin)
"xE" = (
/obj/structure/table,
-/obj/machinery/recharger{
- pixel_y = 0
- },
+/obj/machinery/recharger,
/obj/item/toy/cards/deck/syndicate/black,
/turf/simulated/floor/plasteel/dark,
/area/admin)
@@ -7409,8 +7221,7 @@
},
/obj/machinery/door/airlock/hatch{
desc = "Uh oh.";
- name = "Operating Theater";
- req_access_txt = "0"
+ name = "Operating Theater"
},
/turf/simulated/floor/plasteel/freezer,
/area/admin)
@@ -7426,8 +7237,7 @@
"xO" = (
/obj/machinery/door/airlock/hatch{
desc = "You've heard rumors of the horrors that go on within this lab.";
- name = "Laboratory (DANGER!)";
- req_access_txt = "0"
+ name = "Laboratory (DANGER!)"
},
/turf/simulated/floor/plasteel,
/area/admin)
@@ -7485,10 +7295,7 @@
pixel_x = -3;
pixel_y = -3
},
-/obj/item/card/id{
- pixel_x = 0;
- pixel_y = 0
- },
+/obj/item/card/id,
/obj/item/card/id/admin{
pixel_x = 3;
pixel_y = 3
@@ -7531,8 +7338,7 @@
/area/admin)
"yl" = (
/obj/machinery/door/airlock/public/glass{
- name = "Computer Hub";
- req_access_txt = "0"
+ name = "Computer Hub"
},
/obj/machinery/door/poddoor{
density = 0;
@@ -7553,8 +7359,7 @@
"yn" = (
/obj/machinery/door/airlock/hatch{
desc = "For all your shady business needs";
- name = "Gambling Den";
- req_access_txt = "0"
+ name = "Gambling Den"
},
/turf/simulated/floor/wood,
/area/admin)
@@ -7585,8 +7390,7 @@
/area/centcom/evac)
"yw" = (
/obj/machinery/light{
- dir = 4;
- icon_state = "tube1"
+ dir = 4
},
/turf/simulated/floor/plasteel,
/area/trader_station/sol)
@@ -7701,11 +7505,8 @@
/obj/structure/table,
/obj/machinery/door_control{
desc = "A remote control switch to lock down external access to the admin room.";
- icon_state = "doorctrl0";
id = "ADMINLOCKDOWN";
- name = "Lockdown";
- pixel_y = 0;
- req_access_txt = "0"
+ name = "Lockdown"
},
/turf/simulated/floor/plasteel,
/area/admin)
@@ -7716,9 +7517,7 @@
/area/centcom/evac)
"yX" = (
/obj/structure/table/reinforced,
-/obj/machinery/recharger{
- pixel_y = 0
- },
+/obj/machinery/recharger,
/turf/simulated/floor/mineral/plastitanium/red,
/area/centcom/evac)
"yY" = (
@@ -7750,15 +7549,13 @@
"zd" = (
/obj/machinery/door/airlock/hatch{
desc = "Danger: May contain robustness";
- name = "Dojo";
- req_access_txt = "0"
+ name = "Dojo"
},
/turf/simulated/floor/plasteel/dark,
/area/admin)
"ze" = (
/obj/machinery/door/airlock/public/glass{
- name = "Shuttle Bay";
- req_access_txt = "0"
+ name = "Shuttle Bay"
},
/turf/simulated/floor/plasteel,
/area/admin)
@@ -7902,8 +7699,7 @@
id_tag = "vox_northwest_lock";
locked = 1;
req_access_txt = "152";
- req_one_access = null;
- req_one_access_txt = "0"
+ req_one_access = null
},
/turf/simulated/floor/plating/nitrogen,
/area/shuttle/vox)
@@ -7933,14 +7729,12 @@
"zM" = (
/obj/machinery/door/window{
dir = 1;
- name = "Suit Storage";
- req_access_txt = "0"
+ name = "Suit Storage"
},
/turf/simulated/floor/engine,
/area/admin)
"zN" = (
/obj/machinery/door/poddoor/shutters{
- dir = 4;
id_tag = "commandcenter";
name = "Privacy Shutters"
},
@@ -7952,8 +7746,7 @@
/area/centcom/evac)
"zP" = (
/obj/machinery/door/airlock{
- name = "Toilet";
- req_access_txt = "0"
+ name = "Toilet"
},
/turf/simulated/floor/plasteel,
/area/trader_station/sol)
@@ -7978,8 +7771,7 @@
id_tag = "vox_northeast_lock";
locked = 1;
req_access_txt = "152";
- req_one_access = null;
- req_one_access_txt = "0"
+ req_one_access = null
},
/obj/docking_port/mobile{
dir = 2;
@@ -8073,9 +7865,7 @@
},
/obj/structure/sink{
dir = 4;
- icon_state = "sink";
- pixel_x = 11;
- pixel_y = 0
+ pixel_x = 11
},
/turf/simulated/floor/plasteel/freezer,
/area/trader_station/sol)
@@ -8106,8 +7896,7 @@
/obj/machinery/door/window{
dir = 8;
name = "Toilet";
- opacity = 1;
- req_access_txt = "0"
+ opacity = 1
},
/turf/simulated/floor/plasteel/freezer,
/area/trader_station/sol)
@@ -8118,7 +7907,6 @@
/obj/structure/window/reinforced,
/obj/structure/shuttle/engine/heater{
dir = 1;
- icon_state = "heater";
tag = "icon-heater (NORTH)"
},
/turf/simulated/floor/plating/airless,
@@ -8180,8 +7968,7 @@
/area/admin)
"AI" = (
/obj/machinery/door/airlock/hatch{
- name = "Teleporter Access";
- req_access_txt = "0"
+ name = "Teleporter Access"
},
/obj/machinery/door/poddoor{
density = 0;
@@ -8284,7 +8071,6 @@
"AY" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/obj/machinery/pdapainter,
@@ -8294,7 +8080,6 @@
/obj/structure/table,
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/obj/item/storage/backpack/satchel,
@@ -8304,7 +8089,6 @@
"Ba" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/obj/machinery/vending/tool,
@@ -8394,8 +8178,7 @@
/area/syndicate_mothership)
"Bt" = (
/obj/structure/chair/comfy/red{
- dir = 1;
- icon_state = "comfychair"
+ dir = 1
},
/obj/effect/landmark{
name = "Syndicate Officer"
@@ -8635,7 +8418,6 @@
frequency = 1331;
icon_state = "door_locked";
id_tag = "synd_outer";
- locked = 0;
name = "Ship External Access";
req_access = null;
req_access_txt = "150"
@@ -8747,7 +8529,6 @@
"CO" = (
/obj/machinery/door/window{
base_state = "right";
- dir = 4;
icon_state = "right";
name = "Equipment Room";
req_access_txt = "150"
@@ -8770,7 +8551,6 @@
/obj/item/clothing/gloves/color/latex/nitrile,
/obj/item/clothing/mask/breath,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cmo"
},
/area/shuttle/escape)
@@ -8781,8 +8561,7 @@
id_tag = "vox_southwest_lock";
locked = 1;
req_access_txt = "152";
- req_one_access = null;
- req_one_access_txt = "0"
+ req_one_access = null
},
/turf/simulated/floor/plating/nitrogen,
/area/shuttle/vox)
@@ -8835,8 +8614,7 @@
req_access_txt = "101"
},
/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
+ dir = 8
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/administration)
@@ -8894,7 +8672,6 @@
frequency = 1441;
id_tag = "syndicate_jail_airlock_control";
name = "Syndicate Jail Access Controller";
- pixel_x = 0;
pixel_y = 24;
req_access_txt = "150";
tag_exterior_door = "syndicate_jail_airlock_external";
@@ -8907,7 +8684,6 @@
dir = 4
},
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cmo"
},
/area/shuttle/escape)
@@ -8929,7 +8705,6 @@
"DP" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/obj/effect/spawner/lootdrop/trade_sol/donksoft,
@@ -8990,7 +8765,6 @@
dir = 1
},
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "green"
},
/area/holodeck/source_basketball)
@@ -9085,7 +8859,6 @@
"EM" = (
/obj/item/radio/intercom{
dir = 8;
- name = "station intercom (General)";
pixel_x = -28
},
/obj/machinery/recharge_station,
@@ -9182,7 +8955,6 @@
/area/shuttle/administration)
"Fc" = (
/obj/machinery/door/window{
- dir = 4;
name = "Equipment Room";
req_access_txt = "150"
},
@@ -9271,9 +9043,7 @@
dir = 1
},
/obj/structure/table,
-/obj/machinery/recharger{
- pixel_y = 0
- },
+/obj/machinery/recharger,
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
/area/shuttle/vox)
"Fr" = (
@@ -9309,7 +9079,6 @@
/obj/item/stock_parts/cell/high,
/obj/machinery/light/small{
dir = 8;
- icon_state = "bulb1";
tag = "icon-bulb1 (WEST)"
},
/turf/simulated/floor/plasteel{
@@ -9331,7 +9100,6 @@
"FG" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/mineral/titanium/blue,
@@ -9428,8 +9196,7 @@
master_tag = "synd_airlock";
name = "interior access button";
pixel_x = 25;
- pixel_y = 25;
- req_access_txt = "0"
+ pixel_y = 25
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
@@ -9469,12 +9236,10 @@
"GL" = (
/obj/structure/table/reinforced,
/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
+ dir = 8
},
/obj/item/reagent_containers/food/drinks/mug/med,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cmo"
},
/area/shuttle/escape)
@@ -9530,8 +9295,7 @@
dir = 8
},
/obj/machinery/light{
- dir = 4;
- icon_state = "tube1"
+ dir = 4
},
/turf/simulated/floor/plasteel{
dir = 1;
@@ -9569,7 +9333,6 @@
/area/shuttle/syndicate)
"Hp" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "rampbottom";
tag = "icon-rampbottom"
},
@@ -9644,7 +9407,6 @@
"HN" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/plasteel/dark,
@@ -9687,8 +9449,7 @@
/area/tdome)
"Ic" = (
/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
+ dir = 8
},
/obj/structure/chair/comfy/shuttle{
dir = 4
@@ -9715,8 +9476,7 @@
"Ij" = (
/obj/item/twohanded/required/kirbyplants,
/obj/machinery/light{
- dir = 4;
- icon_state = "tube1"
+ dir = 4
},
/turf/simulated/floor/plasteel,
/area/shuttle/escape)
@@ -9765,7 +9525,6 @@
name = "Bolt Cell Doors";
normaldoorcontrol = 1;
pixel_x = 6;
- pixel_y = 0;
req_access_txt = "150";
specialfunctions = 4
},
@@ -9774,7 +9533,6 @@
name = "Bolt Jail Door";
normaldoorcontrol = 1;
pixel_x = -5;
- pixel_y = 0;
req_access_txt = "150";
specialfunctions = 4
},
@@ -9785,7 +9543,6 @@
dir = 1
},
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "asteroid7";
tag = "icon-asteroid7"
},
@@ -9828,7 +9585,6 @@
/obj/item/clothing/under/color/green,
/obj/item/holo/esword/green,
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "green"
},
/area/holodeck/source_thunderdomecourt)
@@ -9836,8 +9592,7 @@
/obj/structure/table,
/obj/item/grenade/syndieminibomb{
pixel_x = 4;
- pixel_y = 2;
- pixel_z = 0
+ pixel_y = 2
},
/obj/item/grenade/syndieminibomb{
pixel_x = -1
@@ -9850,9 +9605,7 @@
},
/obj/structure/sink{
dir = 4;
- icon_state = "sink";
- pixel_x = 11;
- pixel_y = 0
+ pixel_x = 11
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
@@ -9923,7 +9676,6 @@
"Jn" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -9955,7 +9707,6 @@
/area/shuttle/escape)
"Jx" = (
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cmo"
},
/area/shuttle/escape)
@@ -10057,9 +9808,7 @@
/area/vox_station)
"Kw" = (
/obj/structure/table,
-/obj/machinery/recharger{
- pixel_y = 0
- },
+/obj/machinery/recharger,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
"Kx" = (
@@ -10069,7 +9818,6 @@
"Ky" = (
/obj/machinery/door/poddoor/shutters{
density = 0;
- dir = 4;
icon_state = "open";
id_tag = "adminshuttleshutters";
name = "Blast Shutters";
@@ -10102,7 +9850,6 @@
"KF" = (
/obj/item/radio/intercom{
dir = 8;
- name = "station intercom (General)";
pixel_x = -28
},
/obj/structure/chair/comfy/shuttle{
@@ -10132,7 +9879,6 @@
"KM" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/obj/structure/chair/comfy/shuttle{
@@ -10147,7 +9893,6 @@
},
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/obj/structure/chair/comfy/shuttle,
@@ -10228,7 +9973,6 @@
"Li" = (
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -10236,7 +9980,6 @@
"Lj" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -10250,7 +9993,6 @@
"Lm" = (
/obj/machinery/door/poddoor/shutters{
density = 0;
- dir = 4;
icon_state = "open";
id_tag = "voxshutters";
name = "Blast Shutters";
@@ -10303,7 +10045,6 @@
/obj/item/storage/box/handcuffs,
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -10331,7 +10072,6 @@
/obj/item/storage/backpack/medic,
/obj/item/storage/belt/medical,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cmo"
},
/area/shuttle/escape)
@@ -10406,7 +10146,6 @@
id = "syndicate_elite";
name = "Blast Doors";
pixel_x = -25;
- pixel_y = 0;
req_access_txt = "150"
},
/obj/machinery/door/poddoor{
@@ -10461,7 +10200,6 @@
"MB" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/mineral/titanium/blue,
@@ -10492,8 +10230,7 @@
"MI" = (
/obj/item/twohanded/required/kirbyplants,
/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
+ dir = 8
},
/turf/simulated/floor/plasteel,
/area/shuttle/escape)
@@ -10546,7 +10283,6 @@
"Nb" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -10565,7 +10301,6 @@
/obj/machinery/clonepod/upgraded,
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/mineral/titanium,
@@ -10592,7 +10327,6 @@
"Nv" = (
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/plasteel/dark,
@@ -10621,8 +10355,7 @@
/area/shuttle/escape)
"NB" = (
/obj/machinery/light{
- dir = 4;
- icon_state = "tube1"
+ dir = 4
},
/turf/simulated/floor/plating/nitrogen,
/area/shuttle/vox)
@@ -10695,8 +10428,7 @@
dir = 4
},
/obj/structure/shuttle/engine/heater{
- dir = 8;
- icon_state = "heater"
+ dir = 8
},
/turf/simulated/floor/plating/airless,
/area/shuttle/specops)
@@ -10706,7 +10438,6 @@
"NY" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/obj/structure/chair/comfy/shuttle{
@@ -10799,16 +10530,14 @@
"Oy" = (
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
- name = "Escape Shuttle Infirmary";
- req_access_txt = "0"
+ name = "Escape Shuttle Infirmary"
},
/obj/effect/decal/warning_stripes/south,
/turf/simulated/floor/plasteel,
/area/shuttle/escape)
"Oz" = (
/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
+ dir = 8
},
/turf/simulated/floor/plasteel,
/area/shuttle/escape)
@@ -10902,7 +10631,6 @@
"Pl" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/obj/machinery/suit_storage_unit/syndicate/secure,
@@ -10938,8 +10666,7 @@
/area/shuttle/administration)
"PD" = (
/obj/structure/shuttle/engine/propulsion{
- dir = 8;
- icon_state = "propulsion"
+ dir = 8
},
/turf/simulated/floor/plating/airless,
/area/shuttle/trade/sol)
@@ -10961,7 +10688,6 @@
/obj/item/tank/internals/nitrogen,
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/mineral/plastitanium/red/nitrogen,
@@ -11039,7 +10765,6 @@
},
/obj/structure/bed/roller,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cmo"
},
/area/shuttle/escape)
@@ -11127,8 +10852,7 @@
"QD" = (
/obj/machinery/door/airlock/medical/glass{
id_tag = null;
- name = "Escape Shuttle Infirmary";
- req_access_txt = "0"
+ name = "Escape Shuttle Infirmary"
},
/turf/simulated/floor/plasteel{
dir = 8;
@@ -11150,8 +10874,7 @@
/area/shuttle/escape)
"QH" = (
/obj/structure/reagent_dispensers/fueltank/chem{
- pixel_x = -32;
- pixel_y = 0
+ pixel_x = -32
},
/turf/simulated/floor/plasteel{
dir = 1;
@@ -11165,7 +10888,6 @@
"QK" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/obj/structure/chair/comfy/shuttle{
@@ -11184,7 +10906,6 @@
/area/syndicate_mothership/jail)
"QQ" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon = 'icons/turf/floors/plating.dmi';
icon_state = "asteroid6";
tag = "icon-asteroid6"
@@ -11192,7 +10913,6 @@
/area/holodeck/source_desert)
"QR" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
- dir = 2;
frequency = 1331;
id_tag = "synd_pump"
},
@@ -11237,7 +10957,6 @@
"Re" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/obj/machinery/sleeper/syndie{
@@ -11255,7 +10974,6 @@
/obj/structure/window/reinforced,
/obj/structure/shuttle/engine/heater{
dir = 1;
- icon_state = "heater";
tag = "icon-heater (NORTH)"
},
/turf/simulated/floor/plating/airless,
@@ -11281,7 +10999,6 @@
"Rn" = (
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/obj/machinery/door_control{
@@ -11289,16 +11006,14 @@
layer = 3;
name = "Loading Doors";
pixel_x = 24;
- pixel_y = 8;
- req_access_txt = "0"
+ pixel_y = 8
},
/obj/machinery/door_control{
id = "QMLoaddoor";
layer = 3;
name = "Loading Doors";
pixel_x = 24;
- pixel_y = -8;
- req_access_txt = "0"
+ pixel_y = -8
},
/turf/simulated/floor/mineral/titanium/blue,
/area/shuttle/supply)
@@ -11351,7 +11066,6 @@
"RF" = (
/obj/structure/shuttle/engine/propulsion{
dir = 1;
- icon_state = "propulsion";
tag = "icon-propulsion (NORTH)"
},
/turf/simulated/floor/plating/airless,
@@ -11438,8 +11152,7 @@
desc = "A warning sign which reads 'EXTERNAL AIRLOCK'";
icon_state = "space";
layer = 4;
- name = "EXTERNAL AIRLOCK";
- pixel_x = 0
+ name = "EXTERNAL AIRLOCK"
},
/turf/simulated/wall/mineral/plastitanium,
/area/shuttle/syndicate)
@@ -11449,7 +11162,6 @@
"Sp" = (
/obj/item/flag/med,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cmo"
},
/area/shuttle/escape)
@@ -11472,9 +11184,7 @@
/turf/simulated/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"Sv" = (
-/obj/machinery/atmospherics/unary/tank/air{
- dir = 2
- },
+/obj/machinery/atmospherics/unary/tank/air,
/turf/simulated/wall/mineral/plastitanium,
/area/shuttle/syndicate)
"Sy" = (
@@ -11500,7 +11210,6 @@
"SH" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/mineral/titanium/blue,
@@ -11542,7 +11251,6 @@
/obj/item/clothing/head/helmet/riot/knight/blue,
/obj/item/holo/claymore/blue,
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "blue"
},
/area/holodeck/source_knightarena)
@@ -11620,8 +11328,7 @@
network = list("SS13","Research Outpost","Mining Outpost","Telecomms")
},
/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_x = -32;
- pixel_y = 0
+ pixel_x = -32
},
/turf/simulated/floor/plasteel{
dir = 9;
@@ -11655,7 +11362,6 @@
"TQ" = (
/obj/structure/holowindow,
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "asteroid7";
tag = "icon-asteroid7"
},
@@ -11743,7 +11449,6 @@
/area/shuttle/syndicate)
"Uv" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon = 'icons/turf/floors/plating.dmi';
icon_state = "asteroid5";
tag = "icon-asteroid5"
@@ -11755,9 +11460,7 @@
/area/shuttle/syndicate)
"Uy" = (
/obj/structure/table/holotable,
-/obj/machinery/readybutton{
- pixel_y = 0
- },
+/obj/machinery/readybutton,
/turf/simulated/floor/holofloor{
dir = 6;
icon_state = "green"
@@ -11778,7 +11481,6 @@
"UC" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/obj/structure/window/reinforced,
@@ -11790,7 +11492,6 @@
"UD" = (
/obj/machinery/door/window{
base_state = "right";
- dir = 4;
icon_state = "right";
name = "Infirmary";
req_access_txt = "150"
@@ -11855,7 +11556,6 @@
"Va" = (
/obj/machinery/camera{
c_tag = "CentComm Special Ops. Shuttle";
- dir = 2;
network = list("ERT","CentComm")
},
/obj/structure/chair/comfy/shuttle,
@@ -11882,7 +11582,6 @@
},
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -12027,7 +11726,6 @@
/area/shuttle/syndicate)
"VZ" = (
/turf/simulated/floor/holofloor{
- dir = 2;
icon_state = "asteroid7";
tag = "icon-asteroid7"
},
@@ -12068,7 +11766,6 @@
"Wh" = (
/obj/machinery/door/airlock/command/glass{
name = "Escape Shuttle Cockpit";
- req_access_txt = "0";
req_one_access_txt = "2;19"
},
/turf/simulated/floor/plasteel{
@@ -12109,7 +11806,6 @@
"Wp" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/obj/structure/chair/comfy/shuttle,
@@ -12150,7 +11846,6 @@
"WL" = (
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/obj/structure/chair/comfy/shuttle{
@@ -12197,7 +11892,6 @@
"Xi" = (
/obj/machinery/light/spot{
dir = 1;
- icon_state = "tube1";
tag = "icon-tube1 (NORTH)"
},
/obj/machinery/door_control{
@@ -12205,16 +11899,14 @@
name = "Blast door control";
pixel_x = -5;
pixel_y = 35;
- req_access = list(101);
- req_access_txt = "0"
+ req_access = list(101)
},
/obj/machinery/door_control{
id = "adminshuttleshutters";
name = "Shutter control";
pixel_x = 5;
pixel_y = 35;
- req_access = list(101);
- req_access_txt = "0"
+ req_access = list(101)
},
/obj/structure/chair/comfy/shuttle{
dir = 4
@@ -12273,7 +11965,6 @@
id = "syndicate_sit_1";
name = "Blast Doors";
pixel_x = -25;
- pixel_y = 0;
req_access_txt = "150"
},
/obj/structure/fans/tiny,
@@ -12314,7 +12005,6 @@
"XC" = (
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/mineral/titanium,
@@ -12322,7 +12012,6 @@
"XG" = (
/obj/structure/bed/roller,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cmo"
},
/area/shuttle/escape)
@@ -12332,7 +12021,6 @@
"XJ" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/obj/machinery/access_button{
@@ -12386,7 +12074,6 @@
/area/shuttle/vox)
"Ya" = (
/obj/machinery/atm{
- pixel_x = 0;
pixel_y = 32
},
/obj/structure/chair/comfy/shuttle{
@@ -12396,9 +12083,7 @@
/area/shuttle/trade/sol)
"Yc" = (
/obj/structure/table/holotable,
-/obj/machinery/readybutton{
- pixel_y = 0
- },
+/obj/machinery/readybutton,
/turf/simulated/floor/holofloor{
dir = 9;
icon_state = "red"
@@ -12438,7 +12123,6 @@
"Yl" = (
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -12544,7 +12228,6 @@
"Za" = (
/obj/structure/shuttle/engine/heater{
dir = 8;
- icon_state = "heater";
tag = "icon-heater (WEST)"
},
/obj/structure/window/plasmareinforced{
@@ -12575,7 +12258,6 @@
"Zi" = (
/obj/machinery/sleeper,
/turf/simulated/floor/plasteel{
- dir = 2;
icon_state = "cmo"
},
/area/shuttle/escape)
@@ -12605,7 +12287,6 @@
},
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/plating/nitrogen,
@@ -12644,7 +12325,6 @@
},
/obj/machinery/light/spot{
dir = 4;
- icon_state = "tube1";
tag = "icon-tube1 (EAST)"
},
/turf/simulated/floor/plating/nitrogen,
@@ -12661,7 +12341,6 @@
"ZK" = (
/obj/machinery/light/spot{
dir = 8;
- icon_state = "tube1";
tag = "icon-tube1 (WEST)"
},
/turf/simulated/floor/mineral/plastitanium/red,
@@ -26968,7 +26647,7 @@ fm
of
of
of
-pt
+pn
of
of
of
@@ -56466,7 +56145,7 @@ aN
Yi
ik
hn
-eq
+hD
iL
ex
hn
diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm
index 2558653c510..42afde1f494 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -743,3 +743,11 @@
///SSalarm signals
#define COMSIG_TRIGGERED_ALARM "ssalarm_triggered"
#define COMSIG_CANCELLED_ALARM "ssalarm_cancelled"
+
+// /obj/machinery/door signals
+#define COMSIG_DOOR_OPEN "door_open"
+#define COMSIG_DOOR_CLOSE "door_close"
+
+// /obj/machinery/door/airlock signals
+#define COMSIG_AIRLOCK_OPEN "airlock_open"
+#define COMSIG_AIRLOCK_CLOSE "airlock_close"
diff --git a/code/__DEFINES/gamemode.dm b/code/__DEFINES/gamemode.dm
index 9aee8f85eba..042fdc6e3e9 100644
--- a/code/__DEFINES/gamemode.dm
+++ b/code/__DEFINES/gamemode.dm
@@ -32,7 +32,6 @@
#define SPECIAL_ROLE_FREE_GOLEM "Free Golem"
#define SPECIAL_ROLE_GOLEM "Golem"
#define SPECIAL_ROLE_HEAD_REV "Head Revolutionary"
-#define SPECIAL_ROLE_HONKSQUAD "Honksquad"
#define SPECIAL_ROLE_REV "Revolutionary"
#define SPECIAL_ROLE_MORPH "Morph"
#define SPECIAL_ROLE_MULTIVERSE "Multiverse Traveller"
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index a7f14a0ffe1..22ecbc1208e 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -22,8 +22,6 @@
#define iseffect(A) (istype(A, /obj/effect))
-#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable
-
#define isclothing(A) (istype(A, /obj/item/clothing))
#define is_pen(W) (istype(W, /obj/item/pen))
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index ad182c9f9c4..3d38b8716b6 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -489,3 +489,8 @@
/// Send to the mentor Discord webhook
#define DISCORD_WEBHOOK_MENTOR "MENTOR"
+
+// Hallucination severities
+#define HALLUCINATE_MINOR 1
+#define HALLUCINATE_MODERATE 2
+#define HALLUCINATE_MAJOR 3
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index a023063ca7f..b714a79a4c5 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -277,6 +277,11 @@
#define HEARING_PROTECTION_MAJOR 2
#define HEARING_PROTECTION_TOTAL 3
+// Defines used in /mob/living/carbon/human/update_health_hud to override the health status
+#define HEALTH_HUD_OVERRIDE_NONE 0
+#define HEALTH_HUD_OVERRIDE_CRIT 1
+#define HEALTH_HUD_OVERRIDE_DEAD 2
+#define HEALTH_HUD_OVERRIDE_HEALTHY 3
// Eye protection
#define FLASH_PROTECTION_SENSITIVE -1
#define FLASH_PROTECTION_NONE 0
diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm
index 85c15c1971c..45c7a5d0f99 100644
--- a/code/__DEFINES/role_preferences.dm
+++ b/code/__DEFINES/role_preferences.dm
@@ -39,11 +39,16 @@
#define ROLE_ERT "emergency response team"
#define ROLE_NYMPH "Dionaea"
#define ROLE_GSPIDER "giant spider"
+#define ROLE_TSPIDER "terror spider"
#define ROLE_DRONE "drone"
#define ROLE_DEATHSQUAD "deathsquad"
#define ROLE_EVENTMISC "eventmisc"
#define ROLE_GHOST "ghost role"
+// Misc jobban categories
+#define ROLEBAN_AHUD "AntagHUD"
+#define ROLEBAN_RECORDS "Records"
+
//Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR.
//The gamemode specific ones are just so the gamemodes can query whether a player is old enough
//(in game days played) to play that role
diff --git a/code/__DEFINES/rolebans.dm b/code/__DEFINES/rolebans.dm
index ad6f1324afa..58670bcbb77 100644
--- a/code/__DEFINES/rolebans.dm
+++ b/code/__DEFINES/rolebans.dm
@@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(antag_roles, list(
ROLE_GUARDIAN,
ROLE_MORPH,
ROLE_GSPIDER,
+ ROLE_TSPIDER,
))
// Bannable other roles
@@ -26,6 +27,6 @@ GLOBAL_LIST_INIT(other_roles, list(
ROLE_NYMPH,
ROLE_ERT,
ROLE_GHOST,
- "AntagHUD",
- "Records"
+ ROLEBAN_AHUD,
+ ROLEBAN_RECORDS
))
diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm
index 0d7a945ffde..fea2756f664 100644
--- a/code/__HELPERS/_logging.dm
+++ b/code/__HELPERS/_logging.dm
@@ -140,6 +140,14 @@ GLOBAL_PROTECT(log_end)
/proc/log_tgui(text)
rustg_log_write(GLOB.tgui_log, "[text][GLOB.log_end]")
+#ifdef REFERENCE_TRACKING
+/proc/log_gc(text)
+ rustg_log_write(GLOB.gc_log, "[text][GLOB.log_end]")
+ for(var/client/C in GLOB.admins)
+ if(check_rights(R_DEBUG, FALSE, C.mob) && (C.prefs.toggles & PREFTOGGLE_CHAT_DEBUGLOGS))
+ to_chat(C, "GC DEBUG: [text]")
+#endif
+
/proc/log_sql(text)
rustg_log_write(GLOB.sql_log, "[text][GLOB.log_end]")
SEND_TEXT(world.log, text) // Redirect it to DD too
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 63e527b59f2..561ab7ca198 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -308,7 +308,7 @@
if(G.client != null)
if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD))
if(!G.client.is_afk(afk_bracket) && (be_special_type in G.client.prefs.be_special))
- if(!override_jobban || (!jobban_isbanned(G, roletext) && !jobban_isbanned(G,"Syndicate")))
+ if(!override_jobban || (!jobban_isbanned(G, roletext) && !jobban_isbanned(G, ROLE_SYNDICATE)))
if(override_age || player_old_enough_antag(G.client,be_special_type))
candidates += G.client
afk_bracket += 600 // Add a minute to the bracket, for every attempt
@@ -324,7 +324,7 @@
if(G.client != null)
if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD))
if(!G.client.is_afk(afk_bracket) && (be_special_type in G.client.prefs.be_special))
- if(!override_jobban || (!jobban_isbanned(G, roletext) && !jobban_isbanned(G,"Syndicate")))
+ if(!override_jobban || (!jobban_isbanned(G, roletext) && !jobban_isbanned(G, ROLE_SYNDICATE)))
if(override_age || player_old_enough_antag(G.client,be_special_type))
candidates += G
afk_bracket += 600 // Add a minute to the bracket, for every attempt
diff --git a/code/__HELPERS/traits.dm b/code/__HELPERS/traits.dm
index 4241cee9e9b..a6d288d6af0 100644
--- a/code/__HELPERS/traits.dm
+++ b/code/__HELPERS/traits.dm
@@ -119,6 +119,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_XENO_HOST "xeno_host" //Tracks whether we're gonna be a baby alien's mummy.
#define TRAIT_SHOCKIMMUNE "shock_immunity"
#define TRAIT_TESLA_SHOCKIMMUNE "tesla_shock_immunity"
+#define TRAIT_TELEKINESIS "telekinesis"
#define TRAIT_RESISTHEAT "resist_heat"
#define TRAIT_RESISTHEATHANDS "resist_heat_handsonly" //For when you want to be able to touch hot things, but still want fire to be an issue.
#define TRAIT_RESISTCOLD "resist_cold"
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 5f95d44efc4..8478d8c0c91 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -31,19 +31,20 @@
return 1
-/proc/Get_Angle(atom/movable/start,atom/movable/end)//For beams.
- if(!start || !end) return 0
+/proc/get_angle(atom/movable/start, atom/movable/end)//For beams.
+ if(!start || !end)
+ return 0
var/dy
var/dx
- dy=(32*end.y+end.pixel_y)-(32*start.y+start.pixel_y)
- dx=(32*end.x+end.pixel_x)-(32*start.x+start.pixel_x)
+ dy = (32 * end.y + end.pixel_y) - (32 * start.y + start.pixel_y)
+ dx = (32 * end.x + end.pixel_x) - (32 * start.x + start.pixel_x)
if(!dy)
- return (dx>=0)?90:270
- .=arctan(dx/dy)
- if(dy<0)
- .+=180
- else if(dx<0)
- .+=360
+ return (dx >= 0) ? 90 : 270
+ . = arctan(dx / dy)
+ if(dy < 0)
+ . += 180
+ else if(dx < 0)
+ . += 360
//Returns location. Returns null if no location was found.
/proc/get_teleport_loc(turf/location,mob/target,distance = 1, density = 0, errorx = 0, errory = 0, eoffsetx = 0, eoffsety = 0)
@@ -1246,10 +1247,6 @@ GLOBAL_LIST_INIT(wall_items, typecacheof(list(/obj/machinery/power/apc, /obj/mac
return 1
return 0
-
-/proc/get_angle(atom/a, atom/b)
- return atan2(b.y - a.y, b.x - a.x)
-
/proc/atan2(x, y)
if(!x && !y) return 0
return y >= 0 ? arccos(x / sqrt(x * x + y * y)) : -arccos(x / sqrt(x * x + y * y))
diff --git a/code/_compile_options.dm b/code/_compile_options.dm
index 21e3765ddde..f409af92aaa 100644
--- a/code/_compile_options.dm
+++ b/code/_compile_options.dm
@@ -9,13 +9,15 @@
#define UNIT_TESTS
#endif
-#ifdef TESTING
-//#define GC_FAILURE_HARD_LOOKUP //makes paths that fail to GC call find_references before del'ing.
- //implies FIND_REF_NO_CHECK_TICK
+/***** All toggles for the GC ref finder *****/
-//#define FIND_REF_NO_CHECK_TICK //Sets world.loop_checks to false and prevents find references from sleeping
+// #define REFERENCE_TRACKING // Uncomment to enable ref finding
-#endif
+// #define GC_FAILURE_HARD_LOOKUP //makes paths that fail to GC call find_references before del'ing.
+
+// #define FIND_REF_NO_CHECK_TICK //Sets world.loop_checks to false and prevents find references from sleeping
+
+/***** End toggles for the GC ref finder *****/
#define IS_MODE_COMPILED(MODE) (ispath(text2path("/datum/game_mode/"+(MODE))))
diff --git a/code/_globalvars/lists/misc.dm b/code/_globalvars/lists/misc.dm
index b5fd84ef6d6..2873a626590 100644
--- a/code/_globalvars/lists/misc.dm
+++ b/code/_globalvars/lists/misc.dm
@@ -30,7 +30,8 @@ GLOBAL_LIST_INIT(restricted_camera_networks, list(
"UO45",
"UO45R",
"UO71",
- "Xeno"
+ "Xeno",
+ "SyndicateTestLab"
)) //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them.
GLOBAL_LIST_INIT(ruin_landmarks, list())
diff --git a/code/_globalvars/lists/reagents.dm b/code/_globalvars/lists/reagents.dm
index 833da2a9879..0684be758cd 100644
--- a/code/_globalvars/lists/reagents.dm
+++ b/code/_globalvars/lists/reagents.dm
@@ -40,7 +40,7 @@ GLOBAL_LIST_INIT(drinks, list("beer2","hot_coco","orangejuice","tomatojuice","li
"booger","bloodymary","gargleblaster","bravebull","tequilasunrise","toxinsspecial",
"beepskysmash","salglu_solution","irishcream","manlydorf","longislandicedtea",
"moonshine","b52","irishcoffee","margarita","blackrussian","manhattan",
- "manhattan_proj","whiskeysoda","antifreeze","barefoot","snowwhite","demonsblood",
+ "manhattan_proj","whiskeysoda","adminfreeze","antifreeze","barefoot","snowwhite","demonsblood",
"vodkatonic","ginfizz","bahama_mama","singulo","sbiten","devilskiss","red_mead",
"mead","iced_beer","grog","aloe","andalusia","alliescocktail","soy_latte",
"cafe_latte","acidspit","amasec","neurotoxin","hippiesdelight","bananahonk",
diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm
index c111aff28cf..06a4fc52a46 100644
--- a/code/_globalvars/logging.dm
+++ b/code/_globalvars/logging.dm
@@ -24,6 +24,11 @@ GLOBAL_PROTECT(chat_debug_log)
GLOBAL_VAR(round_id)
GLOBAL_PROTECT(round_id)
+#ifdef REFERENCE_TRACKING
+GLOBAL_VAR(gc_log)
+GLOBAL_PROTECT(gc_log)
+#endif
+
GLOBAL_LIST_EMPTY(jobMax)
GLOBAL_PROTECT(jobMax)
GLOBAL_LIST_EMPTY(admin_log)
diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm
index 554fa2581a4..40dfb374170 100644
--- a/code/_globalvars/misc.dm
+++ b/code/_globalvars/misc.dm
@@ -33,44 +33,6 @@ GLOBAL_VAR_INIT(gravity_is_on, 1) //basically unused, just one admin verb..
// Recall time limit: 2 hours
GLOBAL_VAR_INIT(recall_time_limit, 72000) //apparently used for the comm console
-//////SCORE STUFF
-//Goonstyle scoreboard
-GLOBAL_VAR_INIT(score_crewscore, 0) // this is the overall var/score for the whole round
-GLOBAL_VAR_INIT(score_stuffshipped, 0) // how many useful items have cargo shipped out?
-GLOBAL_VAR_INIT(score_stuffharvested, 0) // how many harvests have hydroponics done?
-GLOBAL_VAR_INIT(score_oremined, 0) // obvious
-GLOBAL_VAR_INIT(score_researchdone, 0)
-GLOBAL_VAR_INIT(score_eventsendured, 0) // how many random events did the station survive?
-GLOBAL_VAR_INIT(score_powerloss, 0) // how many APCs have poor charge?
-GLOBAL_VAR_INIT(score_escapees, 0) // how many people got out alive?
-GLOBAL_VAR_INIT(score_deadcrew, 0) // dead bodies on the station, oh no
-GLOBAL_VAR_INIT(score_mess, 0) // how much poo, puke, gibs, etc went uncleaned
-GLOBAL_VAR_INIT(score_meals, 0)
-GLOBAL_VAR_INIT(score_disease, 0) // how many rampant, uncured diseases are on board the station
-GLOBAL_VAR_INIT(score_deadcommand, 0) // used during rev, how many command staff perished
-GLOBAL_VAR_INIT(score_arrested, 0) // how many traitors/revs/whatever are alive in the brig
-GLOBAL_VAR_INIT(score_traitorswon, 0) // how many traitors were successful?
-GLOBAL_VAR_INIT(score_allarrested, 0) // did the crew catch all the enemies alive?
-GLOBAL_VAR_INIT(score_opkilled, 0) // used during nuke mode, how many operatives died?
-GLOBAL_VAR_INIT(score_disc, 0) // is the disc safe and secure?
-GLOBAL_VAR_INIT(score_nuked, 0) // was the station blown into little bits?
-GLOBAL_VAR_INIT(score_nuked_penalty, 0) //penalty for getting blown to bits
-
- // these ones are mainly for the stat panel
-GLOBAL_VAR_INIT(score_powerbonus, 0) // if all APCs on the station are running optimally, big bonus
-GLOBAL_VAR_INIT(score_messbonus, 0) // if there are no messes on the station anywhere, huge bonus
-GLOBAL_VAR_INIT(score_deadaipenalty, 0) // is the AI dead? if so, big penalty
-GLOBAL_VAR_INIT(score_foodeaten, 0) // nom nom nom
-GLOBAL_VAR_INIT(score_clownabuse, 0) // how many times a clown was punched, struck or otherwise maligned
-GLOBAL_VAR(score_richestname) // this is all stuff to show who was the richest alive on the shuttle
-GLOBAL_VAR(score_richestjob) // kinda pointless if you dont have a money system i guess
-GLOBAL_VAR_INIT(score_richestcash, 0)
-GLOBAL_VAR(score_richestkey)
-GLOBAL_VAR(score_dmgestname) // who had the most damage on the shuttle (but was still alive)
-GLOBAL_VAR(score_dmgestjob)
-GLOBAL_VAR_INIT(score_dmgestdamage, 0)
-GLOBAL_VAR(score_dmgestkey)
-
#define TAB " "
GLOBAL_VAR_INIT(timezoneOffset, 0) // The difference betwen midnight (of the host computer) and 0 world.ticks.
diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm
index da0fb3b8fc2..39551da14b6 100644
--- a/code/_globalvars/traits.dm
+++ b/code/_globalvars/traits.dm
@@ -24,6 +24,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_XENO_HOST" = TRAIT_XENO_HOST,
"TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE,
"TRAIT_TESLA_SHOCKIMMUNE" = TRAIT_TESLA_SHOCKIMMUNE,
+ "TRAIT_TELEKINESIS" = TRAIT_TELEKINESIS,
"TRAIT_RESISTHEAT" = TRAIT_RESISTHEAT,
"TRAIT_RESISTHEATHANDS" = TRAIT_RESISTHEATHANDS,
"TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD,
diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm
index a907a5dfc45..b023aaa4dd0 100644
--- a/code/_onclick/ai.dm
+++ b/code/_onclick/ai.dm
@@ -215,11 +215,3 @@
if(!ai_control_check(user))
return
toggle_light(user)
-
-// AI-CONTROLLED SLIP GENERATOR IN AI CORE
-
-/obj/machinery/ai_slipper/AICtrlClick(mob/living/silicon/ai/user) //Turns liquid dispenser on or off
- ToggleOn()
-
-/obj/machinery/ai_slipper/AIAltClick() //Dispenses liquid if on
- Activate()
diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm
index 2bf62cdc5c7..40fcfc82671 100644
--- a/code/_onclick/cyborg.dm
+++ b/code/_onclick/cyborg.dm
@@ -17,7 +17,7 @@
if(is_ventcrawling(src)) // To stop drones interacting with anything while ventcrawling
return
- if(stat == DEAD)
+ if(stat == DEAD || lockcharge || IsWeakened() || stunned || paralysis || low_power_mode)
return
var/list/modifiers = params2list(params)
@@ -169,16 +169,6 @@
/obj/machinery/power/apc/BorgCtrlClick(mob/living/silicon/robot/user) // turns off/on APCs. Forwards to AI code.
AICtrlClick(user)
-
-// AI SLIPPER
-
-/obj/machinery/ai_slipper/BorgCtrlClick(mob/living/silicon/robot/user) //Turns liquid dispenser on or off
- ToggleOn()
-
-/obj/machinery/ai_slipper/BorgAltClick(mob/living/silicon/robot/user) //Dispenses liquid if on
- Activate()
-
-
// TURRETCONTROL
/obj/machinery/turretid/BorgCtrlClick(mob/living/silicon/robot/user) //turret control on/off. Forwards to AI code.
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index b2338937ebc..7eed9f0e2ef 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -45,7 +45,7 @@
if(HAS_TRAIT(src, TRAIT_LASEREYES) && a_intent == INTENT_HARM)
LaserEyes(A)
- if(dna.GetSEState(GLOB.teleblock))
+ if(HAS_TRAIT(src, TRAIT_TELEKINESIS))
A.attack_tk(src)
if(isturf(A) && get_dist(src, A) <= 1)
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index 342af86c0b6..5e22e548a99 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -39,7 +39,7 @@
/obj/item/attack_tk(mob/user)
if(user.stat || !isturf(loc))
return
- if(user.dna?.GetSEState(GLOB.teleblock) && !user.get_active_hand()) // both should already be true to get here
+ if(HAS_TRAIT(user, TRAIT_TELEKINESIS) && !user.get_active_hand()) // both should already be true to get here
var/obj/item/tk_grab/O = new(src)
O.form_grab(user, src)
else
@@ -109,7 +109,7 @@
if(!host || host != user)
qdel(src)
return
- if(!host.dna?.GetSEState(GLOB.teleblock))
+ if(!HAS_TRAIT(host, TRAIT_TELEKINESIS))
qdel(src)
return
if(isobj(target) && !isturf(target.loc))
@@ -139,6 +139,12 @@
else
+ if(focus.buckled_mobs)
+ to_chat(user, "This object is too heavy to move with something buckled to it!")
+ return
+ if(length(focus.client_mobs_in_contents))
+ to_chat(user, "This object is too heavy to move with something inside of it!")
+ return
apply_focus_overlay()
focus.throw_at(target, 10, 1, user)
last_throw = world.time
diff --git a/code/controllers/subsystem/chat_pings.dm b/code/controllers/subsystem/chat_pings.dm
new file mode 100644
index 00000000000..ad013cab3d6
--- /dev/null
+++ b/code/controllers/subsystem/chat_pings.dm
@@ -0,0 +1,16 @@
+SUBSYSTEM_DEF(chat_pings)
+ name = "Chat Pings"
+ flags = SS_NO_INIT
+ runlevels = RUNLEVEL_INIT | RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME // ALL OF THEM
+ wait = 30 SECONDS // Chat pings every 30 seconds
+ /// List of all held chat datums
+ var/list/datum/chatOutput/chat_datums = list() // Do NOT put this in Initialize(). You will cause issues.
+
+/datum/controller/subsystem/chat_pings/fire(resumed)
+ for(var/datum/chatOutput/CO as anything in chat_datums)
+ CO.updatePing()
+ if(MC_TICK_CHECK)
+ return
+
+/datum/controller/subsystem/chat_pings/stat_entry()
+ ..("P: [length(chat_datums)]")
diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm
index e50c372584a..e66b93b6eda 100644
--- a/code/controllers/subsystem/garbage.dm
+++ b/code/controllers/subsystem/garbage.dm
@@ -26,8 +26,9 @@ SUBSYSTEM_DEF(garbage)
//Queue
var/list/queues
- #ifdef TESTING
+ #ifdef REFERENCE_TRACKING
var/list/reference_find_on_fail = list()
+ var/ref_search_stop = FALSE
#endif
@@ -137,7 +138,7 @@ SUBSYSTEM_DEF(garbage)
++gcedlasttick
++totalgcs
pass_counts[level]++
- #ifdef TESTING
+ #ifdef REFERENCE_TRACKING
reference_find_on_fail -= refID //It's deleted we don't care anymore.
#endif
if(MC_TICK_CHECK)
@@ -146,20 +147,27 @@ SUBSYSTEM_DEF(garbage)
// Something's still referring to the qdel'd object.
fail_counts[level]++
+ #ifdef REFERENCE_TRACKING
+ var/ref_searching = FALSE
+ #endif
switch(level)
if(GC_QUEUE_CHECK)
- #ifdef TESTING
- if(reference_find_on_fail[refID])
- D.find_references()
+ #ifdef REFERENCE_TRACKING
+ if(reference_find_on_fail[refID] && !ref_search_stop)
+ INVOKE_ASYNC(D, /datum/proc/find_references)
+ ref_searching = TRUE
#ifdef GC_FAILURE_HARD_LOOKUP
- else
- D.find_references()
+ else if (!ref_search_stop)
+ INVOKE_ASYNC(D, /datum/proc/find_references)
+ ref_searching = TRUE
#endif
reference_find_on_fail -= refID
#endif
var/type = D.type
var/datum/qdel_item/I = items[type]
- testing("GC: -- \ref[src] | [type] was unable to be GC'd --")
+ #ifdef REFERENCE_TRACKING
+ log_gc("GC: -- \ref[src] | [type] was unable to be GC'd --")
+ #endif
I.failures++
if(GC_QUEUE_HARDDELETE)
HardDelete(D)
@@ -169,6 +177,11 @@ SUBSYSTEM_DEF(garbage)
Queue(D, level + 1)
+ #ifdef REFERENCE_TRACKING
+ if(ref_searching)
+ return
+ #endif
+
if(MC_TICK_CHECK)
return
if(count)
@@ -243,10 +256,14 @@ SUBSYSTEM_DEF(garbage)
/datum/qdel_item/New(mytype)
name = "[mytype]"
-#ifdef TESTING
-/proc/qdel_and_find_ref_if_fail(datum/D, force = FALSE)
- SSgarbage.reference_find_on_fail["\ref[D]"] = TRUE
- qdel(D, force)
+#ifdef REFERENCE_TRACKING
+/proc/qdel_and_find_ref_if_fail(datum/thing_to_del, force = FALSE)
+ thing_to_del.qdel_and_find_ref_if_fail(force)
+
+/datum/proc/qdel_and_find_ref_if_fail(force = FALSE)
+ SSgarbage.reference_find_on_fail["\ref[src]"] = TRUE
+ qdel(src, force)
+
#endif
// Should be treated as a replacement for the 'del' keyword.
@@ -304,38 +321,39 @@ SUBSYSTEM_DEF(garbage)
SSgarbage.HardDelete(D)
if(QDEL_HINT_FINDREFERENCE)//qdel will, if TESTING is enabled, display all references to this object, then queue the object for deletion.
SSgarbage.Queue(D)
- #ifdef TESTING
+ #ifdef REFERENCE_TRACKING
D.find_references()
#endif
if(QDEL_HINT_IFFAIL_FINDREFERENCE)
SSgarbage.Queue(D)
- #ifdef TESTING
+ #ifdef REFERENCE_TRACKING
SSgarbage.reference_find_on_fail["\ref[D]"] = TRUE
#endif
else
- #ifdef TESTING
+ #ifdef REFERENCE_TRACKING
if(!I.no_hint)
- testing("WARNING: [D.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.")
+ log_gc("WARNING: [D.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.")
#endif
I.no_hint++
SSgarbage.Queue(D)
else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic")
-#ifdef TESTING
+#ifdef REFERENCE_TRACKING
-/datum/verb/find_refs()
+/datum/proc/find_refs()
set category = "Debug"
set name = "Find References"
- set src in world
+ if(!check_rights(R_DEBUG))
+ return
find_references(FALSE)
/datum/proc/find_references(skip_alert)
running_find_references = type
if(usr && usr.client)
if(usr.client.running_find_references)
- testing("CANCELLED search for references to a [usr.client.running_find_references].")
+ log_gc("CANCELLED search for references to a [usr.client.running_find_references].")
usr.client.running_find_references = null
running_find_references = null
//restart the garbage collector
@@ -354,20 +372,27 @@ SUBSYSTEM_DEF(garbage)
if(usr && usr.client)
usr.client.running_find_references = type
- testing("Beginning search for references to a [type].")
- last_find_references = world.time
+ log_gc("Beginning search for references to a [type].")
+ var/starting_time = world.time
- DoSearchVar(GLOB) //globals
+ DoSearchVar(GLOB, "GLOB") //globals
+ log_gc("Finished searching globals")
for(var/datum/thing in world) //atoms (don't beleive it's lies)
- DoSearchVar(thing, "World -> [thing]")
+ DoSearchVar(thing, "World -> [thing.type]", search_time = starting_time)
+
+ log_gc("Finished searching atoms")
for(var/datum/thing) //datums
- DoSearchVar(thing, "World -> [thing]")
+ DoSearchVar(thing, "World -> [thing.type]", search_time = starting_time)
+
+ log_gc("Finished searching datums")
for(var/client/thing) //clients
- DoSearchVar(thing, "World -> [thing]")
+ DoSearchVar(thing, "World -> [thing.type]", search_time = starting_time)
- testing("Completed search for references to a [type].")
+ log_gc("Finished searching clients")
+
+ log_gc("Completed search for references to a [type].")
if(usr && usr.client)
usr.client.running_find_references = null
running_find_references = null
@@ -376,58 +401,86 @@ SUBSYSTEM_DEF(garbage)
SSgarbage.can_fire = 1
SSgarbage.next_fire = world.time + world.tick_lag
-/datum/verb/qdel_then_find_references()
+/datum/proc/qdel_then_find_references()
set category = "Debug"
set name = "qdel() then Find References"
- set src in world
+ if(!check_rights(R_DEBUG))
+ return
- qdel(src, TRUE) //Force.
+ qdel(src, TRUE) //force a qdel
if(!running_find_references)
find_references(TRUE)
-/datum/verb/qdel_then_if_fail_find_references()
+/datum/proc/qdel_then_if_fail_find_references()
set category = "Debug"
set name = "qdel() then Find References if GC failure"
- set src in world
+ if(!check_rights(R_DEBUG))
+ return
qdel_and_find_ref_if_fail(src, TRUE)
-/datum/proc/DoSearchVar(X, Xname, recursive_limit = 64)
- if(usr && usr.client && !usr.client.running_find_references)
- return
- if(!recursive_limit)
+/datum/proc/DoSearchVar(potential_container, container_name, recursive_limit = 64, search_time = world.time)
+ if((usr?.client && !usr.client.running_find_references) || SSgarbage.ref_search_stop)
return
- if(istype(X, /datum))
- var/datum/D = X
- if(D.last_find_references == last_find_references)
+ if(!recursive_limit)
+ log_gc("Recursion limit reached. [container_name]")
+ return
+
+ //Check each time you go down a layer. This makes it a bit slow, but it won't effect the rest of the game at all
+ #ifndef FIND_REF_NO_CHECK_TICK
+ CHECK_TICK
+ #endif
+
+ if(istype(potential_container, /datum))
+ var/datum/datum_container = potential_container
+ if(datum_container.last_find_references == search_time)
return
- D.last_find_references = last_find_references
- var/list/L = D.vars
+ datum_container.last_find_references = search_time
+ var/list/vars_list = datum_container.vars
- for(var/varname in L)
- if(varname == "vars")
+ for(var/varname in vars_list)
+ #ifndef FIND_REF_NO_CHECK_TICK
+ CHECK_TICK
+ #endif
+ if(varname == "vars" || varname == "vis_locs") //Fun fact, vis_locs don't count for references
continue
- var/variable = L[varname]
+ var/variable = vars_list[varname]
if(variable == src)
- testing("Found [src.type] \ref[src] in [D.type]'s [varname] var. [Xname]")
+ log_gc("Found [type] \ref[src] in [datum_container.type]'s \ref[datum_container] [varname] var. [container_name]")
+ continue
- else if(islist(variable))
- DoSearchVar(variable, "[Xname] -> list", recursive_limit - 1)
+ if(islist(variable))
+ DoSearchVar(variable, "[container_name] \ref[datum_container] -> [varname] (list)", recursive_limit - 1, search_time)
- else if(islist(X))
- var/normal = IS_NORMAL_LIST(X)
- for(var/I in X)
- if(I == src)
- testing("Found [src.type] \ref[src] in list [Xname].")
+ else if(islist(potential_container))
+ var/normal = IS_NORMAL_LIST(potential_container)
+ var/list/potential_cache = potential_container
+ for(var/element_in_list in potential_cache)
+ #ifndef FIND_REF_NO_CHECK_TICK
+ CHECK_TICK
+ #endif
+ //Check normal entrys
+ if(element_in_list == src)
+ log_gc("Found [type] \ref[src] in list [container_name].")
+ continue
- else if(I && !isnum(I) && normal && X[I] == src)
- testing("Found [src.type] \ref[src] in list [Xname]\[[I]\]")
-
- else if(islist(I))
- DoSearchVar(I, "[Xname] -> list", recursive_limit - 1)
+ var/assoc_val = null
+ if(!isnum(element_in_list) && normal)
+ assoc_val = potential_cache[element_in_list]
+ //Check assoc entrys
+ if(assoc_val == src)
+ log_gc("Found [type] \ref[src] in list [container_name]\[[element_in_list]\]")
+ continue
+ //We need to run both of these checks, since our object could be hiding in either of them
+ //Check normal sublists
+ if(islist(element_in_list))
+ DoSearchVar(element_in_list, "[container_name] -> [element_in_list] (list)", recursive_limit - 1, search_time)
+ //Check assoc sublists
+ if(islist(assoc_val))
+ DoSearchVar(potential_container[element_in_list], "[container_name]\[[element_in_list]\] -> [assoc_val] (list)", recursive_limit - 1, search_time)
#ifndef FIND_REF_NO_CHECK_TICK
CHECK_TICK
diff --git a/code/controllers/subsystem/ghost_spawns.dm b/code/controllers/subsystem/ghost_spawns.dm
index e0234c2616a..96ac8f09116 100644
--- a/code/controllers/subsystem/ghost_spawns.dm
+++ b/code/controllers/subsystem/ghost_spawns.dm
@@ -164,7 +164,7 @@ SUBSYSTEM_DEF(ghost_spawns)
if(!player_old_enough_antag(M.client, role))
return
if(role_text)
- if(jobban_isbanned(M, role_text) || jobban_isbanned(M, "Syndicate"))
+ if(jobban_isbanned(M, role_text) || jobban_isbanned(M, ROLE_SYNDICATE))
return
if(config.use_exp_restrictions && min_hours)
if(M.client.get_exp_type_num(EXP_TYPE_LIVING) < min_hours * 60)
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index e4f5a6d6ecf..c46301713e0 100644
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -61,6 +61,8 @@ SUBSYSTEM_DEF(ticker)
var/end_state = "undefined"
/// Time the real reboot kicks in
var/real_reboot_time = 0
+ /// Datum used to generate the end of round scoreboard.
+ var/datum/scoreboard/score = null
/datum/controller/subsystem/ticker/Initialize()
login_music = pick(\
@@ -136,6 +138,7 @@ SUBSYSTEM_DEF(ticker)
/datum/controller/subsystem/ticker/proc/setup()
cultdat = setupcult()
+ score = new()
// Create and announce mode
if(GLOB.master_mode == "secret")
@@ -482,7 +485,8 @@ SUBSYSTEM_DEF(ticker)
if(findtext("[handler]","auto_declare_completion_"))
call(mode, handler)()
- scoreboard()
+ // Display the scoreboard window
+ score.scoreboard()
// Declare the completion of the station goals
mode.declare_station_goal_completion()
diff --git a/code/datums/beam.dm b/code/datums/beam.dm
index 3b5c9d2f5fb..23388c3f61b 100644
--- a/code/datums/beam.dm
+++ b/code/datums/beam.dm
@@ -58,7 +58,7 @@
return ..()
/datum/beam/proc/Draw()
- var/Angle = round(Get_Angle(origin,target))
+ var/Angle = round(get_angle(origin, target))
var/matrix/rot_matrix = matrix()
rot_matrix.Turn(Angle)
diff --git a/code/datums/cache/crew.dm b/code/datums/cache/crew.dm
index 343c975520b..8eba4030d4a 100644
--- a/code/datums/cache/crew.dm
+++ b/code/datums/cache/crew.dm
@@ -49,6 +49,7 @@ GLOBAL_DATUM_INIT(crew_repository, /datum/repository/crew, new())
if(C.sensor_mode >= SUIT_SENSOR_VITAL)
crewmemberData["stat"] = H.stat
+ crewmemberData["health"] = H.health
crewmemberData["oxy"] = round(H.getOxyLoss(), 1)
crewmemberData["tox"] = round(H.getToxLoss(), 1)
crewmemberData["fire"] = round(H.getFireLoss(), 1)
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index 38b1dd5954d..a79eb2105ae 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -163,7 +163,7 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
G.fields["photo"] = get_id_photo(H)
G.fields["photo-south"] = "data:image/png;base64,[icon2base64(icon(G.fields["photo"], dir = SOUTH))]"
G.fields["photo-west"] = "data:image/png;base64,[icon2base64(icon(G.fields["photo"], dir = WEST))]"
- if(H.gen_record && !jobban_isbanned(H, "Records"))
+ if(H.gen_record && !jobban_isbanned(H, ROLEBAN_RECORDS))
G.fields["notes"] = H.gen_record
else
G.fields["notes"] = "No notes found."
@@ -183,7 +183,7 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
M.fields["alg_d"] = "No allergies have been detected in this patient."
M.fields["cdi"] = "None"
M.fields["cdi_d"] = "No diseases have been diagnosed at the moment."
- if(H.med_record && !jobban_isbanned(H, "Records"))
+ if(H.med_record && !jobban_isbanned(H, ROLEBAN_RECORDS))
M.fields["notes"] = H.med_record
else
M.fields["notes"] = "No notes found."
@@ -199,7 +199,7 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
S.fields["ma_crim"] = "None"
S.fields["ma_crim_d"] = "No major crime convictions."
S.fields["notes"] = "No notes."
- if(H.sec_record && !jobban_isbanned(H, "Records"))
+ if(H.sec_record && !jobban_isbanned(H, ROLEBAN_RECORDS))
S.fields["notes"] = H.sec_record
else
S.fields["notes"] = "No notes found."
diff --git a/code/datums/datum.dm b/code/datums/datum.dm
index 8d3ec92cf40..68acd8c8d61 100644
--- a/code/datums/datum.dm
+++ b/code/datums/datum.dm
@@ -10,7 +10,7 @@
var/var_edited = FALSE //Warranty void if seal is broken
var/tmp/unique_datum_id = null
-#ifdef TESTING
+#ifdef REFERENCE_TRACKING
var/running_find_references
var/last_find_references = 0
#endif
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index 675b59b965c..503389eb769 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -742,6 +742,24 @@
log_admin("[key_name_admin(usr)] has turned [key_name_admin(H)] into a skeleton")
href_list["datumrefresh"] = href_list["make_skeleton"]
+ else if(href_list["hallucinate"])
+ if(!check_rights(R_SERVER | R_EVENT))
+ return
+
+ var/mob/living/carbon/C = locateUID(href_list["hallucinate"])
+ if(!istype(C))
+ to_chat(usr, "This can only be used on instances of type /mob/living/carbon")
+ return
+
+ var/haltype = input(usr, "Select the hallucination type:", "Hallucinate") as null|anything in subtypesof(/obj/effect/hallucination)
+ if(!haltype)
+ return
+
+ C.hallucinate(haltype)
+ message_admins("[key_name(usr)] has given [key_name(C)] the [haltype] hallucination")
+ log_admin("[key_name_admin(usr)] has given [key_name_admin(C)] the [haltype] hallucination")
+ href_list["datumrefresh"] = href_list["hallucinate"]
+
else if(href_list["offer_control"])
if(!check_rights(R_ADMIN)) return
diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm
index d099da71bf9..94efb17f630 100644
--- a/code/datums/diseases/_disease.dm
+++ b/code/datums/diseases/_disease.dm
@@ -50,6 +50,10 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
var/stage = 1
var/max_stages = 0
var/stage_prob = 4
+ /// The fraction of stages the virus must at least be at to show up on medical HUDs. Rounded up.
+ var/discovery_threshold = 0.5
+ /// If TRUE, this virus will show up on medical HUDs. Automatically set when it reaches mid-stage.
+ var/discovered = FALSE
//Other
var/list/viable_mobtypes = list() //typepaths of viable mobs
@@ -82,6 +86,9 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
if(!cure)
if(prob(stage_prob))
stage = min(stage + 1,max_stages)
+ if(!discovered && stage >= CEILING(max_stages * discovery_threshold, 1)) // Once we reach a late enough stage, medical HUDs can pick us up even if we regress
+ discovered = TRUE
+ affected_mob.med_hud_set_status()
else
if(prob(cure_chance))
stage = max(stage - 1, 1)
diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm
index fdfafa89314..4098e15e2af 100644
--- a/code/datums/diseases/transformation.dm
+++ b/code/datums/diseases/transformation.dm
@@ -15,6 +15,7 @@
var/list/stage3 = list("You feel utterly plain.")
var/list/stage4 = list("You feel white bread.")
var/list/stage5 = list("Oh the humanity!")
+ var/transformation_text = null
var/new_form = /mob/living/carbon/human
/datum/disease/transformation/stage_act()
@@ -44,6 +45,8 @@
return
if(affected_mob.notransform)
return
+ if(transformation_text)
+ to_chat(affected_mob, transformation_text)
affected_mob.notransform = 1
affected_mob.canmove = 0
affected_mob.icon = null
@@ -243,4 +246,5 @@
stage3 = list("Your appendages are melting away.", "Your limbs begin to lose their shape.")
stage4 = list("You're ravenous.")
stage5 = list("You have become a morph.")
+ transformation_text = "This transformation does NOT make you an antagonist if you were not one already. If you were not an antagonist, you should not eat any steal objectives or the contents of the armory."
new_form = /mob/living/simple_animal/hostile/morph
diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm
index 369c01cce42..04220cc7ce2 100644
--- a/code/datums/holocall.dm
+++ b/code/datums/holocall.dm
@@ -4,6 +4,7 @@
. = ..()
var/obj/machinery/hologram/holopad/H = origin
H.move_hologram(eye_user, loc)
+ ai_detector_visible = FALSE // Holocalls dont trigger the Ai Detector
//this datum manages it's own references
diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm
index 16383b05352..c42fb4f2dfe 100644
--- a/code/datums/outfits/outfit_admin.dm
+++ b/code/datums/outfits/outfit_admin.dm
@@ -84,7 +84,7 @@
shoes = /obj/item/clothing/shoes/magboots/syndie
r_pocket = /obj/item/radio/uplink/nuclear
l_pocket = /obj/item/pinpointer/advpinpointer
- l_hand = /obj/item/tank/jetpack/oxygen/harness
+ l_hand = /obj/item/tank/internals/oxygen/red
backpack_contents = list(
/obj/item/storage/box/survival_syndi = 1,
@@ -836,7 +836,7 @@
apply_to_card(I, H, get_all_accesses(), "Space Explorer")
/datum/outfit/admin/hardsuit
- name = "Hardsuit Generic"
+ name = "Hardsuit - Generic"
back = /obj/item/tank/jetpack/oxygen
mask = /obj/item/clothing/mask/breath
shoes = /obj/item/clothing/shoes/magboots
@@ -857,34 +857,34 @@
apply_to_card(I, H, get_all_accesses(), "Hardsuit Tester")
/datum/outfit/admin/hardsuit/engineer
- name = "Engineer Hardsuit"
+ name = "Hardsuit - Engineer"
suit = /obj/item/clothing/suit/space/hardsuit/engine
/datum/outfit/admin/hardsuit/ce
- name = "CE Hardsuit"
+ name = "Hardsuit - CE"
suit = /obj/item/clothing/suit/space/hardsuit/engine/elite
shoes = /obj/item/clothing/shoes/magboots/advance
/datum/outfit/admin/hardsuit/mining
- name = "Mining Hardsuit"
+ name = "Hardsuit - Mining"
suit = /obj/item/clothing/suit/space/hardsuit/mining
/datum/outfit/admin/hardsuit/syndi
- name = "Syndi Hardsuit"
+ name = "Hardsuit - Syndi"
suit = /obj/item/clothing/suit/space/hardsuit/syndi
shoes = /obj/item/clothing/shoes/magboots/syndie
/datum/outfit/admin/hardsuit/wizard
- name = "Wizard Hardsuit"
+ name = "Hardsuit - Wizard"
suit = /obj/item/clothing/suit/space/hardsuit/shielded/wizard
shoes = /obj/item/clothing/shoes/magboots
/datum/outfit/admin/hardsuit/medical
- name = "Medical Hardsuit"
+ name = "Hardsuit - Medical"
suit = /obj/item/clothing/suit/space/hardsuit/medical
/datum/outfit/admin/hardsuit/atmos
- name = "Atmos Hardsuit"
+ name = "Hardsuit - Atmos"
suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos
@@ -1146,20 +1146,20 @@
apply_to_card(I, H, get_all_accesses(), "Wizard")
/datum/outfit/admin/wizard/red
- name = "Red Wizard"
+ name = "Wizard - Red Wizard"
suit = /obj/item/clothing/suit/wizrobe/red
head = /obj/item/clothing/head/wizard/red
/datum/outfit/admin/wizard/marisa
- name = "Marisa Wizard"
+ name = "Wizard - Marisa Wizard"
suit = /obj/item/clothing/suit/wizrobe/marisa
shoes = /obj/item/clothing/shoes/sandal/marisa
head = /obj/item/clothing/head/wizard/marisa
/datum/outfit/admin/wizard/arch
- name = "Arch Wizard"
+ name = "Wizard - Arch Wizard"
suit = /obj/item/clothing/suit/wizrobe/magusred
head = /obj/item/clothing/head/wizard/magus
@@ -1223,3 +1223,68 @@
var/obj/item/radio/headset/R = H.l_ear
if(istype(R))
R.flags |= NODROP
+
+/datum/outfit/admin/honksquad
+ name = "Honksquad"
+
+ uniform = /obj/item/clothing/under/rank/clown
+ mask = /obj/item/clothing/mask/gas/clown_hat
+ back = /obj/item/storage/backpack/clown
+ id = /obj/item/card/id/clown
+
+ backpack_contents = list(
+ /obj/item/storage/box/survival = 1,
+ /obj/item/bikehorn = 1,
+ /obj/item/stamp/clown = 1,
+ /obj/item/toy/crayon/rainbow = 1,
+ /obj/item/reagent_containers/spray/waterflower = 1,
+ /obj/item/reagent_containers/food/snacks/grown/banana = 1,
+ )
+
+ shoes = /obj/item/clothing/shoes/clown_shoes
+ suit = /obj/item/clothing/suit/storage/det_suit
+ pda = /obj/item/pda/clown
+ l_ear = /obj/item/radio/headset
+ r_pocket = /obj/item/reagent_containers/food/pill/patch/jestosterone
+
+/datum/outfit/admin/honksquad/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ . = ..()
+ if(H.gender == FEMALE)
+ uniform = /obj/item/clothing/under/rank/clown/sexy
+ mask = /obj/item/clothing/mask/gas/clown_hat/sexy
+
+ if(prob(50))
+ // You have to do it like this to make it work with assoc lists without a runtime.
+ // Trust me.
+ backpack_contents.Add(/obj/item/gun/energy/clown)
+ backpack_contents[/obj/item/gun/energy/clown] = 1 // Amount. Not boolean. Do not TRUE this. You turkey.
+ else
+ backpack_contents.Add(/obj/item/gun/throw/piecannon)
+ backpack_contents[/obj/item/gun/throw/piecannon] = 1
+
+/datum/outfit/admin/honksquad/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ . = ..()
+ if(visualsOnly)
+ return
+
+ // Setup their clumsy gene
+ H.dna.SetSEState(GLOB.clumsyblock, TRUE)
+ H.check_mutations = TRUE
+
+ // Setup their headset
+ var/obj/item/radio/R = H.l_ear
+ if(istype(R))
+ R.set_frequency(DTH_FREQ) // Clowns can be part of "special operations"
+
+ // And their PDA
+ var/obj/item/pda/P = H.wear_pda
+ if(istype(P))
+ P.owner = H.real_name
+ P.ownjob = "Clown"
+ P.name = "PDA-[H.real_name] ([P.ownjob])"
+
+ // And their ID
+ var/obj/item/card/id/I = H.wear_id
+ if(istype(I))
+ apply_to_card(I, H, list(ACCESS_CLOWN), "Clown")
+ H.sec_hud_set_ID()
diff --git a/code/datums/outfits/plasmamen.dm b/code/datums/outfits/plasmamen.dm
index ed1484852e1..51bbf5a0f2f 100644
--- a/code/datums/outfits/plasmamen.dm
+++ b/code/datums/outfits/plasmamen.dm
@@ -7,140 +7,140 @@
mask = /obj/item/clothing/mask/breath
/datum/outfit/plasmaman/bar
- name = "Bartender Plasmaman"
+ name = "Plasmaman Bartender"
head = /obj/item/clothing/head/helmet/space/plasmaman/white
uniform = /obj/item/clothing/under/plasmaman/enviroslacks
/datum/outfit/plasmaman/chef
- name = "Chef Plasmaman"
+ name = "Plasmaman Chef"
head = /obj/item/clothing/head/helmet/space/plasmaman/chef
uniform = /obj/item/clothing/under/plasmaman/chef
/datum/outfit/plasmaman/botany
- name = "Botany Plasmaman"
+ name = "Plasmaman Botany"
head = /obj/item/clothing/head/helmet/space/plasmaman/botany
uniform = /obj/item/clothing/under/plasmaman/botany
/datum/outfit/plasmaman/librarian
- name = "Librarian Plasmaman"
+ name = "Plasmaman Librarian"
head = /obj/item/clothing/head/helmet/space/plasmaman/librarian
uniform = /obj/item/clothing/under/plasmaman/librarian
/datum/outfit/plasmaman/chaplain
- name = "Chaplain Plasmaman"
+ name = "Plasmaman Chaplain"
head = /obj/item/clothing/head/helmet/space/plasmaman/chaplain
uniform = /obj/item/clothing/under/plasmaman/chaplain
/datum/outfit/plasmaman/janitor
- name = "Janitor Plasmaman"
+ name = "Plasmaman Janitor"
head = /obj/item/clothing/head/helmet/space/plasmaman/janitor
uniform = /obj/item/clothing/under/plasmaman/janitor
/datum/outfit/plasmaman/security
- name = "Security Plasmaman"
+ name = "Plasmaman Security"
head = /obj/item/clothing/head/helmet/space/plasmaman/security
uniform = /obj/item/clothing/under/plasmaman/security
/datum/outfit/plasmaman/detective
- name = "Detective Plasmaman"
+ name = "Plasmaman Detective"
head = /obj/item/clothing/head/helmet/space/plasmaman/white
uniform = /obj/item/clothing/under/plasmaman/enviroslacks
l_ear = /obj/item/radio/headset/headset_sec
/datum/outfit/plasmaman/warden
- name = "Warden Plasmaman"
+ name = "Plasmaman Warden"
head = /obj/item/clothing/head/helmet/space/plasmaman/security/warden
uniform = /obj/item/clothing/under/plasmaman/security/warden
/datum/outfit/plasmaman/hos
- name = "Head of Security Plasmaman"
+ name = "Plasmaman Head of Security"
head = /obj/item/clothing/head/helmet/space/plasmaman/security/hos
uniform = /obj/item/clothing/under/plasmaman/security/hos
/datum/outfit/plasmaman/cargo
- name = "Cargo Plasmaman"
+ name = "Plasmaman Cargo"
head = /obj/item/clothing/head/helmet/space/plasmaman/cargo
uniform = /obj/item/clothing/under/plasmaman/cargo
/datum/outfit/plasmaman/mining
- name = "Mining Plasmaman"
+ name = "Plasmaman Mining"
head = /obj/item/clothing/head/helmet/space/plasmaman/mining
uniform = /obj/item/clothing/under/plasmaman/mining
/datum/outfit/plasmaman/medical
- name = "Medical Plasmaman"
+ name = "Plasmaman Medical"
head = /obj/item/clothing/head/helmet/space/plasmaman/medical
uniform = /obj/item/clothing/under/plasmaman/medical
/datum/outfit/plasmaman/cmo
- name = "Chief Medical Officer Plasmaman"
+ name = "Plasmaman Chief Medical Officer"
head = /obj/item/clothing/head/helmet/space/plasmaman/cmo
uniform = /obj/item/clothing/under/plasmaman/cmo
/datum/outfit/plasmaman/viro
- name = "Virology Plasmaman"
+ name = "Plasmaman Virology"
head = /obj/item/clothing/head/helmet/space/plasmaman/viro
uniform = /obj/item/clothing/under/plasmaman/viro
/datum/outfit/plasmaman/chemist
- name = "Chemist Plasmaman"
+ name = "Plasmaman Chemist"
head = /obj/item/clothing/head/helmet/space/plasmaman/chemist
uniform = /obj/item/clothing/under/plasmaman/chemist
/datum/outfit/plasmaman/genetics
- name = "Genetics Plasmaman"
+ name = "Plasmaman Genetics"
head = /obj/item/clothing/head/helmet/space/plasmaman/genetics
uniform = /obj/item/clothing/under/plasmaman/genetics
/datum/outfit/plasmaman/science
- name = "Science Plasmaman"
+ name = "Plasmaman Science"
head = /obj/item/clothing/head/helmet/space/plasmaman/science
uniform = /obj/item/clothing/under/plasmaman/science
/datum/outfit/plasmaman/rd
- name = "Research Director Plasmaman"
+ name = "Plasmaman Research Director"
head = /obj/item/clothing/head/helmet/space/plasmaman/rd
uniform = /obj/item/clothing/under/plasmaman/rd
/datum/outfit/plasmaman/robotics
- name = "Robotics Plasmaman"
+ name = "Plasmaman Robotics"
head = /obj/item/clothing/head/helmet/space/plasmaman/robotics
uniform = /obj/item/clothing/under/plasmaman/robotics
/datum/outfit/plasmaman/engineering
- name = "Engineering Plasmaman"
+ name = "Plasmaman Engineering"
head = /obj/item/clothing/head/helmet/space/plasmaman/engineering
uniform = /obj/item/clothing/under/plasmaman/engineering
/datum/outfit/plasmaman/ce
- name = "Chief Engineer Plasmaman"
+ name = "Plasmaman Chief Engineer"
head = /obj/item/clothing/head/helmet/space/plasmaman/engineering/ce
uniform = /obj/item/clothing/under/plasmaman/engineering/ce
/datum/outfit/plasmaman/atmospherics
- name = "Atmospherics Plasmaman"
+ name = "Plasmaman Atmospherics"
head = /obj/item/clothing/head/helmet/space/plasmaman/atmospherics
uniform = /obj/item/clothing/under/plasmaman/atmospherics
@@ -160,25 +160,25 @@
mask = /obj/item/clothing/mask/gas/clown_hat
/datum/outfit/plasmaman/hop
- name = "Head of Personnel Plasmaman"
+ name = "Plasmaman Head of Personnel"
head = /obj/item/clothing/head/helmet/space/plasmaman/hop
uniform = /obj/item/clothing/under/plasmaman/hop
/datum/outfit/plasmaman/captain
- name = "Captain Plasmaman"
+ name = "Plasmaman Captain"
head = /obj/item/clothing/head/helmet/space/plasmaman/captain
uniform = /obj/item/clothing/under/plasmaman/captain
/datum/outfit/plasmaman/blueshield
- name = "Blueshield Plasmaman"
+ name = "Plasmaman Blueshield"
head = /obj/item/clothing/head/helmet/space/plasmaman/blueshield
uniform = /obj/item/clothing/under/plasmaman/blueshield
/datum/outfit/plasmaman/wizard
- name = "Wizard Plasmaman"
+ name = "Plasmaman Wizard"
head = /obj/item/clothing/head/helmet/space/plasmaman/wizard
uniform = /obj/item/clothing/under/plasmaman/wizard
diff --git a/code/datums/spell.dm b/code/datums/spell.dm
index db668cd609a..6590876ea2f 100644
--- a/code/datums/spell.dm
+++ b/code/datums/spell.dm
@@ -503,8 +503,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell))
revert_cast(user)
return FALSE
- perform(targets, user = user, make_attack_logs = create_logs)
remove_ranged_ability(user)
+ perform(targets, user = user, make_attack_logs = create_logs)
return TRUE
/* Checks if a target is valid
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index 5ee45d3291f..2bf9f914ad0 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -572,9 +572,10 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
containername = "electrical maintenance crate"
/datum/supply_packs/vending/engivend
- name = "EngiVend Supply Crate"
- cost = 15
- contains = list(/obj/item/vending_refill/engivend)
+ name = "Engineering Vendor Supply Crate"
+ cost = 20
+ contains = list(/obj/item/vending_refill/engivend,
+ /obj/item/vending_refill/youtool)
containername = "engineering supply crate"
/datum/supply_packs/engineering/powergamermitts
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 9394344a6f3..10ee68c1104 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -1017,6 +1017,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 11
surplus = 0
cant_discount = TRUE
+ hijack_only = TRUE
/datum/uplink_item/explosives/emp_bomb
name = "EMP bomb"
@@ -1426,7 +1427,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
name = "Power Sink"
desc = "When screwed to wiring attached to an electric grid, then activated, this large device places excessive load on the grid, causing a stationwide blackout. The sink cannot be carried because of its excessive size. Ordering this sends you a small beacon that will teleport the power sink to your location on activation."
reference = "PS"
- item = /obj/item/powersink
+ item = /obj/item/radio/beacon/syndicate/power_sink
cost = 10
/datum/uplink_item/device_tools/singularity_beacon
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index d9cc6ab55c0..fc5e1d8eb5f 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -1072,7 +1072,7 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons)
Returning TRUE here will override the above proc's result.
*/
/atom/proc/CanAStarPassTo(ID, dir, obj/destination)
- return TRUE
+ return FALSE
/** Call this when you want to present a renaming prompt to the user.
@@ -1139,3 +1139,11 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons)
else
name = "[prefix][t]"
return t
+
+/atom/proc/set_angle(degrees)
+ var/matrix/M = matrix()
+ M.Turn(degrees)
+ // If we aint 0, make it NN transform
+ if(degrees)
+ appearance_flags |= PIXEL_SCALE
+ transform = M
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index 61097b2c796..10e704fb314 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -90,6 +90,8 @@
/mob/living/carbon/proc/has_virus()
for(var/thing in viruses)
var/datum/disease/D = thing
+ if(!D.discovered) // Early-stage viruses should not show up on med HUD (though health analywers can still pick them up)
+ continue
if((!(D.visibility_flags & HIDDEN_SCANNER)) && (D.severity != NONTHREAT))
return TRUE
return FALSE
diff --git a/code/game/dna/mutations/powers.dm b/code/game/dna/mutations/powers.dm
index e8fa3998df3..c0e20372a19 100644
--- a/code/game/dna/mutations/powers.dm
+++ b/code/game/dna/mutations/powers.dm
@@ -185,6 +185,7 @@
activation_messages = list("You feel smarter.")
deactivation_messages = list("You feel dumber.")
instability = GENE_INSTABILITY_MAJOR
+ traits_to_add = list(TRAIT_TELEKINESIS)
activation_prob = 15
/datum/mutation/tk/New()
diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm
index 92352f782fd..f0dbb68ec15 100644
--- a/code/game/gamemodes/autotraitor/autotraitor.dm
+++ b/code/game/gamemodes/autotraitor/autotraitor.dm
@@ -84,7 +84,7 @@
traitorcount += 1
continue
if(ishuman(player) || isAI(player))
- if((ROLE_TRAITOR in player.client.prefs.be_special) && !player.client.skip_antag && !jobban_isbanned(player, ROLE_TRAITOR) && !jobban_isbanned(player, "Syndicate"))
+ if((ROLE_TRAITOR in player.client.prefs.be_special) && !player.client.skip_antag && !jobban_isbanned(player, ROLE_TRAITOR) && !jobban_isbanned(player, ROLE_SYNDICATE))
possible_traitors += player.mind
for(var/datum/mind/player in possible_traitors)
for(var/job in restricted_jobs)
@@ -144,7 +144,7 @@
if(SSshuttle.emergency.mode >= SHUTTLE_ESCAPE)
return
//message_admins("Late Join Check")
- if(character.client && (ROLE_TRAITOR in character.client.prefs.be_special) && !character.client.skip_antag && !jobban_isbanned(character, ROLE_TRAITOR) && !jobban_isbanned(character, "Syndicate"))
+ if(character.client && (ROLE_TRAITOR in character.client.prefs.be_special) && !character.client.skip_antag && !jobban_isbanned(character, ROLE_TRAITOR) && !jobban_isbanned(character, ROLE_SYNDICATE))
//message_admins("Late Joiner has Be Syndicate")
//message_admins("Checking number of players")
var/playercount = 0
diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm
index ba674aae658..85d776ad662 100644
--- a/code/game/gamemodes/blob/blob.dm
+++ b/code/game/gamemodes/blob/blob.dm
@@ -57,7 +57,7 @@ GLOBAL_LIST_EMPTY(blob_nodes)
/datum/game_mode/blob/proc/get_blob_candidates()
var/list/candidates = list()
for(var/mob/living/carbon/human/player in GLOB.player_list)
- if(!player.stat && player.mind && !player.client.skip_antag && !player.mind.special_role && !jobban_isbanned(player, "Syndicate") && (ROLE_BLOB in player.client.prefs.be_special))
+ if(!player.stat && player.mind && !player.client.skip_antag && !player.mind.special_role && !jobban_isbanned(player, ROLE_SYNDICATE) && (ROLE_BLOB in player.client.prefs.be_special))
candidates += player
return candidates
diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm
index 47f83b4618b..5741447cd58 100644
--- a/code/game/gamemodes/changeling/changeling_power.dm
+++ b/code/game/gamemodes/changeling/changeling_power.dm
@@ -93,5 +93,7 @@ the same goes for Remove(). if you override Remove(), call parent or else your p
/datum/action/changeling/proc/transform_dna(mob/living/carbon/human/H, datum/dna/D)
if(!D)
return
-
- H.change_dna(D, TRUE)
+ var/changesSpecies = TRUE
+ if (H.dna.species.name == D.species.name)
+ changesSpecies = FALSE
+ H.change_dna(D, changesSpecies)
diff --git a/code/game/gamemodes/changeling/powers/digitalcamo.dm b/code/game/gamemodes/changeling/powers/digitalcamo.dm
index 29385d33636..ddb6a6c03c4 100644
--- a/code/game/gamemodes/changeling/powers/digitalcamo.dm
+++ b/code/game/gamemodes/changeling/powers/digitalcamo.dm
@@ -1,11 +1,11 @@
/datum/action/changeling/digitalcamo
name = "Digital Camouflage"
desc = "By evolving the ability to distort our form and proprotions, we defeat common altgorithms used to detect lifeforms on cameras."
- helptext = "We cannot be tracked by camera while using this skill. However, humans looking at us will find us... uncanny."
+ helptext = "We cannot be tracked by camera while using this skill."
button_icon_state = "digital_camo"
dna_cost = 1
-//Prevents AIs tracking you but makes you easily detectable to the human-eye.
+//Prevents AIs tracking you.
/datum/action/changeling/digitalcamo/sting_action(mob/user)
if(user.digitalcamo)
diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm
index f0569db3909..792665a52f3 100644
--- a/code/game/gamemodes/changeling/powers/mutations.dm
+++ b/code/game/gamemodes/changeling/powers/mutations.dm
@@ -243,7 +243,6 @@
damage_type = BRUTE
range = 8
hitsound = 'sound/weapons/thudswoosh.ogg'
- var/chain
var/obj/item/ammo_casing/magic/tentacle/source //the item that shot it
/obj/item/projectile/tentacle/New(obj/item/ammo_casing/magic/tentacle/tentacle_casing)
diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm
index 8ebe5ba48d8..7c523a09453 100644
--- a/code/game/gamemodes/changeling/powers/revive.dm
+++ b/code/game/gamemodes/changeling/powers/revive.dm
@@ -7,51 +7,7 @@
//Revive from regenerative stasis
/datum/action/changeling/revive/sting_action(mob/living/carbon/user)
- user.setToxLoss(0, FALSE)
- user.setOxyLoss(0, FALSE)
- user.setCloneLoss(0, FALSE)
- user.setBrainLoss(0, FALSE)
- user.SetParalysis(0, FALSE)
- user.SetStunned(0, FALSE)
- user.SetWeakened(0, FALSE)
- user.radiation = 0
- user.SetEyeBlind(0, FALSE)
- user.SetEyeBlurry(0, FALSE)
- user.RestoreEars()
- user.heal_overall_damage(user.getBruteLoss(), user.getFireLoss(), updating_health = FALSE)
- user.cure_blind(null, FALSE)
- user.CureDeaf()
- user.cure_nearsighted(null, FALSE)
- user.reagents.clear_reagents()
- user.germ_level = 0
- user.timeofdeath = 0
- if(ishuman(user))
- var/mob/living/carbon/human/H = user
- H.restore_blood()
- H.next_pain_time = 0
- H.dna.species.create_organs(H)
- // Now that recreating all organs is necessary, the rest of this organ stuff probably
- // isn't, but I don't want to remove it, just in case.
- for(var/organ_name in H.bodyparts_by_name)
- var/obj/item/organ/external/O = H.bodyparts_by_name[organ_name]
- if(!O)
- continue
- O.brute_dam = 0
- O.burn_dam = 0
- O.damage_state = "00"
- O.germ_level = 0
- QDEL_NULL(O.hidden)
- O.open = 0
- O.internal_bleeding = FALSE
- O.perma_injury = 0
- O.status = 0
- O.trace_chemicals.Cut()
- for(var/obj/item/organ/internal/IO in H.internal_organs)
- IO.rejuvenate()
- IO.trace_chemicals.Cut()
- H.remove_all_embedded_objects()
- for(var/datum/disease/critical/C in user.viruses)
- C.cure()
+ user.revive()
REMOVE_TRAIT(user, TRAIT_FAKEDEATH, "changeling")
user.updatehealth("revive sting")
user.update_blind_effects()
diff --git a/code/game/gamemodes/cult/blood_magic.dm b/code/game/gamemodes/cult/blood_magic.dm
index c1b4f6a98d5..47a979fd108 100644
--- a/code/game/gamemodes/cult/blood_magic.dm
+++ b/code/game/gamemodes/cult/blood_magic.dm
@@ -848,8 +848,12 @@
uses += max(1, temp)
/obj/item/melee/blood_magic/manipulator/attack_self(mob/living/user)
- var/list/options = list("Blood Orb (50)", "Blood Recharge (75)", "Blood Spear (150)", "Blood Bolt Barrage (300)")
- var/choice = input(user, "Choose a greater blood rite...", "Greater Blood Rites") as null|anything in options
+ var/list/options = list("Blood Orb (50)" = image(icon = 'icons/obj/cult.dmi', icon_state = "summoning_orb"),
+ "Blood Recharge (75)" = image(icon = 'icons/mob/actions/actions_cult.dmi', icon_state = "blood_charge"),
+ "Blood Spear (150)" = image(icon = 'icons/mob/actions/actions_cult.dmi', icon_state = "bloodspear"),
+ "Blood Bolt Barrage (300)" = image(icon = 'icons/mob/actions/actions_cult.dmi', icon_state = "blood_barrage"))
+ var/choice = show_radial_menu(user, src, options)
+
switch(choice)
if("Blood Orb (50)")
if(uses < BLOOD_ORB_COST)
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 67a18cbfc45..8c725b41898 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -130,6 +130,9 @@ To draw a rune, use a ritual dagger.
visible_message("[src] suddenly appears!")
alpha = initial(alpha)
+/obj/effect/rune/is_cleanable()
+ return TRUE
+
/*
There are a few different procs each rune runs through when a cultist activates it.
@@ -991,6 +994,9 @@ structure_check() searches for nearby cultist structures required for the invoca
/obj/effect/rune/narsie/cult_conceal() //can't hide this, and you wouldn't want to
return
+/obj/effect/rune/narsie/is_cleanable() //No, you can't just yeet a cleaning grenade to remove it.
+ return FALSE
+
/obj/effect/rune/narsie/invoke(list/invokers)
if(used)
return
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 343f8bf27ae..7fdf66c7a1f 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -238,7 +238,7 @@
// Assemble a list of active players without jobbans.
for(var/mob/new_player/player in GLOB.player_list)
if(player.client && player.ready && player.has_valid_preferences())
- if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, roletext))
+ if(!jobban_isbanned(player, ROLE_SYNDICATE) && !jobban_isbanned(player, roletext))
if(player_old_enough_antag(player.client,role))
players += player
diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm
index 0342c1d4707..ea62734f383 100644
--- a/code/game/gamemodes/miniantags/borer/borer.dm
+++ b/code/game/gamemodes/miniantags/borer/borer.dm
@@ -128,8 +128,8 @@
if(cannotPossess(user))
to_chat(user, "Upon using the antagHUD you forfeited the ability to join the round.")
return
- if(jobban_isbanned(user, "Syndicate"))
- to_chat(user, "You are banned from antagonists!")
+ if(jobban_isbanned(user, ROLE_SYNDICATE) || jobban_isbanned(user, ROLE_BORER))
+ to_chat(user, "You are banned from playing this antagonist!")
return
if(key)
return
diff --git a/code/game/gamemodes/miniantags/guardian/types/fire.dm b/code/game/gamemodes/miniantags/guardian/types/fire.dm
index bf8a908e979..9f9e12baaa6 100644
--- a/code/game/gamemodes/miniantags/guardian/types/fire.dm
+++ b/code/game/gamemodes/miniantags/guardian/types/fire.dm
@@ -30,9 +30,8 @@
/mob/living/simple_animal/hostile/guardian/fire/AttackingTarget()
. = ..()
if(toggle)
- if(. && ishuman(target) && !summoner)
- spawn(0)
- new /obj/effect/hallucination/delusion(target.loc, target, force_kind = "custom", duration = 200, skip_nearby = 0, custom_icon = icon_state, custom_icon_file = icon)
+ if(. && iscarbon(target))
+ new /obj/effect/hallucination/delusion(get_turf(target), target, icon, icon_state)
else
if(prob(45))
if(ismovable(target))
diff --git a/code/game/gamemodes/miniantags/guardian/types/ranged.dm b/code/game/gamemodes/miniantags/guardian/types/ranged.dm
index dab7dfb1eca..184b4e625b5 100644
--- a/code/game/gamemodes/miniantags/guardian/types/ranged.dm
+++ b/code/game/gamemodes/miniantags/guardian/types/ranged.dm
@@ -10,6 +10,7 @@
melee_damage_lower = 10
melee_damage_upper = 10
damage_transfer = 0.9
+ can_strip = TRUE
projectiletype = /obj/item/projectile/guardian
ranged_cooldown_time = 5 //fast!
projectilesound = 'sound/effects/hit_on_shattered_glass.ogg'
@@ -35,6 +36,7 @@
alpha = 255
range = 13
incorporeal_move = 0
+ can_strip = TRUE
to_chat(src, "You switch to combat mode.")
toggle = FALSE
else
@@ -46,6 +48,7 @@
alpha = 60
range = 255
incorporeal_move = 1
+ can_strip = FALSE //spiritual pickpocketting is forbidden
to_chat(src, "You switch to scout mode.")
toggle = TRUE
else
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index b5dc159caf0..fafa2c4e4a1 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -188,6 +188,9 @@
M.regenerate_icons()
M.update_body()
+ if(!the_bomb)
+ the_bomb = locate(/obj/machinery/nuclearbomb/syndicate) in GLOB.poi_list
+
if(the_bomb)
synd_mind.store_memory("Syndicate [the_bomb.name] Code: [the_bomb.r_code]")
to_chat(synd_mind.current, "The code for \the [the_bomb.name] is: [the_bomb.r_code]")
@@ -436,54 +439,55 @@
return newname
-/datum/game_mode/nuclear/set_scoreboard_gvars()
+/datum/game_mode/nuclear/set_scoreboard_vars()
+ var/datum/scoreboard/scoreboard = SSticker.score
var/foecount = 0
+
for(var/datum/mind/M in SSticker.mode.syndicates)
foecount++
if(!M || !M.current)
- GLOB.score_opkilled++
+ scoreboard.score_ops_killed++
continue
if(M.current.stat == DEAD)
- GLOB.score_opkilled++
+ scoreboard.score_ops_killed++
else if(M.current.restrained())
- GLOB.score_arrested++
+ scoreboard.score_arrested++
- if(foecount == GLOB.score_arrested)
- GLOB.score_allarrested = 1
+ if(foecount == scoreboard.score_arrested)
+ scoreboard.all_arrested = TRUE // how the hell did they manage that
- for(var/obj/machinery/nuclearbomb/nuke in GLOB.machines)
- if(nuke.r_code == "Nope") continue
+ var/obj/machinery/nuclearbomb/syndicate/nuke = locate() in GLOB.poi_list
+ if(nuke?.r_code != "Nope")
var/area/A = get_area(nuke)
var/list/thousand_penalty = list(/area/solar)
var/list/fiftythousand_penalty = list(/area/security/main, /area/security/brig, /area/security/armoury, /area/security/checkpoint2)
if(is_type_in_list(A, thousand_penalty))
- GLOB.score_nuked_penalty = 1000
+ scoreboard.nuked_penalty = 1000
else if(is_type_in_list(A, fiftythousand_penalty))
- GLOB.score_nuked_penalty = 50000
+ scoreboard.nuked_penalty = 50000
else if(istype(A, /area/engine))
- GLOB.score_nuked_penalty = 100000
+ scoreboard.nuked_penalty = 100000
else
- GLOB.score_nuked_penalty = 10000
+ scoreboard.nuked_penalty = 10000
- break
-
- var/killpoints = GLOB.score_opkilled * 250
- var/arrestpoints = GLOB.score_arrested * 1000
- GLOB.score_crewscore += killpoints
- GLOB.score_crewscore += arrestpoints
- if(GLOB.score_nuked)
- GLOB.score_crewscore -= GLOB.score_nuked_penalty
+ var/killpoints = scoreboard.score_ops_killed * 250
+ var/arrestpoints = scoreboard.score_arrested * 1000
+ scoreboard.crewscore += killpoints
+ scoreboard.crewscore += arrestpoints
+ if(scoreboard.nuked)
+ scoreboard.crewscore -= scoreboard.nuked_penalty
/datum/game_mode/nuclear/get_scoreboard_stats()
+ var/datum/scoreboard/scoreboard = SSticker.score
var/foecount = 0
var/crewcount = 0
@@ -530,11 +534,11 @@
dat += "
"
- dat += "Operatives Arrested: [GLOB.score_arrested] ([GLOB.score_arrested * 1000] Points)
"
- dat += "All Operatives Arrested: [GLOB.score_allarrested ? "Yes" : "No"] (Score tripled)
"
+ dat += "Operatives Arrested: [scoreboard.score_arrested] ([scoreboard.score_arrested * 1000] Points)
"
+ dat += "All Operatives Arrested: [scoreboard.all_arrested ? "Yes" : "No"] (Score tripled)
"
- dat += "Operatives Killed: [GLOB.score_opkilled] ([GLOB.score_opkilled * 1000] Points)
"
- dat += "Station Destroyed: [GLOB.score_nuked ? "Yes" : "No"] (-[GLOB.score_nuked_penalty] Points)
"
+ dat += "Operatives Killed: [scoreboard.score_ops_killed] ([scoreboard.score_ops_killed * 1000] Points)
"
+ dat += "Station Destroyed: [scoreboard.nuked ? "Yes" : "No"] (-[scoreboard.nuked_penalty] Points)
"
dat += "