diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 15154bd85d3..7d2cc96b6fe 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -50861,7 +50861,7 @@
icon_state = "diagonalWall3"
},
/area/shuttle/administration)
-"bPM" = (
+"bPN" = (
/obj/machinery/door/airlock/external{
id_tag = "s_docking_airlock";
name = "Shuttle Hatch";
@@ -50874,25 +50874,17 @@
id = "admin";
name = "administration shuttle";
roundstart_move = "admin_away";
+ timid = 1;
width = 18
},
/obj/docking_port/stationary{
dir = 2;
- dwidth = 8;
- height = 15;
+ dwidth = 9;
+ height = 18;
id = "admin_home";
name = "port bay 1";
- width = 18
- },
-/turf/simulated/shuttle/floor{
- icon_state = "floor4"
- },
-/area/shuttle/administration)
-"bPN" = (
-/obj/machinery/door/airlock/external{
- id_tag = "s_docking_airlock";
- name = "Shuttle Hatch";
- req_access_txt = "106"
+ timid = 1;
+ width = 19
},
/turf/simulated/shuttle/floor{
icon_state = "floor4"
@@ -52067,21 +52059,6 @@
icon_state = "wall3"
},
/area/shuttle/administration)
-"bRH" = (
-/obj/machinery/door_control{
- id = "adminshuttleblast";
- name = "blast door control";
- pixel_x = -30;
- req_access_txt = "106"
- },
-/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
- },
-/turf/simulated/shuttle/floor{
- icon_state = "floor4"
- },
-/area/shuttle/administration)
"bRI" = (
/obj/structure/plasticflaps/mining,
/obj/machinery/conveyor/east{
@@ -54159,28 +54136,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/plasteel,
/area/engine/gravitygenerator)
-"bVk" = (
-/obj/machinery/door_control{
- id = "adminshuttleblast";
- name = "blast door control";
- pixel_x = -30;
- req_access_txt = "106"
- },
-/turf/simulated/shuttle/floor{
- icon_state = "floor4"
- },
-/area/shuttle/administration)
-"bVl" = (
-/obj/machinery/door/airlock/centcom{
- id_tag = "adminshuttle";
- name = "Workshop";
- opacity = 1;
- req_access_txt = "105"
- },
-/turf/simulated/shuttle/floor{
- icon_state = "floor4"
- },
-/area/shuttle/administration)
"bVm" = (
/obj/machinery/light/spot{
tag = "icon-tube1 (WEST)";
@@ -55150,14 +55105,6 @@
icon_state = "floor4"
},
/area/shuttle/administration)
-"bWO" = (
-/obj/structure/shuttle/engine/propulsion{
- dir = 8;
- icon_state = "propulsion_l";
- tag = "icon-propulsion_l (EAST)"
- },
-/turf/simulated/shuttle/plating,
-/area/shuttle/administration)
"bWP" = (
/obj/machinery/door/airlock/external{
id_tag = "s_docking_airlock";
@@ -56132,14 +56079,6 @@
icon_state = "floor4"
},
/area/shuttle/administration)
-"bYu" = (
-/obj/structure/shuttle/engine/propulsion{
- dir = 8;
- icon_state = "propulsion_r";
- tag = "icon-propulsion_r (EAST)"
- },
-/turf/simulated/shuttle/plating,
-/area/shuttle/administration)
"bYv" = (
/turf/space,
/turf/simulated/shuttle/wall{
@@ -57422,17 +57361,6 @@
"cam" = (
/turf/simulated/wall,
/area/quartermaster/miningdock)
-"can" = (
-/obj/structure/table/reinforced,
-/obj/machinery/light/spot{
- tag = "icon-tube1 (NORTH)";
- icon_state = "tube1";
- dir = 1
- },
-/turf/simulated/shuttle/floor{
- icon_state = "floor4"
- },
-/area/shuttle/administration)
"cao" = (
/obj/structure/filingcabinet,
/turf/simulated/floor/plasteel,
@@ -58236,23 +58164,6 @@
icon_state = "floor4"
},
/area/shuttle/administration)
-"cby" = (
-/obj/machinery/computer/shuttle/admin,
-/turf/simulated/shuttle/floor{
- icon_state = "floor4"
- },
-/area/shuttle/administration)
-"cbz" = (
-/obj/machinery/door/airlock/centcom{
- id_tag = "adminshuttle";
- name = "Bridge";
- opacity = 1;
- req_access_txt = "106"
- },
-/turf/simulated/shuttle/floor{
- icon_state = "floor4"
- },
-/area/shuttle/administration)
"cbA" = (
/obj/machinery/door/poddoor/shutters{
density = 0;
@@ -59505,18 +59416,9 @@
icon_state = "floor3"
},
/area/shuttle/administration)
-"cdq" = (
-/obj/machinery/computer/card/centcom,
-/turf/simulated/shuttle/floor{
- icon_state = "floor4"
- },
-/area/shuttle/administration)
"cdr" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door_control{
- id = "adminshuttleshutters";
- name = "remote shutter control";
- req_access_txt = "106"
+/obj/machinery/computer/camera_advanced/shuttle_docker/admin{
+ name = "NTV Argos shuttle navigation computer"
},
/turf/simulated/shuttle/floor{
icon_state = "floor4"
@@ -60290,17 +60192,6 @@
tag = "icon-cafeteria (NORTHEAST)"
},
/area/crew_quarters/hor)
-"ceT" = (
-/obj/machinery/door/airlock/centcom{
- id_tag = "adminshuttle";
- name = "Medbay";
- opacity = 1;
- req_access_txt = "103"
- },
-/turf/simulated/shuttle/floor{
- icon_state = "floor4"
- },
-/area/shuttle/administration)
"ceU" = (
/obj/structure/shuttle/engine/propulsion,
/turf/simulated/shuttle/plating,
@@ -96572,6 +96463,12 @@
},
/turf/simulated/floor/plating,
/area/toxins/mixing)
+"gQL" = (
+/obj/machinery/computer/card,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
"hsy" = (
/obj/machinery/atmospherics/pipe/simple/insulated{
dir = 4
@@ -96626,6 +96523,35 @@
/area/toxins/launch{
name = "Toxins Launch Room"
})
+"jnJ" = (
+/obj/machinery/light/spot{
+ tag = "icon-tube1 (NORTH)";
+ icon_state = "tube1";
+ dir = 1
+ },
+/obj/machinery/door_control{
+ id = "adminshuttleblast";
+ name = "Blast door control";
+ pixel_x = -5;
+ pixel_y = 35;
+ req_access = list(101);
+ req_access_txt = "0"
+ },
+/obj/machinery/door_control{
+ id = "adminshuttleshutters";
+ name = "Shutter control";
+ pixel_x = 5;
+ pixel_y = 35;
+ req_access = list(101);
+ req_access_txt = "0"
+ },
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
"kOE" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{
dir = 4
@@ -96639,22 +96565,90 @@
},
/turf/space,
/area/space)
+"oZV" = (
+/obj/machinery/door/airlock/centcom{
+ id_tag = "adminshuttle";
+ name = "Medbay";
+ opacity = 1;
+ req_access_txt = "101"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"pwN" = (
+/obj/machinery/door_control{
+ id = "adminshuttleblast";
+ name = "blast door control";
+ pixel_x = -30;
+ req_access_txt = "101"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
"pZO" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
dir = 10
},
/turf/space,
/area/space)
+"qgG" = (
+/obj/machinery/door/airlock/external{
+ id_tag = "s_docking_airlock";
+ name = "Shuttle Hatch";
+ req_access_txt = "101"
+ },
+/obj/structure/fans/tiny,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
"qUv" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging,
/turf/space,
/area/space)
+"rEw" = (
+/obj/machinery/computer/shuttle/admin{
+ name = "NTV Argos shuttle console"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"rSv" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 8;
+ icon_state = "propulsion_l";
+ tag = "icon-propulsion_l (EAST)"
+ },
+/turf/space,
+/area/shuttle/administration)
+"rYq" = (
+/obj/machinery/door/airlock/centcom{
+ id_tag = "adminshuttle";
+ name = "Bridge";
+ opacity = 1;
+ req_access_txt = "101"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
"uxy" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
dir = 4
},
/turf/space,
/area/space)
+"uBM" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 8;
+ icon_state = "propulsion_r";
+ tag = "icon-propulsion_r (EAST)"
+ },
+/turf/space,
+/area/shuttle/administration)
"uDK" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
tag = "icon-intact (NORTHEAST)";
@@ -96685,6 +96679,32 @@
},
/turf/space,
/area/space)
+"yeP" = (
+/obj/machinery/door_control{
+ id = "adminshuttleblast";
+ name = "blast door control";
+ pixel_x = -30;
+ req_access_txt = "101"
+ },
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"ylx" = (
+/obj/machinery/door/airlock/centcom{
+ id_tag = "adminshuttle";
+ name = "Workshop";
+ opacity = 1;
+ req_access_txt = "101"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
(1,1,1) = {"
aaa
@@ -105049,15 +105069,15 @@ aaa
aaa
aaa
aaa
+bPL
+rSv
+uBM
+cae
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bPL
+rSv
+uBM
+cae
aaa
aaa
aaa
@@ -105305,18 +105325,18 @@ aaa
aaa
aaa
aaa
-aaa
bPL
-bWO
-bYu
+bPI
+bWG
+bWG
+bPI
+bPI
+bPI
+bWG
+bWG
+bPI
cae
aaa
-bPL
-bWO
-bYu
-cae
-aaa
-aaa
aaa
aaa
aaa
@@ -105561,16 +105581,17 @@ aaa
aaa
aaa
aaa
-aaa
bPL
bPI
-bWG
-bWG
+bVe
+bRA
+bRA
+caf
bPI
-bPI
-bPI
-bWG
-bWG
+cdl
+ceR
+ceR
+cig
bPI
cae
aaa
@@ -105679,7 +105700,6 @@ aaa
aaa
aaa
aaa
-aaa
"}
(36,1,1) = {"
aaa
@@ -105813,22 +105833,23 @@ bCd
bCd
bCd
bAR
-aaa
-aaa
+bjQ
aaa
aaa
aaa
bPL
-bPI
-bVe
+bRu
+bRA
+bVf
bRA
bRA
-caf
+cag
bPI
-cdl
+cdm
ceR
ceR
-cig
+ceR
+ckd
bPI
cae
aaa
@@ -105936,7 +105957,6 @@ aaa
aaa
aaa
aaa
-aaa
"}
(37,1,1) = {"
aaa
@@ -106070,25 +106090,25 @@ bCc
bDG
bEK
bAR
-bjQ
+aLd
aaa
aaa
aaa
-bPL
-bRu
-bRA
-bVf
-bRA
-bRA
-cag
bPI
-cdm
-ceR
-ceR
-ceR
-ckd
+bRv
+bRA
+bVg
+cuH
+bRA
+cah
+bPI
+cdp
+ceR
+ceR
+ceR
+ceR
+clC
bPI
-cae
aaa
aaa
aaa
@@ -106327,24 +106347,24 @@ aAi
bCb
bCl
bAR
-aLd
+aSd
aaa
aaa
aaa
bPI
-bRv
+bRw
bRA
-bVg
+bVh
cuH
bRA
-cah
+cai
bPI
-cdp
+cdl
ceR
+cgw
+cih
ceR
-ceR
-ceR
-clC
+clD
bPI
aaa
aaa
@@ -106589,19 +106609,19 @@ aaa
aaa
aaa
bPI
-bRw
-bRA
-bVh
+bRx
+bTl
+bVi
cuH
bRA
-cai
+bRA
bPI
-cdl
+cdo
ceR
-cgw
-cih
-ceR
-clD
+cgx
+cii
+ckf
+clE
bPI
aaa
aaa
@@ -106842,23 +106862,23 @@ bCb
bEL
bAR
aSd
-aaa
-aaa
-aaa
+aSd
+aSd
+aSd
bPI
-bRx
-bTl
-bVi
-cuH
-bRA
-bRA
-bPI
-cdo
-ceR
-cgx
-cii
-ckf
-clE
+bRG
+bRG
+bRG
+bRG
+bYt
+bRG
+bRG
+bRG
+oZV
+bRG
+bRG
+bRG
+bRG
bPI
aaa
aaa
@@ -107099,23 +107119,23 @@ bCb
bEL
bAR
aSd
-aSd
-aSd
-aSd
-bPI
-bRG
-bRG
-bRG
-bRG
-bYt
-bRG
-bRG
-bRG
-ceT
-bRG
-bRG
-bRG
-bRG
+bGm
+bLY
+bKp
+qgG
+yeP
+bTn
+pwN
+bRA
+bRA
+bRA
+bTo
+bRA
+bRA
+bRA
+bRA
+bRA
+bRA
bPI
aaa
aaa
@@ -107356,23 +107376,23 @@ bCb
bEL
bAR
aSd
-bGm
-bLY
+bGl
+bLX
bKp
bPN
-bRH
+bRA
bTn
-bVk
-bRA
-bRA
-bRA
-bTo
bRA
bRA
bRA
bRA
bRA
bRA
+bRA
+bRA
+bRA
+bRA
+clF
bPI
aaa
aaa
@@ -107613,23 +107633,23 @@ bCb
bEL
bAR
aSd
-bGl
-bLX
bKp
-bPM
-bRA
-bTn
-bRA
-bRA
-bRA
-bRA
-bRA
-bRA
-bRA
-bRA
-bRA
-bRA
-clF
+bKp
+bOb
+bPI
+bRG
+bRG
+ylx
+bRG
+bRG
+bRG
+rYq
+bRG
+bRG
+bRG
+cik
+bRG
+bRG
bPI
aaa
aaa
@@ -107870,23 +107890,23 @@ bCb
bAR
bER
aSd
-bKp
-bKp
-bOb
+aMd
+bLZ
+aSd
bPI
-bRG
-bRG
-bVl
-bRG
-bRG
-bRG
-cbz
-bRG
-bRG
-bRG
-cik
-bRG
-bRG
+bRB
+bTo
+bRA
+bWI
+bPI
+gQL
+bRA
+bRA
+bPI
+bRA
+bRA
+ckg
+clG
bPI
aaa
aaa
@@ -108131,19 +108151,19 @@ aMd
bLZ
aSd
bPI
-bRB
-bTo
+bRC
bRA
-bWI
+bRA
+bWJ
+bPI
+jnJ
+cbx
+cbx
bPI
bRA
bRA
bRA
-bPI
-bRA
-bRA
-ckg
-clG
+clI
bPI
aaa
aaa
@@ -108388,19 +108408,19 @@ aMd
bLZ
aSd
bPI
-bRC
+bRD
bRA
bRA
-bWJ
+bWK
bPI
-can
-cbx
+cak
+rEw
cdr
bPI
bRA
bRA
bRA
-clI
+bRA
bPI
aaa
aaa
@@ -108644,21 +108664,21 @@ aSd
aMd
bMa
bjQ
+bPR
bPI
-bRD
-bRA
-bRA
-bWK
-bPI
-cak
-cby
-cdq
-bPI
-bRA
-bRA
+bTp
bRA
bRA
bPI
+car
+cbA
+cds
+bPI
+cgz
+cio
+ckj
+bPI
+bYv
aaa
aaa
aaa
@@ -108901,21 +108921,21 @@ bLs
bmS
bMb
aLd
-bPR
+aaa
+bPI
+bWL
+bRA
+bWM
+bPI
+aaa
+aaa
+aaa
bPI
-bTp
bRA
bRA
+ckh
bPI
-car
-cbA
-cds
-bPI
-cgz
-cio
-ckj
-bPI
-bYv
+aaa
aaa
aaa
aaa
@@ -109159,19 +109179,19 @@ aSf
bLZ
aSd
aaa
+bPR
bPI
-bWL
-bRA
-bWM
+bTl
+bWN
bPI
aaa
aaa
aaa
bPI
-bRA
-bRA
-ckh
+cgA
+cil
bPI
+bYv
aaa
aaa
aaa
@@ -109416,22 +109436,22 @@ aSf
bMc
aSd
aaa
+aaa
bPR
-bPI
-bTl
-bWN
-bPI
-aaa
-aaa
-aaa
-bPI
-cgA
-cil
-bPI
+bRG
+bRG
bYv
aaa
aaa
aaa
+bPR
+bRG
+bRG
+bYv
+aaa
+aaa
+aaa
+aaa
aaa
aaa
aaa
@@ -109674,17 +109694,17 @@ bCf
bCf
aaa
aaa
-bPR
-bRG
-bRG
-bYv
aaa
aaa
aaa
-bPR
-bRG
-bRG
-bYv
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
aaa
aaa
aaa
diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm
index ee6ca15f83d..190f9ef72ee 100644
--- a/_maps/map_files/cyberiad/z2.dmm
+++ b/_maps/map_files/cyberiad/z2.dmm
@@ -8030,11 +8030,12 @@
"tH" = (
/obj/docking_port/stationary{
dir = 2;
- dwidth = 8;
- height = 15;
+ dwidth = 9;
+ height = 18;
id = "admin_away";
name = "centcom bay 1";
- width = 18
+ timid = 1;
+ width = 19
},
/turf/space,
/area/space)
@@ -35340,9 +35341,9 @@ wK
wK
wK
wK
-aN
-aN
-aN
+wK
+wK
+wK
aN
aN
aN
@@ -35581,21 +35582,24 @@ aN
aN
cp
cj
-yt
-yt
-yt
-cr
aN
aN
-cr
-yt
-cr
aN
aN
-cr
-yt
-yt
-yt
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
wK
aN
aN
@@ -35638,9 +35642,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
jZ
kz
kM
@@ -35838,9 +35839,6 @@ aN
aN
cp
cj
-yt
-yt
-cr
aN
aN
aN
@@ -35850,9 +35848,15 @@ aN
aN
aN
aN
-cr
-yt
-yt
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
wK
aN
aN
@@ -35918,9 +35922,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
"}
(91,1,1) = {"
aN
@@ -36095,8 +36096,6 @@ aN
aN
cp
cj
-yt
-cr
aN
aN
aN
@@ -36108,8 +36107,13 @@ aN
aN
aN
aN
-cr
-yt
+aN
+aN
+aN
+aN
+aN
+aN
+aN
wK
aN
aN
@@ -36152,9 +36156,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
jU
kw
kE
@@ -36352,7 +36353,6 @@ aN
aN
cp
cj
-cr
aN
aN
aN
@@ -36366,7 +36366,11 @@ aN
aN
aN
aN
-cr
+aN
+aN
+aN
+aN
+aN
wK
aN
aN
@@ -36408,9 +36412,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
jQ
jW
kD
@@ -36624,6 +36625,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -36665,9 +36669,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
jP
kt
kx
@@ -36881,6 +36882,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -36922,9 +36926,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
jS
kv
kx
@@ -37138,6 +37139,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -37179,9 +37183,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
jR
ku
kx
@@ -37395,6 +37396,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -37436,9 +37440,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
jT
ka
kA
@@ -37652,6 +37653,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -37694,9 +37698,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
jZ
kz
kM
@@ -37909,6 +37910,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -37974,9 +37978,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
"}
(99,1,1) = {"
aN
@@ -38166,6 +38167,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -38231,9 +38235,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
"}
(100,1,1) = {"
aN
@@ -38423,6 +38424,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -38488,9 +38492,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
"}
(101,1,1) = {"
aN
@@ -38680,6 +38681,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -38713,9 +38717,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
mr
mr
mr
@@ -38937,6 +38938,9 @@ aN
aN
aN
aN
+aN
+aN
+aN
wK
aN
aN
@@ -38970,9 +38974,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
mr
aN
aN
@@ -39179,7 +39180,6 @@ qo
qs
tx
wK
-cr
aN
aN
aN
@@ -39193,7 +39193,11 @@ aN
aN
aN
aN
-cr
+aN
+aN
+aN
+aN
+aN
wK
aN
aN
@@ -39227,9 +39231,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
mr
aN
aN
@@ -39436,21 +39437,24 @@ qo
qs
tA
wK
-yt
aN
aN
aN
aN
aN
-yt
-yt
-yt
aN
aN
aN
aN
aN
-yt
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
wK
aN
aN
@@ -39484,9 +39488,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
mr
aN
aN
@@ -39693,21 +39694,24 @@ tq
tv
tz
wK
-yt
-cr
aN
aN
aN
aN
-yt
-yt
-yt
aN
aN
aN
aN
-cr
-yt
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
wK
aN
aN
@@ -39741,9 +39745,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
mr
aN
aN
@@ -39950,21 +39951,24 @@ wK
wK
wK
wK
-yt
-yt
-cr
aN
aN
-cr
-yt
-yt
-yt
-cr
aN
aN
-cr
-yt
-yt
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
wK
aN
aN
@@ -39998,9 +40002,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
mr
aN
aN
@@ -40207,22 +40208,6 @@ aN
aN
aN
wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
-wK
aN
aN
aN
@@ -40241,6 +40226,22 @@ aN
aN
aN
aN
+wK
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -40463,26 +40464,26 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
+wK
aN
aN
aN
diff --git a/_maps/map_files/shuttles/admin_admin.dmm b/_maps/map_files/shuttles/admin_admin.dmm
new file mode 100644
index 00000000000..36badb71d1b
--- /dev/null
+++ b/_maps/map_files/shuttles/admin_admin.dmm
@@ -0,0 +1,1094 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/space,
+/area/space)
+"ab" = (
+/turf/space,
+/turf/simulated/shuttle/wall{
+ dir = 8;
+ icon_state = "diagonalWall3"
+ },
+/area/shuttle/administration)
+"ac" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "wall3"
+ },
+/area/shuttle/administration)
+"ad" = (
+/obj/machinery/door/airlock/external{
+ id_tag = "s_docking_airlock";
+ name = "Shuttle Hatch";
+ req_access_txt = "101"
+ },
+/obj/structure/fans/tiny,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"ae" = (
+/obj/machinery/door/airlock/external{
+ id_tag = "s_docking_airlock";
+ name = "Shuttle Hatch";
+ req_access_txt = "101"
+ },
+/obj/docking_port/mobile{
+ dir = 2;
+ dwidth = 8;
+ height = 15;
+ id = "admin";
+ name = "admin";
+ roundstart_move = null;
+ timid = 1;
+ width = 18
+ },
+/obj/structure/fans/tiny,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"af" = (
+/turf/space,
+/turf/simulated/shuttle/wall{
+ dir = 1;
+ icon_state = "diagonalWall3"
+ },
+/area/shuttle/administration)
+"ag" = (
+/obj/machinery/vending/boozeomat,
+/turf/simulated/shuttle/wall{
+ icon_state = "wall3"
+ },
+/area/shuttle/administration)
+"ah" = (
+/obj/structure/table/reinforced,
+/obj/machinery/chem_dispenser/beer,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"ai" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/drinkingglasses,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aj" = (
+/obj/structure/table/reinforced,
+/obj/machinery/chem_dispenser/soda,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"ak" = (
+/turf/simulated/shuttle/wall{
+ dir = 4;
+ icon_state = "wall3"
+ },
+/area/shuttle/administration)
+"al" = (
+/obj/machinery/door_control{
+ id = "adminshuttleblast";
+ name = "blast door control";
+ pixel_x = -30;
+ req_access_txt = "101"
+ },
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"am" = (
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"an" = (
+/obj/machinery/cell_charger,
+/obj/structure/table,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"ao" = (
+/obj/item/storage/toolbox/mechanical,
+/obj/item/multitool,
+/obj/structure/table,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"ap" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aq" = (
+/obj/machinery/light/spot{
+ tag = "icon-tube1 (EAST)";
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"ar" = (
+/obj/machinery/door/poddoor/preopen{
+ id_tag = "adminshuttleblast";
+ name = "Blast Doors";
+ req_access_txt = "101"
+ },
+/obj/machinery/door/airlock/centcom{
+ id_tag = "adminshuttle";
+ name = "General Access";
+ opacity = 1;
+ req_access_txt = "101"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"as" = (
+/obj/machinery/light/spot{
+ tag = "icon-tube1 (WEST)";
+ icon_state = "tube1";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"at" = (
+/obj/item/stack/sheet/metal,
+/obj/structure/table,
+/obj/item/stack/sheet/glass{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"au" = (
+/obj/machinery/mecha_part_fabricator/upgraded,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"av" = (
+/obj/machinery/kitchen_machine/microwave/upgraded,
+/obj/structure/table,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aw" = (
+/obj/machinery/door/window/northright{
+ name = "bar"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"ax" = (
+/obj/structure/table,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"ay" = (
+/obj/item/ashtray/glass,
+/obj/structure/table,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"az" = (
+/obj/item/storage/fancy/cigarettes/dromedaryco,
+/obj/item/lighter/zippo{
+ pixel_x = 5
+ },
+/obj/structure/table,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aA" = (
+/obj/machinery/door_control{
+ id = "adminshuttleblast";
+ name = "blast door control";
+ pixel_x = -30;
+ req_access_txt = "101"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aB" = (
+/obj/machinery/door/airlock/centcom{
+ id_tag = "adminshuttle";
+ name = "Workshop";
+ opacity = 1;
+ req_access_txt = "101"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aC" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 8;
+ icon_state = "propulsion_l";
+ tag = "icon-propulsion_l (EAST)"
+ },
+/turf/space,
+/area/shuttle/administration)
+"aD" = (
+/obj/structure/shuttle/engine/heater{
+ tag = "icon-heater (WEST)";
+ icon_state = "heater";
+ dir = 8
+ },
+/obj/structure/window/plasmareinforced{
+ color = "#FF0000";
+ dir = 4
+ },
+/turf/simulated/shuttle/wall{
+ icon_state = "wall3"
+ },
+/area/shuttle/administration)
+"aE" = (
+/obj/structure/chair/stool/bar,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aF" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aG" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aH" = (
+/obj/machinery/recharge_station/upgraded,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aI" = (
+/obj/machinery/autolathe/upgraded{
+ hacked = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aJ" = (
+/obj/structure/dispenser,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aK" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 8;
+ icon_state = "propulsion_r";
+ tag = "icon-propulsion_r (EAST)"
+ },
+/turf/space,
+/area/shuttle/administration)
+"aL" = (
+/obj/machinery/door/airlock/public/glass,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aM" = (
+/turf/space,
+/turf/simulated/shuttle/wall{
+ dir = 4;
+ icon_state = "diagonalWall3"
+ },
+/area/shuttle/administration)
+"aN" = (
+/turf/space,
+/turf/simulated/shuttle/wall{
+ icon_state = "diagonalWall3"
+ },
+/area/shuttle/administration)
+"aO" = (
+/obj/machinery/vending/snack,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aP" = (
+/obj/machinery/vending/cola,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aQ" = (
+/obj/machinery/vending/coffee,
+/obj/machinery/light/spot,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aR" = (
+/obj/machinery/vending/cigarette,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aS" = (
+/obj/machinery/computer/card,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aT" = (
+/obj/machinery/computer/communications,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aU" = (
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 4;
+ icon_state = "open";
+ id_tag = "adminshuttleshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/obj/structure/shuttle/window{
+ tag = "icon-window5_end (WEST)";
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_end";
+ dir = 8
+ },
+/turf/simulated/floor/plating,
+/area/shuttle/administration)
+"aV" = (
+/obj/machinery/light/spot{
+ tag = "icon-tube1 (NORTH)";
+ icon_state = "tube1";
+ dir = 1
+ },
+/obj/machinery/door_control{
+ id = "adminshuttleblast";
+ name = "Blast door control";
+ pixel_x = -5;
+ pixel_y = 35;
+ req_access = list(101);
+ req_access_txt = "0"
+ },
+/obj/machinery/door_control{
+ id = "adminshuttleshutters";
+ name = "Shutter control";
+ pixel_x = 5;
+ pixel_y = 35;
+ req_access = list(101);
+ req_access_txt = "0"
+ },
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aW" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aX" = (
+/obj/machinery/computer/shuttle/admin{
+ name = "NTV Argos shuttle console"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"aY" = (
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 4;
+ icon_state = "open";
+ id_tag = "adminshuttleshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/obj/structure/shuttle/window{
+ dir = 4;
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_mid";
+ tag = "icon-window5 (EAST)"
+ },
+/turf/simulated/floor/plating,
+/area/shuttle/administration)
+"aZ" = (
+/obj/machinery/dna_scannernew/upgraded,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ba" = (
+/obj/machinery/computer/cloning,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bb" = (
+/obj/machinery/clonepod/upgraded,
+/obj/machinery/light/spot{
+ tag = "icon-tube1 (NORTH)";
+ icon_state = "tube1";
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bc" = (
+/obj/machinery/computer/scan_consolenew,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bd" = (
+/obj/machinery/door/airlock/centcom{
+ id_tag = "adminshuttle";
+ name = "Bridge";
+ opacity = 1;
+ req_access_txt = "101"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"be" = (
+/obj/machinery/computer/camera_advanced/shuttle_docker/admin{
+ name = "NTV Argos shuttle navigation computer"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bf" = (
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 4;
+ icon_state = "open";
+ id_tag = "adminshuttleshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/obj/structure/shuttle/window{
+ tag = "icon-window5_end (EAST)";
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_end";
+ dir = 4
+ },
+/turf/simulated/floor/plating,
+/area/shuttle/administration)
+"bg" = (
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bh" = (
+/obj/machinery/door/airlock/centcom{
+ id_tag = "adminshuttle";
+ name = "Medbay";
+ opacity = 1;
+ req_access_txt = "101"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bi" = (
+/obj/machinery/bodyscanner,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bj" = (
+/obj/machinery/body_scanconsole,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bk" = (
+/obj/structure/window/plasmareinforced{
+ color = "#FF0000";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bl" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/light/spot{
+ tag = "icon-tube1 (EAST)";
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bm" = (
+/obj/machinery/sleeper/upgraded{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bn" = (
+/obj/machinery/chem_master,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bo" = (
+/obj/machinery/chem_dispenser,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bp" = (
+/obj/machinery/door/airlock/centcom{
+ id_tag = "adminshuttle";
+ name = "Holding Cell";
+ opacity = 1;
+ req_access_txt = "104"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bq" = (
+/obj/machinery/door/window/brigdoor/westleft{
+ color = "#d70000";
+ req_access_txt = "104"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"br" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bs" = (
+/obj/machinery/iv_drip,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bt" = (
+/obj/machinery/light/spot{
+ tag = "icon-tube1 (EAST)";
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bu" = (
+/obj/structure/table,
+/obj/item/storage/box/handcuffs,
+/obj/machinery/light/spot{
+ tag = "icon-tube1 (WEST)";
+ icon_state = "tube1";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bv" = (
+/obj/structure/window/plasmareinforced{
+ color = "#FF0000";
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bw" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bx" = (
+/obj/structure/table,
+/obj/item/bonegel,
+/obj/item/bonesetter,
+/obj/item/hemostat,
+/obj/item/cautery,
+/obj/item/surgicaldrill,
+/obj/item/circular_saw,
+/obj/item/scalpel,
+/obj/item/retractor,
+/obj/item/FixOVein,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"by" = (
+/obj/machinery/optable,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bz" = (
+/obj/machinery/vending/medical,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bA" = (
+/obj/machinery/light,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bB" = (
+/obj/structure/table,
+/obj/item/storage/lockbox/mindshield,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+"bC" = (
+/obj/structure/table,
+/obj/item/storage/box/chemimp{
+ pixel_x = 4;
+ pixel_y = 3
+ },
+/obj/item/storage/box/trackimp,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor4"
+ },
+/area/shuttle/administration)
+
+(1,1,1) = {"
+aa
+aa
+aa
+ab
+aC
+aK
+aN
+aa
+ab
+aC
+aK
+aN
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aa
+aa
+ab
+ac
+aD
+aD
+ac
+ac
+ac
+aD
+aD
+ac
+aN
+aa
+aa
+aa
+aa
+aa
+"}
+(3,1,1) = {"
+aa
+ab
+ac
+av
+am
+am
+aO
+ac
+aZ
+bg
+bg
+bm
+ac
+aN
+aa
+aa
+aa
+aa
+"}
+(4,1,1) = {"
+ab
+ag
+am
+aw
+am
+am
+aP
+ac
+ba
+bg
+bg
+bg
+bs
+ac
+aN
+aa
+aa
+aa
+"}
+(5,1,1) = {"
+ac
+ah
+am
+ax
+aE
+am
+aQ
+ac
+bb
+bg
+bg
+bg
+bg
+bx
+ac
+aa
+aa
+aa
+"}
+(6,1,1) = {"
+ac
+ai
+am
+ay
+aE
+am
+aR
+ac
+aZ
+bg
+bi
+bn
+bg
+by
+ac
+aa
+aa
+aa
+"}
+(7,1,1) = {"
+ac
+aj
+aq
+az
+aE
+am
+am
+ac
+bc
+bg
+bj
+bo
+bt
+bz
+ac
+aa
+aa
+aa
+"}
+(8,1,1) = {"
+ac
+ak
+ak
+ak
+ak
+aL
+ak
+ak
+ak
+bh
+ak
+ak
+ak
+ak
+ac
+aa
+aa
+aa
+"}
+(9,1,1) = {"
+ad
+al
+ar
+aA
+am
+am
+am
+as
+am
+am
+am
+am
+am
+am
+ac
+aa
+aa
+aa
+"}
+(10,1,1) = {"
+ae
+am
+ar
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bA
+ac
+aa
+aa
+aa
+"}
+(11,1,1) = {"
+ac
+ak
+ak
+aB
+ak
+ak
+ak
+bd
+ak
+ak
+ak
+bp
+ak
+ak
+ac
+aa
+aa
+aa
+"}
+(12,1,1) = {"
+ac
+an
+as
+am
+aF
+ac
+aS
+am
+am
+ac
+am
+am
+bu
+bB
+ac
+aa
+aa
+aa
+"}
+(13,1,1) = {"
+ac
+ao
+am
+am
+aG
+ac
+aV
+aW
+aW
+ac
+am
+am
+am
+bC
+ac
+aa
+aa
+aa
+"}
+(14,1,1) = {"
+ac
+ap
+am
+am
+aH
+ac
+aT
+aX
+be
+ac
+am
+am
+am
+am
+ac
+aa
+aa
+aa
+"}
+(15,1,1) = {"
+af
+ac
+at
+am
+am
+ac
+aU
+aY
+bf
+ac
+bk
+bq
+bv
+ac
+aM
+aa
+aa
+aa
+"}
+(16,1,1) = {"
+aa
+ac
+au
+am
+aI
+ac
+aa
+aa
+aa
+ac
+am
+am
+bw
+ac
+aa
+aa
+aa
+aa
+"}
+(17,1,1) = {"
+aa
+af
+ac
+aq
+aJ
+ac
+aa
+aa
+aa
+ac
+bl
+br
+ac
+aM
+aa
+aa
+aa
+aa
+"}
+(18,1,1) = {"
+aa
+aa
+af
+ak
+ak
+aM
+aa
+aa
+aa
+af
+ak
+ak
+aM
+aa
+aa
+aa
+aa
+aa
+"}
+(19,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
diff --git a/_maps/map_files/shuttles/admin_hospital.dmm b/_maps/map_files/shuttles/admin_hospital.dmm
new file mode 100644
index 00000000000..2c2d31a0bb4
--- /dev/null
+++ b/_maps/map_files/shuttles/admin_hospital.dmm
@@ -0,0 +1,1589 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/space,
+/area/space)
+"ab" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall_s6";
+ dir = 2
+ },
+/area/shuttle/administration)
+"ac" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall12";
+ dir = 2
+ },
+/area/shuttle/administration)
+"ad" = (
+/obj/structure/shuttle/window{
+ tag = "icon-window5_end";
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_end";
+ dir = 2
+ },
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 1;
+ icon_state = "open";
+ id_tag = "Asclshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/turf/space,
+/area/shuttle/administration)
+"ae" = (
+/obj/structure/shuttle/window{
+ tag = "icon-window5_mid";
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_mid";
+ dir = 2
+ },
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 1;
+ icon_state = "open";
+ id_tag = "Asclshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/turf/space,
+/area/shuttle/administration)
+"af" = (
+/obj/structure/shuttle/window{
+ tag = "icon-window5_end (NORTH)";
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_end";
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 1;
+ icon_state = "open";
+ id_tag = "Asclshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/turf/space,
+/area/shuttle/administration)
+"ag" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall14";
+ dir = 2
+ },
+/area/shuttle/administration)
+"ah" = (
+/obj/structure/sign/redcross{
+ desc = "The Star of Life, a symbol of Medical Aid.";
+ icon_state = "lifestar";
+ name = "NHV Asclepius"
+ },
+/turf/simulated/shuttle/wall{
+ dir = 2;
+ icon_state = "swall8";
+ tag = "icon-swall12"
+ },
+/area/shuttle/administration)
+"ai" = (
+/obj/structure/fans/tiny,
+/obj/machinery/door/airlock/external,
+/obj/machinery/door/poddoor{
+ density = 0;
+ icon_state = "open";
+ id_tag = "asclblast";
+ name = "Blast Door";
+ opacity = 0
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aj" = (
+/obj/structure/fans/tiny,
+/obj/machinery/door/airlock/external,
+/obj/docking_port/mobile{
+ dir = 2;
+ dwidth = 9;
+ height = 18;
+ id = "admin";
+ name = "hospital";
+ roundstart_move = "cc_bay_1";
+ timid = 1;
+ width = 19
+ },
+/obj/machinery/door/poddoor{
+ density = 0;
+ icon_state = "open";
+ id_tag = "asclblast";
+ name = "Blast Door";
+ opacity = 0
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ak" = (
+/obj/structure/sign/redcross{
+ desc = "The Star of Life, a symbol of Medical Aid.";
+ icon_state = "lifestar";
+ name = "NHV Asclepius"
+ },
+/turf/simulated/shuttle/wall{
+ tag = "icon-swall14";
+ icon_state = "swall4";
+ dir = 2
+ },
+/area/shuttle/administration)
+"al" = (
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 1;
+ icon_state = "open";
+ id_tag = "Asclshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/obj/structure/shuttle/window{
+ tag = "icon-window5_mid";
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_mid";
+ dir = 2
+ },
+/turf/space,
+/area/shuttle/administration)
+"am" = (
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 1;
+ icon_state = "open";
+ id_tag = "Asclshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/obj/structure/shuttle/window{
+ tag = "icon-window5_end (NORTH)";
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_end";
+ dir = 1
+ },
+/turf/space,
+/area/shuttle/administration)
+"an" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall_s10";
+ dir = 2
+ },
+/area/shuttle/administration)
+"ao" = (
+/turf/simulated/shuttle/wall{
+ tag = "icon-swall3";
+ icon_state = "swall3";
+ dir = 2
+ },
+/area/shuttle/administration)
+"ap" = (
+/obj/machinery/chem_master,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aq" = (
+/obj/machinery/chem_dispenser,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ar" = (
+/obj/machinery/chem_heater,
+/obj/machinery/light{
+ tag = "icon-tube1 (NORTH)";
+ icon_state = "tube1";
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"as" = (
+/obj/structure/closet/secure_closet/reagents,
+/obj/item/storage/bag/chemistry,
+/obj/item/storage/bag/chemistry,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"at" = (
+/obj/structure/closet/secure_closet/chemical,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"au" = (
+/obj/structure/sign/chemistry{
+ pixel_y = 1
+ },
+/turf/simulated/shuttle/wall{
+ icon_state = "swall3";
+ dir = 2
+ },
+/area/shuttle/administration)
+"av" = (
+/obj/structure/chair{
+ tag = "icon-chair (EAST)";
+ icon_state = "chair";
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aw" = (
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ax" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/camera{
+ dir = 8;
+ icon_state = "camera";
+ name = "NHV Asclepius Lobby";
+ network = list("NHV Asclepius")
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ay" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/glass/beaker/cryoxadone,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"az" = (
+/obj/machinery/clonepod{
+ biomass = 300
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aA" = (
+/obj/machinery/computer/cloning,
+/obj/machinery/light{
+ tag = "icon-tube1 (NORTH)";
+ icon_state = "tube1";
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aB" = (
+/obj/machinery/dna_scannernew,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aC" = (
+/obj/machinery/atmospherics/unary/cryo_cell,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aD" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall7";
+ dir = 2
+ },
+/area/shuttle/administration)
+"aE" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall3";
+ dir = 2
+ },
+/area/shuttle/administration)
+"aF" = (
+/obj/structure/reagent_dispensers/fueltank/chem{
+ pixel_x = -32
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aG" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aH" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/brigdoor/westleft{
+ req_access_txt = "33"
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/structure/window/reinforced,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aI" = (
+/obj/machinery/light{
+ dir = 4;
+ icon_state = "tube1"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aJ" = (
+/obj/structure/sign/nosmoking_2,
+/turf/simulated/shuttle/wall{
+ tag = "icon-swall1";
+ icon_state = "swall1";
+ dir = 2
+ },
+/area/shuttle/administration)
+"aK" = (
+/obj/machinery/atmospherics/pipe/simple/hidden,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aL" = (
+/obj/structure/shuttle/engine/heater{
+ icon_state = "heater";
+ dir = 4
+ },
+/obj/structure/window/plasmareinforced{
+ dir = 8
+ },
+/turf/unsimulated/floor,
+/area/shuttle/administration)
+"aM" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 4;
+ icon_state = "propulsion"
+ },
+/turf/space,
+/area/shuttle/administration)
+"aN" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/spray/cleaner{
+ desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'";
+ name = "Chemistry Cleaner"
+ },
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/reagent_containers/glass/bucket,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aO" = (
+/obj/structure/closet/crate/can,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aP" = (
+/obj/structure/shuttle/window,
+/obj/structure/grille,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aQ" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aR" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aS" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/syringes,
+/obj/item/storage/box/beakers,
+/obj/machinery/reagentgrinder,
+/obj/machinery/camera{
+ dir = 4;
+ icon_state = "camera";
+ name = "NHV Asclepius Chemistry";
+ network = list("NHV Asclepius")
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aT" = (
+/obj/machinery/door/airlock/shuttle/glass{
+ name = "Chemistry";
+ req_access_txt = "33"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aU" = (
+/obj/machinery/door/airlock/shuttle/glass,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aV" = (
+/obj/machinery/camera{
+ dir = 8;
+ icon_state = "camera";
+ name = "NHV Asclepius Cloning";
+ network = list("NHV Asclepius")
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aW" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall_s9";
+ dir = 2
+ },
+/area/shuttle/administration)
+"aX" = (
+/obj/machinery/iv_drip,
+/obj/item/reagent_containers/iv_bag,
+/obj/structure/reagent_dispensers/fueltank/chem{
+ pixel_x = -32
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aY" = (
+/obj/structure/chair/office/light,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"aZ" = (
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 6
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ba" = (
+/obj/machinery/chem_heater,
+/obj/machinery/light,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bb" = (
+/obj/machinery/status_display,
+/turf/simulated/shuttle/wall{
+ icon_state = "swall3";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bc" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bd" = (
+/obj/machinery/vending/coffee,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"be" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/storage/box/gloves,
+/obj/item/storage/box/masks,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bf" = (
+/obj/machinery/atmospherics/pipe/manifold/hidden{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bg" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/firstaid,
+/obj/item/storage/firstaid,
+/obj/item/storage/firstaid/adv,
+/obj/item/storage/firstaid/adv,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bh" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/belt/medical,
+/obj/item/storage/belt/medical,
+/obj/item/storage/belt/medical,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/clothing/glasses/hud/health,
+/obj/machinery/light,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bi" = (
+/obj/machinery/atmospherics/unary/cold_sink/freezer{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bj" = (
+/obj/machinery/smartfridge/medbay,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bk" = (
+/turf/simulated/shuttle/wall{
+ tag = "icon-swall13";
+ icon_state = "swall13";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bl" = (
+/obj/structure/shuttle/window,
+/obj/structure/grille,
+/turf/simulated/shuttle/wall{
+ dir = 2;
+ icon_state = "swall8";
+ tag = "icon-swall12"
+ },
+/area/shuttle/administration)
+"bm" = (
+/obj/structure/shuttle/window,
+/obj/structure/grille,
+/turf/simulated/shuttle/wall{
+ tag = "icon-swall14";
+ icon_state = "swall4";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bn" = (
+/turf/simulated/shuttle/wall{
+ tag = "icon-swall15";
+ icon_state = "swall15";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bo" = (
+/obj/structure/shuttle/window{
+ tag = "icon-window5_end (WEST)";
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_end";
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 8;
+ icon_state = "open";
+ id_tag = "Asclshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/turf/space,
+/area/shuttle/administration)
+"bp" = (
+/obj/machinery/computer/pandemic,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bq" = (
+/obj/machinery/camera{
+ c_tag = "Tech Storage";
+ dir = 2;
+ name = "NHV Asclepius Command Center";
+ network = list("NHV Asclepius")
+ },
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/door_control{
+ dir = 4;
+ id = "Asclshutters";
+ name = "remote shutter control";
+ pixel_x = -5;
+ pixel_y = 35;
+ req_access = list(101);
+ req_access_txt = "0"
+ },
+/obj/machinery/keycard_auth{
+ pixel_y = 24
+ },
+/obj/machinery/door_control{
+ dir = 2;
+ id = "asclblast";
+ name = "blast door control";
+ pixel_x = 5;
+ pixel_y = 35;
+ pixel_z = 0;
+ req_access = list(101);
+ req_access_txt = "0"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"br" = (
+/obj/machinery/recharger/wallcharger{
+ pixel_y = 25
+ },
+/obj/machinery/recharger/wallcharger{
+ pixel_y = 35
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bs" = (
+/turf/simulated/shuttle/wall{
+ tag = "icon-swall1";
+ icon_state = "swall1";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bt" = (
+/obj/structure/sink{
+ icon_state = "sink";
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bu" = (
+/obj/machinery/light{
+ tag = "icon-tube1 (NORTH)";
+ icon_state = "tube1";
+ dir = 1
+ },
+/obj/structure/closet/walllocker/emerglocker{
+ pixel_y = 32
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bv" = (
+/obj/machinery/vending/medical,
+/obj/machinery/light{
+ tag = "icon-tube1 (NORTH)";
+ icon_state = "tube1";
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bw" = (
+/obj/structure/table/tray,
+/obj/item/stack/medical/bruise_pack/advanced,
+/obj/item/scalpel,
+/obj/item/hemostat,
+/obj/item/retractor,
+/obj/item/circular_saw,
+/obj/item/bonegel,
+/obj/item/bonesetter,
+/obj/item/cautery,
+/obj/item/FixOVein,
+/obj/item/surgicaldrill,
+/obj/item/storage/backpack/duffel/medical,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bx" = (
+/obj/machinery/optable,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"by" = (
+/obj/machinery/computer/operating,
+/obj/machinery/light{
+ tag = "icon-tube1 (NORTH)";
+ icon_state = "tube1";
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bz" = (
+/obj/structure/closet/secure_closet/medical3,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bA" = (
+/obj/structure/closet/secure_closet/medical2,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bB" = (
+/obj/structure/shuttle/window{
+ dir = 4;
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_mid";
+ tag = "icon-window5 (EAST)"
+ },
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 8;
+ icon_state = "open";
+ id_tag = "Asclshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/turf/space,
+/area/shuttle/administration)
+"bC" = (
+/obj/machinery/computer/shuttle/admin{
+ name = "NHV Asclepius shuttle console"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bD" = (
+/obj/machinery/door/airlock/command{
+ name = "Command Center";
+ req_access = null;
+ req_access_txt = "19"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bE" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/reagent_containers/iv_bag/blood/OMinus,
+/obj/item/reagent_containers/iv_bag/blood/OMinus,
+/obj/item/reagent_containers/iv_bag/blood/OMinus,
+/obj/item/reagent_containers/iv_bag/blood/OMinus,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bF" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall1";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bG" = (
+/obj/machinery/camera{
+ dir = 4;
+ icon_state = "camera";
+ name = "NHV Asclepius OR 1";
+ network = list("NHV Asclepius")
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bH" = (
+/obj/machinery/computer/camera_advanced/shuttle_docker/admin{
+ name = "NHV Asclepius navigation computer"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bI" = (
+/obj/machinery/door/airlock/shuttle/glass{
+ name = "Operating Room";
+ req_access = null;
+ req_access_txt = "45"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bJ" = (
+/obj/structure/sink{
+ dir = 4;
+ icon_state = "sink";
+ pixel_x = 11;
+ pixel_y = 0
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bK" = (
+/obj/structure/shuttle/window{
+ tag = "icon-window5_end (EAST)";
+ icon = 'icons/turf/shuttle.dmi';
+ icon_state = "window5_end";
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 8;
+ icon_state = "open";
+ id_tag = "Asclshutters";
+ name = "Blast Shutters";
+ opacity = 0
+ },
+/obj/structure/grille,
+/turf/space,
+/area/shuttle/administration)
+"bL" = (
+/obj/machinery/computer/communications{
+ name = "NHV Asclepius Communications Console"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bM" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/light,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bN" = (
+/turf/simulated/shuttle/wall{
+ tag = "icon-swall2";
+ icon_state = "swall2";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bO" = (
+/obj/machinery/sleeper,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bP" = (
+/obj/machinery/sleeper{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bQ" = (
+/obj/structure/bed{
+ name = "Triage: High Priority"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bR" = (
+/obj/machinery/bodyscanner,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bS" = (
+/obj/machinery/body_scanconsole,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bT" = (
+/obj/machinery/light,
+/obj/structure/closet/crate/can,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bU" = (
+/obj/item/reagent_containers/spray/cleaner{
+ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back.";
+ name = "Surgery Cleaner"
+ },
+/obj/structure/table/glass,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bV" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/reagent_containers/iv_bag/blood/OMinus,
+/obj/item/reagent_containers/iv_bag/blood/OMinus,
+/obj/machinery/iv_drip,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"bW" = (
+/obj/machinery/status_display,
+/turf/simulated/shuttle/wall{
+ icon_state = "swall12";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bX" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall13";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bY" = (
+/obj/structure/sign/examroom,
+/turf/simulated/shuttle/wall{
+ icon_state = "swall12";
+ dir = 2
+ },
+/area/shuttle/administration)
+"bZ" = (
+/obj/machinery/defibrillator_mount/loaded,
+/turf/simulated/shuttle/wall{
+ dir = 2;
+ icon_state = "swall8";
+ tag = "icon-swall12"
+ },
+/area/shuttle/administration)
+"ca" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/camera{
+ dir = 5;
+ icon_state = "camera";
+ name = "NHV Asclepius Central";
+ network = list("NHV Asclepius")
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cb" = (
+/obj/machinery/light{
+ dir = 4;
+ icon_state = "tube1"
+ },
+/obj/structure/bed{
+ name = "Triage: High Priority"
+ },
+/obj/machinery/iv_drip,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cc" = (
+/obj/structure/sign/nosmoking_2,
+/turf/simulated/shuttle/wall{
+ icon_state = "swall7";
+ dir = 2
+ },
+/area/shuttle/administration)
+"cd" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall11";
+ dir = 2
+ },
+/area/shuttle/administration)
+"ce" = (
+/obj/machinery/portable_atmospherics/canister/oxygen{
+ name = "Canister: \[O2] (CRYO)"
+ },
+/obj/machinery/atmospherics/unary/portables_connector{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cf" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/glass/beaker/cryoxadone,
+/obj/item/reagent_containers/glass/beaker/cryoxadone,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cg" = (
+/obj/machinery/portable_atmospherics/canister/oxygen{
+ name = "Canister: \[O2] (CRYO)"
+ },
+/obj/machinery/light{
+ tag = "icon-tube1 (NORTH)";
+ icon_state = "tube1";
+ dir = 1
+ },
+/obj/machinery/camera{
+ dir = 4;
+ icon_state = "camera";
+ name = "NHV Asclepius Cryo";
+ network = list("NHV Asclepius")
+ },
+/obj/machinery/atmospherics/unary/portables_connector,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ch" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/spray/cleaner{
+ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back.";
+ name = "Surgery Cleaner"
+ },
+/obj/machinery/cell_charger,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ci" = (
+/obj/structure/bed{
+ name = "Triage: High Priority"
+ },
+/obj/machinery/iv_drip,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cj" = (
+/obj/machinery/atmospherics/unary/cold_sink/freezer,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ck" = (
+/obj/machinery/camera{
+ dir = 4;
+ icon_state = "camera";
+ name = "NHV Asclepius OR 2";
+ network = list("NHV Asclepius")
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cl" = (
+/obj/structure/closet/radiation,
+/obj/item/clothing/head/radiation,
+/obj/item/clothing/head/radiation,
+/obj/item/clothing/head/radiation,
+/obj/item/clothing/suit/radiation,
+/obj/item/clothing/suit/radiation,
+/obj/item/clothing/suit/radiation,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cm" = (
+/obj/structure/closet/l3closet,
+/obj/item/clothing/head/bio_hood,
+/obj/item/clothing/head/bio_hood,
+/obj/item/clothing/head/bio_hood,
+/obj/item/clothing/suit/bio_suit,
+/obj/item/clothing/suit/bio_suit,
+/obj/item/clothing/suit/bio_suit,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cn" = (
+/obj/structure/closet/secure_closet/medical1,
+/obj/item/clothing/head/beret/med,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"co" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cp" = (
+/obj/machinery/suit_storage_unit/cmo/secure/sec_storage,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cq" = (
+/obj/machinery/light,
+/obj/machinery/suit_storage_unit/cmo/secure/sec_storage,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cr" = (
+/obj/structure/dispenser/oxygen,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cs" = (
+/obj/machinery/vending/medical,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"ct" = (
+/turf/simulated/shuttle/wall{
+ icon_state = "swall_s5";
+ dir = 2
+ },
+/area/shuttle/administration)
+"cu" = (
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 5;
+ icon_state = "intact"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cv" = (
+/obj/machinery/atmospherics/pipe/manifold/hidden,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cw" = (
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 4;
+ level = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+"cx" = (
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 9;
+ icon_state = "intact"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor3"
+ },
+/area/shuttle/administration)
+
+(1,1,1) = {"
+ab
+ao
+aE
+aE
+aE
+aE
+aE
+aD
+bo
+bB
+bB
+bK
+aD
+aE
+aE
+aE
+aE
+ct
+"}
+(2,1,1) = {"
+ac
+ap
+aF
+aN
+aS
+aX
+ap
+ac
+bp
+bC
+bH
+bL
+ac
+cg
+cu
+aw
+cl
+ac
+"}
+(3,1,1) = {"
+ad
+aq
+aG
+aw
+aw
+aY
+aq
+ac
+bq
+aR
+aR
+bM
+ac
+aC
+cv
+aw
+cm
+ad
+"}
+(4,1,1) = {"
+ae
+ar
+aw
+aw
+aw
+aw
+ba
+ac
+br
+aw
+aw
+aw
+bW
+cf
+cw
+aw
+cn
+ae
+"}
+(5,1,1) = {"
+af
+as
+aw
+aw
+aw
+aw
+aw
+ag
+bs
+bD
+aP
+bN
+bX
+aC
+cv
+aw
+co
+af
+"}
+(6,1,1) = {"
+ac
+at
+aw
+aO
+aw
+aw
+aw
+bj
+bt
+aw
+aw
+bO
+bY
+cj
+cx
+aw
+cp
+ac
+"}
+(7,1,1) = {"
+ag
+au
+aH
+aP
+aT
+aP
+bb
+bk
+bu
+aw
+aw
+bP
+bZ
+ch
+aw
+aw
+cq
+ac
+"}
+(8,1,1) = {"
+ah
+av
+aw
+aQ
+aw
+aQ
+bc
+bl
+aw
+aw
+aw
+aw
+ca
+aw
+aw
+aw
+cr
+ac
+"}
+(9,1,1) = {"
+ai
+aw
+aw
+aw
+aw
+aw
+aw
+aU
+aw
+aw
+aw
+aw
+aw
+aw
+aw
+aw
+bR
+ac
+"}
+(10,1,1) = {"
+aj
+aw
+aw
+aw
+aw
+aw
+aw
+aU
+aw
+aw
+aw
+aw
+aw
+aw
+aw
+aw
+bS
+ac
+"}
+(11,1,1) = {"
+ak
+ax
+aI
+aR
+aw
+aR
+bd
+bm
+bv
+bE
+aw
+bQ
+cb
+ci
+bQ
+aw
+cs
+ac
+"}
+(12,1,1) = {"
+ag
+ao
+aJ
+aP
+aU
+aP
+bb
+bn
+aP
+bF
+bI
+bN
+cc
+aP
+bF
+bI
+bN
+bX
+"}
+(13,1,1) = {"
+ac
+ay
+aw
+aw
+aw
+aw
+be
+ac
+bw
+bG
+aw
+bR
+ac
+bw
+ck
+aw
+bR
+ac
+"}
+(14,1,1) = {"
+ad
+az
+aw
+aw
+aw
+aw
+bg
+ac
+bx
+aw
+aw
+bS
+ac
+bx
+aw
+aw
+bS
+ad
+"}
+(15,1,1) = {"
+al
+aA
+aw
+aw
+aw
+aw
+bh
+ac
+by
+aw
+aw
+bT
+ac
+by
+aw
+aw
+bT
+ae
+"}
+(16,1,1) = {"
+am
+aB
+aw
+aw
+aw
+aZ
+bi
+ac
+bz
+aw
+aw
+bU
+ac
+bz
+aw
+aw
+bU
+af
+"}
+(17,1,1) = {"
+ac
+aC
+aK
+aK
+aV
+bf
+ce
+ac
+bA
+aw
+bJ
+bV
+ac
+bA
+aw
+bJ
+bV
+ac
+"}
+(18,1,1) = {"
+an
+aD
+aL
+aL
+aD
+aE
+aE
+bn
+aL
+aL
+aD
+aE
+cd
+aD
+aL
+aL
+aD
+aW
+"}
+(19,1,1) = {"
+aa
+an
+aM
+aM
+aW
+aa
+aa
+an
+aM
+aM
+aW
+aa
+aa
+an
+aM
+aM
+aW
+aa
+"}
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 9ecf8efb974..a5fcd9e219a 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -181,33 +181,34 @@
#define MFOAM_IRON 2
//Human Overlays Indexes/////////
-#define BODY_LAYER 37
-#define MUTANTRACE_LAYER 36
-#define TAIL_UNDERLIMBS_LAYER 35 //Tail split-rendering.
-#define LIMBS_LAYER 34
-#define INTORGAN_LAYER 33
-#define MARKINGS_LAYER 32
-#define UNDERWEAR_LAYER 31
-#define MUTATIONS_LAYER 30
-#define H_DAMAGE_LAYER 29
-#define UNIFORM_LAYER 28
-#define ID_LAYER 27
-#define SHOES_LAYER 26
-#define GLOVES_LAYER 25
-#define EARS_LAYER 24
-#define SUIT_LAYER 23
-#define BELT_LAYER 22 //Possible make this an overlay of somethign required to wear a belt?
-#define SUIT_STORE_LAYER 21
-#define BACK_LAYER 20
-#define HEAD_ACCESSORY_LAYER 19
-#define FHAIR_LAYER 18
-#define GLASSES_LAYER 17
-#define HAIR_LAYER 16 //TODO: make part of head layer?
-#define HEAD_ACC_OVER_LAYER 15 //Select-layer rendering.
-#define FHAIR_OVER_LAYER 14 //Select-layer rendering.
-#define GLASSES_OVER_LAYER 13 //Select-layer rendering.
-#define TAIL_LAYER 12 //bs12 specific. this hack is probably gonna come back to haunt me
-#define FACEMASK_LAYER 11
+#define BODY_LAYER 38
+#define MUTANTRACE_LAYER 37
+#define TAIL_UNDERLIMBS_LAYER 36 //Tail split-rendering.
+#define LIMBS_LAYER 35
+#define INTORGAN_LAYER 34
+#define MARKINGS_LAYER 33
+#define UNDERWEAR_LAYER 32
+#define MUTATIONS_LAYER 31
+#define H_DAMAGE_LAYER 30
+#define UNIFORM_LAYER 29
+#define ID_LAYER 28
+#define SHOES_LAYER 27
+#define GLOVES_LAYER 26
+#define EARS_LAYER 25
+#define SUIT_LAYER 24
+#define BELT_LAYER 23 //Possible make this an overlay of somethign required to wear a belt?
+#define SUIT_STORE_LAYER 22
+#define BACK_LAYER 21
+#define HEAD_ACCESSORY_LAYER 20
+#define FHAIR_LAYER 19
+#define GLASSES_LAYER 18
+#define HAIR_LAYER 17 //TODO: make part of head layer?
+#define HEAD_ACC_OVER_LAYER 16 //Select-layer rendering.
+#define FHAIR_OVER_LAYER 15 //Select-layer rendering.
+#define GLASSES_OVER_LAYER 14 //Select-layer rendering.
+#define TAIL_LAYER 13 //bs12 specific. this hack is probably gonna come back to haunt me
+#define FACEMASK_LAYER 12
+#define OVER_MASK_LAYER 11 //Select-layer rendering.
#define HEAD_LAYER 10
#define COLLAR_LAYER 9
#define HANDCUFF_LAYER 8
@@ -218,7 +219,7 @@
#define FIRE_LAYER 3 //If you're on fire
#define MISC_LAYER 2
#define FROZEN_LAYER 1
-#define TOTAL_LAYERS 37
+#define TOTAL_LAYERS 38
///Access Region Codes///
#define REGION_ALL 0
diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm
index d20255bc57c..53517d5dbc9 100644
--- a/code/datums/shuttles.dm
+++ b/code/datums/shuttles.dm
@@ -25,6 +25,11 @@
port_id = "ferry"
name = "Base Shuttle Template (Ferry)"
+/datum/map_template/shuttle/admin
+ port_id = "admin"
+ name = "Base Shuttle Template (Admin)"
+
+
// Shuttles start here:
@@ -117,3 +122,13 @@
definitely no zombifyin' reagents!"
admin_notes = "Meat currently contains no zombifying reagents, people on \
meatspike must be spawned in."
+
+/datum/map_template/shuttle/admin/hospital
+ suffix = "hospital"
+ name = "NHV Asclepius"
+ description = "Nanostrasen Hospital ship, for medical assistance during disasters."
+
+/datum/map_template/shuttle/admin/admin
+ suffix = "admin"
+ name = "NTV Argos"
+ description = "Default Admin ship. An older ship used for special operations."
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index ec43330a8eb..8fdaf8c25df 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -1073,6 +1073,12 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
containertype = /obj/structure/closet/critter/cow
containername = "cow crate"
+/datum/supply_packs/organic/pig
+ name = "Pig Crate"
+ cost = 25
+ containertype = /obj/structure/closet/critter/pig
+ containername = "pig crate"
+
/datum/supply_packs/organic/goat
name = "Goat Crate"
cost = 25
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index a714e17d236..d1377fef558 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -1544,10 +1544,10 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 12
/datum/uplink_item/cyber_implants/reviver
- name = "Reviver Implant"
- desc = "This implant will attempt to revive you if you lose consciousness. Comes with an automated implanting tool."
+ name = "Hardened Reviver Implant"
+ desc = "This implant will attempt to revive you if you lose consciousness. It is invulnerable to EMPs. Comes with an automated implanting tool."
reference = "CIR"
- item = /obj/item/organ/internal/cyberimp/chest/reviver
+ item = /obj/item/organ/internal/cyberimp/chest/reviver/hardened
cost = 8
// POINTLESS BADASSERY
diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm
index 3bf0a5f3928..f7f768e8dfb 100644
--- a/code/game/area/Space Station 13 areas.dm
+++ b/code/game/area/Space Station 13 areas.dm
@@ -288,15 +288,15 @@ var/list/ghostteleportlocs = list()
icon_state = "shuttle"
/area/shuttle/administration
- name = "\improper Administration Shuttle"
+ name = "\improper Nanotrasen Vessel"
icon_state = "shuttlered"
/area/shuttle/administration/centcom
- name = "\improper Administration Shuttle Centcom"
+ name = "\improper Nanotrasen Vessel Centcom"
icon_state = "shuttlered"
/area/shuttle/administration/station
- name = "\improper Administration Shuttle"
+ name = "\improper Nanotrasen Vessel"
icon_state = "shuttlered2"
/area/shuttle/thunderdome
diff --git a/code/game/jobs/job_exp.dm b/code/game/jobs/job_exp.dm
index 7c228ba554f..2a7927d09bf 100644
--- a/code/game/jobs/job_exp.dm
+++ b/code/game/jobs/job_exp.dm
@@ -257,7 +257,12 @@ var/global/list/role_playtime_requirements = list(
play_records[rtype] = text2num(read_records[rtype])
else
play_records[rtype] = 0
- var/myrole = mob.mind.playtime_role ? mob.mind.playtime_role : mob.mind.assigned_role
+ var/myrole
+ if(mob.mind)
+ if(mob.mind.playtime_role)
+ myrole = mob.mind.playtime_role
+ else if(mob.mind.assigned_role)
+ myrole = mob.mind.assigned_role
if(mob.stat == CONSCIOUS && myrole)
play_records[EXP_TYPE_LIVING] += minutes
if(announce_changes)
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 21ff909796f..3838a52325f 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -87,10 +87,7 @@
if(operating || !density)
return
add_fingerprint(user)
- if(!requiresID())
- user = null
-
- if(allowed(user))
+ if(!requiresID() || allowed(user))
open_and_close()
else
do_animate("deny")
@@ -217,7 +214,7 @@
return attack_hand(user)
/obj/machinery/door/window/attack_hand(mob/user)
- return attackby(user, user)
+ return bumpopen(user)
/obj/machinery/door/window/emag_act(mob/user, obj/weapon)
if(!operating && density && !emagged)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 9d199a404d0..089317524e9 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -593,7 +593,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
/obj/item/MouseEntered(location, control, params)
if(in_inventory)
- var/timedelay = 5
+ var/timedelay = 8
var/user = usr
tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), timedelay, TIMER_STOPPABLE)
diff --git a/code/game/objects/items/dehy_carp.dm b/code/game/objects/items/dehy_carp.dm
index 3125c24837a..a975a0b4d06 100644
--- a/code/game/objects/items/dehy_carp.dm
+++ b/code/game/objects/items/dehy_carp.dm
@@ -37,7 +37,7 @@
visible_message("[src] swells up!")
// Animation
- icon = 'icons/mob/animal.dmi'
+ icon = 'icons/mob/carp.dmi'
flick("carp_swell", src)
// Wait for animation to end
sleep(6)
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index abc328a8bf1..2c1222154b0 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -240,6 +240,7 @@ var/global/list/datum/stack_recipe/cloth_recipes = list ( \
var/global/list/datum/stack_recipe/cardboard_recipes = list (
new /datum/stack_recipe("box", /obj/item/storage/box),
new /datum/stack_recipe("large box", /obj/item/storage/box/large, 4),
+ new /datum/stack_recipe("patch pack", /obj/item/storage/pill_bottle/patch_pack, 2),
new /datum/stack_recipe("light tubes", /obj/item/storage/box/lights/tubes),
new /datum/stack_recipe("light bulbs", /obj/item/storage/box/lights/bulbs),
new /datum/stack_recipe("mouse traps", /obj/item/storage/box/mousetraps),
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 19864e0ba18..393ca1f3c0b 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -1066,6 +1066,32 @@ obj/item/toy/cards/deck/syndicate/black
name = "tuxedo cat plushie"
icon_state = "tuxedocat"
+//New generation TG plushies
+
+/obj/item/toy/plushie/lizardplushie
+ name = "lizard plushie"
+ desc = "An adorable stuffed toy that resembles a lizardperson."
+ icon_state = "plushie_lizard"
+ item_state = "plushie_lizard"
+
+/obj/item/toy/plushie/snakeplushie
+ name = "snake plushie"
+ desc = "An adorable stuffed toy that resembles a snake. Not to be mistaken for the real thing."
+ icon_state = "plushie_snake"
+ item_state = "plushie_snake"
+
+/obj/item/toy/plushie/nukeplushie
+ name = "operative plushie"
+ desc = "An stuffed toy that resembles a syndicate nuclear operative. The tag claims operatives to be purely fictitious."
+ icon_state = "plushie_nuke"
+ item_state = "plushie_nuke"
+
+/obj/item/toy/plushie/slimeplushie
+ name = "slime plushie"
+ desc = "An adorable stuffed toy that resembles a slime. It is practically just a hacky sack."
+ icon_state = "plushie_slime"
+ item_state = "plushie_slime"
+
/*
* Foam Armblade
*/
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index e406b097bee..9b1e89769cb 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -4,23 +4,22 @@
icon = 'icons/obj/clothing/belts.dmi'
icon_state = "utilitybelt"
item_state = "utility"
+ lefthand_file = 'icons/mob/inhands/equipment/belt_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/equipment/belt_righthand.dmi'
slot_flags = SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined")
var/use_item_overlays = 0 // Do we have overlays for items held inside the belt?
-
/obj/item/storage/belt/update_icon()
if(use_item_overlays)
overlays.Cut()
for(var/obj/item/I in contents)
overlays += "[I.name]"
-
..()
/obj/item/storage/belt/proc/can_use()
return is_equipped()
-
/obj/item/storage/belt/MouseDrop(obj/over_object as obj, src_location, over_location)
var/mob/M = usr
if(!istype(over_object, /obj/screen))
@@ -68,7 +67,7 @@
new /obj/item/weldingtool(src)
new /obj/item/crowbar(src)
new /obj/item/wirecutters(src)
- new /obj/item/stack/cable_coil(src, 30, pick(COLOR_RED, COLOR_YELLOW, COLOR_ORANGE))
+ new /obj/item/stack/cable_coil/random(src, 30)
update_icon()
/obj/item/storage/belt/utility/full/multitool/New()
@@ -99,7 +98,7 @@
new /obj/item/crowbar/power(src)
new /obj/item/weldingtool/experimental(src)//This can be changed if this is too much
new /obj/item/multitool(src)
- new /obj/item/stack/cable_coil(src, 30, pick(COLOR_RED, COLOR_YELLOW, COLOR_ORANGE))
+ new /obj/item/stack/cable_coil/random(src, 30)
new /obj/item/extinguisher/mini(src)
new /obj/item/analyzer(src)
update_icon()
@@ -184,7 +183,6 @@
new /obj/item/reagent_containers/food/pill/salicylic(src)
update_icon()
-
/obj/item/storage/belt/botany
name = "botanist belt"
desc = "Can hold various botanical supplies."
@@ -207,7 +205,6 @@
/obj/item/wrench,
)
-
/obj/item/storage/belt/security
name = "security belt"
desc = "Can hold security gear like handcuffs and flashes."
@@ -472,7 +469,6 @@
..()
update_icon()
-
/obj/item/storage/belt/holster
name = "shoulder holster"
desc = "A holster to conceal a carried handgun. WARNING: Badasses only."
@@ -510,7 +506,6 @@
W.charges = W.max_charges
update_icon()
-
/obj/item/storage/belt/fannypack
name = "fannypack"
desc = "A dorky fannypack for keeping small items in."
@@ -599,7 +594,6 @@
// Bluespace Belt
// -------------------------------------
-
/obj/item/storage/belt/bluespace
name = "Belt of Holding"
desc = "The greatest in pants-supporting technology."
@@ -632,8 +626,6 @@
var/bolacount = 0
var/cooldown = 0
-
-
/obj/item/storage/belt/bluespace/owlman/New()
..()
new /obj/item/grenade/smokebomb(src)
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index 8815cccd92f..53f93775cad 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -312,6 +312,7 @@
if(usr.s_active)
usr.s_active.show_to(usr)
W.mouse_opacity = MOUSE_OPACITY_OPAQUE //So you can click on the area around the item to equip it, instead of having to pixel hunt
+ W.in_inventory = TRUE
update_icon()
return 1
diff --git a/code/game/objects/structures/crates_lockers/crittercrate.dm b/code/game/objects/structures/crates_lockers/crittercrate.dm
index ffaff75288d..50d9b056e96 100644
--- a/code/game/objects/structures/crates_lockers/crittercrate.dm
+++ b/code/game/objects/structures/crates_lockers/crittercrate.dm
@@ -44,6 +44,10 @@
name = "cow crate"
content_mob = /mob/living/simple_animal/cow
+/obj/structure/closet/critter/pig
+ name = "pig crate"
+ content_mob = /mob/living/simple_animal/pig
+
/obj/structure/closet/critter/goat
name = "goat crate"
content_mob = /mob/living/simple_animal/hostile/retaliate/goat
diff --git a/code/modules/arcade/arcade_prize.dm b/code/modules/arcade/arcade_prize.dm
index 94c265848b7..a91e392e125 100644
--- a/code/modules/arcade/arcade_prize.dm
+++ b/code/modules/arcade/arcade_prize.dm
@@ -42,8 +42,8 @@
possible_contents = list(/obj/random/carp_plushie)
/obj/item/toy/prizeball/plushie
- name = "animal plushie capsule"
- desc = "Contains one cuddly animal plushie!"
+ name = "plushie capsule"
+ desc = "Contains one cuddly plushie!"
possible_contents = list(/obj/random/plushie)
/obj/item/toy/prizeball/figure
diff --git a/code/modules/arcade/prize_datums.dm b/code/modules/arcade/prize_datums.dm
index a68071f8f44..4d2e062677a 100644
--- a/code/modules/arcade/prize_datums.dm
+++ b/code/modules/arcade/prize_datums.dm
@@ -157,8 +157,8 @@ var/global/datum/prizes/global_prizes = new
cost = 65
/datum/prize_item/plushie
- name = "Random Animal Plushie"
- desc = "A colorful animal-shaped plush toy."
+ name = "Random Plushie"
+ desc = "A colorful plush toy."
typepath = /obj/item/toy/prizeball/plushie
cost = 75
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index dbad47474f6..08958b0d005 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -160,6 +160,7 @@
var/list/color_view = null//overrides client.color while worn
var/prescription = 0
var/prescription_upgradable = 0
+ var/over_mask = FALSE //Whether or not the eyewear is rendered above the mask. Purely cosmetic.
strip_delay = 20 // but seperated to allow items to protect but not impair vision, like space helmets
put_on_delay = 25
burn_state = FIRE_PROOF
@@ -174,6 +175,28 @@ SEE_PIXELS// if an object is located on an unlit area, but some of its pixels ar
BLIND // can't see anything
*/
+/obj/item/clothing/glasses/verb/adjust_eyewear() //Adjust eyewear to be worn above or below the mask.
+ set name = "Adjust Eyewear"
+ set category = "Object"
+ set desc = "Adjust your eyewear to be worn over or under a mask."
+ set src in usr
+
+ var/mob/living/carbon/human/user = usr
+ if(!istype(user))
+ return
+ if(user.incapacitated()) //Dead spessmen adjust no glasses. Resting/buckled ones do, though
+ return
+
+ var/action_fluff = "You adjust \the [src]"
+ if(user.glasses == src)
+ if(!user.canUnEquip(src))
+ to_chat(usr, "[src] is stuck to you!")
+ return
+ if(attack_hand(user)) //Remove the glasses for this action. Prevents logic-defying instances where glasses phase through your mask as it ascends/descends to another plane of existence.
+ action_fluff = "You remove \the [src] and adjust it"
+
+ over_mask = !over_mask
+ to_chat(user, "[action_fluff] to be worn [over_mask ? "over" : "under"] a mask.")
//Gloves
/obj/item/clothing/gloves
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 13ef3e074da..0903710ddc8 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -345,7 +345,7 @@
name = "winter coat"
desc = "A heavy jacket made from 'synthetic' animal furs."
icon_state = "wintercoat"
- item_state = "labcoat"
+ item_state = "coatwinter"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
@@ -369,6 +369,7 @@
/obj/item/clothing/suit/hooded/wintercoat/captain
name = "captain's winter coat"
icon_state = "wintercoat_captain"
+ item_state = "coatcaptain"
armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/projectile, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic)
hoodtype = /obj/item/clothing/head/winterhood/captain
@@ -379,6 +380,7 @@
/obj/item/clothing/suit/hooded/wintercoat/security
name = "security winter coat"
icon_state = "wintercoat_sec"
+ item_state = "coatsecurity"
armor = list(melee = 10, bullet = 10, laser = 10, energy = 5, bomb = 15, bio = 0, rad = 0)
allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic)
hoodtype = /obj/item/clothing/head/winterhood/security
@@ -389,6 +391,7 @@
/obj/item/clothing/suit/hooded/wintercoat/medical
name = "medical winter coat"
icon_state = "wintercoat_med"
+ item_state = "coatmedical"
allowed = list(/obj/item/analyzer, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer,/obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 50, rad = 0)
hoodtype = /obj/item/clothing/head/winterhood/medical
@@ -399,6 +402,7 @@
/obj/item/clothing/suit/hooded/wintercoat/science
name = "science winter coat"
icon_state = "wintercoat_sci"
+ item_state = "coatscience"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer,/obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 0)
hoodtype = /obj/item/clothing/head/winterhood/science
@@ -409,6 +413,7 @@
/obj/item/clothing/suit/hooded/wintercoat/engineering
name = "engineering winter coat"
icon_state = "wintercoat_engi"
+ item_state = "coatengineer"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20)
allowed = list(/obj/item/flashlight, /obj/item/tank/emergency_oxygen, /obj/item/t_scanner, /obj/item/rcd)
hoodtype = /obj/item/clothing/head/winterhood/engineering
@@ -419,6 +424,7 @@
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos
name = "atmospherics winter coat"
icon_state = "wintercoat_atmos"
+ item_state = "coatatmos"
hoodtype = /obj/item/clothing/head/winterhood/engineering/atmos
/obj/item/clothing/head/winterhood/engineering/atmos
@@ -427,6 +433,7 @@
/obj/item/clothing/suit/hooded/wintercoat/hydro
name = "hydroponics winter coat"
icon_state = "wintercoat_hydro"
+ item_state = "coathydro"
allowed = list(/obj/item/reagent_containers/spray, /obj/item/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/hatchet, /obj/item/storage/bag/plants)
hoodtype = /obj/item/clothing/head/winterhood/hydro
@@ -436,6 +443,7 @@
/obj/item/clothing/suit/hooded/wintercoat/cargo
name = "cargo winter coat"
icon_state = "wintercoat_cargo"
+ item_state = "coatcargo"
hoodtype = /obj/item/clothing/head/winterhood/cargo
/obj/item/clothing/head/winterhood/cargo
@@ -444,6 +452,7 @@
/obj/item/clothing/suit/hooded/wintercoat/miner
name = "mining winter coat"
icon_state = "wintercoat_miner"
+ item_state = "coatminer"
allowed = list(/obj/item/pickaxe, /obj/item/flashlight, /obj/item/tank/emergency_oxygen, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
hoodtype = /obj/item/clothing/head/winterhood/miner
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 6ad3bd70d55..1cce81c12c2 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -802,6 +802,7 @@
lefthand_file = 'icons/goonstation/mob/inhands/clothing_lefthand.dmi'
righthand_file = 'icons/goonstation/mob/inhands/clothing_righthand.dmi'
flags = NODROP
+ flags_size = ONESIZEFITSALL
has_sensor = 0 // HUNKE
/obj/item/clothing/under/victdress
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 01faa9d9422..87a02117c28 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -414,8 +414,22 @@
if(has_breathable_mask && istype(belt, /obj/item/tank))
dat += " [internal ? "Disable Internals" : "Set Internals"]"
dat += ""
- dat += "
| ↳Pockets: | [(l_store && !(l_store.flags&ABSTRACT)) ? "Left (Full)" : "Left (Empty)"]"
- dat += " [(r_store && !(r_store.flags&ABSTRACT)) ? "Right (Full)" : "Right (Empty)"] |
"
+ // Pockets
+ dat += "| ↳Pockets: | "
+ if(l_store && internal && l_store == internal)
+ dat += "[l_store]"
+ else if(l_store && !(l_store.flags&ABSTRACT))
+ dat += "Left (Full)"
+ else
+ dat += "Left (Empty)"
+ dat += " "
+ if(r_store && internal && r_store == internal)
+ dat += "[r_store]"
+ else if(r_store && !(r_store.flags&ABSTRACT))
+ dat += "Right (Full)"
+ else
+ dat += "Right (Empty)"
+ dat += " |
"
dat += "| ↳ID: | [(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Empty"] |
"
dat += "| ↳PDA: | [(wear_pda && !(wear_pda.flags&ABSTRACT)) ? wear_pda : "Empty"] |
"
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index e55eee62dbc..6e540c4cf5a 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -659,6 +659,7 @@ var/global/list/damage_icon_parts = list()
/mob/living/carbon/human/update_inv_glasses(var/update_icons=1)
remove_overlay(GLASSES_LAYER)
remove_overlay(GLASSES_OVER_LAYER)
+ remove_overlay(OVER_MASK_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_glasses]
@@ -681,7 +682,12 @@ var/global/list/damage_icon_parts = list()
new_glasses = mutable_appearance('icons/mob/eyes.dmi', "[glasses.icon_state]", layer = -GLASSES_LAYER)
var/datum/sprite_accessory/hair/hair_style = GLOB.hair_styles_full_list[head_organ.h_style]
- if(hair_style && hair_style.glasses_over) //Select which layer to use based on the properties of the hair style. Hair styles with hair that don't overhang the arms of the glasses should have glasses_over set to a positive value.
+ var/obj/item/clothing/glasses/G = glasses
+ if(istype(G) && G.over_mask) //If the user's used the 'wear over mask' verb on the glasses.
+ new_glasses.layer = -OVER_MASK_LAYER
+ overlays_standing[OVER_MASK_LAYER] = new_glasses
+ apply_overlay(OVER_MASK_LAYER)
+ else if(hair_style && hair_style.glasses_over) //Select which layer to use based on the properties of the hair style. Hair styles with hair that don't overhang the arms of the glasses should have glasses_over set to a positive value.
new_glasses.layer = -GLASSES_OVER_LAYER
overlays_standing[GLASSES_OVER_LAYER] = new_glasses
apply_overlay(GLASSES_OVER_LAYER)
diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm
index d81b76e2e76..d584d5a50f5 100644
--- a/code/modules/mob/living/silicon/robot/component.dm
+++ b/code/modules/mob/living/silicon/robot/component.dm
@@ -22,8 +22,11 @@
/datum/robot_component/proc/install()
go_online()
+ owner.updatehealth("component '[src]' installed")
+
/datum/robot_component/proc/uninstall()
go_offline()
+ owner.updatehealth("component '[src]' removed")
/datum/robot_component/proc/destroy()
if(wrapped)
@@ -102,12 +105,6 @@
external_type = /obj/item/robot_parts/robot_component/actuator
max_damage = 50
-/datum/robot_component/actuator/go_online()
- owner.update_stat()
-
-/datum/robot_component/actuator/go_offline()
- owner.update_stat()
-
/datum/robot_component/cell
name = "power cell"
max_damage = 50
@@ -115,12 +112,6 @@
/datum/robot_component/cell/is_powered()
return ..() && owner.cell
-/datum/robot_component/cell/go_online()
- owner.update_stat()
-
-/datum/robot_component/cell/go_offline()
- owner.update_stat()
-
/datum/robot_component/cell/destroy()
..()
owner.cell = null
@@ -264,19 +255,25 @@
if(M.timeofdeath && M.stat == DEAD)
to_chat(user, "Time of Disable: [station_time_timestamp("hh:mm:ss", M.timeofdeath)]")
var/mob/living/silicon/robot/H = M
- var/list/damaged = H.get_damaged_components(1,1,1)
+ var/list/damaged = H.get_damaged_components(TRUE, TRUE, TRUE) // Get all except the missing ones
+ var/list/missing = H.get_missing_components()
to_chat(user, "Localized Damage:")
- if(length(damaged)>0)
- for(var/datum/robot_component/org in damaged)
- user.show_message(text("\t []: [][] - [] - [] - []", \
- capitalize(org.name), \
- (org.installed == -1) ? "DESTROYED " :"",\
- (org.electronics_damage > 0) ? "[org.electronics_damage]" :0, \
- (org.brute_damage > 0) ? "[org.brute_damage]" :0, \
- (org.toggled) ? "Toggled ON" : "Toggled OFF",\
- (org.powered) ? "Power ON" : "Power OFF"),1)
- else
+ if(!LAZYLEN(damaged) && !LAZYLEN(missing))
to_chat(user, "\t Components are OK.")
+ else
+ if(LAZYLEN(damaged))
+ for(var/datum/robot_component/org in damaged)
+ user.show_message(text("\t []: [][] - [] - [] - []", \
+ capitalize(org.name), \
+ (org.installed == -1) ? "DESTROYED " :"",\
+ (org.electronics_damage > 0) ? "[org.electronics_damage]" :0, \
+ (org.brute_damage > 0) ? "[org.brute_damage]" :0, \
+ (org.toggled) ? "Toggled ON" : "Toggled OFF",\
+ (org.powered) ? "Power ON" : "Power OFF"),1)
+ if(LAZYLEN(missing))
+ for(var/datum/robot_component/org in missing)
+ user.show_message("\t [capitalize(org.name)]: MISSING")
+
if(H.emagged && prob(5))
to_chat(user, "\t ERROR: INTERNAL SYSTEMS COMPROMISED")
@@ -287,22 +284,22 @@
to_chat(user, "External prosthetics:")
var/organ_found
- if(H.internal_organs.len)
+ if(LAZYLEN(H.internal_organs))
for(var/obj/item/organ/external/E in H.bodyparts)
if(!E.is_robotic())
continue
- organ_found = 1
+ organ_found = TRUE
to_chat(user, "[E.name]: [E.brute_dam] [E.burn_dam]")
if(!organ_found)
to_chat(user, "No prosthetics located.")
to_chat(user, "
")
to_chat(user, "Internal prosthetics:")
organ_found = null
- if(H.internal_organs.len)
+ if(LAZYLEN(H.internal_organs))
for(var/obj/item/organ/internal/O in H.internal_organs)
if(!O.is_robotic())
continue
- organ_found = 1
+ organ_found = TRUE
to_chat(user, "[capitalize(O.name)]: [O.damage]")
if(!organ_found)
to_chat(user, "No prosthetics located.")
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index e6a65545646..68d0ca33908 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -159,6 +159,7 @@ var/list/robot_verbs_default = list(
var/datum/robot_component/cell_component = components["power cell"]
cell_component.wrapped = cell
cell_component.installed = 1
+ cell_component.install()
diag_hud_set_borgcell()
scanner = new(src)
@@ -440,8 +441,10 @@ var/list/robot_verbs_default = list(
var/dat = "[src.name] Self-Diagnosis Report\n"
for(var/V in components)
var/datum/robot_component/C = components[V]
- dat += "[C.name]
| Brute Damage: | [C.brute_damage] |
| Electronics Damage: | [C.electronics_damage] |
| Powered: | [C.is_powered() ? "Yes" : "No"] |
| Toggled: | [ C.toggled ? "Yes" : "No"] |
"
-
+ if(C.installed == 0)
+ dat += "[C.name]
MISSING
"
+ else
+ dat += "[C.name][C.installed == -1 ? "
DESTROYED" : ""]
| Brute Damage: | [C.brute_damage] |
| Electronics Damage: | [C.electronics_damage] |
| Powered: | [C.is_powered() ? "Yes" : "No"] |
| Toggled: | [ C.toggled ? "Yes" : "No"] |
"
return dat
/mob/living/silicon/robot/verb/self_diagnosis_verb()
@@ -593,6 +596,9 @@ var/list/robot_verbs_default = list(
if(!getBruteLoss())
to_chat(user, "Nothing to fix!")
return
+ else if(!getBruteLoss(TRUE))
+ to_chat(user, "The damaged components are beyond saving!")
+ return
var/obj/item/weldingtool/WT = W
user.changeNext_move(CLICK_CD_MELEE)
if(WT.remove_fuel(0))
@@ -605,11 +611,14 @@ var/list/robot_verbs_default = list(
return
- else if(istype(W, /obj/item/stack/cable_coil) && user.a_intent == INTENT_HELP && (wiresexposed || istype(src,/mob/living/silicon/robot/drone)))
+ else if(istype(W, /obj/item/stack/cable_coil) && user.a_intent == INTENT_HELP && (wiresexposed || istype(src, /mob/living/silicon/robot/drone)))
user.changeNext_move(CLICK_CD_MELEE)
if(!getFireLoss())
to_chat(user, "Nothing to fix!")
return
+ else if(!getFireLoss(TRUE))
+ to_chat(user, "The damaged components are beyond saving!")
+ return
var/obj/item/stack/cable_coil/coil = W
adjustFireLoss(-30)
updatehealth()
@@ -656,10 +665,10 @@ var/list/robot_verbs_default = list(
I.burn = C.electronics_damage
I.loc = src.loc
-
- if(C.installed == 1)
- C.uninstall()
+ var/was_installed = C.installed
C.installed = 0
+ if(was_installed == 1)
+ C.uninstall()
else
if(locked)
@@ -1364,7 +1373,7 @@ var/list/robot_verbs_default = list(
..()
var/brute = 1000
var/burn = 1000
- var/list/datum/robot_component/borked_parts = get_damaged_components(brute,burn,1)
+ var/list/datum/robot_component/borked_parts = get_damaged_components(TRUE, TRUE, TRUE, TRUE)
for(var/datum/robot_component/borked_part in borked_parts)
brute = borked_part.brute_damage
burn = borked_part.electronics_damage
diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm
index e2a93fa0167..81700464ac0 100644
--- a/code/modules/mob/living/silicon/robot/robot_damage.dm
+++ b/code/modules/mob/living/silicon/robot/robot_damage.dm
@@ -8,18 +8,20 @@
handle_hud_icons_health()
diag_hud_set_health()
-/mob/living/silicon/robot/getBruteLoss()
+/mob/living/silicon/robot/getBruteLoss(repairable_only = FALSE)
var/amount = 0
for(var/V in components)
var/datum/robot_component/C = components[V]
- if(C.installed != 0) amount += C.brute_damage
+ if(C.installed != 0 && (!repairable_only || C.installed != -1)) // Installed ones only and if repair only remove the borked ones
+ amount += C.brute_damage
return amount
-/mob/living/silicon/robot/getFireLoss()
+/mob/living/silicon/robot/getFireLoss(repairable_only = FALSE)
var/amount = 0
for(var/V in components)
var/datum/robot_component/C = components[V]
- if(C.installed != 0) amount += C.electronics_damage
+ if(C.installed != 0 && (!repairable_only || C.installed != -1)) // Installed ones only and if repair only remove the borked ones
+ amount += C.electronics_damage
return amount
/mob/living/silicon/robot/adjustBruteLoss(amount, updating_health = TRUE)
@@ -36,11 +38,19 @@
heal_overall_damage(0, -amount, updating_health)
return STATUS_UPDATE_HEALTH
-/mob/living/silicon/robot/proc/get_damaged_components(var/brute, var/burn, var/get_all)
+/mob/living/silicon/robot/proc/get_damaged_components(get_brute, get_burn, get_borked = FALSE, get_missing = FALSE)
var/list/datum/robot_component/parts = list()
for(var/V in components)
var/datum/robot_component/C = components[V]
- if(C.installed == 1 || get_all) if((brute && C.brute_damage) || (burn && C.electronics_damage))
+ if((C.installed == 1 || (get_borked && C.installed == -1) || (get_missing && C.installed == 0)) && ((get_brute && C.brute_damage) || (get_burn && C.electronics_damage)))
+ parts += C
+ return parts
+
+/mob/living/silicon/robot/proc/get_missing_components()
+ var/list/datum/robot_component/parts = list()
+ for(var/V in components)
+ var/datum/robot_component/C = components[V]
+ if(C.installed == 0)
parts += C
return parts
@@ -48,41 +58,43 @@
var/list/rval = new
for(var/V in components)
var/datum/robot_component/C = components[V]
- if(C.installed == 1) rval += C
+ if(C.installed == 1)
+ rval += C
return rval
/mob/living/silicon/robot/proc/get_armour()
-
- if(!components.len) return 0
+ if(!LAZYLEN(components))
+ return 0
var/datum/robot_component/C = components["armour"]
if(C && C.installed == 1)
return C
return 0
/mob/living/silicon/robot/heal_organ_damage(brute, burn, updating_health = TRUE)
- var/list/datum/robot_component/parts = get_damaged_components(brute,burn)
- if(!parts.len) return
+ var/list/datum/robot_component/parts = get_damaged_components(brute, burn)
+ if(!LAZYLEN(parts))
+ return
var/datum/robot_component/picked = pick(parts)
- picked.heal_damage(brute,burn, updating_health)
+ picked.heal_damage(brute, burn, updating_health)
/mob/living/silicon/robot/take_organ_damage(brute = 0, burn = 0, updating_health = TRUE, sharp = 0, edge = 0)
var/list/components = get_damageable_components()
- if(!components.len)
+ if(!LAZYLEN(components))
return
//Combat shielding absorbs a percentage of damage directly into the cell.
var/obj/item/borg/combat/shield/shield
- if(module_state_1 && istype(module_state_1,/obj/item/borg/combat/shield))
+ if(module_state_1 && istype(module_state_1, /obj/item/borg/combat/shield))
shield = module_state_1
- else if(module_state_2 && istype(module_state_2,/obj/item/borg/combat/shield))
+ else if(module_state_2 && istype(module_state_2, /obj/item/borg/combat/shield))
shield = module_state_2
- else if(module_state_3 && istype(module_state_3,/obj/item/borg/combat/shield))
+ else if(module_state_3 && istype(module_state_3, /obj/item/borg/combat/shield))
shield = module_state_3
if(shield)
//Shields absorb a certain percentage of damage based on their power setting.
- var/absorb_brute = brute*shield.shield_level
- var/absorb_burn = burn*shield.shield_level
- var/cost = (absorb_brute+absorb_burn)*100
+ var/absorb_brute = brute * shield.shield_level
+ var/absorb_burn = burn * shield.shield_level
+ var/cost = (absorb_brute+absorb_burn) * 100
cell.charge -= cost
if(cell.charge <= 0)
@@ -102,9 +114,9 @@
C.take_damage(brute, burn, sharp, updating_health)
/mob/living/silicon/robot/heal_overall_damage(var/brute, var/burn, updating_health = TRUE)
- var/list/datum/robot_component/parts = get_damaged_components(brute,burn)
+ var/list/datum/robot_component/parts = get_damaged_components(brute, burn)
- while(parts.len && (brute>0 || burn>0) )
+ while(LAZYLEN(parts) && (brute > 0 || burn > 0) )
var/datum/robot_component/picked = pick(parts)
var/brute_was = picked.brute_damage
@@ -112,8 +124,8 @@
picked.heal_damage(brute,burn, updating_health)
- brute -= (brute_was-picked.brute_damage)
- burn -= (burn_was-picked.electronics_damage)
+ brute -= (brute_was - picked.brute_damage)
+ burn -= (burn_was - picked.electronics_damage)
parts -= picked
@@ -126,17 +138,17 @@
//Combat shielding absorbs a percentage of damage directly into the cell.
var/obj/item/borg/combat/shield/shield
- if(module_state_1 && istype(module_state_1,/obj/item/borg/combat/shield))
+ if(module_state_1 && istype(module_state_1, /obj/item/borg/combat/shield))
shield = module_state_1
- else if(module_state_2 && istype(module_state_2,/obj/item/borg/combat/shield))
+ else if(module_state_2 && istype(module_state_2, /obj/item/borg/combat/shield))
shield = module_state_2
- else if(module_state_3 && istype(module_state_3,/obj/item/borg/combat/shield))
+ else if(module_state_3 && istype(module_state_3, /obj/item/borg/combat/shield))
shield = module_state_3
if(shield)
//Shields absorb a certain percentage of damage based on their power setting.
- var/absorb_brute = brute*shield.shield_level
- var/absorb_burn = burn*shield.shield_level
- var/cost = (absorb_brute+absorb_burn)*100
+ var/absorb_brute = brute * shield.shield_level
+ var/absorb_burn = burn * shield.shield_level
+ var/cost = (absorb_brute+absorb_burn) * 100
cell.charge -= cost
if(cell.charge <= 0)
@@ -152,7 +164,7 @@
A.take_damage(brute, burn, sharp)
return
- while(parts.len && (brute>0 || burn>0) )
+ while(LAZYLEN(parts) && (brute > 0 || burn > 0) )
var/datum/robot_component/picked = pick(parts)
var/brute_was = picked.brute_damage
diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm
index 161b81e3cd2..85cc2ad5786 100644
--- a/code/modules/mob/living/silicon/robot/robot_defense.dm
+++ b/code/modules/mob/living/silicon/robot/robot_defense.dm
@@ -46,7 +46,9 @@
user.put_in_active_hand(cell)
to_chat(user, "You remove \the [cell].")
cell = null
- update_stat()
+ var/datum/robot_component/C = components["power cell"]
+ C.installed = 0
+ C.uninstall()
diag_hud_set_borgcell()
if(!opened)
diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm
index 5139f187494..299677804e2 100644
--- a/code/modules/mob/living/simple_animal/hostile/carp.dm
+++ b/code/modules/mob/living/simple_animal/hostile/carp.dm
@@ -1,11 +1,8 @@
-
-
/mob/living/simple_animal/hostile/carp
name = "space carp"
desc = "A ferocious, fang-bearing creature that resembles a fish."
+ icon = 'icons/mob/carp.dmi'
icon_state = "carp"
- icon_living = "carp"
- icon_dead = "carp_dead"
icon_gib = "carp_gib"
speak_chance = 0
turns_per_move = 5
@@ -16,7 +13,6 @@
speed = 0
maxHealth = 25
health = 25
-
harm_intent_damage = 8
obj_damage = 50
melee_damage_lower = 15
@@ -30,12 +26,27 @@
minbodytemp = 0
maxbodytemp = 1500
-
-
faction = list("carp")
flying = 1
gold_core_spawnable = CHEM_MOB_SPAWN_HOSTILE
+ var/carp_color = "carp" //holder for icon set
+ var/list/icon_sets = list("carp", "blue", "yellow", "grape", "rust", "teal", "purple")
+
+/mob/living/simple_animal/hostile/carp/Initialize(mapload)
+ . = ..()
+ carp_randomify()
+ update_icons()
+
+/mob/living/simple_animal/hostile/carp/proc/carp_randomify()
+ if(prob(1))
+ carp_color = pick("white", "black")
+ else
+ carp_color = pick(icon_sets)
+ icon_state = "[carp_color]"
+ icon_living = "[carp_color]"
+ icon_dead = "[carp_color]_dead"
+
/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/movement_dir = 0)
return 1 //No drifting in space for space carp! //original comments do not steal
@@ -50,7 +61,6 @@
var/mob/living/carbon/human/H = target
H.adjustStaminaLoss(8)
-
/mob/living/simple_animal/hostile/carp/holocarp
icon_state = "holocarp"
icon_living = "holocarp"
@@ -58,6 +68,8 @@
gold_core_spawnable = CHEM_MOB_SPAWN_INVALID
del_on_death = 1
+/mob/living/simple_animal/hostile/carp/holocarp/carp_randomify()
+ return
/mob/living/simple_animal/hostile/carp/megacarp
icon = 'icons/mob/alienqueen.dmi'
@@ -73,4 +85,7 @@
mob_size = MOB_SIZE_LARGE
obj_damage = 80
melee_damage_lower = 20
- melee_damage_upper = 20
\ No newline at end of file
+ melee_damage_upper = 20
+
+/mob/living/simple_animal/hostile/carp/megacarp/carp_randomify()
+ return
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/fish.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/fish.dm
index 7b10c0e828a..184cb9eacb1 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/fish.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/fish.dm
@@ -2,9 +2,8 @@
/mob/living/simple_animal/hostile/retaliate/carp
name = "sea carp"
desc = "A large fish bearing similarities to a certain space-faring menace."
+ icon = 'icons/mob/carp.dmi'
icon_state = "carp"
- icon_living = "carp"
- icon_dead = "carp_dead"
icon_gib = "carp_gib"
speak_chance = 0
turns_per_move = 5
@@ -15,20 +14,33 @@
speed = 0
maxHealth = 25
health = 25
-
retreat_distance = 6
vision_range = 5
-
harm_intent_damage = 8
melee_damage_lower = 15
melee_damage_upper = 15
attacktext = "bites"
attack_sound = 'sound/weapons/bite.ogg'
speak_emote = list("gnashes")
-
faction = list("carp")
flying = 1
+ var/carp_color = "carp" //holder for icon set
+ var/list/icon_sets = list("carp", "blue", "yellow", "grape", "rust", "teal", "purple")
+
+/mob/living/simple_animal/hostile/retaliate/carp/Initialize(mapload)
+ . = ..()
+ carp_randomify()
+ update_icons()
+
+/mob/living/simple_animal/hostile/retaliate/carp/proc/carp_randomify()
+ if(prob(1))
+ carp_color = pick("white", "black")
+ else
+ carp_color = pick(icon_sets)
+ icon_state = "[carp_color]"
+ icon_living = "[carp_color]"
+ icon_dead = "[carp_color]_dead"
/mob/living/simple_animal/hostile/retaliate/carp/koi
name = "space koi"
@@ -50,18 +62,17 @@
gold_core_spawnable = CHEM_MOB_SPAWN_HOSTILE
-/mob/living/simple_animal/hostile/retaliate/carp/koi/New()
- ..()
+/mob/living/simple_animal/hostile/retaliate/carp/koi/Initialize(mapload)
+ . = ..()
var/koinum = rand(1, 4)
icon_state = "koi[koinum]"
icon_living = "koi[koinum]"
icon_dead = "koi[koinum]-dead"
-
/mob/living/simple_animal/hostile/retaliate/carp/koi/Process_Spacemove(var/movement_dir)
return TRUE
/mob/living/simple_animal/hostile/retaliate/carp/koi/honk
icon_state = "koi5"
icon_living = "koi5"
- icon_dead = "koi5-dead"
\ No newline at end of file
+ icon_dead = "koi5-dead"
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index fe8987e9d4c..f2ee5b62707 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -981,6 +981,7 @@ var/list/slot_equipment_priority = list( \
stat("CPU:", "[world.cpu]")
stat("Instances:", "[num2text(world.contents.len, 10)]")
GLOB.stat_entry()
+ stat("Server Time:", time_stamp())
stat(null)
if(Master)
Master.stat_entry()
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index af28e221eb8..de3f2ad52d6 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -325,9 +325,10 @@ var/list/SpookyGhosts = list("ghost","shade","shade2","ghost-narsie","horror","s
to_chat(user, "[pictures_left] photos left.")
icon_state = icon_off
on = 0
- if(user.mind && !(user.mind.assigned_role == "Chaplain"))
- if(prob(24))
- handle_haunt(user)
+ if(istype(src,/obj/item/camera/spooky))
+ if(user.mind && user.mind.assigned_role == "Chaplain" && see_ghosts)
+ if(prob(24))
+ handle_haunt(user)
spawn(64)
icon_state = icon_on
on = 1
diff --git a/code/modules/reagents/chemistry/reagents/blob.dm b/code/modules/reagents/chemistry/reagents/blob.dm
index 1dcd414b702..bca2cbd9067 100644
--- a/code/modules/reagents/chemistry/reagents/blob.dm
+++ b/code/modules/reagents/chemistry/reagents/blob.dm
@@ -56,7 +56,8 @@
volume = ..()
M.apply_damage(0.6*volume, TOX)
M.hallucination += 0.6*volume
- M.reagents.add_reagent("spore", 0.4*volume)
+ if(M.reagents)
+ M.reagents.add_reagent("spore", 0.4*volume)
/datum/reagent/blob/lexorin_jelly //does tons of oxygen damage and a little brute
name = "Lexorin Jelly"
@@ -102,7 +103,8 @@
volume = ..()
M.apply_damage(0.4*volume, BURN)
M.adjustStaminaLoss(0.4*volume)
- M.reagents.add_reagent("frostoil", 0.4*volume)
+ if(M.reagents)
+ M.reagents.add_reagent("frostoil", 0.4*volume)
/datum/reagent/blob/b_sorium
name = "Sorium"
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 06e0c2336f0..f3c0249941b 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -714,8 +714,6 @@
possible_destinations = C.possible_destinations
shuttleId = C.shuttleId
-/obj/machinery/computer/shuttle/Initialize(mapload)
- . = ..()
connect()
/obj/machinery/computer/shuttle/proc/connect()
@@ -868,12 +866,27 @@
possible_destinations = "science_home;science_away"
/obj/machinery/computer/shuttle/admin
- name = "Administration Shuttle Console"
- desc = "Used to call and send the administration shuttle."
+ name = "admin shuttle console"
+ req_access = list(access_cent_general)
shuttleId = "admin"
- possible_destinations = "admin_home;admin_away"
+ possible_destinations = "admin_home;admin_away;admin_custom"
resistance_flags = INDESTRUCTIBLE
+/obj/machinery/computer/camera_advanced/shuttle_docker/admin
+ name = "Admin shuttle navigation computer"
+ desc = "Used to designate a precise transit location for the admin shuttle."
+ icon_screen = "navigation"
+ icon_keyboard = "med_key"
+ shuttleId = "admin"
+ shuttlePortId = "admin_custom"
+ view_range = 14
+ x_offset = 0
+ y_offset = 0
+ resistance_flags = INDESTRUCTIBLE
+ access_tcomms = TRUE
+ access_construction = TRUE
+ access_mining = TRUE
+
/obj/machinery/computer/shuttle/trade
name = "Freighter Console"
resistance_flags = INDESTRUCTIBLE
diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm
index 0a40901059f..0ec9e614110 100644
--- a/code/modules/shuttle/syndicate.dm
+++ b/code/modules/shuttle/syndicate.dm
@@ -42,7 +42,7 @@
..()
/obj/machinery/computer/shuttle/sst
- name = "Syndicate Strike Time Shuttle Console"
+ name = "Syndicate Strike Team Shuttle Console"
desc = "Used to call and send the SST shuttle."
icon_keyboard = "syndie_key"
icon_screen = "syndishuttle"
diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm
index 73d54003fc5..71a06d8e013 100644
--- a/code/modules/surgery/organs/augments_internal.dm
+++ b/code/modules/surgery/organs/augments_internal.dm
@@ -256,9 +256,17 @@
origin_tech = "materials=5;programming=4;biotech=4"
slot = "heartdrive"
var/revive_cost = 0
- var/reviving = 0
+ var/reviving = FALSE
var/cooldown = 0
+/obj/item/organ/internal/cyberimp/chest/reviver/hardened
+ name = "Hardened reviver implant"
+ emp_proof = TRUE
+
+/obj/item/organ/internal/cyberimp/chest/reviver/hardened/Initialize(mapload)
+ . = ..()
+ desc += " The implant has been hardened. It is invulnerable to EMPs."
+
/obj/item/organ/internal/cyberimp/chest/reviver/on_life()
if(reviving)
if(owner.stat == UNCONSCIOUS && (owner.sleeping == 0)) //!owner.sleeping didn't work for whatever dumb reason
@@ -320,7 +328,7 @@
/obj/item/storage/box/cyber_implants/bundle
name = "boxed cybernetic implants"
var/list/boxed = list(/obj/item/organ/internal/cyberimp/eyes/xray,/obj/item/organ/internal/cyberimp/eyes/thermals,
- /obj/item/organ/internal/cyberimp/brain/anti_stun, /obj/item/organ/internal/cyberimp/chest/reviver)
+ /obj/item/organ/internal/cyberimp/brain/anti_stun, /obj/item/organ/internal/cyberimp/chest/reviver/hardened)
var/amount = 5
/obj/item/storage/box/cyber_implants/bundle/New()
diff --git a/html/changelog.html b/html/changelog.html
index 7c4262f54ce..6ce02bc19c8 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -56,6 +56,237 @@
-->
+
02 May 2019
+
AffectedArc07 updated:
+
+ - ssMapping
+ - Gateway and space ruins are now loaded with ssMapping
+ - Master Controller
+ - Darkmode chat department colors match NTTC theming now
+ - SSvotes
+ - SSradio
+ - SSevents
+ - SSholiday
+ - We no longer check if its Christmas every tick. Dont ask.
+ - SSalarms
+
+
Arkatos updated:
+
+ - Shadowlings now have a slightly bigger colored text when speaking in the Shadowling Hivemind
+ - Replaced title2.ogg music with a higher quality version
+ - Shield Blobs automatically spawned around Blob Cores now give no refund upon removing. No freebies.
+ - Added new Wizard Spell - Summon Ghosts! This nefarious spell will make all ghosts visible to the living. Be careful though, as while they cannot harm you in any way, they might prove a bit.. annoying. Costs 0 points in the Wizard's spellbook.
+ - Ghosts now orbit around their followed targets
+ - Added new Shadowling Ability - Null Charge! This new ability allows Shadowling to completely drain an APC of it's power after a moderate delay. Shadowling must not be interrupted, or the whole process will fail.
+ - Added custom icon for the Null Charge ability
+ - Shadowling Drain Life ability removed
+ - Added Observer HUD buttons for Jump to Mob, Orbit, Re-enter corpse, and Teleport
+ - Added custom icons for Observer HUD buttons
+ - Added Floorbot color variants. Different toolboxes will result in a differently colored Floorbots. One even might be a little stronger than others..
+ - Added sprites of Floorbot color variants
+ - Fixed incorrect amount of required floortiles for the Floorbot in the crafting tab
+ - Added cancel button to Wizard teleportation scrolls
+ - Added an option to grant Martial Arts via administrative Var menu
+ - Toggling hardhat light on/off now correctly updates wearer's sprite
+ - Added deathsound for Silicons
+ - Dice will now roll when thrown
+ - Added sound when adding or removing IDs from ID modification computers
+ - Added cancel button to transfer amount from stack menu
+ - Alt-click is a new shortcut to take a custom amount from stack
+ - Added shortcuts for handling pumps, volume pumps, filters, and mixers. Ctrl-click these devices to turn them on/off and Alt-click them to set their output to maximum.
+ - Added ability to rename pumps, volume pumps, filters and mixers with a pen.
+ - Added sound for throwing bolas
+ - Added hitsound for all types of bolas
+ - Added AntagHUD to everyone at the round end
+ - Circuit Boards now show their required components on examine
+ - Revenants now have randomly generated flavor names
+ - You can shift-click any action button to reset it's position. Alt-click on Hide Buttons will reset all action buttons to their default positions.
+ - Pill Bottles are now printable in the Autolathe. You can find them in the Medical section, and each costs 80 metal and 20 glass to print.
+ - Puts beakers in your hand upon eject from chemistry machines
+ - Cardboard can now be made in the Biogenerator
+ - You can now hotswap tanks in a canister or gas pump by clicking it with a new tank!
+ - You can now also close a canister's valve and remove the tank inside it by alt-clicking it.
+ - Added examine toolptips. Hover over any equipped or hold item for a little while and it will display the item description as a tooltip.
+ - Ghost teleport verb will no locker flicker when used
+ - Alt-click now opens and closes fire extinguisher cabinet
+ - Fire extinguisher cabinet now properly updates it's sprite correctly when putting fire extinquisher inside the cabinet
+ - Fire extinguisher no longer sprays when put into fire extinguisher cabinet with a safety off
+ - Added sound for opening and closing fire extinguisher cabinet
+ - Added new torch sprites
+ - Torch light color is now orange instead of red
+ - Torch sprite now correctly shows all inhand sprites
+ - Blob Rally Spores power is now free to use
+ - Blob mobs can no longer speak while being dead via Blob Broadcast
+ - Blob structures now properly show working animation
+ - Added new sprites for variants of Blob resource, factory and storage structures
+ - Added inhand sprites for winter coats
+ - Carps now spawn with a random color! There might even be some really rare ones..
+ - Added carp color variants sprites
+
+
Arkatos and Paradise community: updated:
+
+ - Added Tip of the round to a pre-game lobby
+ - Added Show Custom Tip admin verb
+ - Added Give Random Tip OOC verb
+
+
Citinited updated:
+
+ - You can no longer turn transit turfs into foamed metal flooring.
+ - Foamed metal floors have a sprite now.
+ - Pipe dispensers (the big ones) now work again.
+ - Cooldown on pipe dispensers reduced to 0.4 seconds, down from 1.5 seconds
+
+
CornMyCob updated:
+
+ - The plasma cutter now cuts through multiple rock tiles.
+
+
CthulhuOnIce updated:
+
+ - you can smell dead bodies, even if someone else shouldn't
+
+
Fethas updated:
+
+ - Cluwne suits should no longer fall off cluwnes from being fat.
+
+
Fox McCloud updated:
+
+ - CQC has been updated; a few combos are more powerful
+ - cost increased to 13 TC
+ - CQC is now nuke ops only
+ - gloves of the north star restriction on CQC removed
+ - CQC disarms will now take the item from your opponent
+ - CQC blocks melee weapons and a couple of stun weapons and not everything now
+ - Reagents will now adjust to the body temperature over time as opposed to all at once
+ - Strange Reagent will work 25% of the time with TOUCH based reactions
+ - Strange reagent will revive whether there's a ghost or not (can use SR on clientless mobs now, like monkies)
+ - SR puts the occupant back in their body automatically
+ - Cloners that eject their messes will now eject the unattached organs
+ - the message for brain death will now properly and only occur when they have truly died from brain damage
+ - Fixes being able to attain brain damage over 120
+ - Updates nations. Updates nations so hard right into the void
+ - Plasma fires should burn a bit faster now
+ - Bleeding will now stop at the temperature at which cryoxadone heals
+ - Fixes a few potential exploits with forcing chem, dust, and explosive implants activating with the deathgasp emote, prior to death
+ - Tesla can't zap cameras and other disposal structures anymore
+ - Simple mobs can now be shocked
+ - Electrocution damage scales a bit more linearly up to its maximum potential instead of being heavily random
+ - Fixes being able to shock yourself with TK, at range, on electrical equipment
+ - simple mobs can now be shocked by the tesla and other sources
+ - Fixes goats not attacking people
+ - Goats will eat glowshrooms
+ - Goats will eat full grown diona
+ - Remapped toxins to be more compatible with the modern age
+ - updates plasma and N2O sprites
+ - Fixes not being able to look at a turf if it had plasma/N2O on it
+ - cold turfs no longer become icy
+ - Cryostylane makes turfs icy
+ - Icy turfs are slippery; wear magboots to counteract the effect. Watch your head!
+ - Fixes grammar of slipping on turfs; no more "you slipped on floor" or "you slipped on wet floor"
+ - removes ponies
+ - object and fast processing are now proper subsystems
+ - Fixes multi-spawn blobs
+ - Powersinks drain rate increased, but they also explode a bit sooner
+ - Multitools display total power, load, and free power
+ - Fix emitter sparks sparking at the location of emitters where biult as opposed to emitter current location
+
+
Ionward updated:
+
+ - Added new mantles! Check the ClothesMate, or in department head's lockers.
+
+
KasparoVy updated:
+
+ - Adds striped normal-height socks.
+ - Vox can now wear whatever undergarment they want.
+ - Removes flesh from shredded Vox uniform sprites.
+ - Armalis can no longer wear undergarments. They didn't fit, anyhow.
+ - Underwear no can no longer lock up the character creator.
+
+
Kyep updated:
+
+ - bans issued by admins via the Player Panel no longer incorrectly omit IP/etc information
+ - admins issuing permanent bans are no longer presented with an "ip ban?" prompt, as all bans include IP/CID information now. This prompt was a legacy thing from back when the filesystem was used to store bans, and hasn't ever affected how DB-based bans were stored.
+ - Added a config file option which allows SSD crew members to be moved to cryo after a defined amount of minutes.
+ - Added a config file option which causes most people trying to attack/loot/interact with a SSD character to need to confirm they've read the rules before being able to do so.
+ - Fixed an error message being inappropriately generated for admins when someone signs up as a pAI.
+ - The ID computer now color-codes potential job transfer options, highlighting good choices for a job transfer in green, and bad ones in gray.
+ - Taking a job transfer now gives you playtime based on your new job, instead of incorrectly still giving you playtime based on your old job.
+ - Job transfers to karma jobs are now possible - if you have the job unlocked.
+ - Attempting to bypass a job ban via a job transfer now generates a warning to all online admins.
+ - Refactored and improved our entry on the server hub.
+ - Fixed a runtime in job_exp.dm
+
+
Markolie updated:
+
+ - Safes can now consist of more than two tumblers.
+ - All safes now have three tumblers by default, instead of two.
+ - The safe opening mechanism has changed slightly. This is described on the safe cracking UI.
+ - The hardsuit equipment lockers on the Syndicate Nuclear Operative shuttle have been replaced with suit storage units. Suit storage units now have a separate slot for magboots.
+ - Nuclear Operatives can now purchase reinforcements. These reinforcements cost 25 telecrystals each.
+ - A number of new ammunition and weapon bundles have been added for Nuclear Operatives.
+ - For every ten players on the server, the Nuclear Operatives now receive 2 extra telecrystals.
+ - The Syndicate borg spawners have been separated into three separate spawners, one for each type of Syndicate cyborg. Their prices have been modified.
+ - Saboteur borgs now spawn with thermals.
+ - The Syndicate borg and exosuits have been moved to a new category, "Support and Mechanized Exosuits".
+ - Existing bundles and telecrystal purchases have been moved to a new category, "Bundles and Telecrystals".
+ - There are now more spawn points for nuclear operatives on their base. The number of operatives spawning has not been changed.
+ - Spawning nuclear operatives through the traitor panel now causes their ID to be properly updated.
+ - Shuttles no longer leave behind their propulsion.
+ - AZERTY hotkey mode users can now switch between regular mode and hotkey mode properly using TAB again.
+ - Jumpsuits are now removed by clicking instead of clicking and dragging.
+ - Removed a useless message that would be sent to admins whenever a drone joins the round.
+ - Fixed an issue where admins would receive a message whenever someone joined up as a pAI.
+
+
McDonald072 updated:
+
+ - You can no longer examine or teleport things using clipboards
+
+
Quantum-M updated:
+
+ - Two multicolor pens to the Internal Affairs Office
+
+
TDSSS updated:
+
+ - nukies can buy plasma grenades again
+
+
Ty-Omaha updated:
+
+ - Moves AI admin log to the all preference
+
+
dovydas12345 updated:
+
+ - Fixes normal cameras spooking non-chaplains even when they don't capture any ghosts
+
+
farie82 updated:
+
+ - Makes puke less lag inducing
+ - Puke can now appear on all kinds of turfs except spess
+ - Ticket messages now have their corresponding span classes. Making them easier to notice
+ - PM's now shouldn't go to the wrong client anymore when the target left.
+ - Cure text for Shock and Cardiac failure are more clear now
+ - Ducttape gags can now be removed properly without spawning an invisible one in your hands
+ - Windoors now give the airlock assembly electronics once deconstructed
+ - Can't place runes in space anymore
+ - Admins can now use all mhelp related things again
+ - Fixed the toggle mentor ticket messages text
+ - Vampiric glaring is logged now
+ - Doctor delight and orange juice now heal again
+ - Fixes admin PM's. Bwoinks are back on the menu!
+ - Organs will now prompt a update_stat. Meaning that IRCs and the like now get revived when possible when you put their battery and brain in
+ - The typing limiter option should now work for all edge cases. Such as dying while talking and such
+ - Borgs health status now updates properly when removing and adding parts
+ - You won't try to fix destroyed components in borgs anymore. Which resulted to lost materials and no healing
+ - Borg analysers will now properly show missing components and won't show their damage if missing
+ - Self diagnostics for borgs now also shows missing parts and destroyed ones
+
+
iantine updated:
+
+ - Adds Lumi's vox suit fluff
+
+
uc_guy updated:
+
+ - Players in the lobby no longer see cult speak.
+
+
08 April 2019
TDSSS updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index d145f082f7c..5ad4bdbcd9e 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -9790,3 +9790,256 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
2019-04-08:
TDSSS:
- bugfix: Added missing vent in toxins mixing
+2019-05-02:
+ AffectedArc07:
+ - rscadd: ssMapping
+ - tweak: Gateway and space ruins are now loaded with ssMapping
+ - rscdel: Master Controller
+ - tweak: Darkmode chat department colors match NTTC theming now
+ - rscadd: SSvotes
+ - rscadd: SSradio
+ - rscadd: SSevents
+ - rscadd: SSholiday
+ - tweak: We no longer check if its Christmas every tick. Dont ask.
+ - rscadd: SSalarms
+ Arkatos:
+ - tweak: Shadowlings now have a slightly bigger colored text when speaking in the
+ Shadowling Hivemind
+ - soundadd: Replaced title2.ogg music with a higher quality version
+ - tweak: Shield Blobs automatically spawned around Blob Cores now give no refund
+ upon removing. No freebies.
+ - rscadd: Added new Wizard Spell - Summon Ghosts! This nefarious spell will make
+ all ghosts visible to the living. Be careful though, as while they cannot harm
+ you in any way, they might prove a bit.. annoying. Costs 0 points in the Wizard's
+ spellbook.
+ - tweak: Ghosts now orbit around their followed targets
+ - rscadd: Added new Shadowling Ability - Null Charge! This new ability allows Shadowling
+ to completely drain an APC of it's power after a moderate delay. Shadowling
+ must not be interrupted, or the whole process will fail.
+ - imageadd: Added custom icon for the Null Charge ability
+ - rscdel: Shadowling Drain Life ability removed
+ - rscadd: Added Observer HUD buttons for Jump to Mob, Orbit, Re-enter corpse, and
+ Teleport
+ - imageadd: Added custom icons for Observer HUD buttons
+ - rscadd: Added Floorbot color variants. Different toolboxes will result in a differently
+ colored Floorbots. One even might be a little stronger than others..
+ - imageadd: Added sprites of Floorbot color variants
+ - bugfix: Fixed incorrect amount of required floortiles for the Floorbot in the
+ crafting tab
+ - rscadd: Added cancel button to Wizard teleportation scrolls
+ - rscadd: Added an option to grant Martial Arts via administrative Var menu
+ - bugfix: Toggling hardhat light on/off now correctly updates wearer's sprite
+ - soundadd: Added deathsound for Silicons
+ - tweak: Dice will now roll when thrown
+ - soundadd: Added sound when adding or removing IDs from ID modification computers
+ - rscadd: Added cancel button to transfer amount from stack menu
+ - tweak: Alt-click is a new shortcut to take a custom amount from stack
+ - rscadd: Added shortcuts for handling pumps, volume pumps, filters, and mixers.
+ Ctrl-click these devices to turn them on/off and Alt-click them to set their
+ output to maximum.
+ - rscadd: Added ability to rename pumps, volume pumps, filters and mixers with a
+ pen.
+ - soundadd: Added sound for throwing bolas
+ - soundadd: Added hitsound for all types of bolas
+ - rscadd: Added AntagHUD to everyone at the round end
+ - rscadd: Circuit Boards now show their required components on examine
+ - rscadd: Revenants now have randomly generated flavor names
+ - tweak: You can shift-click any action button to reset it's position. Alt-click
+ on Hide Buttons will reset all action buttons to their default positions.
+ - rscadd: Pill Bottles are now printable in the Autolathe. You can find them in
+ the Medical section, and each costs 80 metal and 20 glass to print.
+ - tweak: Puts beakers in your hand upon eject from chemistry machines
+ - rscadd: Cardboard can now be made in the Biogenerator
+ - rscadd: You can now hotswap tanks in a canister or gas pump by clicking it with
+ a new tank!
+ - rscadd: You can now also close a canister's valve and remove the tank inside it
+ by alt-clicking it.
+ - rscadd: Added examine toolptips. Hover over any equipped or hold item for a little
+ while and it will display the item description as a tooltip.
+ - bugfix: Ghost teleport verb will no locker flicker when used
+ - rscadd: Alt-click now opens and closes fire extinguisher cabinet
+ - bugfix: Fire extinguisher cabinet now properly updates it's sprite correctly when
+ putting fire extinquisher inside the cabinet
+ - bugfix: Fire extinguisher no longer sprays when put into fire extinguisher cabinet
+ with a safety off
+ - soundadd: Added sound for opening and closing fire extinguisher cabinet
+ - imageadd: Added new torch sprites
+ - tweak: Torch light color is now orange instead of red
+ - bugfix: Torch sprite now correctly shows all inhand sprites
+ - tweak: Blob Rally Spores power is now free to use
+ - bugfix: Blob mobs can no longer speak while being dead via Blob Broadcast
+ - bugfix: Blob structures now properly show working animation
+ - imageadd: Added new sprites for variants of Blob resource, factory and storage
+ structures
+ - imageadd: Added inhand sprites for winter coats
+ - rscadd: Carps now spawn with a random color! There might even be some really rare
+ ones..
+ - imageadd: Added carp color variants sprites
+ 'Arkatos and Paradise community:':
+ - rscadd: Added Tip of the round to a pre-game lobby
+ - rscadd: Added Show Custom Tip admin verb
+ - rscadd: Added Give Random Tip OOC verb
+ Citinited:
+ - bugfix: You can no longer turn transit turfs into foamed metal flooring.
+ - bugfix: Foamed metal floors have a sprite now.
+ - bugfix: Pipe dispensers (the big ones) now work again.
+ - tweak: Cooldown on pipe dispensers reduced to 0.4 seconds, down from 1.5 seconds
+ CornMyCob:
+ - tweak: The plasma cutter now cuts through multiple rock tiles.
+ CthulhuOnIce:
+ - bugfix: you can smell dead bodies, even if someone else shouldn't
+ Fethas:
+ - bugfix: Cluwne suits should no longer fall off cluwnes from being fat.
+ Fox McCloud:
+ - tweak: CQC has been updated; a few combos are more powerful
+ - tweak: cost increased to 13 TC
+ - tweak: CQC is now nuke ops only
+ - tweak: gloves of the north star restriction on CQC removed
+ - tweak: CQC disarms will now take the item from your opponent
+ - tweak: CQC blocks melee weapons and a couple of stun weapons and not everything
+ now
+ - tweak: Reagents will now adjust to the body temperature over time as opposed to
+ all at once
+ - tweak: Strange Reagent will work 25% of the time with TOUCH based reactions
+ - tweak: Strange reagent will revive whether there's a ghost or not (can use SR
+ on clientless mobs now, like monkies)
+ - tweak: SR puts the occupant back in their body automatically
+ - tweak: Cloners that eject their messes will now eject the unattached organs
+ - tweak: the message for brain death will now properly and only occur when they
+ have truly died from brain damage
+ - bugfix: Fixes being able to attain brain damage over 120
+ - rscdel: Updates nations. Updates nations so hard right into the void
+ - tweak: Plasma fires should burn a bit faster now
+ - tweak: Bleeding will now stop at the temperature at which cryoxadone heals
+ - bugfix: Fixes a few potential exploits with forcing chem, dust, and explosive
+ implants activating with the deathgasp emote, prior to death
+ - tweak: Tesla can't zap cameras and other disposal structures anymore
+ - rscadd: Simple mobs can now be shocked
+ - tweak: Electrocution damage scales a bit more linearly up to its maximum potential
+ instead of being heavily random
+ - bugfix: Fixes being able to shock yourself with TK, at range, on electrical equipment
+ - rscadd: simple mobs can now be shocked by the tesla and other sources
+ - bugfix: Fixes goats not attacking people
+ - tweak: Goats will eat glowshrooms
+ - rscadd: Goats will eat full grown diona
+ - rscadd: Remapped toxins to be more compatible with the modern age
+ - tweak: updates plasma and N2O sprites
+ - bugfix: Fixes not being able to look at a turf if it had plasma/N2O on it
+ - rscdel: cold turfs no longer become icy
+ - rscadd: Cryostylane makes turfs icy
+ - rscadd: Icy turfs are slippery; wear magboots to counteract the effect. Watch
+ your head!
+ - bugfix: Fixes grammar of slipping on turfs; no more "you slipped on floor" or
+ "you slipped on wet floor"
+ - rscdel: removes ponies
+ - tweak: object and fast processing are now proper subsystems
+ - bugfix: Fixes multi-spawn blobs
+ - tweak: Powersinks drain rate increased, but they also explode a bit sooner
+ - rscadd: Multitools display total power, load, and free power
+ - bugfix: Fix emitter sparks sparking at the location of emitters where biult as
+ opposed to emitter current location
+ Ionward:
+ - rscadd: Added new mantles! Check the ClothesMate, or in department head's lockers.
+ KasparoVy:
+ - rscadd: Adds striped normal-height socks.
+ - rscadd: Vox can now wear whatever undergarment they want.
+ - tweak: Removes flesh from shredded Vox uniform sprites.
+ - rscdel: Armalis can no longer wear undergarments. They didn't fit, anyhow.
+ - bugfix: Underwear no can no longer lock up the character creator.
+ Kyep:
+ - bugfix: bans issued by admins via the Player Panel no longer incorrectly omit
+ IP/etc information
+ - tweak: admins issuing permanent bans are no longer presented with an "ip ban?"
+ prompt, as all bans include IP/CID information now. This prompt was a legacy
+ thing from back when the filesystem was used to store bans, and hasn't ever
+ affected how DB-based bans were stored.
+ - rscadd: Added a config file option which allows SSD crew members to be moved to
+ cryo after a defined amount of minutes.
+ - rscadd: Added a config file option which causes most people trying to attack/loot/interact
+ with a SSD character to need to confirm they've read the rules before being
+ able to do so.
+ - bugfix: Fixed an error message being inappropriately generated for admins when
+ someone signs up as a pAI.
+ - rscadd: The ID computer now color-codes potential job transfer options, highlighting
+ good choices for a job transfer in green, and bad ones in gray.
+ - bugfix: Taking a job transfer now gives you playtime based on your new job, instead
+ of incorrectly still giving you playtime based on your old job.
+ - tweak: Job transfers to karma jobs are now possible - if you have the job unlocked.
+ - rscadd: Attempting to bypass a job ban via a job transfer now generates a warning
+ to all online admins.
+ - tweak: Refactored and improved our entry on the server hub.
+ - bugfix: Fixed a runtime in job_exp.dm
+ Markolie:
+ - rscadd: Safes can now consist of more than two tumblers.
+ - tweak: All safes now have three tumblers by default, instead of two.
+ - tweak: The safe opening mechanism has changed slightly. This is described on the
+ safe cracking UI.
+ - rscadd: The hardsuit equipment lockers on the Syndicate Nuclear Operative shuttle
+ have been replaced with suit storage units. Suit storage units now have a separate
+ slot for magboots.
+ - rscadd: Nuclear Operatives can now purchase reinforcements. These reinforcements
+ cost 25 telecrystals each.
+ - rscadd: A number of new ammunition and weapon bundles have been added for Nuclear
+ Operatives.
+ - tweak: For every ten players on the server, the Nuclear Operatives now receive
+ 2 extra telecrystals.
+ - tweak: The Syndicate borg spawners have been separated into three separate spawners,
+ one for each type of Syndicate cyborg. Their prices have been modified.
+ - tweak: Saboteur borgs now spawn with thermals.
+ - tweak: The Syndicate borg and exosuits have been moved to a new category, "Support
+ and Mechanized Exosuits".
+ - tweak: Existing bundles and telecrystal purchases have been moved to a new category,
+ "Bundles and Telecrystals".
+ - tweak: There are now more spawn points for nuclear operatives on their base. The
+ number of operatives spawning has not been changed.
+ - bugfix: Spawning nuclear operatives through the traitor panel now causes their
+ ID to be properly updated.
+ - bugfix: Shuttles no longer leave behind their propulsion.
+ - bugfix: AZERTY hotkey mode users can now switch between regular mode and hotkey
+ mode properly using TAB again.
+ - tweak: Jumpsuits are now removed by clicking instead of clicking and dragging.
+ - bugfix: Removed a useless message that would be sent to admins whenever a drone
+ joins the round.
+ - bugfix: Fixed an issue where admins would receive a message whenever someone joined
+ up as a pAI.
+ McDonald072:
+ - bugfix: You can no longer examine or teleport things using clipboards
+ Quantum-M:
+ - rscadd: Two multicolor pens to the Internal Affairs Office
+ TDSSS:
+ - tweak: nukies can buy plasma grenades again
+ Ty-Omaha:
+ - tweak: Moves AI admin log to the all preference
+ dovydas12345:
+ - bugfix: Fixes normal cameras spooking non-chaplains even when they don't capture
+ any ghosts
+ farie82:
+ - tweak: Makes puke less lag inducing
+ - tweak: Puke can now appear on all kinds of turfs except spess
+ - bugfix: Ticket messages now have their corresponding span classes. Making them
+ easier to notice
+ - bugfix: PM's now shouldn't go to the wrong client anymore when the target left.
+ - tweak: Cure text for Shock and Cardiac failure are more clear now
+ - bugfix: Ducttape gags can now be removed properly without spawning an invisible
+ one in your hands
+ - bugfix: Windoors now give the airlock assembly electronics once deconstructed
+ - bugfix: Can't place runes in space anymore
+ - bugfix: Admins can now use all mhelp related things again
+ - spellcheck: Fixed the toggle mentor ticket messages text
+ - bugfix: Vampiric glaring is logged now
+ - bugfix: Doctor delight and orange juice now heal again
+ - bugfix: Fixes admin PM's. Bwoinks are back on the menu!
+ - bugfix: Organs will now prompt a update_stat. Meaning that IRCs and the like now
+ get revived when possible when you put their battery and brain in
+ - bugfix: The typing limiter option should now work for all edge cases. Such as
+ dying while talking and such
+ - bugfix: Borgs health status now updates properly when removing and adding parts
+ - bugfix: You won't try to fix destroyed components in borgs anymore. Which resulted
+ to lost materials and no healing
+ - bugfix: Borg analysers will now properly show missing components and won't show
+ their damage if missing
+ - tweak: Self diagnostics for borgs now also shows missing parts and destroyed ones
+ iantine:
+ - rscadd: Adds Lumi's vox suit fluff
+ uc_guy:
+ - bugfix: Players in the lobby no longer see cult speak.
diff --git a/html/changelogs/AutoChangeLog-pr-10327.yml b/html/changelogs/AutoChangeLog-pr-10327.yml
deleted file mode 100644
index 7b73cbcbd97..00000000000
--- a/html/changelogs/AutoChangeLog-pr-10327.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - tweak: "CQC has been updated; a few combos are more powerful"
- - tweak: "cost increased to 13 TC"
- - tweak: "CQC is now nuke ops only"
- - tweak: "gloves of the north star restriction on CQC removed"
- - tweak: "CQC disarms will now take the item from your opponent"
- - tweak: "CQC blocks melee weapons and a couple of stun weapons and not everything now"
diff --git a/html/changelogs/AutoChangeLog-pr-11102.yml b/html/changelogs/AutoChangeLog-pr-11102.yml
deleted file mode 100644
index 7e54f5268ab..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11102.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "AffectedArc07"
-delete-after: True
-changes:
- - rscadd: "ssMapping"
- - tweak: "Gateway and space ruins are now loaded with ssMapping"
diff --git a/html/changelogs/AutoChangeLog-pr-11129.yml b/html/changelogs/AutoChangeLog-pr-11129.yml
deleted file mode 100644
index de26a8b8f1b..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11129.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "iantine"
-delete-after: True
-changes:
- - rscadd: "Adds Lumi's vox suit fluff"
diff --git a/html/changelogs/AutoChangeLog-pr-11214.yml b/html/changelogs/AutoChangeLog-pr-11214.yml
deleted file mode 100644
index fcad43b3086..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11214.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - tweak: "Shadowlings now have a slightly bigger colored text when speaking in the Shadowling Hivemind"
diff --git a/html/changelogs/AutoChangeLog-pr-11217.yml b/html/changelogs/AutoChangeLog-pr-11217.yml
deleted file mode 100644
index 9c6b9803c94..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11217.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - tweak: "Reagents will now adjust to the body temperature over time as opposed to all at once"
diff --git a/html/changelogs/AutoChangeLog-pr-11224.yml b/html/changelogs/AutoChangeLog-pr-11224.yml
deleted file mode 100644
index 0357a4aa727..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11224.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - soundadd: "Replaced title2.ogg music with a higher quality version"
diff --git a/html/changelogs/AutoChangeLog-pr-11227.yml b/html/changelogs/AutoChangeLog-pr-11227.yml
deleted file mode 100644
index cc4293ba715..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11227.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - tweak: "Strange Reagent will work 25% of the time with TOUCH based reactions"
- - tweak: "Strange reagent will revive whether there's a ghost or not (can use SR on clientless mobs now, like monkies)"
- - tweak: "SR puts the occupant back in their body automatically"
- - tweak: "Cloners that eject their messes will now eject the unattached organs"
diff --git a/html/changelogs/AutoChangeLog-pr-11230.yml b/html/changelogs/AutoChangeLog-pr-11230.yml
deleted file mode 100644
index 36c1f051aca..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11230.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - tweak: "the message for brain death will now properly and only occur when they have truly died from brain damage"
- - bugfix: "Fixes being able to attain brain damage over 120"
diff --git a/html/changelogs/AutoChangeLog-pr-11231.yml b/html/changelogs/AutoChangeLog-pr-11231.yml
deleted file mode 100644
index 82560671a26..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11231.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Arkatos and Paradise community:"
-delete-after: True
-changes:
- - rscadd: "Added Tip of the round to a pre-game lobby"
- - rscadd: "Added Show Custom Tip admin verb"
- - rscadd: "Added Give Random Tip OOC verb"
diff --git a/html/changelogs/AutoChangeLog-pr-11243.yml b/html/changelogs/AutoChangeLog-pr-11243.yml
deleted file mode 100644
index c0843a66d43..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11243.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "CornMyCob"
-delete-after: True
-changes:
- - tweak: "The plasma cutter now cuts through multiple rock tiles."
diff --git a/html/changelogs/AutoChangeLog-pr-11253.yml b/html/changelogs/AutoChangeLog-pr-11253.yml
deleted file mode 100644
index 0cfbb99257a..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11253.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Citinited"
-delete-after: True
-changes:
- - bugfix: "You can no longer turn transit turfs into foamed metal flooring."
- - bugfix: "Foamed metal floors have a sprite now."
diff --git a/html/changelogs/AutoChangeLog-pr-11255.yml b/html/changelogs/AutoChangeLog-pr-11255.yml
deleted file mode 100644
index 7320fee3d2a..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11255.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Markolie"
-delete-after: True
-changes:
- - rscadd: "Safes can now consist of more than two tumblers."
- - tweak: "All safes now have three tumblers by default, instead of two."
- - tweak: "The safe opening mechanism has changed slightly. This is described on the safe cracking UI."
diff --git a/html/changelogs/AutoChangeLog-pr-11257.yml b/html/changelogs/AutoChangeLog-pr-11257.yml
deleted file mode 100644
index a675de535f9..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11257.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - rscdel: "Updates nations. Updates nations so hard right into the void"
diff --git a/html/changelogs/AutoChangeLog-pr-11259.yml b/html/changelogs/AutoChangeLog-pr-11259.yml
deleted file mode 100644
index 2b6bdf7e540..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11259.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-author: "Markolie"
-delete-after: True
-changes:
- - rscadd: "The hardsuit equipment lockers on the Syndicate Nuclear Operative shuttle have been replaced with suit storage units. Suit storage units now have a separate slot for magboots."
- - rscadd: "Nuclear Operatives can now purchase reinforcements. These reinforcements cost 25 telecrystals each."
- - rscadd: "A number of new ammunition and weapon bundles have been added for Nuclear Operatives."
- - tweak: "For every ten players on the server, the Nuclear Operatives now receive 2 extra telecrystals."
- - tweak: "The Syndicate borg spawners have been separated into three separate spawners, one for each type of Syndicate cyborg. Their prices have been modified."
- - tweak: "Saboteur borgs now spawn with thermals."
- - tweak: "The Syndicate borg and exosuits have been moved to a new category, \"Support and Mechanized Exosuits\"."
- - tweak: "Existing bundles and telecrystal purchases have been moved to a new category, \"Bundles and Telecrystals\"."
- - tweak: "There are now more spawn points for nuclear operatives on their base. The number of operatives spawning has not been changed."
- - bugfix: "Spawning nuclear operatives through the traitor panel now causes their ID to be properly updated."
diff --git a/html/changelogs/AutoChangeLog-pr-11270.yml b/html/changelogs/AutoChangeLog-pr-11270.yml
deleted file mode 100644
index 6ecdf8039c0..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11270.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "TDSSS"
-delete-after: True
-changes:
- - tweak: "nukies can buy plasma grenades again"
diff --git a/html/changelogs/AutoChangeLog-pr-11277.yml b/html/changelogs/AutoChangeLog-pr-11277.yml
deleted file mode 100644
index c966a9c74cb..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11277.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - tweak: "Shield Blobs automatically spawned around Blob Cores now give no refund upon removing. No freebies."
diff --git a/html/changelogs/AutoChangeLog-pr-11278.yml b/html/changelogs/AutoChangeLog-pr-11278.yml
deleted file mode 100644
index 24f9c3ab4cc..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11278.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added new Wizard Spell - Summon Ghosts! This nefarious spell will make all ghosts visible to the living. Be careful though, as while they cannot harm you in any way, they might prove a bit.. annoying. Costs 0 points in the Wizard's spellbook."
diff --git a/html/changelogs/AutoChangeLog-pr-11279.yml b/html/changelogs/AutoChangeLog-pr-11279.yml
deleted file mode 100644
index 11bdfb80538..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11279.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - tweak: "Ghosts now orbit around their followed targets"
diff --git a/html/changelogs/AutoChangeLog-pr-11280.yml b/html/changelogs/AutoChangeLog-pr-11280.yml
deleted file mode 100644
index 5228e09b3c9..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11280.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ionward"
-delete-after: True
-changes:
- - rscadd: "Added new mantles! Check the ClothesMate, or in department head's lockers."
diff --git a/html/changelogs/AutoChangeLog-pr-11282.yml b/html/changelogs/AutoChangeLog-pr-11282.yml
deleted file mode 100644
index 5b8e5704c06..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11282.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - tweak: "Plasma fires should burn a bit faster now"
- - tweak: "Bleeding will now stop at the temperature at which cryoxadone heals"
diff --git a/html/changelogs/AutoChangeLog-pr-11283.yml b/html/changelogs/AutoChangeLog-pr-11283.yml
deleted file mode 100644
index 9056578d68b..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11283.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - bugfix: "Fixes a few potential exploits with forcing chem, dust, and explosive implants activating with the deathgasp emote, prior to death"
diff --git a/html/changelogs/AutoChangeLog-pr-11284.yml b/html/changelogs/AutoChangeLog-pr-11284.yml
deleted file mode 100644
index 433a7fb3f68..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11284.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added new Shadowling Ability - Null Charge! This new ability allows Shadowling to completely drain an APC of it's power after a moderate delay. Shadowling must not be interrupted, or the whole process will fail."
- - imageadd: "Added custom icon for the Null Charge ability"
- - rscdel: "Shadowling Drain Life ability removed"
diff --git a/html/changelogs/AutoChangeLog-pr-11285.yml b/html/changelogs/AutoChangeLog-pr-11285.yml
deleted file mode 100644
index 3c725a05b90..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11285.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - tweak: "Tesla can't zap cameras and other disposal structures anymore"
- - rscadd: "Simple mobs can now be shocked"
- - tweak: "Electrocution damage scales a bit more linearly up to its maximum potential instead of being heavily random"
- - bugfix: "Fixes being able to shock yourself with TK, at range, on electrical equipment"
- - rscadd: "simple mobs can now be shocked by the tesla and other sources"
diff --git a/html/changelogs/AutoChangeLog-pr-11287.yml b/html/changelogs/AutoChangeLog-pr-11287.yml
deleted file mode 100644
index 111f8aac824..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11287.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - bugfix: "Fixes goats not attacking people"
- - tweak: "Goats will eat glowshrooms"
- - rscadd: "Goats will eat full grown diona"
diff --git a/html/changelogs/AutoChangeLog-pr-11288.yml b/html/changelogs/AutoChangeLog-pr-11288.yml
deleted file mode 100644
index 2a309dde374..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11288.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - rscadd: "Remapped toxins to be more compatible with the modern age"
diff --git a/html/changelogs/AutoChangeLog-pr-11292.yml b/html/changelogs/AutoChangeLog-pr-11292.yml
deleted file mode 100644
index 814c8530858..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11292.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - tweak: "Makes puke less lag inducing"
- - tweak: "Puke can now appear on all kinds of turfs except spess"
diff --git a/html/changelogs/AutoChangeLog-pr-11294.yml b/html/changelogs/AutoChangeLog-pr-11294.yml
deleted file mode 100644
index 0088263303b..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11294.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "Ticket messages now have their corresponding span classes. Making them easier to notice"
diff --git a/html/changelogs/AutoChangeLog-pr-11296.yml b/html/changelogs/AutoChangeLog-pr-11296.yml
deleted file mode 100644
index 42a9ce1a063..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11296.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "PM's now shouldn't go to the wrong client anymore when the target left."
diff --git a/html/changelogs/AutoChangeLog-pr-11297.yml b/html/changelogs/AutoChangeLog-pr-11297.yml
deleted file mode 100644
index 9973022ecea..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11297.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - tweak: "updates plasma and N2O sprites"
- - bugfix: "Fixes not being able to look at a turf if it had plasma/N2O on it"
- - rscdel: "cold turfs no longer become icy"
- - rscadd: "Cryostylane makes turfs icy"
- - rscadd: "Icy turfs are slippery; wear magboots to counteract the effect. Watch your head!"
- - bugfix: "Fixes grammar of slipping on turfs; no more \"you slipped on floor\" or \"you slipped on wet floor\""
diff --git a/html/changelogs/AutoChangeLog-pr-11298.yml b/html/changelogs/AutoChangeLog-pr-11298.yml
deleted file mode 100644
index 0523ab305e7..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11298.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Kyep"
-delete-after: True
-changes:
- - bugfix: "bans issued by admins via the Player Panel no longer incorrectly omit IP/etc information"
- - tweak: "admins issuing permanent bans are no longer presented with an \"ip ban?\" prompt, as all bans include IP/CID information now. This prompt was a legacy thing from back when the filesystem was used to store bans, and hasn't ever affected how DB-based bans were stored."
diff --git a/html/changelogs/AutoChangeLog-pr-11299.yml b/html/changelogs/AutoChangeLog-pr-11299.yml
deleted file mode 100644
index 4994b017d39..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11299.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Kyep"
-delete-after: True
-changes:
- - rscadd: "Added a config file option which allows SSD crew members to be moved to cryo after a defined amount of minutes."
- - rscadd: "Added a config file option which causes most people trying to attack/loot/interact with a SSD character to need to confirm they've read the rules before being able to do so."
diff --git a/html/changelogs/AutoChangeLog-pr-11300.yml b/html/changelogs/AutoChangeLog-pr-11300.yml
deleted file mode 100644
index b949b7f91f5..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11300.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added Observer HUD buttons for Jump to Mob, Orbit, Re-enter corpse, and Teleport"
- - imageadd: "Added custom icons for Observer HUD buttons"
diff --git a/html/changelogs/AutoChangeLog-pr-11301.yml b/html/changelogs/AutoChangeLog-pr-11301.yml
deleted file mode 100644
index 2b1bc1f82cd..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11301.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "KasparoVy"
-delete-after: True
-changes:
- - rscadd: "Adds striped normal-height socks."
- - rscadd: "Vox can now wear whatever undergarment they want."
- - tweak: "Removes flesh from shredded Vox uniform sprites."
- - rscdel: "Armalis can no longer wear undergarments. They didn't fit, anyhow."
diff --git a/html/changelogs/AutoChangeLog-pr-11305.yml b/html/changelogs/AutoChangeLog-pr-11305.yml
deleted file mode 100644
index 6ca9bfb33bd..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11305.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - rscdel: "removes ponies"
diff --git a/html/changelogs/AutoChangeLog-pr-11310.yml b/html/changelogs/AutoChangeLog-pr-11310.yml
deleted file mode 100644
index 3ec3c388190..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11310.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "KasparoVy"
-delete-after: True
-changes:
- - bugfix: "Underwear no can no longer lock up the character creator."
diff --git a/html/changelogs/AutoChangeLog-pr-11312.yml b/html/changelogs/AutoChangeLog-pr-11312.yml
deleted file mode 100644
index c7b31729672..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11312.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - tweak: "Cure text for Shock and Cardiac failure are more clear now"
diff --git a/html/changelogs/AutoChangeLog-pr-11313.yml b/html/changelogs/AutoChangeLog-pr-11313.yml
deleted file mode 100644
index d86b5ff7d0a..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11313.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "Ducttape gags can now be removed properly without spawning an invisible one in your hands"
diff --git a/html/changelogs/AutoChangeLog-pr-11314.yml b/html/changelogs/AutoChangeLog-pr-11314.yml
deleted file mode 100644
index 0d38b022e23..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11314.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "Windoors now give the airlock assembly electronics once deconstructed"
diff --git a/html/changelogs/AutoChangeLog-pr-11317.yml b/html/changelogs/AutoChangeLog-pr-11317.yml
deleted file mode 100644
index 96503bf1d88..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11317.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "Can't place runes in space anymore"
diff --git a/html/changelogs/AutoChangeLog-pr-11318.yml b/html/changelogs/AutoChangeLog-pr-11318.yml
deleted file mode 100644
index a9e5c225096..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11318.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "AffectedArc07"
-delete-after: True
-changes:
- - rscdel: "Master Controller"
diff --git a/html/changelogs/AutoChangeLog-pr-11319.yml b/html/changelogs/AutoChangeLog-pr-11319.yml
deleted file mode 100644
index c9c992c83d1..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11319.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added Floorbot color variants. Different toolboxes will result in a differently colored Floorbots. One even might be a little stronger than others.."
- - imageadd: "Added sprites of Floorbot color variants"
- - bugfix: "Fixed incorrect amount of required floortiles for the Floorbot in the crafting tab"
diff --git a/html/changelogs/AutoChangeLog-pr-11320.yml b/html/changelogs/AutoChangeLog-pr-11320.yml
deleted file mode 100644
index 6bafcda7d63..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11320.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Markolie"
-delete-after: True
-changes:
- - bugfix: "Shuttles no longer leave behind their propulsion."
diff --git a/html/changelogs/AutoChangeLog-pr-11323.yml b/html/changelogs/AutoChangeLog-pr-11323.yml
deleted file mode 100644
index 20da5d256b3..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11323.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "AffectedArc07"
-delete-after: True
-changes:
- - tweak: "Darkmode chat department colors match NTTC theming now"
diff --git a/html/changelogs/AutoChangeLog-pr-11328.yml b/html/changelogs/AutoChangeLog-pr-11328.yml
deleted file mode 100644
index e91103f07cd..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11328.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "Admins can now use all mhelp related things again"
- - spellcheck: "Fixed the toggle mentor ticket messages text"
diff --git a/html/changelogs/AutoChangeLog-pr-11329.yml b/html/changelogs/AutoChangeLog-pr-11329.yml
deleted file mode 100644
index e25e56b8828..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11329.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "Vampiric glaring is logged now"
diff --git a/html/changelogs/AutoChangeLog-pr-11331.yml b/html/changelogs/AutoChangeLog-pr-11331.yml
deleted file mode 100644
index bd501e2f162..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11331.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added cancel button to Wizard teleportation scrolls"
diff --git a/html/changelogs/AutoChangeLog-pr-11332.yml b/html/changelogs/AutoChangeLog-pr-11332.yml
deleted file mode 100644
index f76e2e2b48b..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11332.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added an option to grant Martial Arts via administrative Var menu"
diff --git a/html/changelogs/AutoChangeLog-pr-11333.yml b/html/changelogs/AutoChangeLog-pr-11333.yml
deleted file mode 100644
index 71935d55d86..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11333.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - bugfix: "Toggling hardhat light on/off now correctly updates wearer's sprite"
diff --git a/html/changelogs/AutoChangeLog-pr-11334.yml b/html/changelogs/AutoChangeLog-pr-11334.yml
deleted file mode 100644
index 7e119901704..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11334.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - soundadd: "Added deathsound for Silicons"
diff --git a/html/changelogs/AutoChangeLog-pr-11336.yml b/html/changelogs/AutoChangeLog-pr-11336.yml
deleted file mode 100644
index bf2626580e3..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11336.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "CthulhuOnIce"
-delete-after: True
-changes:
- - bugfix: "you can smell dead bodies, even if someone else shouldn't"
diff --git a/html/changelogs/AutoChangeLog-pr-11338.yml b/html/changelogs/AutoChangeLog-pr-11338.yml
deleted file mode 100644
index 6505d695841..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11338.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - soundadd: "Added sound when adding or removing IDs from ID modification computers"
diff --git a/html/changelogs/AutoChangeLog-pr-11339.yml b/html/changelogs/AutoChangeLog-pr-11339.yml
deleted file mode 100644
index a5b0f74908e..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11339.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Markolie"
-delete-after: True
-changes:
- - bugfix: "AZERTY hotkey mode users can now switch between regular mode and hotkey mode properly using TAB again."
diff --git a/html/changelogs/AutoChangeLog-pr-11340.yml b/html/changelogs/AutoChangeLog-pr-11340.yml
deleted file mode 100644
index 3b9d667166a..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11340.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Markolie"
-delete-after: True
-changes:
- - tweak: "Jumpsuits are now removed by clicking instead of clicking and dragging."
diff --git a/html/changelogs/AutoChangeLog-pr-11347.yml b/html/changelogs/AutoChangeLog-pr-11347.yml
deleted file mode 100644
index 57248e4f861..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11347.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added cancel button to transfer amount from stack menu"
- - tweak: "Alt-click is a new shortcut to take a custom amount from stack"
diff --git a/html/changelogs/AutoChangeLog-pr-11348.yml b/html/changelogs/AutoChangeLog-pr-11348.yml
deleted file mode 100644
index 55335793f97..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11348.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added shortcuts for handling pumps, volume pumps, filters, and mixers. Ctrl-click these devices to turn them on/off and Alt-click them to set their output to maximum."
- - rscadd: "Added ability to rename pumps, volume pumps, filters and mixers with a pen."
diff --git a/html/changelogs/AutoChangeLog-pr-11349.yml b/html/changelogs/AutoChangeLog-pr-11349.yml
deleted file mode 100644
index 329fec2e5cc..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11349.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - soundadd: "Added sound for throwing bolas"
- - soundadd: "Added hitsound for all types of bolas"
diff --git a/html/changelogs/AutoChangeLog-pr-11350.yml b/html/changelogs/AutoChangeLog-pr-11350.yml
deleted file mode 100644
index 54d750a6e7e..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11350.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "AffectedArc07"
-delete-after: True
-changes:
- - rscadd: "SSvotes"
- - rscadd: "SSradio"
diff --git a/html/changelogs/AutoChangeLog-pr-11351.yml b/html/changelogs/AutoChangeLog-pr-11351.yml
deleted file mode 100644
index 8fbca5fe9c0..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11351.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Citinited"
-delete-after: True
-changes:
- - bugfix: "Pipe dispensers (the big ones) now work again."
- - tweak: "Cooldown on pipe dispensers reduced to 0.4 seconds, down from 1.5 seconds"
diff --git a/html/changelogs/AutoChangeLog-pr-11353.yml b/html/changelogs/AutoChangeLog-pr-11353.yml
deleted file mode 100644
index 9807b7a0681..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11353.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added AntagHUD to everyone at the round end"
diff --git a/html/changelogs/AutoChangeLog-pr-11355.yml b/html/changelogs/AutoChangeLog-pr-11355.yml
deleted file mode 100644
index 934e85808ba..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11355.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Kyep"
-delete-after: True
-changes:
- - bugfix: "Fixed an error message being inappropriately generated for admins when someone signs up as a pAI."
diff --git a/html/changelogs/AutoChangeLog-pr-11356.yml b/html/changelogs/AutoChangeLog-pr-11356.yml
deleted file mode 100644
index d441bd658e1..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11356.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "McDonald072"
-delete-after: True
-changes:
- - bugfix: "You can no longer examine or teleport things using clipboards"
diff --git a/html/changelogs/AutoChangeLog-pr-11360.yml b/html/changelogs/AutoChangeLog-pr-11360.yml
deleted file mode 100644
index 3fb01b5b8f9..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11360.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "AffectedArc07"
-delete-after: True
-changes:
- - rscadd: "SSevents"
- - rscadd: "SSholiday"
- - tweak: "We no longer check if its Christmas every tick. Dont ask."
diff --git a/html/changelogs/AutoChangeLog-pr-11361.yml b/html/changelogs/AutoChangeLog-pr-11361.yml
deleted file mode 100644
index 7207d6d5daf..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11361.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "AffectedArc07"
-delete-after: True
-changes:
- - rscadd: "SSalarms"
diff --git a/html/changelogs/AutoChangeLog-pr-11362.yml b/html/changelogs/AutoChangeLog-pr-11362.yml
deleted file mode 100644
index 72282104dc1..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11362.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "uc_guy"
-delete-after: True
-changes:
- - bugfix: "Players in the lobby no longer see cult speak."
diff --git a/html/changelogs/AutoChangeLog-pr-11364.yml b/html/changelogs/AutoChangeLog-pr-11364.yml
deleted file mode 100644
index b331b4d009d..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11364.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - tweak: "object and fast processing are now proper subsystems"
diff --git a/html/changelogs/AutoChangeLog-pr-11365.yml b/html/changelogs/AutoChangeLog-pr-11365.yml
deleted file mode 100644
index fd5fe573104..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11365.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "Kyep"
-delete-after: True
-changes:
- - rscadd: "The ID computer now color-codes potential job transfer options, highlighting good choices for a job transfer in green, and bad ones in gray."
- - bugfix: "Taking a job transfer now gives you playtime based on your new job, instead of incorrectly still giving you playtime based on your old job."
- - tweak: "Job transfers to karma jobs are now possible - if you have the job unlocked."
- - rscadd: "Attempting to bypass a job ban via a job transfer now generates a warning to all online admins."
diff --git a/html/changelogs/AutoChangeLog-pr-11367.yml b/html/changelogs/AutoChangeLog-pr-11367.yml
deleted file mode 100644
index 5d90a0b3f30..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11367.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "Doctor delight and orange juice now heal again"
diff --git a/html/changelogs/AutoChangeLog-pr-11369.yml b/html/changelogs/AutoChangeLog-pr-11369.yml
deleted file mode 100644
index c8bc9be9e2d..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11369.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Circuit Boards now show their required components on examine"
diff --git a/html/changelogs/AutoChangeLog-pr-11370.yml b/html/changelogs/AutoChangeLog-pr-11370.yml
deleted file mode 100644
index 9cd7a28a5b6..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11370.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Revenants now have randomly generated flavor names"
diff --git a/html/changelogs/AutoChangeLog-pr-11371.yml b/html/changelogs/AutoChangeLog-pr-11371.yml
deleted file mode 100644
index 220e6962bc5..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11371.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - tweak: "You can shift-click any action button to reset it's position. Alt-click on Hide Buttons will reset all action buttons to their default positions."
diff --git a/html/changelogs/AutoChangeLog-pr-11372.yml b/html/changelogs/AutoChangeLog-pr-11372.yml
deleted file mode 100644
index 963e58006f1..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11372.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Pill Bottles are now printable in the Autolathe. You can find them in the Medical section, and each costs 80 metal and 20 glass to print."
diff --git a/html/changelogs/AutoChangeLog-pr-11373.yml b/html/changelogs/AutoChangeLog-pr-11373.yml
deleted file mode 100644
index 9f90ffcd554..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11373.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Quantum-M"
-delete-after: True
-changes:
- - rscadd: "Two multicolor pens to the Internal Affairs Office"
diff --git a/html/changelogs/AutoChangeLog-pr-11375.yml b/html/changelogs/AutoChangeLog-pr-11375.yml
deleted file mode 100644
index 34d17cb10ce..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11375.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - tweak: "Puts beakers in your hand upon eject from chemistry machines"
diff --git a/html/changelogs/AutoChangeLog-pr-11376.yml b/html/changelogs/AutoChangeLog-pr-11376.yml
deleted file mode 100644
index c3ed1239eb5..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11376.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Cardboard can now be made in the Biogenerator"
diff --git a/html/changelogs/AutoChangeLog-pr-11377.yml b/html/changelogs/AutoChangeLog-pr-11377.yml
deleted file mode 100644
index 7b040fcc944..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11377.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "You can now hotswap tanks in a canister or gas pump by clicking it with a new tank!"
- - rscadd: "You can now also close a canister's valve and remove the tank inside it by alt-clicking it."
diff --git a/html/changelogs/AutoChangeLog-pr-11378.yml b/html/changelogs/AutoChangeLog-pr-11378.yml
deleted file mode 100644
index fefbf428e06..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11378.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Added examine toolptips. Hover over any equipped or hold item for a little while and it will display the item description as a tooltip."
diff --git a/html/changelogs/AutoChangeLog-pr-11381.yml b/html/changelogs/AutoChangeLog-pr-11381.yml
deleted file mode 100644
index 604f3096553..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11381.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ty-Omaha"
-delete-after: True
-changes:
- - tweak: "Moves AI admin log to the all preference"
diff --git a/html/changelogs/AutoChangeLog-pr-11389.yml b/html/changelogs/AutoChangeLog-pr-11389.yml
deleted file mode 100644
index 90d66861196..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11389.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Kyep"
-delete-after: True
-changes:
- - tweak: "Refactored and improved our entry on the server hub."
diff --git a/html/changelogs/AutoChangeLog-pr-11390.yml b/html/changelogs/AutoChangeLog-pr-11390.yml
deleted file mode 100644
index 12edd2d1fa2..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11390.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - bugfix: "Fixes multi-spawn blobs"
diff --git a/html/changelogs/AutoChangeLog-pr-11391.yml b/html/changelogs/AutoChangeLog-pr-11391.yml
deleted file mode 100644
index 2d23260b1e4..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11391.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "Fixes admin PM's. Bwoinks are back on the menu!"
diff --git a/html/changelogs/AutoChangeLog-pr-11393.yml b/html/changelogs/AutoChangeLog-pr-11393.yml
deleted file mode 100644
index 955e99dab7a..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11393.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - tweak: "Powersinks drain rate increased, but they also explode a bit sooner"
- - rscadd: "Multitools display total power, load, and free power"
- - bugfix: "Fix emitter sparks sparking at the location of emitters where biult as opposed to emitter current location"
diff --git a/html/changelogs/AutoChangeLog-pr-11395.yml b/html/changelogs/AutoChangeLog-pr-11395.yml
deleted file mode 100644
index 08ad539b42d..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11395.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "Organs will now prompt a update_stat. Meaning that IRCs and the like now get revived when possible when you put their battery and brain in"
diff --git a/html/changelogs/AutoChangeLog-pr-11396.yml b/html/changelogs/AutoChangeLog-pr-11396.yml
deleted file mode 100644
index 7cbd431c75b..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11396.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - bugfix: "Ghost teleport verb will no locker flicker when used"
diff --git a/html/changelogs/AutoChangeLog-pr-11397.yml b/html/changelogs/AutoChangeLog-pr-11397.yml
deleted file mode 100644
index c19f8d2bd25..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11397.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - rscadd: "Alt-click now opens and closes fire extinguisher cabinet"
- - bugfix: "Fire extinguisher cabinet now properly updates it's sprite correctly when putting fire extinquisher inside the cabinet"
- - bugfix: "Fire extinguisher no longer sprays when put into fire extinguisher cabinet with a safety off"
- - soundadd: "Added sound for opening and closing fire extinguisher cabinet"
diff --git a/html/changelogs/AutoChangeLog-pr-11400.yml b/html/changelogs/AutoChangeLog-pr-11400.yml
deleted file mode 100644
index 199c334303b..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11400.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - imageadd: "Added new torch sprites"
- - tweak: "Torch light color is now orange instead of red"
- - bugfix: "Torch sprite now correctly shows all inhand sprites"
diff --git a/html/changelogs/AutoChangeLog-pr-11403.yml b/html/changelogs/AutoChangeLog-pr-11403.yml
new file mode 100644
index 00000000000..2ffea4e8a9d
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11403.yml
@@ -0,0 +1,4 @@
+author: "Kyep"
+delete-after: True
+changes:
+ - tweak: "You can now identify when someone is using internals from a tank in their pocket, without having to remove the tank."
diff --git a/html/changelogs/AutoChangeLog-pr-11404.yml b/html/changelogs/AutoChangeLog-pr-11404.yml
deleted file mode 100644
index e4161ce9d6c..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11404.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "farie82"
-delete-after: True
-changes:
- - bugfix: "The typing limiter option should now work for all edge cases. Such as dying while talking and such"
diff --git a/html/changelogs/AutoChangeLog-pr-11405.yml b/html/changelogs/AutoChangeLog-pr-11405.yml
deleted file mode 100644
index 82b5d6e22c6..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11405.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Markolie"
-delete-after: True
-changes:
- - bugfix: "Removed a useless message that would be sent to admins whenever a drone joins the round."
diff --git a/html/changelogs/AutoChangeLog-pr-11406.yml b/html/changelogs/AutoChangeLog-pr-11406.yml
deleted file mode 100644
index 4a3191624ea..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11406.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "Arkatos"
-delete-after: True
-changes:
- - tweak: "Blob Rally Spores power is now free to use"
- - bugfix: "Blob mobs can no longer speak while being dead via Blob Broadcast"
- - bugfix: "Blob structures now properly show working animation"
- - imageadd: "Added new sprites for variants of Blob resource, factory and storage structures"
diff --git a/html/changelogs/AutoChangeLog-pr-11414.yml b/html/changelogs/AutoChangeLog-pr-11414.yml
deleted file mode 100644
index a994f91763e..00000000000
--- a/html/changelogs/AutoChangeLog-pr-11414.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Markolie"
-delete-after: True
-changes:
- - bugfix: "Fixed an issue where admins would receive a message whenever someone joined up as a pAI."
diff --git a/html/changelogs/AutoChangeLog-pr-11415.yml b/html/changelogs/AutoChangeLog-pr-11415.yml
new file mode 100644
index 00000000000..8a197f8f6f4
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11415.yml
@@ -0,0 +1,4 @@
+author: "Twinmold93"
+delete-after: True
+changes:
+ - rscadd: "Adds Server Time to the Status Tab for Admins."
diff --git a/html/changelogs/AutoChangeLog-pr-11416.yml b/html/changelogs/AutoChangeLog-pr-11416.yml
new file mode 100644
index 00000000000..c3c444d9879
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11416.yml
@@ -0,0 +1,4 @@
+author: "KasparoVy"
+delete-after: True
+changes:
+ - rscadd: "Adds a verb to eyewear you can use to adjust them so they appear above or below masks. Discover interesting combinations and enjoy a cool look."
diff --git a/html/changelogs/AutoChangeLog-pr-11418.yml b/html/changelogs/AutoChangeLog-pr-11418.yml
new file mode 100644
index 00000000000..8e9f296ca97
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11418.yml
@@ -0,0 +1,4 @@
+author: "Arkatos"
+delete-after: True
+changes:
+ - rscadd: "Patch Pack is now craftable with a cardboard, costs 2 cardboard sheets."
diff --git a/html/changelogs/AutoChangeLog-pr-11425.yml b/html/changelogs/AutoChangeLog-pr-11425.yml
new file mode 100644
index 00000000000..f3ed1d5bd9e
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11425.yml
@@ -0,0 +1,5 @@
+author: "Arkatos"
+delete-after: True
+changes:
+ - tweak: "Examine tooltip delay increased slightly"
+ - bugfix: "Examine tooltips now work properly on items in storage"
diff --git a/html/changelogs/AutoChangeLog-pr-11426.yml b/html/changelogs/AutoChangeLog-pr-11426.yml
new file mode 100644
index 00000000000..49414869223
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11426.yml
@@ -0,0 +1,5 @@
+author: "Arkatos"
+delete-after: True
+changes:
+ - tweak: "Full toolbelts now spawn with randomly a colored cable coil"
+ - imageadd: "Added inhand sprites for belts"
diff --git a/html/changelogs/AutoChangeLog-pr-11429.yml b/html/changelogs/AutoChangeLog-pr-11429.yml
new file mode 100644
index 00000000000..86509436332
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11429.yml
@@ -0,0 +1,4 @@
+author: "Mitchs98"
+delete-after: True
+changes:
+ - rscadd: "You can now order a Pig Crate from Cargo for 25 points."
diff --git a/html/changelogs/AutoChangeLog-pr-11335.yml b/html/changelogs/AutoChangeLog-pr-11431.yml
similarity index 51%
rename from html/changelogs/AutoChangeLog-pr-11335.yml
rename to html/changelogs/AutoChangeLog-pr-11431.yml
index 084f93320cb..d9f93831773 100644
--- a/html/changelogs/AutoChangeLog-pr-11335.yml
+++ b/html/changelogs/AutoChangeLog-pr-11431.yml
@@ -1,4 +1,4 @@
author: "Arkatos"
delete-after: True
changes:
- - tweak: "Dice will now roll when thrown"
+ - imageadd: "Added 4 new plushies"
diff --git a/html/changelogs/AutoChangeLog-pr-11434.yml b/html/changelogs/AutoChangeLog-pr-11434.yml
new file mode 100644
index 00000000000..f07ba09cf41
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11434.yml
@@ -0,0 +1,4 @@
+author: "TDSSS"
+delete-after: True
+changes:
+ - bugfix: "typo on sst shuttle console"
diff --git a/html/changelogs/AutoChangeLog-pr-11442.yml b/html/changelogs/AutoChangeLog-pr-11442.yml
new file mode 100644
index 00000000000..2cdaf2355fe
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11442.yml
@@ -0,0 +1,6 @@
+author: "EvadableMoxie"
+delete-after: True
+changes:
+ - rscadd: "Added the Nanotrasen Hospital Vessel Asclepius, able to be deployed by admins."
+ - tweak: "Admin shuttle now requires ERT clearance instead of admin clearance."
+ - tweak: "Admin shuttle now has a navigation computer and tiny fans at the airlock."
diff --git a/html/changelogs/AutoChangeLog-pr-11443.yml b/html/changelogs/AutoChangeLog-pr-11443.yml
new file mode 100644
index 00000000000..5c3a9a1b8e2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11443.yml
@@ -0,0 +1,4 @@
+author: "Kyep"
+delete-after: True
+changes:
+ - bugfix: "punching a windoor no longer generates a runtime error."
diff --git a/html/changelogs/AutoChangeLog-pr-11445.yml b/html/changelogs/AutoChangeLog-pr-11445.yml
new file mode 100644
index 00000000000..30b9ae088e8
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-11445.yml
@@ -0,0 +1,4 @@
+author: "Kyep"
+delete-after: True
+changes:
+ - bugfix: "cryogenic_liquid/envenomed_filaments blobs no longer generate runtimes when their blob special attack hits mobs that do not process reagents"
diff --git a/html/changelogs/__CHANGELOG_README.txt b/html/changelogs/__CHANGELOG_README.txt
index 8f610ee9acf..2e919a6226d 100644
--- a/html/changelogs/__CHANGELOG_README.txt
+++ b/html/changelogs/__CHANGELOG_README.txt
@@ -15,5 +15,3 @@ TO MAKE A CHANGELOG .YML ENTRRY
5. When commiting make sure your .yml file is included in the commit (it will usually be unticked as an unversioned file)
#######################################################
-
-If you have trouble ask for help in #codertrain on the Paradise Station IRC.
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index b09302e0234..1e321d40058 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ
diff --git a/icons/mob/carp.dmi b/icons/mob/carp.dmi
new file mode 100644
index 00000000000..f5bb7f116b9
Binary files /dev/null and b/icons/mob/carp.dmi differ
diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi
index 6f2cf056cec..06b2934ebde 100644
Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ
diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi
index 169e9e6cbf3..3a558b90140 100644
Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.dmi differ
diff --git a/icons/mob/inhands/equipment/belt_lefthand.dmi b/icons/mob/inhands/equipment/belt_lefthand.dmi
new file mode 100644
index 00000000000..366493eebde
Binary files /dev/null and b/icons/mob/inhands/equipment/belt_lefthand.dmi differ
diff --git a/icons/mob/inhands/equipment/belt_righthand.dmi b/icons/mob/inhands/equipment/belt_righthand.dmi
new file mode 100644
index 00000000000..81b075f706e
Binary files /dev/null and b/icons/mob/inhands/equipment/belt_righthand.dmi differ
diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi
index 524418ba0e9..ccfa57790d9 100644
Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ
diff --git a/tools/ss13_genchangelog.py b/tools/ss13_genchangelog.py
index ed76aa9c6c6..18634d34832 100644
--- a/tools/ss13_genchangelog.py
+++ b/tools/ss13_genchangelog.py
@@ -1,8 +1,15 @@
'''
+ss13_genchangelog.py - Generate changelog from YAML.
+
Usage:
$ python ss13_genchangelog.py [--dry-run] html/changelog.html html/changelogs/
-ss13_genchangelog.py - Generate changelog from YAML.
+ Example (first use):
+ - Install python 2.7
+ - run cmd.exe
+ - pip install pyyaml
+ - cd paradise github directory
+ - python tools/ss13_genchangelog.py html/changelog.html html/changelogs/
Copyright 2013 Rob "N3X15" Nelson