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:

+ +

Arkatos updated:

+ +

Arkatos and Paradise community: updated:

+ +

Citinited updated:

+ +

CornMyCob updated:

+ +

CthulhuOnIce updated:

+ +

Fethas updated:

+ +

Fox McCloud updated:

+ +

Ionward updated:

+ +

KasparoVy updated:

+ +

Kyep updated:

+ +

Markolie updated:

+ +

McDonald072 updated:

+ +

Quantum-M updated:

+ +

TDSSS updated:

+ +

Ty-Omaha updated:

+ +

dovydas12345 updated:

+ +

farie82 updated:

+ +

iantine updated:

+ +

uc_guy updated:

+ +

08 April 2019

TDSSS updated: