diff --git a/_maps/shuttles/ert_deathsquad.dmm b/_maps/shuttles/ert_deathsquad.dmm new file mode 100644 index 000000000000..1336cff54dfe --- /dev/null +++ b/_maps/shuttles/ert_deathsquad.dmm @@ -0,0 +1,371 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/turf_decal/stripes/red/box, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + dir = 8; + id = "rightdoor" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"b" = ( +/obj/machinery/button/door/directional/east{ + req_access = list(188); + id = "rightdoor" + }, +/obj/machinery/light/red/dim/directional/east, +/obj/machinery/computer/mech_bay_power_console{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"c" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered/deathsquad) +"e" = ( +/turf/open/space/basic, +/area/template_noop) +"f" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"g" = ( +/obj/machinery/door/poddoor{ + dir = 8; + id = "cockpit" + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered/deathsquad) +"i" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/machinery/light/red/dim/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"j" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/docking_port/mobile/ert{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered/deathsquad) +"k" = ( +/obj/effect/landmark/ert_shuttle_brief_spawn, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"l" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor{ + dir = 8; + id = "cockpit" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered/deathsquad) +"m" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear/red{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"n" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 10 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"o" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/computer/shuttle/ert/deathsquad, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/powered/deathsquad) +"p" = ( +/obj/effect/turf_decal/stripes/red/box, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + dir = 8; + id = "leftdoor" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"q" = ( +/obj/machinery/teleport/station, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"r" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered/deathsquad) +"s" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/ert/powered/deathsquad) +"u" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"w" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/machinery/light/red/dim/directional/west, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"x" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"y" = ( +/obj/effect/turf_decal/caution/red{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"A" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "leftdoor"; + req_access = list(188) + }, +/obj/machinery/light/red/dim/directional/west, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"B" = ( +/obj/machinery/computer/teleporter{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"C" = ( +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"D" = ( +/obj/item/storage/box/syndie_kit/imp_deathrattle/nanotrasen, +/obj/structure/rack, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"E" = ( +/obj/structure/rack, +/obj/item/stack/cable_coil/five, +/obj/item/weldingtool/experimental, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"F" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "cockpit"; + req_access = list(188) + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"H" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/caution/stand_clear/red{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"I" = ( +/obj/effect/turf_decal/delivery/red, +/obj/vehicle/sealed/mecha/working/ripley/deathripley/real/elite, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"K" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"N" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 6 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"O" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/computer/security, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/powered/deathsquad) +"P" = ( +/obj/machinery/teleport/hub, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"R" = ( +/obj/machinery/door/airlock/hatch{ + id_tag = "infiltrator_bridge"; + name = "Infiltrator Bridge" + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/specops, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"T" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/machinery/vending/wallmed/directional/north, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"U" = ( +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/ert/powered/deathsquad) +"Y" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/ert/powered/deathsquad) +"Z" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/ert/deathsquad{ + x_offset = -1; + y_offset = 7 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/powered/deathsquad) + +(1,1,1) = {" +e +e +U +s +U +U +p +U +U +U +e +"} +(2,1,1) = {" +U +U +U +U +N +w +H +A +P +c +r +"} +(3,1,1) = {" +l +O +Y +U +T +C +u +u +q +c +r +"} +(4,1,1) = {" +l +o +f +R +x +D +E +k +B +c +j +"} +(5,1,1) = {" +g +Z +F +U +x +C +u +y +I +c +r +"} +(6,1,1) = {" +U +U +U +U +n +i +m +b +K +c +r +"} +(7,1,1) = {" +e +e +U +s +U +U +a +U +U +U +e +"} diff --git a/_maps/shuttles/ert_dropship-clown.dmm b/_maps/shuttles/ert_dropship-clown.dmm new file mode 100644 index 000000000000..291b37a06098 --- /dev/null +++ b/_maps/shuttles/ert_dropship-clown.dmm @@ -0,0 +1,389 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/chair/comfy/lime{ + dir = 4 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"b" = ( +/obj/structure/rack, +/obj/item/storage/backpack/duffelbag/clown/cream_pie, +/obj/item/storage/backpack/duffelbag/clown/cream_pie{ + pixel_x = 0; + pixel_y = 9 + }, +/obj/item/storage/backpack/duffelbag/clown/cream_pie{ + pixel_x = 0; + pixel_y = 9 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"e" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/ert{ + x_offset = 0; + y_offset = 10 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"f" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "ert_dropship_bridge-clown"; + req_access = list("cent_general") + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"g" = ( +/obj/machinery/light/directional/west, +/obj/vehicle/sealed/mecha/honker/dark/loaded/not_evil, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"h" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"l" = ( +/obj/machinery/computer/shuttle/ert, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"m" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"p" = ( +/obj/structure/sign/poster/contraband/clown/directional/north, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"r" = ( +/obj/structure/railing{ + dir = 1; + custom_materials = list(/datum/material/bananium = 100) + }, +/obj/vehicle/sealed/car/clowncar{ + dir = 4 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"s" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"t" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"u" = ( +/obj/effect/landmark/ert_shuttle_brief_spawn, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"w" = ( +/turf/closed/wall/mineral/bananium, +/area/shuttle/ert/powered) +"x" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"y" = ( +/turf/open/space/basic, +/area/template_noop) +"z" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"A" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "ert_dropship_bridge-clown" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"C" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/machinery/light/directional/east, +/obj/item/sbeacondrop/clownbomb{ + pixel_x = -4; + pixel_y = 13 + }, +/obj/item/sbeacondrop/clownbomb{ + pixel_x = 7; + pixel_y = 10 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"D" = ( +/mob/living/simple_animal/bot/secbot/honkbot, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"E" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"F" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/machinery/door/poddoor/preopen{ + id = "ert_dropship_bridge-clown" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"G" = ( +/obj/machinery/holopad, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"H" = ( +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"K" = ( +/obj/structure/table/reinforced, +/obj/item/toy/windup_toolbox{ + pixel_x = 1; + pixel_y = 13 + }, +/obj/item/bikehorn{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/bikehorn{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/bikehorn{ + pixel_x = 2; + pixel_y = 7 + }, +/obj/item/bikehorn/airhorn{ + pixel_x = -9; + pixel_y = 3 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"M" = ( +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/machinery/door/airlock/bananium/glass, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"N" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"O" = ( +/obj/machinery/button/door/directional/south{ + id = "ert_dropship_doors-clown"; + req_access = list("cent_general") + }, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"P" = ( +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"Q" = ( +/obj/machinery/vending/wallmed/directional/north, +/obj/structure/rack, +/obj/item/pneumatic_cannon/pie/selfcharge, +/obj/item/pneumatic_cannon/pie/selfcharge{ + pixel_x = 6; + pixel_y = -6 + }, +/obj/item/pneumatic_cannon/pie/selfcharge{ + pixel_x = -2; + pixel_y = 1 + }, +/obj/item/pneumatic_cannon/pie/selfcharge{ + pixel_x = -10; + pixel_y = 6 + }, +/obj/item/pneumatic_cannon/pie/selfcharge{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/pneumatic_cannon/pie/selfcharge{ + pixel_x = -6; + pixel_y = 4 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"R" = ( +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"S" = ( +/obj/structure/chair/comfy/carp{ + dir = 4 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"T" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + dir = 8; + id = "ert_dropship_doors-clown" + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"U" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"V" = ( +/obj/structure/table/reinforced, +/obj/item/inspector/clown/bananium, +/obj/item/megaphone/clown, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"W" = ( +/obj/structure/railing{ + dir = 1; + custom_materials = list(/datum/material/bananium = 100) + }, +/obj/machinery/portable_atmospherics/canister/helium, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"X" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/ert/powered) +"Y" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/docking_port/mobile/ert{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) + +(1,1,1) = {" +y +y +w +w +T +T +T +T +T +T +w +w +w +w +y +"} +(2,1,1) = {" +A +A +w +w +p +R +R +R +R +P +r +g +b +h +U +"} +(3,1,1) = {" +F +N +V +w +P +t +E +H +s +P +P +P +D +h +U +"} +(4,1,1) = {" +F +l +z +M +O +w +m +m +w +Q +u +G +P +h +Y +"} +(5,1,1) = {" +F +e +f +w +P +S +a +x +X +P +P +P +P +h +U +"} +(6,1,1) = {" +A +A +w +w +p +R +R +R +R +P +W +C +K +h +U +"} +(7,1,1) = {" +y +y +w +w +T +T +T +T +T +T +w +w +w +w +y +"} diff --git a/_maps/shuttles/ert_dropship-janitor.dmm b/_maps/shuttles/ert_dropship-janitor.dmm new file mode 100644 index 000000000000..d521d1926ae4 --- /dev/null +++ b/_maps/shuttles/ert_dropship-janitor.dmm @@ -0,0 +1,459 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"b" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate, +/mob/living/basic/bot/cleanbot, +/mob/living/basic/bot/cleanbot, +/mob/living/basic/bot/cleanbot, +/mob/living/basic/bot/cleanbot, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"c" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"d" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/rack, +/obj/item/watertank/janitor{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/watertank/janitor{ + pixel_x = 1; + pixel_y = 0 + }, +/obj/item/watertank/janitor{ + pixel_x = -5; + pixel_y = -4 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"e" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/ert{ + x_offset = 0; + y_offset = 10 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/powered) +"f" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "ert_dropship_bridge-janitor"; + req_access = list("cent_general") + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"g" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/light/directional/west, +/obj/structure/closet/crate, +/mob/living/basic/bot/cleanbot, +/mob/living/basic/bot/cleanbot, +/mob/living/basic/bot/cleanbot, +/mob/living/basic/bot/cleanbot, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"h" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"i" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"j" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 8 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"l" = ( +/obj/machinery/computer/shuttle/ert, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/powered) +"m" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"n" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/powered) +"p" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 6 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"q" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"r" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate/engineering, +/obj/structure/liquid_pump, +/obj/structure/liquid_pump, +/obj/structure/liquid_pump, +/obj/item/wrench/caravan, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"s" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"t" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"u" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/landmark/ert_shuttle_brief_spawn, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"v" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"w" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/powered) +"x" = ( +/obj/effect/turf_decal/stripes/blue, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"y" = ( +/turf/open/space/basic, +/area/template_noop) +"z" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"A" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "ert_dropship_bridge-janitor" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"C" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/machinery/light/directional/east, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"D" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"E" = ( +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/blue{ + dir = 8 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"F" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/machinery/door/poddoor/preopen{ + id = "ert_dropship_bridge-janitor" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"G" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/box, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"H" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 4 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"J" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 9 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"K" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -7; + pixel_y = 0 + }, +/obj/machinery/recharger{ + pixel_x = 2; + pixel_y = 0 + }, +/obj/item/storage/toolbox/emergency{ + pixel_x = 1; + pixel_y = 15 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"L" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"M" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/machinery/door/airlock/shuttle/glass, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"N" = ( +/obj/machinery/computer/security, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/powered) +"O" = ( +/obj/machinery/button/door/directional/south{ + id = "ert_dropship_doors-janitor"; + req_access = list("cent_general") + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/stripes/blue{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"P" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"Q" = ( +/obj/machinery/vending/wallmed/directional/north, +/obj/structure/rack, +/obj/item/storage/medkit{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/effect/turf_decal/stripes/blue, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"R" = ( +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/blue{ + dir = 4 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"S" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/ert/powered) +"T" = ( +/obj/structure/fans/tiny, +/obj/effect/turf_decal/stripes/blue/box, +/obj/machinery/door/poddoor{ + dir = 8; + id = "ert_dropship_doors-janitor" + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"U" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"V" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"W" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"X" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"Y" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/docking_port/mobile/ert{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) + +(1,1,1) = {" +y +y +w +S +T +T +T +T +T +T +w +w +w +w +y +"} +(2,1,1) = {" +A +A +w +n +p +E +j +j +E +X +r +g +b +h +U +"} +(3,1,1) = {" +F +N +V +w +P +t +t +t +t +x +L +v +D +h +U +"} +(4,1,1) = {" +F +l +z +M +O +w +m +m +w +Q +u +G +c +h +Y +"} +(5,1,1) = {" +F +e +f +w +P +a +a +a +a +x +i +q +d +h +U +"} +(6,1,1) = {" +A +A +w +n +s +R +H +H +R +J +W +C +K +h +U +"} +(7,1,1) = {" +y +y +w +S +T +T +T +T +T +T +w +w +w +w +y +"} diff --git a/_maps/shuttles/ert_dropship.dmm b/_maps/shuttles/ert_dropship.dmm new file mode 100644 index 000000000000..b796890ea2b4 --- /dev/null +++ b/_maps/shuttles/ert_dropship.dmm @@ -0,0 +1,430 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"b" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"c" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"d" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"e" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/ert{ + x_offset = 0; + y_offset = 10 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/powered) +"f" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "ert_dropship_bridge"; + req_access = list("cent_general") + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"g" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/light/directional/west, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"h" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"i" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"j" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 8 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"l" = ( +/obj/machinery/computer/shuttle/ert, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/powered) +"m" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"n" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/powered) +"p" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 6 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"q" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"r" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"s" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"t" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"u" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/landmark/ert_shuttle_brief_spawn, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"v" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"w" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/powered) +"x" = ( +/obj/effect/turf_decal/stripes/blue, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"y" = ( +/turf/open/space/basic, +/area/template_noop) +"z" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"A" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "ert_dropship_bridge" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"C" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/machinery/light/directional/east, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"D" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"E" = ( +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/blue{ + dir = 8 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"F" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/machinery/door/poddoor/preopen{ + id = "ert_dropship_bridge" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"G" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/box, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"H" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 4 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"J" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 9 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"K" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -7; + pixel_y = 0 + }, +/obj/machinery/recharger{ + pixel_x = 2; + pixel_y = 0 + }, +/obj/item/storage/toolbox/emergency{ + pixel_x = 1; + pixel_y = 15 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"L" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"M" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/machinery/door/airlock/shuttle/glass, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"N" = ( +/obj/machinery/computer/security, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/powered) +"O" = ( +/obj/machinery/button/door/directional/south{ + id = "ert_dropship_doors"; + req_access = list("cent_general") + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/stripes/blue{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"P" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"Q" = ( +/obj/machinery/vending/wallmed/directional/north, +/obj/structure/rack, +/obj/item/storage/medkit{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/effect/turf_decal/stripes/blue, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"R" = ( +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/blue{ + dir = 4 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"S" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/ert/powered) +"T" = ( +/obj/structure/fans/tiny, +/obj/effect/turf_decal/stripes/blue/box, +/obj/machinery/door/poddoor{ + dir = 8; + id = "ert_dropship_doors" + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"U" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) +"V" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/powered) +"W" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/powered) +"X" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert/powered) +"Y" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/docking_port/mobile/ert{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/powered) + +(1,1,1) = {" +y +y +w +S +T +T +T +T +T +T +w +w +w +w +y +"} +(2,1,1) = {" +A +A +w +n +p +E +j +j +E +X +r +g +b +h +U +"} +(3,1,1) = {" +F +N +V +w +P +t +t +t +t +x +L +v +D +h +U +"} +(4,1,1) = {" +F +l +z +M +O +w +m +m +w +Q +u +G +c +h +Y +"} +(5,1,1) = {" +F +e +f +w +P +a +a +a +a +x +i +q +d +h +U +"} +(6,1,1) = {" +A +A +w +n +s +R +H +H +R +J +W +C +K +h +U +"} +(7,1,1) = {" +y +y +w +S +T +T +T +T +T +T +w +w +w +w +y +"} diff --git a/_maps/shuttles/ert_generic.dmm b/_maps/shuttles/ert_generic.dmm new file mode 100644 index 000000000000..b3363c9b2edb --- /dev/null +++ b/_maps/shuttles/ert_generic.dmm @@ -0,0 +1,1970 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ad" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "ert_shuttle_breakroom" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/engineering) +"ao" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/engineering) +"ap" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"ar" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/smes/full, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"as" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/bridge) +"aB" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"aH" = ( +/obj/structure/sign/warning/vacuum/directional/east, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/machinery/light/small/blacklight/directional/east, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock/secondary) +"aL" = ( +/obj/machinery/door/airlock/shuttle/glass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert) +"aN" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"aR" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/dim/directional/east, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"bd" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"bv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"bx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/landmark/ert_shuttle_spawn, +/obj/machinery/light/warm/dim/directional/west, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) +"bW" = ( +/obj/machinery/door/airlock/shuttle, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert) +"ce" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"cq" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/ert/engineering) +"dG" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -7; + pixel_y = 0 + }, +/obj/machinery/recharger{ + pixel_x = 2; + pixel_y = 0 + }, +/obj/item/storage/toolbox/emergency{ + pixel_x = 1; + pixel_y = 15 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"dX" = ( +/obj/effect/turf_decal/stripes/red/full, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/obj/item/reagent_containers/cup/beaker/cryoxadone{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"dY" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock) +"ee" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/clonerybay) +"eo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/power/terminal, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"fH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy, +/turf/open/space/basic, +/area/shuttle/ert/cargo) +"fT" = ( +/obj/structure/sign/warning/vacuum/directional/west, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/machinery/light/small/blacklight/directional/west, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock) +"gf" = ( +/obj/structure/closet/emcloset/anchored, +/obj/item/bodybag/environmental/nanotrasen, +/obj/item/bodybag/environmental/nanotrasen, +/obj/item/bodybag/environmental/nanotrasen, +/obj/item/storage/box/oxygen_candles, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"gl" = ( +/obj/structure/fans/tiny, +/obj/effect/turf_decal/stripes/box, +/obj/machinery/door/poddoor{ + id = "ert_shuttle_cargo_outer" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/cargo) +"gF" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/dim/directional/east, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"hd" = ( +/obj/structure/cable, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/clonerybay) +"hu" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/shuttle/ert/cargo) +"hF" = ( +/obj/machinery/door/airlock/external/glass{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock) +"hJ" = ( +/obj/machinery/door/airlock/shuttle/glass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/bridge) +"im" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/clonerybay) +"iE" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/box/red, +/obj/machinery/portable_atmospherics/canister/anesthetic_mix, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"jw" = ( +/obj/machinery/portable_atmospherics/scrubber/huge/movable/cargo, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"kc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"kl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/warm/dim/directional/east, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"ko" = ( +/obj/structure/closet/crate/solarpanel_small, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"kS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/engineering) +"ln" = ( +/obj/structure/rack, +/obj/effect/turf_decal/stripes/line, +/obj/item/storage/box/smart_metal_foam, +/obj/item/storage/box/smart_metal_foam{ + pixel_x = 5; + pixel_y = 2 + }, +/obj/item/storage/box/smart_metal_foam{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/holosign_creator/atmos, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"lW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/rack, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"mv" = ( +/obj/structure/chair/office/tactical, +/obj/effect/turf_decal/stripes/blue/line{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"mz" = ( +/obj/machinery/door/airlock/shuttle, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/engineering) +"mM" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "ert_shuttle_security" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/armory) +"mZ" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/ert{ + x_offset = 0; + y_offset = 10 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/bridge) +"nq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/machinery/door/poddoor{ + id = "ert_shuttle_cargo" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/cargo) +"nt" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert) +"nx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/firealarm/directional/west, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"nC" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"nN" = ( +/obj/machinery/computer/records/security{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"nU" = ( +/obj/structure/rack, +/obj/structure/rack, +/obj/item/storage/box/zipties{ + pixel_x = -7; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"oT" = ( +/obj/machinery/computer/shuttle/ert, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/bridge) +"oW" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/shuttle/ert/bridge) +"pl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/engineering) +"pm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) +"pv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/machinery/door/poddoor{ + id = "ert_shuttle_cargo" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/cargo) +"pB" = ( +/obj/structure/table/woodentable, +/obj/item/flashlight/lamp/bananalamp{ + pixel_x = 8; + pixel_y = 17 + }, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/item/food/pie/cream{ + pixel_x = -4; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"pE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) +"pO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"qN" = ( +/obj/machinery/clonepod, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled/purple, +/area/shuttle/ert/clonerybay) +"qP" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert) +"qQ" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden/layer2, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"qT" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/folder/blue{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/pen{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/mug/nanotrasen{ + pixel_x = 9; + pixel_y = 9 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"qZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/firealarm/directional/east, +/obj/effect/landmark/ert_shuttle_spawn, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) +"rc" = ( +/obj/structure/rack, +/obj/item/stack/sheet/plasteel/twenty{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stack/sheet/plasteel/twenty{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/stack/rods/fifty{ + pixel_x = 1; + pixel_y = 0 + }, +/obj/item/stack/rods/fifty{ + pixel_x = 3; + pixel_y = -1 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"rM" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/sleeper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"rQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/airalarm/directional/east, +/obj/effect/landmark/ert_shuttle_spawn, +/obj/machinery/light/warm/dim/directional/east, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) +"sR" = ( +/obj/machinery/atmospherics/components/binary/pump/on/supply/hidden/layer4{ + dir = 1; + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/binary/pump/on/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"sU" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/vending/wallmed/directional/west, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"tM" = ( +/obj/machinery/computer/cloning{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/purple, +/area/shuttle/ert/clonerybay) +"uL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/port_gen/pacman/super, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/dim/directional/west, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"uR" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"vl" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"vm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"vo" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert) +"vQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/power/terminal, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/clonerybay) +"vT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"wN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/cargo) +"wO" = ( +/obj/structure/rack, +/obj/item/stack/sheet/mineral/uranium{ + amount = 50 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/item/inducer, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"xb" = ( +/obj/machinery/door/airlock/shuttle/glass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert) +"xy" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/rack, +/obj/item/storage/medkit/fire{ + pixel_x = 0; + pixel_y = 12 + }, +/obj/item/storage/medkit/fire{ + pixel_x = 0; + pixel_y = 9 + }, +/obj/item/storage/medkit/brute{ + pixel_x = 0; + pixel_y = 6 + }, +/obj/item/storage/medkit/brute{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"xS" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock) +"yg" = ( +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"yw" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/item/chair/plastic, +/obj/machinery/light/warm/dim/directional/north, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/engineering) +"yB" = ( +/obj/item/crowbar/large/heavy, +/obj/machinery/light/warm/dim/directional/west, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"yG" = ( +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "ert_shuttle_clonebay" + }, +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating/airless, +/area/shuttle/ert/clonerybay) +"yJ" = ( +/obj/machinery/flasher/directional/east{ + id = "ert_shuttle_flash" + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"yU" = ( +/obj/machinery/computer/aifixer{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/mineral/titanium/tiled/purple, +/area/shuttle/ert/clonerybay) +"zy" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "ert_shuttle_clonebay" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/clonerybay) +"zC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/rack, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/stack/sheet/iron/fifty{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stack/sheet/iron/fifty{ + pixel_x = -1; + pixel_y = 0 + }, +/obj/item/stack/sheet/iron/fifty{ + pixel_x = 5; + pixel_y = -1 + }, +/obj/item/stack/sheet/iron/fifty{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/stack/sheet/iron/fifty{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"zX" = ( +/obj/structure/closet/wardrobe/white, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/clonerybay) +"AL" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/clonerybay) +"AM" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"Bd" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/computer/crew, +/obj/structure/cable, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/bridge) +"Bu" = ( +/obj/machinery/light/warm/directional/west, +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/mineral/titanium/tiled/purple, +/area/shuttle/ert/clonerybay) +"BE" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/airlock/secondary) +"BP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"Cb" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/machinery/button/door/directional/east{ + name = "Cargo Hold Blastdoors"; + id = "ert_shuttle_cargo"; + req_access = list("cent_general") + }, +/obj/machinery/door/poddoor{ + id = "ert_shuttle_cargo" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/cargo) +"Cm" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock/secondary) +"Cq" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert) +"CD" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_x = -7; + pixel_y = 23 + }, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_x = -7; + pixel_y = 27 + }, +/obj/machinery/coffeemaker, +/obj/item/reagent_containers/cup/glass/mug/nanotrasen{ + pixel_x = 5; + pixel_y = 13 + }, +/obj/item/reagent_containers/cup/glass/mug/nanotrasen{ + pixel_x = 11; + pixel_y = 13 + }, +/obj/item/coffee_cartridge{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/coffee_cartridge{ + pixel_x = -7; + pixel_y = 11 + }, +/obj/item/coffee_cartridge{ + pixel_x = -7; + pixel_y = 13 + }, +/obj/item/coffee_cartridge{ + pixel_x = -7; + pixel_y = 15 + }, +/obj/structure/cable, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/engineering) +"Di" = ( +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/blue{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"Du" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, +/area/shuttle/ert/medical) +"DB" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"DD" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/ert) +"DK" = ( +/turf/template_noop, +/area/template_noop) +"DP" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/folder/white{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/pen/fourcolor{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/storage/box/bodybags, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/clonerybay) +"EB" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/computer/records/medical, +/obj/structure/cable, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/bridge) +"EO" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/blue{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"EU" = ( +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/cargo) +"Fi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"Fl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"FI" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/ert) +"FL" = ( +/obj/item/storage/box/stingbangs{ + pixel_x = 8; + pixel_y = 42 + }, +/obj/item/storage/box/flashbangs{ + pixel_x = 8; + pixel_y = 34 + }, +/obj/item/storage/box/flashes{ + pixel_x = -7; + pixel_y = 42 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"FX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"GB" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"Hk" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 1; + pixel_y = 15 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 1; + pixel_y = 11 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"Hl" = ( +/obj/docking_port/mobile/ert{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/cargo) +"Ho" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"Hu" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"Hv" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/window/brigdoor/right/directional{ + req_access = list("cent_general") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"HN" = ( +/obj/machinery/computer/apc_control{ + req_access = list("cent_general") + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/bridge) +"HZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"Ie" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock/secondary) +"Il" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/recharge_station, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert) +"Iq" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/medical) +"JT" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/cargo) +"JZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/flasher{ + id = "ert_shuttle_flash" + }, +/obj/item/storage/secure/briefcase{ + pixel_x = 0; + pixel_y = 12 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"Ku" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"KA" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/rack, +/obj/item/storage/medkit/regular{ + pixel_x = 0; + pixel_y = 13 + }, +/obj/item/storage/medkit/regular{ + pixel_x = 0; + pixel_y = 10 + }, +/obj/item/storage/medkit/o2{ + pixel_x = 0; + pixel_y = 7 + }, +/obj/item/storage/medkit/o2{ + pixel_x = 0; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"KK" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/ert/medical) +"KL" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/engineering) +"Ln" = ( +/obj/effect/turf_decal/stripes/blue{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"LO" = ( +/obj/machinery/door/airlock/external/glass{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock/secondary) +"LW" = ( +/obj/structure/table/reinforced, +/obj/item/restraints/handcuffs/cable/zipties{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = 7; + pixel_y = -1 + }, +/obj/item/storage/fancy/donut_box{ + pixel_x = 0; + pixel_y = 16; + open_status = 0 + }, +/obj/item/spess_knife{ + pixel_x = -7; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"LZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"Mp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/sign/flag/nanotrasen/directional/north, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) +"Mq" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/rack, +/obj/item/storage/medkit/advanced{ + pixel_x = 0; + pixel_y = 13 + }, +/obj/item/storage/medkit/advanced{ + pixel_x = 0; + pixel_y = 10 + }, +/obj/structure/rack, +/obj/item/storage/medkit/toxin{ + pixel_x = 0; + pixel_y = 7 + }, +/obj/item/storage/medkit/toxin{ + pixel_x = 0; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"Mu" = ( +/obj/machinery/computer/security, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/bridge) +"MA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) +"NV" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"Ot" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "ert_shuttle_bridge"; + name = "Bridge Blastdoors"; + pixel_x = 0; + pixel_y = -12; + req_access = list("cent_general") + }, +/obj/machinery/button/door{ + id = "ert_shuttle_clonebay"; + name = "Cloner Bay Blastdoors"; + pixel_x = -7; + pixel_y = 8; + req_access = list("cent_general") + }, +/obj/machinery/button/door{ + id = "ert_shuttle_security"; + name = "Brig Blastdoors"; + pixel_x = 7; + pixel_y = 8; + req_access = list("cent_general") + }, +/obj/machinery/button/door{ + id = "ert_shuttle_breakroom"; + name = "Breakroom Blastdoors"; + pixel_x = -7; + pixel_y = -2; + req_access = list("cent_general") + }, +/obj/machinery/button/door{ + id = "ert_shuttle_medbay"; + name = "Medbay Blastdoors"; + pixel_x = 7; + pixel_y = -2; + req_access = list("cent_general") + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"ON" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock/secondary) +"Pt" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/table/optable, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"Ql" = ( +/obj/structure/fireaxecabinet/directional/east, +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"QQ" = ( +/obj/structure/table/reinforced, +/obj/item/aicard, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"QX" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/cell/hyper{ + pixel_x = 10; + pixel_y = 11 + }, +/obj/item/stock_parts/cell/hyper{ + pixel_x = 10; + pixel_y = 7 + }, +/obj/machinery/light/dim/directional/west, +/obj/machinery/cell_charger, +/obj/item/cargo_teleporter, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"Rg" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"Rj" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/power/terminal, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/bridge) +"Rq" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/box/blue, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"RH" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "ert_shuttle_bridge" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/bridge) +"RL" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/computer/atmos_alert, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/shuttle/ert/bridge) +"Tv" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"UE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/landmark/ert_shuttle_spawn, +/obj/machinery/light/warm/dim/directional/east, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) +"UQ" = ( +/obj/structure/cable, +/obj/machinery/power/port_gen/pacman/super, +/obj/item/stack/sheet/mineral/uranium/five, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"UX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"VJ" = ( +/obj/machinery/door/airlock/external/glass{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock) +"Wc" = ( +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/blue{ + dir = 8; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/ert) +"Wg" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"Wl" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/armory) +"Wu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/ert/armory) +"WE" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/computer/operating{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"WP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/reagent_dispensers/foamtank, +/obj/item/extinguisher/advanced{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/item/extinguisher/advanced{ + pixel_x = 1; + pixel_y = 0 + }, +/obj/item/extinguisher/advanced{ + pixel_x = 7; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"Xd" = ( +/obj/structure/sign/poster/contraband/missing_gloves/directional/north, +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4, +/turf/open/floor/plating, +/area/shuttle/ert/engineering) +"Xf" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock) +"Xm" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/engineering) +"Xq" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/stasis{ + dir = 4 + }, +/obj/machinery/light/warm/directional/west, +/obj/machinery/defibrillator_mount/directional/west, +/obj/item/defibrillator/loaded, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"XG" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "ert_shuttle_medbay" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/medical) +"XH" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/closet/crate/freezer/blood, +/obj/machinery/iv_drip, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"XO" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/airalarm/directional/north, +/obj/structure/table/reinforced/rglass, +/obj/item/clothing/gloves/latex/surgical, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_x = -1; + pixel_y = 13 + }, +/obj/item/clothing/mask/surgical, +/obj/item/healthanalyzer/advanced, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"XQ" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/clonerybay) +"XS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"XT" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "ert_shuttle_bridge" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ert/bridge) +"Ys" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/landmark/ert_shuttle_brief_spawn, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) +"Yw" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/cable, +/obj/machinery/iv_drip/saline, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan, +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/ert/medical) +"YB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/port_gen/pacman/super, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/shuttle/ert/cargo) +"YD" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ert/airlock) +"YL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/shuttle/ert/cargo) +"Zl" = ( +/obj/structure/fans/tiny, +/obj/effect/turf_decal/stripes/box, +/obj/machinery/button/door/directional/east{ + id = "ert_shuttle_cargo_outer"; + name = "Cargo Hold Blastdoors"; + req_access = list("cent_general") + }, +/obj/machinery/door/poddoor{ + id = "ert_shuttle_cargo_outer" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/cargo) +"Zn" = ( +/obj/machinery/door/airlock/external/glass{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/ert/airlock/secondary) +"ZB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/landmark/ert_shuttle_spawn, +/obj/machinery/light/warm/dim/directional/west, +/turf/open/floor/catwalk_floor/flat_white, +/area/shuttle/ert) + +(1,1,1) = {" +DK +DK +AL +AL +AL +AL +AL +AL +hF +YD +KL +ad +ad +KL +KL +KL +KL +KL +KL +KL +DK +"} +(2,1,1) = {" +DK +DK +zy +qN +tM +Bu +yU +AL +Xf +fT +KL +Xm +CD +KL +Xd +gf +yB +UQ +aN +cq +DK +"} +(3,1,1) = {" +DK +DK +zy +hd +hd +im +vQ +AL +dY +xS +KL +yw +kS +KL +Hk +HZ +yg +pB +aN +cq +DK +"} +(4,1,1) = {" +DK +DK +yG +zX +DP +XQ +ee +AL +VJ +YD +KL +ao +pl +mz +sR +vm +kl +ar +aN +cq +DK +"} +(5,1,1) = {" +XT +XT +as +oW +as +as +xb +FI +Cq +qP +DD +vo +bW +JT +JT +JT +JT +wN +JT +JT +JT +"} +(6,1,1) = {" +RH +Ot +QQ +RL +NV +as +MA +bx +pm +pm +pE +ZB +MA +JT +QX +ko +wO +YB +uL +wN +EU +"} +(7,1,1) = {" +RH +Mu +vl +HN +Rj +as +MA +bd +Wc +Di +Di +Hu +MA +pv +Fl +XS +FX +XS +YL +gl +fH +"} +(8,1,1) = {" +RH +oT +aB +vT +ce +hJ +MA +mv +qT +LW +dG +Rq +Ys +nq +zC +lW +WP +rc +ln +gl +hu +"} +(9,1,1) = {" +RH +mZ +vl +Bd +nC +as +MA +Ln +EO +EO +EO +ap +MA +Cb +BP +kc +pO +kc +Ho +Zl +fH +"} +(10,1,1) = {" +RH +Ku +LZ +EB +vl +as +Mp +UE +pm +pm +qZ +rQ +MA +JT +aR +jw +Ql +GB +gF +JT +Hl +"} +(11,1,1) = {" +XT +XT +as +oW +as +as +xb +FI +nt +Il +DD +vo +aL +JT +JT +JT +JT +JT +JT +JT +JT +"} +(12,1,1) = {" +DK +DK +mM +nU +FL +nx +Wu +Wl +Zn +BE +Iq +XO +UX +sU +Xq +rM +Wg +Tv +Du +KK +DK +"} +(13,1,1) = {" +DK +DK +mM +Rg +JZ +Fi +eo +Wl +Cm +ON +Iq +Pt +UX +DB +qQ +uR +AM +dX +Du +KK +DK +"} +(14,1,1) = {" +DK +DK +mM +yJ +Hv +bv +nN +Wl +Ie +aH +Iq +WE +XH +Mq +xy +KA +Yw +iE +Du +KK +DK +"} +(15,1,1) = {" +DK +DK +Wl +Wl +Wl +Wl +Wl +Wl +LO +BE +Iq +XG +XG +XG +Iq +XG +XG +XG +Iq +Iq +DK +"} diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 02faa4f529df..6be8af3db530 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -336,7 +336,8 @@ ACCESS_VIROLOGY, \ ACCESS_WEAPONS, \ ACCESS_XENOBIOLOGY, \ -) /* monkestation edit: add permabrig-only access */ + ACCESS_BRIG_PHYSICIAN, \ +) // monkestation edit: add permabrig-only access. also added brig physician /// Command staff/secure accesses, think bridge/armoury, ai_upload, notably access to modify ID cards themselves. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_COMMAND) #define COMMAND_ACCESS list( \ @@ -366,7 +367,10 @@ ACCESS_HOP, \ ACCESS_QM, \ ACCESS_RD, \ + ACCESS_BLUESHIELD, \ + ACCESS_NT_REPRESENTATVE, \ ) +// MONKESTATION ADDITION: Added blueshield and nt rep above /// Captains private rooms. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_CAPTAIN) #define CAPTAIN_ACCESS list( \ @@ -462,7 +466,10 @@ ACCESS_PSYCHOLOGY, \ ACCESS_SURGERY, \ ACCESS_VIROLOGY, \ + ACCESS_BRIG_PHYSICIAN, \ ) +//MONKESTATION ADDITION: Added brig physcian access to above + /// Name for the Research region. #define REGION_RESEARCH "Research" /// Used to seed the accesses_by_region list in SSid_access. A list of all research regional accesses that are overseen by the RD. @@ -529,7 +536,11 @@ ACCESS_RC_ANNOUNCE, \ ACCESS_TELEPORTER, \ ACCESS_VAULT, \ + ACCESS_BLUESHIELD, \ + ACCESS_NT_REPRESENTATVE, \ ) +// MONKESTATION ADDITION: Added blueshield and nt rep to command region above + /// Name for the Centcom region. #define REGION_CENTCOM "Central Command" /// Used to seed the accesses_by_region list in SSid_access. A list of all CENTCOM_ACCESS regional accesses. diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 570a9a164355..e4a250ed0fdc 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -294,7 +294,7 @@ GLOBAL_LIST_INIT(book_types, typecacheof(list( #define is_bartender_job(job_type) (istype(job_type, /datum/job/bartender)) #define is_captain_job(job_type) (istype(job_type, /datum/job/captain)) #define is_chaplain_job(job_type) (istype(job_type, /datum/job/chaplain)) -#define is_clown_job(job_type) (istype(job_type, /datum/job/clown) || istype(job_type, /datum/job/yellowclown)) +#define is_clown_job(job_type) (istype(job_type, /datum/job/clown) || istype(job_type, /datum/job/yellowclown) || istype(job_type, /datum/job/ert/clown)) //monkestation edit: adds ERT clowns cus why not #define is_detective_job(job_type) (istype(job_type, /datum/job/detective)) #define is_scientist_job(job_type) (istype(job_type, /datum/job/scientist)) #define is_security_officer_job(job_type) (istype(job_type, /datum/job/security_officer)) diff --git a/code/datums/elements/decals/_decal.dm b/code/datums/elements/decals/_decal.dm index 71dd8abdf30f..2f6f2bcf391b 100644 --- a/code/datums/elements/decals/_decal.dm +++ b/code/datums/elements/decals/_decal.dm @@ -113,7 +113,7 @@ return TRUE /datum/element/decal/Detach(atom/source) - UnregisterSignal(source, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_ATOM_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_TURF_ON_SHUTTLE_MOVE, COMSIG_ATOM_SMOOTHED_ICON)) + UnregisterSignal(source, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_ATOM_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_TURF_ON_SHUTTLE_MOVE, COMSIG_ATOM_SMOOTHED_ICON, COMSIG_ATOM_DECALS_ROTATING)) SSdcs.UnregisterSignal(source, COMSIG_ATOM_DIR_CHANGE) source.update_appearance(UPDATE_OVERLAYS) if(isitem(source)) diff --git a/code/datums/ert.dm b/code/datums/ert.dm index 1ab5594e9497..4a461c4bec96 100644 --- a/code/datums/ert.dm +++ b/code/datums/ert.dm @@ -20,6 +20,12 @@ var/datum/map_template/ert_template /// If we should actually _use_ the ert_template custom shuttle var/use_custom_shuttle = TRUE + //MONKESTATION EDIT START + //If we want a custom name for the poll title + var/poll_title = "Emergency Response Team" + //If we want a custom poll icon + var/poll_icon = /obj/item/clothing/head/helmet/space/ert + //MONKESTATION EDIT END /datum/ert/New() if (!polldesc) @@ -126,3 +132,144 @@ mission = "Having heard the station's request for aid, assist the crew in defending themselves." polldesc = "an independent station defense militia" random_names = TRUE + +//MONKESTATION EDIT START +/datum/ert/code + leader_role = /datum/antagonist/ert/generic/commander + roles = list( + /datum/antagonist/ert/generic, + ) + teamsize = 6 + opendoors = FALSE + polldesc = "an Uncoded Emergency Response Team" + ert_template = /datum/map_template/shuttle/ert/dropship + +/datum/ert/code/green + leader_role = /datum/antagonist/ert/generic/commander + roles = list( + /datum/antagonist/ert/generic/medical, + /datum/antagonist/ert/generic/security, + /datum/antagonist/ert/generic/engineer, + /datum/antagonist/ert/generic/janitor, + /datum/antagonist/ert/generic/chaplain, + ) + code = "Green" + polldesc = NONE + opendoors = FALSE + ert_template = /datum/map_template/shuttle/ert/generic + +/datum/ert/code/green/with_clown + teamsize = 7 + roles = list( + /datum/antagonist/ert/generic/medical, + /datum/antagonist/ert/generic/security, + /datum/antagonist/ert/generic/engineer, + /datum/antagonist/ert/generic/janitor, + /datum/antagonist/ert/generic/chaplain, + /datum/antagonist/ert/generic/clown, // Honk + ) + +/datum/ert/code/blue + leader_role = /datum/antagonist/ert/generic/commander/blue + roles = list( + /datum/antagonist/ert/generic/medical/blue, + /datum/antagonist/ert/generic/security/blue, + /datum/antagonist/ert/generic/engineer/blue, + /datum/antagonist/ert/generic/janitor/blue, + /datum/antagonist/ert/generic/chaplain/blue, + ) + code = "Blue" + polldesc = NONE + opendoors = FALSE + ert_template = /datum/map_template/shuttle/ert/generic + +/datum/ert/code/blue/with_clown + teamsize = 7 + roles = list( + /datum/antagonist/ert/generic/medical/blue, + /datum/antagonist/ert/generic/security/blue, + /datum/antagonist/ert/generic/engineer/blue, + /datum/antagonist/ert/generic/janitor/blue, + /datum/antagonist/ert/generic/chaplain/blue, + /datum/antagonist/ert/generic/clown/funny, // Honk + ) + +/datum/ert/code/red + leader_role = /datum/antagonist/ert/generic/commander/red + roles = list( + /datum/antagonist/ert/generic/medical/red, + /datum/antagonist/ert/generic/security/red, + /datum/antagonist/ert/generic/engineer/red, + /datum/antagonist/ert/generic/janitor/red, + /datum/antagonist/ert/generic/chaplain/red, + ) + code = "Red" + polldesc = NONE + opendoors = TRUE + ert_template = /datum/map_template/shuttle/ert/generic + +/datum/ert/code/red/with_clown + teamsize = 7 + roles = list( + /datum/antagonist/ert/generic/medical/red, + /datum/antagonist/ert/generic/security/red, + /datum/antagonist/ert/generic/engineer/red, + /datum/antagonist/ert/generic/janitor/red, + /datum/antagonist/ert/generic/chaplain/red, + /datum/antagonist/ert/generic/clown/funnier, // Honk + ) + +/datum/ert/code/honk + leader_role = /datum/antagonist/ert/generic/clown/funny + roles = list( + /datum/antagonist/ert/generic/clown, + ) + code = "Honk" + polldesc = NONE + opendoors = FALSE + ert_template = /datum/map_template/shuttle/ert/dropship/clown + +/datum/ert/code/purple + leader_role = /datum/antagonist/ert/generic/janitor/blue + roles = list( + /datum/antagonist/ert/generic/janitor, + ) + opendoors = FALSE + ert_template = /datum/map_template/shuttle/ert/dropship/janitor + mission = "Clean up EVERYTHING." + poll_icon = /obj/item/clothing/head/helmet/space/ert/janitor + polldesc = "a Nanotrasen Janitorial Response Team" + +/datum/ert/code/lambda + leader_role = /datum/antagonist/ert/generic/chaplain/red + roles = list( + /datum/antagonist/ert/generic/chaplain/red, + ) + code = "Lambda" + polldesc = NONE + opendoors = FALSE + teamsize = 5 + poll_icon = /obj/item/clothing/head/helmet/space/ert/chaplain + ert_template = /datum/map_template/shuttle/ert/dropship + +/datum/ert/code/epsilon + leader_role = /datum/antagonist/ert/generic/deathsquad + roles = list( + /datum/antagonist/ert/generic/deathsquad, + ) + opendoors = FALSE + rename_team = "Deathsquad" + code = "Epsilon" + mission = "Leave no witnesses." + teamsize = 5 + poll_title = "Deathsquad" + poll_icon = /obj/item/clothing/mask/gas/sechailer/swat + polldesc = "an elite Nanotrasen Strike Team" + ert_template = /datum/map_template/shuttle/ert/deathsquad + +/datum/ert/code/epsilon/dust + leader_role = /datum/antagonist/ert/generic/deathsquad/dust + roles = list( + /datum/antagonist/ert/generic/deathsquad/dust, + ) +//MONKESTATION EDIT END diff --git a/code/datums/id_trim/centcom.dm b/code/datums/id_trim/centcom.dm index c8adf5925c22..53382c658cda 100644 --- a/code/datums/id_trim/centcom.dm +++ b/code/datums/id_trim/centcom.dm @@ -173,7 +173,7 @@ /// Trim for generic ERT janitors. No universal ID card changing access. /datum/id_trim/centcom/ert/janitor assignment = JOB_ERT_JANITOR - trim_state = "trim_ert_janitor" + trim_state = "trim_janitor" subdepartment_color = COLOR_SERVICE_LIME sechud_icon_state = SECHUD_JANITORIAL_RESPONSE_OFFICER diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm index 21e13d86cad4..f9db8013ca17 100644 --- a/code/game/objects/items/control_wand.dm +++ b/code/game/objects/items/control_wand.dm @@ -3,17 +3,19 @@ #define WAND_EMERGENCY "emergency" /obj/item/door_remote - icon_state = "gangtool-white" + icon_state = "remote_omni_open" inhand_icon_state = "electronic" lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' - icon = 'icons/obj/device.dmi' + icon = 'icons/obj/devices/remote.dmi' //monkestation edit name = "control wand" desc = "Remotely controls airlocks." w_class = WEIGHT_CLASS_TINY var/mode = WAND_OPEN var/region_access = REGION_GENERAL var/list/access_list + //monkestation addition: remote type for the purpose of updating the icon + var/remote_type = "omni" /obj/item/door_remote/Initialize(mapload) . = ..() @@ -28,6 +30,7 @@ mode = WAND_EMERGENCY if(WAND_EMERGENCY) mode = WAND_OPEN + icon_state = "remote_[remote_type]_[mode]" //monkestation addition balloon_alert(user, "mode: [desc[mode]]") // Airlock remote works by sending NTNet packets to whatever it's pointed at. @@ -85,44 +88,50 @@ /obj/item/door_remote/omni name = "omni door remote" - desc = "This control wand can access any door on the station." - icon_state = "gangtool-yellow" + desc = "Remotely controls airlocks. This remote can access any door on the station." //monkestation edit region_access = REGION_ALL_STATION /obj/item/door_remote/captain name = "command door remote" - icon_state = "gangtool-yellow" + icon_state = "remote_command_open" //monkestation edit + remote_type = "command" //monkestation edit region_access = REGION_COMMAND /obj/item/door_remote/chief_engineer name = "engineering door remote" - icon_state = "gangtool-orange" + icon_state = "remote_engi_open" //monkestation edit + remote_type = "engi" //monkestation edit region_access = REGION_ENGINEERING /obj/item/door_remote/research_director name = "research door remote" - icon_state = "gangtool-purple" + icon_state = "remote_sci_open" //monkestation edit + remote_type = "sci" //monkestation edit region_access = REGION_RESEARCH /obj/item/door_remote/head_of_security name = "security door remote" - icon_state = "gangtool-red" + icon_state = "remote_security_open" //monkestation edit + remote_type = "security" //monkestation edit region_access = REGION_SECURITY /obj/item/door_remote/quartermaster name = "supply door remote" desc = "Remotely controls airlocks. This remote has additional Vault access." - icon_state = "gangtool-green" + icon_state = "remote_cargo_open" //monkestation edit + remote_type = "cargo" //monkestation edit region_access = REGION_SUPPLY /obj/item/door_remote/chief_medical_officer name = "medical door remote" - icon_state = "gangtool-blue" + icon_state = "remote_med_open" //monkestation edit + remote_type = "med" //monkestation edit region_access = REGION_MEDBAY /obj/item/door_remote/civilian name = "civilian+supply door remote" - icon_state = "gangtool-white" + icon_state = "remote_civilian_open" //monkestation edit + remote_type = "civilian" //monkestation edit region_access = (REGION_GENERAL && REGION_SUPPLY) //monkestation addition #undef WAND_OPEN diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 28ba42ec8649..83053da43c3e 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -201,12 +201,23 @@ icon_state = "backpack-virology" inhand_icon_state = "viropack" +//MONKESTATION EDIT START// adds generic backpack and touches up the sprites /obj/item/storage/backpack/ert + name = "emergency response team backpack" + desc = "A spacious backpack with lots of pockets." + icon_state = "ert_plain" + inhand_icon_state = "securitypack" + resistance_flags = FIRE_PROOF + alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER + +/obj/item/storage/backpack/ert/Initialize(mapload) + . = ..() + atom_storage.max_total_storage = 25 //lots of pockets + +/obj/item/storage/backpack/ert/commander name = "emergency response team commander backpack" desc = "A spacious backpack with lots of pockets, worn by the Commander of an Emergency Response Team." icon_state = "ert_commander" - inhand_icon_state = "securitypack" - resistance_flags = FIRE_PROOF /obj/item/storage/backpack/ert/security name = "emergency response team security backpack" @@ -233,6 +244,12 @@ desc = "A spacious backpack with lots of pockets, worn by Clowns of an Emergency Response Team." icon_state = "ert_clown" +/obj/item/storage/backpack/ert/generic + name = "emergency response team backpack" + desc = "A spacious backpack with lots of pockets" + icon_state = "ert_generic" +//MONKESTATION EDIT STOP + /obj/item/storage/backpack/saddlepack name = "saddlepack" desc = "A backpack designed to be saddled on a mount or carried on your back, and switch between the two on the fly. It's quite spacious, at the cost of making you feel like a literal pack mule." diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index dc35fcbab53c..d3b429b68ed0 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -281,7 +281,7 @@ desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." icon = 'icons/obj/mining.dmi' icon_state = "sheetsnatcher" - worn_icon_state = "satchel" + worn_icon_state = "construction_bag" //monkestation edit var/capacity = 300; //the number of sheets it can carry. diff --git a/code/modules/admin/verbs/ert.dm b/code/modules/admin/verbs/ert.dm index 988f6ca344e8..786effac83e1 100644 --- a/code/modules/admin/verbs/ert.dm +++ b/code/modules/admin/verbs/ert.dm @@ -141,7 +141,7 @@ var/list/spawnpoints = GLOB.emergencyresponseteamspawn var/index = 0 - var/list/mob/dead/observer/candidates = SSpolling.poll_ghost_candidates("Do you wish to be considered for [ertemplate.polldesc]?", check_jobban = "deathsquad", alert_pic = /obj/item/card/id/advanced/centcom/ert, role_name_text = "emergency response team") + var/list/mob/dead/observer/candidates = SSpolling.poll_ghost_candidates("Do you wish to be considered for [ertemplate.polldesc]?", check_jobban = "deathsquad", alert_pic = ertemplate.poll_icon, role_name_text = "[ertemplate.poll_title]") //monkestation edit: adds custom poll titles var/teamSpawned = FALSE // This list will take priority over spawnpoints if not empty diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 2c3248a0445a..518a1cd28e18 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -77,21 +77,21 @@ /datum/antagonist/ert/security // kinda handled by the base template but here for completion /datum/antagonist/ert/security/red - outfit = /datum/outfit/centcom/ert/security/alert + outfit = /datum/outfit/centcom/ert/security/red /datum/antagonist/ert/engineer role = "Engineer" outfit = /datum/outfit/centcom/ert/engineer /datum/antagonist/ert/engineer/red - outfit = /datum/outfit/centcom/ert/engineer/alert + outfit = /datum/outfit/centcom/ert/engineer/red /datum/antagonist/ert/medic role = "Medical Officer" outfit = /datum/outfit/centcom/ert/medic /datum/antagonist/ert/medic/red - outfit = /datum/outfit/centcom/ert/medic/alert + outfit = /datum/outfit/centcom/ert/medic/red /datum/antagonist/ert/commander role = "Commander" @@ -99,7 +99,7 @@ plasmaman_outfit = /datum/outfit/plasmaman/centcom_commander /datum/antagonist/ert/commander/red - outfit = /datum/outfit/centcom/ert/commander/alert + outfit = /datum/outfit/centcom/ert/commander/red /datum/antagonist/ert/janitor role = "Janitor" diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 73e6af9a90a3..778cbe834bf1 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -50,7 +50,7 @@ l_pocket = /obj/item/switchblade additional_radio = /obj/item/encryptionkey/heads/captain -/datum/outfit/centcom/ert/commander/alert +/datum/outfit/centcom/ert/commander/red name = "ERT Commander - High Alert" backpack_contents = list( @@ -76,7 +76,7 @@ gloves = /obj/item/clothing/gloves/tackler/combat/insulated additional_radio = /obj/item/encryptionkey/heads/hos -/datum/outfit/centcom/ert/security/alert +/datum/outfit/centcom/ert/security/red name = "ERT Security - High Alert" l_hand = /obj/item/gun/energy/pulse/carbine/loyalpin @@ -104,7 +104,7 @@ l_pocket = /obj/item/healthanalyzer/advanced additional_radio = /obj/item/encryptionkey/heads/cmo -/datum/outfit/centcom/ert/medic/alert +/datum/outfit/centcom/ert/medic/red name = "ERT Medic - High Alert" backpack_contents = list( @@ -133,7 +133,7 @@ l_pocket = /obj/item/rcd_ammo/large additional_radio = /obj/item/encryptionkey/heads/ce -/datum/outfit/centcom/ert/engineer/alert +/datum/outfit/centcom/ert/engineer/red name = "ERT Engineer - High Alert" backpack_contents = list( diff --git a/code/modules/clothing/under/jobs/centcom.dm b/code/modules/clothing/under/jobs/centcom.dm index 2ed48e066dde..967f95abd70d 100644 --- a/code/modules/clothing/under/jobs/centcom.dm +++ b/code/modules/clothing/under/jobs/centcom.dm @@ -61,6 +61,7 @@ icon_state = "military" inhand_icon_state = "bl_suit" armor_type = /datum/armor/centcom_military + can_adjust = FALSE //monkestation edit /datum/armor/centcom_military melee = 10 diff --git a/code/modules/jobs/job_types/ert/ert_generic.dm b/code/modules/jobs/job_types/ert/ert_generic.dm index 4758ac75b285..87af77b3198a 100644 --- a/code/modules/jobs/job_types/ert/ert_generic.dm +++ b/code/modules/jobs/job_types/ert/ert_generic.dm @@ -1,2 +1,38 @@ /datum/job/ert_generic - title = "ERT Generic" + title = "Emergency Response Officer" //monkestation edit + +//MONKESTATION EDIT START +/datum/job/ert/generic + title = "Emergency Response Officer" + liver_traits = list(TRAIT_PRETENDER_ROYAL_METABOLISM) + +/datum/job/ert/commander + title = JOB_ERT_COMMANDER + liver_traits = list(TRAIT_ROYAL_METABOLISM) + +/datum/job/ert/security + title = JOB_ERT_OFFICER + liver_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM) + +/datum/job/ert/medical + title = JOB_ERT_MEDICAL_DOCTOR + liver_traits = list(TRAIT_MEDICAL_METABOLISM) + +/datum/job/ert/engineer + title = JOB_ERT_ENGINEER + liver_traits = list(TRAIT_ENGINEER_METABOLISM) + +/datum/job/ert/janitor + title = JOB_ERT_JANITOR + +/datum/job/ert/chaplain + title = JOB_ERT_CHAPLAIN + +/datum/job/ert/clown + title = JOB_ERT_CLOWN + liver_traits = list(TRAIT_COMEDY_METABOLISM) + +/datum/job/ert/deathsquad + title = JOB_ERT_DEATHSQUAD + liver_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM) //from humble beginnings sipping quadsec and harm batoning clowns + diff --git a/code/modules/mapping/access_helpers.dm b/code/modules/mapping/access_helpers.dm index 25ffbab8dd85..6fc6640fe077 100644 --- a/code/modules/mapping/access_helpers.dm +++ b/code/modules/mapping/access_helpers.dm @@ -502,6 +502,11 @@ access_list += list(ACCESS_CENT_CAPTAIN) return access_list +/obj/effect/mapping_helpers/airlock/access/any/admin/specops/get_access() + var/list/access_list = ..() + access_list += list(ACCESS_CENT_SPECOPS) + return access_list + /obj/effect/mapping_helpers/airlock/access/any/admin/bar/get_access() var/list/access_list = ..() access_list += list(ACCESS_CENT_CAPTAIN) diff --git a/code/modules/mod/modules/modules_service.dm b/code/modules/mod/modules/modules_service.dm index 5381a26e88bd..39deff090871 100644 --- a/code/modules/mod/modules/modules_service.dm +++ b/code/modules/mod/modules/modules_service.dm @@ -80,3 +80,21 @@ mod.wearer.RemoveElement(/datum/element/waddling) if(is_clown_job(mod.wearer.mind?.assigned_role)) mod.wearer.clear_mood_event("clownshoes") + +// recharging cleaner spray module +/obj/item/mod/module/mister/cleaner + name = "MOD janitorial mister module" + desc = "An space cleaner mister, able to clean up messes quickly. Synthesizes its own supply over time (if active)." + device = /obj/item/reagent_containers/spray/mister/janitor + volume = 100 + active_power_cost = DEFAULT_CHARGE_DRAIN + +/obj/item/mod/module/mister/cleaner/Initialize(mapload) + . = ..() + reagents.flags = AMOUNT_VISIBLE + reagents.add_reagent(/datum/reagent/space_cleaner, volume) + +/obj/item/mod/module/mister/cleaner/on_active_process(seconds_per_tick) + var/refill_add = min(volume - reagents.total_volume, 2 * seconds_per_tick) + if(refill_add > 0) + reagents.add_reagent(/datum/reagent/space_cleaner, refill_add) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index a8349b751a74..707dc86974d6 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -41,6 +41,7 @@ name = "tactical energy gun" desc = "Military issue energy gun, is able to fire stun rounds." icon_state = "energytac" + cell_type = /obj/item/stock_parts/cell/upgraded //monkestation ADDITION ammo_x_offset = 2 ammo_type = list(/obj/item/ammo_casing/energy/electrode/spec, /obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 3266a8a309ee..c6ce17386bbe 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -142,9 +142,9 @@ . = ..() if (!QDELETED(target) && (isturf(target) || isstructure(target))) if(isobj(target)) - SSexplosions.med_mov_atom += target + SSexplosions.low_mov_atom += target //monkestation edit else - SSexplosions.medturf += target + SSexplosions.lowturf += target //monkestation edit /obj/projectile/beam/pulse/shotgun damage = 30 @@ -152,6 +152,7 @@ /obj/projectile/beam/pulse/heavy name = "heavy pulse laser" icon_state = "pulse1_bl" + damage = 100 //monkestation addition projectile_piercing = ALL var/pierce_hits = 2 @@ -159,7 +160,7 @@ if(pierce_hits <= 0) projectile_piercing = NONE pierce_hits -= 1 - ..() + return ..() /obj/projectile/beam/emitter name = "emitter beam" diff --git a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm index 0e147ec37665..dc32e7b925d9 100644 --- a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm +++ b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm @@ -81,13 +81,17 @@ return /turf/closed/wall/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill, mob/user) + playsound(src,'sound/weapons/drill.ogg',40,TRUE) //monkestation edit if(drill.do_after_mecha(src, user, 60 / drill.drill_level)) drill.log_message("Drilled through [src]", LOG_MECHA) + playsound(src,'sound/weapons/drill.ogg',40,TRUE) //monkestation edit dismantle_wall(TRUE, FALSE) /turf/closed/wall/r_wall/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill, mob/user) if(drill.drill_level >= DRILL_HARDENED) + playsound(src,'sound/weapons/drill.ogg',40,TRUE) //monkestation edit if(drill.do_after_mecha(src, user, 120 / drill.drill_level)) + playsound(src,'sound/weapons/drill.ogg',40,TRUE) //monkestation edit drill.log_message("Drilled through [src]", LOG_MECHA) dismantle_wall(TRUE, FALSE) else @@ -95,7 +99,9 @@ /turf/closed/mineral/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill, mob/user) for(var/turf/closed/mineral/M in range(drill.chassis,1)) + playsound(src,'sound/weapons/drill.ogg',40,TRUE) //monkestation edit if(get_dir(drill.chassis,M)&drill.chassis.dir) + playsound(src,'sound/weapons/drill.ogg',40,TRUE) //monkestation edit M.gets_drilled() drill.log_message("[user] drilled through [src]", LOG_MECHA) drill.move_ores() diff --git a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm index 8ccb7a73b4fe..ae87aff1457c 100644 --- a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm +++ b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm @@ -36,8 +36,68 @@ return if(!cargo_holder) return + if(isliving(target)) //monkestation edit: also threw this if statement up here used to be at the very bottom + var/mob/living/M = target + if(M.stat == DEAD) + return + + if(!(source.istate && ISTATE_HARM)) //monkestation edit + step_away(M,chassis) + if(killer_clamp) + target.visible_message(span_danger("[chassis] tosses [target] like a piece of paper!"), \ + span_userdanger("[chassis] tosses you like a piece of paper!")) + else + to_chat(source, "[icon2html(src, source)][span_notice("You push [target] out of the way.")]") + chassis.visible_message(span_notice("[chassis] pushes [target] out of the way."), \ + span_notice("[chassis] pushes you aside.")) + return ..() + if((source.istate && ISTATE_HARM) && ishuman(M))//meme clamp here: monkestation edit that comment was here before + if(!killer_clamp) + to_chat(source, span_notice("You longingly wish to tear [M]'s arms off.")) + return + var/mob/living/carbon/C = target + var/torn_off = FALSE + var/obj/item/bodypart/affected = C.get_bodypart(BODY_ZONE_L_ARM) + if(affected != null) + affected.dismember(damtype) + torn_off = TRUE + affected = C.get_bodypart(BODY_ZONE_R_ARM) + if(affected != null) + affected.dismember(damtype) + torn_off = TRUE + if(!torn_off) + to_chat(source, span_notice("[M]'s arms are already torn off, you must find a challenger worthy of the kill clamp!")) + return + playsound(src, get_dismember_sound(), 80, TRUE) + target.visible_message(span_danger("[chassis] rips [target]'s arms off!"), \ + span_userdanger("[chassis] rips your arms off!")) + log_combat(source, M, "removed both arms with a real clamp,", "[name]", "(COMBAT MODE: [uppertext((source.istate & ISTATE_HARM))] (DAMTYPE: [uppertext(damtype)])") + return ..() + + playsound(src, clampsound, 40, TRUE) //monkestation addition + M.take_overall_damage(clamp_damage) + if(!M) //get gibbed stoopid + return + M.adjustOxyLoss(round(clamp_damage/2)) + M.updatehealth() + target.visible_message(span_danger("[chassis] squeezes [target]!"), \ + span_userdanger("[chassis] squeezes you!"),\ + span_hear("You hear something crack.")) + log_combat(source, M, "attacked", "[name]", "(Combat mode: [(source.istate & ISTATE_HARM) ? "On" : "Off"]) (DAMTYPE: [uppertext(damtype)])") + return ..() + if(ismecha(target)) var/obj/vehicle/sealed/mecha/M = target + //MONKESTATION EDIT START + if(source.istate && ISTATE_HARM && killer_clamp) + playsound(src, clampsound, 40, TRUE) //monkestation addition + M.take_damage(300, BRUTE) + target.visible_message(span_danger("[chassis] squeezes [target]!"), \ + span_userdanger("[chassis] squeezes you!"),\ + span_hear("You hear something crack.")) + log_combat(source, M, "attacked", "[name]", "(Combat mode: [(source.istate & ISTATE_HARM) ? "On" : "Off"]) (DAMTYPE: [uppertext(damtype)])") + return + //MONKESTATION EDIT STOP var/have_ammo for(var/obj/item/mecha_ammo/box in cargo_holder.cargo) if(istype(box, /obj/item/mecha_ammo) && box.rounds) @@ -81,53 +141,6 @@ to_chat(source, "[icon2html(src, source)][span_notice("[target] successfully loaded.")]") log_message("Loaded [clamptarget]. Cargo compartment capacity: [cargo_holder.cargo_capacity - LAZYLEN(cargo_holder.cargo)]", LOG_MECHA) - else if(isliving(target)) - var/mob/living/M = target - if(M.stat == DEAD) - return - - if(!(source.istate & ISTATE_HARM)) - step_away(M,chassis) - if(killer_clamp) - target.visible_message(span_danger("[chassis] tosses [target] like a piece of paper!"), \ - span_userdanger("[chassis] tosses you like a piece of paper!")) - else - to_chat(source, "[icon2html(src, source)][span_notice("You push [target] out of the way.")]") - chassis.visible_message(span_notice("[chassis] pushes [target] out of the way."), \ - span_notice("[chassis] pushes you aside.")) - return ..() - else if((source.istate & ISTATE_SECONDARY) && iscarbon(M))//meme clamp here - if(!killer_clamp) - to_chat(source, span_notice("You longingly wish to tear [M]'s arms off.")) - return - var/mob/living/carbon/C = target - var/torn_off = FALSE - var/obj/item/bodypart/affected = C.get_bodypart(BODY_ZONE_L_ARM) - if(affected != null) - affected.dismember(damtype) - torn_off = TRUE - affected = C.get_bodypart(BODY_ZONE_R_ARM) - if(affected != null) - affected.dismember(damtype) - torn_off = TRUE - if(!torn_off) - to_chat(source, span_notice("[M]'s arms are already torn off, you must find a challenger worthy of the kill clamp!")) - return - playsound(src, get_dismember_sound(), 80, TRUE) - target.visible_message(span_danger("[chassis] rips [target]'s arms off!"), \ - span_userdanger("[chassis] rips your arms off!")) - log_combat(source, M, "removed both arms with a real clamp,", "[name]", "(COMBAT MODE: [uppertext((source.istate & ISTATE_HARM))] (DAMTYPE: [uppertext(damtype)])") - return ..() - - M.take_overall_damage(clamp_damage) - if(!M) //get gibbed stoopid - return - M.adjustOxyLoss(round(clamp_damage/2)) - M.updatehealth() - target.visible_message(span_danger("[chassis] squeezes [target]!"), \ - span_userdanger("[chassis] squeezes you!"),\ - span_hear("You hear something crack.")) - log_combat(source, M, "attacked", "[name]", "(Combat mode: [(source.istate & ISTATE_HARM) ? "On" : "Off"]) (DAMTYPE: [uppertext(damtype)])") return ..() diff --git a/icons/mob/clothing/back/backpack.dmi b/icons/mob/clothing/back/backpack.dmi index e9345f018b0a..db64416b77df 100644 Binary files a/icons/mob/clothing/back/backpack.dmi and b/icons/mob/clothing/back/backpack.dmi differ diff --git a/icons/obj/storage/backpack.dmi b/icons/obj/storage/backpack.dmi index a504e9c9e415..652f750907a4 100644 Binary files a/icons/obj/storage/backpack.dmi and b/icons/obj/storage/backpack.dmi differ diff --git a/icons/obj/storage/box.dmi b/icons/obj/storage/box.dmi index b7a793d72091..13ebe894bf1f 100644 Binary files a/icons/obj/storage/box.dmi and b/icons/obj/storage/box.dmi differ diff --git a/monkestation/code/modules/ERT/ERT_outfits.dm b/monkestation/code/modules/ERT/ERT_outfits.dm new file mode 100644 index 000000000000..432a00258836 --- /dev/null +++ b/monkestation/code/modules/ERT/ERT_outfits.dm @@ -0,0 +1,717 @@ +// this is going to be so much work but let's see how far i can get +//----------------- +// Ordering: +// ROLES +// *Generic +// *Commander +// *Medic +// *Security Officer +// *Engineer +// *Janitor +// *Chaplain +// *Clown +// OTHER + +/datum/antagonist/ert/generic + name = "Emergency Response Officer" + role = "Officer" + outfit = /datum/outfit/centcom/ert/generic + ert_job_path = /datum/job/ert/generic + +/datum/antagonist/ert/generic/greet() + ..() + owner.current.playsound_local(get_turf(owner.current), 'monkestation/sound/ambience/antag/ert.ogg', 100, 0, use_reverb = FALSE) //monkestation addition + +/datum/outfit/centcom/ert/generic + name = "Emergency Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/generic + box = /obj/item/storage/box/survival/ert + uniform = /obj/item/clothing/under/rank/centcom/officer + ears = /obj/item/radio/headset/headset_cent/alt + gloves = /obj/item/clothing/gloves/combat + mask = /obj/item/clothing/mask/gas/sechailer/swat/ert + shoes = /obj/item/clothing/shoes/combat + suit = /obj/item/clothing/suit/space/ert + suit_store = /obj/item/gun/energy/e_gun + head = /obj/item/clothing/head/helmet/space/ert + belt = /obj/item/tank/jetpack/oxygen/harness + back = /obj/item/storage/backpack/ert/generic + backpack_contents = list( + /obj/item/storage/medkit/regular = 1, + /obj/item/knife/combat = 1, + ) + glasses = /obj/item/clothing/glasses/sunglasses + l_pocket = /obj/item/melee/baton/telescopic + r_pocket = /obj/item/restraints/handcuffs + +/datum/outfit/centcom/ert/generic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/cyberlink/nt_high/cyberlink = new() + cyberlink.Insert(H, drop_if_replaced = FALSE) + var/obj/item/organ/internal/cyberimp/chest/nutriment/plus/nutriment_pump = new() + nutriment_pump.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/commander + name = "Code Green Emergency Response Team Commander" + role = "Commander" + outfit = /datum/outfit/centcom/ert/generic/commander + plasmaman_outfit = /datum/outfit/plasmaman/centcom_commander + ert_job_path = /datum/job/ert/commander + +/datum/outfit/centcom/ert/generic/commander + name = "Code Green Emergency Response Team Commander" + + id = /obj/item/card/id/advanced/centcom/ert/generic/commander + suit = /obj/item/clothing/suit/space/ert/commander + head = /obj/item/clothing/head/helmet/space/ert/commander + back = /obj/item/storage/backpack/ert/commander + backpack_contents = list( + /obj/item/storage/medkit/regular = 1, + /obj/item/knife/combat = 1, + /obj/item/pinpointer/nuke = 1, + ) + glasses = /obj/item/clothing/glasses/sunglasses/big //bigger sunglasses means they are cooler and have more authority + additional_radio = /obj/item/encryptionkey/heads/captain + skillchips = list(/obj/item/skillchip/disk_verifier, /obj/item/skillchip/job/research_director) + +/datum/antagonist/ert/generic/commander/blue + name = "Code Blue Emergency Response Team Commander" + outfit = /datum/outfit/centcom/ert/generic/commander/blue + +/datum/outfit/centcom/ert/generic/commander/blue + name = "Code Blue Emergency Response Team Commander" + + shoes = /obj/item/clothing/shoes/magboots + backpack_contents = list( + /obj/item/storage/medkit/regular = 1, + /obj/item/knife/combat = 1, + /obj/item/door_remote/omni = 1, + /obj/item/pinpointer/nuke = 1, + /obj/item/gun/ballistic/automatic/pistol/m1911 = 1, + /obj/item/ammo_box/magazine/m45 = 1, + ) + l_hand = /obj/item/storage/lockbox/loyalty + +/datum/outfit/centcom/ert/generic/commander/blue/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/eyes/hud/security/sec_hud = new() + sec_hud.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/commander/red + name = "Code Red Emergency Response Team Commander" + outfit = /datum/outfit/centcom/ert/generic/commander/red + +/datum/outfit/centcom/ert/generic/commander/red + name = "Code Red Emergency Response Team Commander" + + id = /obj/item/card/id/advanced/centcom/ert + suit = null + suit_store = /obj/item/gun/energy/e_gun/stun + head = null + belt = /obj/item/storage/belt/security/full/bola + back = /obj/item/mod/control/pre_equipped/responsory/generic/commander + backpack_contents = list( + /obj/item/storage/medkit/advanced = 1, + /obj/item/knife/combat = 1, + /obj/item/door_remote/omni = 1, + /obj/item/pinpointer/nuke = 1, + /obj/item/storage/box/syndie_kit/imp_deathrattle/nanotrasen = 1, + /obj/item/gun/ballistic/automatic/pistol/m1911 = 1, + /obj/item/ammo_box/magazine/m45 = 2, + ) + glasses = /obj/item/clothing/glasses/night + r_pocket = /obj/item/holosign_creator/security + l_hand = /obj/item/storage/lockbox/loyalty + +/datum/outfit/centcom/ert/generic/commander/red/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/eyes/hud/security/sec_hud = new() + sec_hud.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/medical + name = "Code Green Medical Response Officer" + role = "Medical Officer" + outfit = /datum/outfit/centcom/ert/generic/medical + ert_job_path = /datum/job/ert/medical + +/datum/outfit/centcom/ert/generic/medical + name = "Code Green Medical Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/generic/medical + gloves = /obj/item/clothing/gloves/latex/nitrile + suit = /obj/item/clothing/suit/space/ert/medical + suit_store = /obj/item/gun/energy/e_gun/mini + head = /obj/item/clothing/head/helmet/space/ert/medical + back = /obj/item/storage/backpack/ert/medical + backpack_contents = list( + /obj/item/storage/medkit/surgery = 1, + /obj/item/storage/belt/medical/paramedic = 1, + /obj/item/defibrillator/compact/loaded = 1, + /obj/item/emergency_bed = 1, + ) + glasses = /obj/item/clothing/glasses/hud/health/sunglasses + additional_radio = /obj/item/encryptionkey/headset_med + skillchips = list(/obj/item/skillchip/entrails_reader) + +/datum/antagonist/ert/generic/medical/blue + name = "Code Blue Medical Response Officer" + outfit = /datum/outfit/centcom/ert/generic/medical + +/datum/outfit/centcom/ert/generic/medical/blue + name = "Code Blue Medical Response Officer" + + shoes = /obj/item/clothing/shoes/magboots + gloves = /obj/item/clothing/gloves/latex/surgical + suit_store = /obj/item/gun/energy/e_gun + backpack_contents = list( + /obj/item/storage/medkit/advanced = 1, + /obj/item/storage/box/medipens = 1, + /obj/item/storage/belt/medical/ert = 1, + /obj/item/defibrillator/compact/loaded = 1, + /obj/item/reagent_containers/hypospray/cmo = 1, //this shouldn't cause any problems? + /obj/item/emergency_bed = 1, + /obj/item/healthanalyzer/advanced = 1, + ) + +/datum/antagonist/ert/generic/medical/red + name = "Code Red Medical Response Officer" + outfit = /datum/outfit/centcom/ert/generic/medical/red + +/datum/outfit/centcom/ert/generic/medical/red + name = "Code Red Medical Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/medical + suit = null + gloves = /obj/item/clothing/gloves/latex/surgical + suit_store = /obj/item/gun/energy/e_gun/stun + head = null + belt = /obj/item/defibrillator/compact/combat/loaded/nanotrasen + back = /obj/item/mod/control/pre_equipped/responsory/generic/medic + backpack_contents = list( + /obj/item/storage/medkit/advanced = 1, + /obj/item/storage/box/medipens = 1, + /obj/item/storage/belt/medical/paramedic = 1, + /obj/item/reagent_containers/hypospray/combat = 1, + /obj/item/pinpointer/crew = 1, + /obj/item/emergency_bed = 1, + /obj/item/healthanalyzer/advanced = 1, + ) + glasses = /obj/item/clothing/glasses/night + r_pocket = /obj/item/holosign_creator/security + additional_radio = /obj/item/encryptionkey/heads/cmo + +/datum/outfit/centcom/ert/generic/medical/red/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/arm/item_set/surgery/surgery_toolset = new() + surgery_toolset.Insert(H, drop_if_replaced = FALSE) + var/obj/item/organ/internal/cyberimp/eyes/hud/medical/med_hud = new() + med_hud.Insert(H, drop_if_replaced = FALSE) + var/obj/item/organ/internal/cyberimp/brain/linked_surgery/serverlink = new() + serverlink.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/security + name = "Code Green Security Response Officer" + role = "Security Officer" + outfit = /datum/outfit/centcom/ert/generic/security + ert_job_path = /datum/job/ert/security + +/datum/outfit/centcom/ert/generic/security + name = "Code Green Security Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/generic/security + suit = /obj/item/clothing/suit/space/ert/security + head = /obj/item/clothing/head/helmet/space/ert/security + back = /obj/item/storage/backpack/ert/security + backpack_contents = list( + /obj/item/knife/combat = 1, + /obj/item/grenade/flashbang = 2, + /obj/item/storage/belt/security/full/bola = 1, + ) + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + r_pocket = /obj/item/holosign_creator/security + additional_radio = /obj/item/encryptionkey/headset_sec + +/datum/antagonist/ert/generic/security/blue + name = "Code Blue Security Response Officer" + outfit = /datum/outfit/centcom/ert/generic/security/blue + +/datum/outfit/centcom/ert/generic/security/blue + name = "Code Blue Security Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/generic/security + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + shoes = /obj/item/clothing/shoes/magboots + suit = /obj/item/clothing/suit/space/ert/security + suit_store = /obj/item/gun/energy/laser + back = /obj/item/storage/backpack/ert/security + backpack_contents = list( + /obj/item/knife/combat = 1, + /obj/item/storage/box/teargas = 1, + /obj/item/grenade/flashbang = 2, + /obj/item/gun/energy/disabler = 1, + /obj/item/storage/belt/security/full/bola = 1, + ) + +/datum/antagonist/ert/generic/security/red + name = "Code Red Security Response Officer" + outfit = /datum/outfit/centcom/ert/generic/security/red + +/datum/outfit/centcom/ert/generic/security/red + name = "Code Red Security Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/security + suit = null + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + suit_store = /obj/item/gun/energy/e_gun/stun + head = null + belt = /obj/item/storage/belt/security/full/bola + back = /obj/item/mod/control/pre_equipped/responsory/generic/security + backpack_contents = list( + /obj/item/knife/combat = 1, + /obj/item/storage/box/teargas = 1, + /obj/item/storage/box/flashbangs = 1, + /obj/item/storage/box/stingbangs = 1, + /obj/item/shield/riot/tele = 1, + ) + glasses = /obj/item/clothing/glasses/night + additional_radio = /obj/item/encryptionkey/heads/hos + +/datum/outfit/centcom/ert/generic/security/red/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/eyes/hud/security/sec_hud = new() + sec_hud.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/engineer + name = "Code Green Engineering Response Officer" + role = "Engineering Officer" + outfit = /datum/outfit/centcom/ert/generic/engineer + ert_job_path = /datum/job/ert/engineer + +/datum/outfit/centcom/ert/generic/engineer + name = "Code Green Engineering Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/generic/engineer + shoes = /obj/item/clothing/shoes/magboots + suit = /obj/item/clothing/suit/space/ert/engineer + suit_store = /obj/item/gun/energy/e_gun/mini + head = /obj/item/clothing/head/helmet/space/ert/engineer + back = /obj/item/storage/backpack/ert/engineer + backpack_contents = list( + /obj/item/storage/belt/utility/full/engi = 1, + /obj/item/construction/rcd/loaded = 1, + /obj/item/rcd_ammo/large = 1, + /obj/item/analyzer = 1, + /obj/item/extinguisher = 1, + /obj/item/pipe_dispenser = 1, + ) + glasses = /obj/item/clothing/glasses/meson/engine + additional_radio = /obj/item/encryptionkey/headset_eng + skillchips = list(/obj/item/skillchip/job/engineer, /obj/item/skillchip/job/roboticist) + +/datum/antagonist/ert/generic/engineer/blue + name = "Code Blue Engineering Response Officer" + outfit = /datum/outfit/centcom/ert/generic/engineer/blue + +/datum/outfit/centcom/ert/generic/engineer/blue + name = "Code Blue Engineering Response Officer" + + shoes = /obj/item/clothing/shoes/magboots/advance + suit_store = /obj/item/gun/energy/e_gun + back = /obj/item/storage/backpack/ert/engineer + backpack_contents = list( + /obj/item/storage/belt/utility/full/powertools = 1, + /obj/item/storage/box/rcd_upgrades = 1, + /obj/item/construction/rcd/loaded = 1, + /obj/item/rcd_ammo/large = 1, + /obj/item/analyzer/ranged = 1, + /obj/item/extinguisher/advanced = 1, + /obj/item/pipe_dispenser = 1, + ) + +/datum/outfit/centcom/ert/generic/engineer/blue/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/eyes/hud/diagnostic/diagnostic_hud = new() + diagnostic_hud.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/engineer/red + name = "Code Red Engineering Response Officer" + outfit = /datum/outfit/centcom/ert/generic/engineer/red + +/datum/outfit/centcom/ert/generic/engineer/red + name = "Code Red Engineering Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/engineer + shoes = /obj/item/clothing/shoes/combat + suit = null + suit_store = /obj/item/gun/energy/e_gun/stun + head = null + belt = /obj/item/storage/bag/sheetsnatcher + back = /obj/item/mod/control/pre_equipped/responsory/generic/engineer + backpack_contents = list( + /obj/item/construction/rcd/loaded/upgraded = 1, + /obj/item/rcd_ammo/large = 1, + /obj/item/analyzer/ranged = 1, + /obj/item/pipe_dispenser = 1, + /obj/item/holosign_creator/atmos = 1, + /obj/item/t_scanner = 1, + /obj/item/stack/cable_coil = 1, + ) + glasses = /obj/item/clothing/glasses/meson/night + additional_radio = /obj/item/encryptionkey/heads/ce + r_pocket = /obj/item/holosign_creator/security + +/datum/outfit/centcom/ert/generic/engineer/red/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/eyes/hud/diagnostic/diagnostic_hud = new() + diagnostic_hud.Insert(H, drop_if_replaced = FALSE) + var/obj/item/organ/internal/cyberimp/arm/item_set/toolset/toolset_implant = new() + toolset_implant.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/janitor + name = "Code Green Janitorial Response Officer" + role = "Janitorial Officer" + outfit = /datum/outfit/centcom/ert/generic/janitor + ert_job_path = /datum/job/ert/janitor + +/datum/outfit/centcom/ert/generic/janitor + name = "Code Green Janitorial Response Officer" + id = /obj/item/card/id/advanced/centcom/ert/generic/janitor + shoes = /obj/item/clothing/shoes/magboots + suit = /obj/item/clothing/suit/space/ert/janitor + suit_store = /obj/item/gun/energy/e_gun/mini + head = /obj/item/clothing/head/helmet/space/ert/janitor + back = /obj/item/storage/backpack/ert/janitor + backpack_contents = list( + /obj/item/storage/belt/janitor/full = 1, + /obj/item/storage/box/lights/mixed = 1, + /obj/item/mop/advanced = 1, + /obj/item/pushbroom = 1, + /obj/item/reagent_containers/spray/drying = 1, + /obj/item/grenade/chem_grenade/cleaner = 2, + ) + l_hand = /obj/item/storage/bag/trash + additional_radio = /obj/item/encryptionkey/headset_service + skillchips = list(/obj/item/skillchip/job/janitor) + +/datum/antagonist/ert/generic/janitor/blue + name = "Code Blue Janitorial Response Officer" + outfit = /datum/outfit/centcom/ert/generic/janitor/blue + +/datum/outfit/centcom/ert/generic/janitor/blue + name = "Code Blue Janitorial Response Officer" + shoes = /obj/item/clothing/shoes/magboots/advance + suit_store = /obj/item/gun/energy/e_gun + backpack_contents = list( + /obj/item/storage/belt/janitor/full/ert = 1, + /obj/item/mop/advanced = 1, + /obj/item/pushbroom = 1, + /obj/item/reagent_containers/spray/drying = 1, + /obj/item/grenade/chem_grenade/cleaner = 2, + /obj/item/scythe/compact = 1, + /obj/item/grenade/chem_grenade/antiweed = 1, + ) + l_hand = /obj/item/storage/bag/trash/bluespace + additional_radio = /obj/item/encryptionkey/headset_service + skillchips = list(/obj/item/skillchip/job/janitor) + +/datum/antagonist/ert/generic/janitor/red + name = "Code Red Janitorial Response Officer" + outfit = /datum/outfit/centcom/ert/generic/janitor/red + +/datum/outfit/centcom/ert/generic/janitor/red + name = "Code Red Janitorial Response Officer" + id = /obj/item/card/id/advanced/centcom/ert/janitor + shoes = /obj/item/clothing/shoes/combat + suit = null + suit_store = /obj/item/gun/energy/e_gun/stun + head = null + belt = /obj/item/storage/belt/janitor/full/ert + back = /obj/item/mod/control/pre_equipped/responsory/generic/janitor + backpack_contents = list( + /obj/item/mop/advanced = 1, + /obj/item/pushbroom = 1, + /obj/item/reagent_containers/spray/drying = 1, + /obj/item/grenade/clusterbuster/cleaner = 2, + /obj/item/scythe/compact = 1, + /obj/item/grenade/clusterbuster/antiweed = 1, + ) + l_hand = /obj/item/storage/bag/trash/bluespace + glasses = /obj/item/clothing/glasses/night + additional_radio = /obj/item/encryptionkey/heads/hop + +/datum/antagonist/ert/generic/chaplain + name = "Code Green Religious Response Officer" + role = "Religious Officer" + outfit = /datum/outfit/centcom/ert/generic/chaplain + ert_job_path = /datum/job/ert/chaplain + +/datum/antagonist/ert/generic/chaplain/on_gain() + . = ..() + owner.holy_role = HOLY_ROLE_PRIEST + +/datum/outfit/centcom/ert/generic/chaplain + name = "Code Green Religious Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/generic/chaplain + suit = /obj/item/clothing/suit/space/ert/chaplain + suit_store = /obj/item/gun/energy/disabler + head = /obj/item/clothing/head/helmet/space/ert/chaplain + back = /obj/item/storage/backpack/ert + backpack_contents = list( + /obj/item/storage/belt/security/full/bola = 1, + /obj/item/nullrod = 1, + /obj/item/book/bible = 1, + /obj/item/reagent_containers/cup/glass/bottle/holywater = 1, + ) + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + r_pocket = /obj/item/holosign_creator/security + additional_radio = /obj/item/encryptionkey/headset_sec + skillchips = list(/obj/item/skillchip/entrails_reader) + +/datum/antagonist/ert/generic/chaplain/blue + name = "Code Blue Religious Response Officer" + outfit = /datum/outfit/centcom/ert/generic/chaplain/blue + +/datum/outfit/centcom/ert/generic/chaplain/blue + name = "Code Blue Religious Response Officer" + + suit_store = /obj/item/gun/energy/e_gun + shoes = /obj/item/clothing/shoes/magboots + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + backpack_contents = list( + /obj/item/nullrod = 1, + /obj/item/book/bible = 1, + /obj/item/reagent_containers/cup/glass/bottle/holywater = 1, + /obj/item/grenade/flashbang = 2, + /obj/item/gun/energy/disabler = 1, + /obj/item/storage/belt/security/full/bola = 1, + ) + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + additional_radio = /obj/item/encryptionkey/headset_sec + skillchips = list(/obj/item/skillchip/entrails_reader) + +/datum/antagonist/ert/generic/chaplain/red + name = "Code Red Religious Response Officer" + outfit = /datum/outfit/centcom/ert/generic/chaplain/red + +/datum/outfit/centcom/ert/generic/chaplain/red + name = "Code Red Religious Response Officer" + id = /obj/item/card/id/advanced/centcom/ert/chaplain + suit = null + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + suit_store = /obj/item/gun/energy/e_gun/stun + head = null + belt = /obj/item/nullrod/scythe/talking/chainsword + back = /obj/item/mod/control/pre_equipped/responsory/generic/chaplain + backpack_contents = list( + /obj/item/book/bible = 1, + /obj/item/reagent_containers/cup/glass/bottle/holywater = 2, + /obj/item/reagent_containers/hypospray/combat/heresypurge = 1, + /obj/item/storage/box/flashbangs = 1, + /obj/item/storage/belt/security/full/bola = 1, + ) + glasses = /obj/item/clothing/glasses/night + additional_radio = /obj/item/encryptionkey/heads/hos + +/datum/outfit/centcom/ert/generic/chaplain/red/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/eyes/hud/security/sec_hud = new() + sec_hud.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/clown + name = "Code Honk Entertainment Response Officer" + role = "Entertainment Officer" + outfit = /datum/outfit/centcom/ert/generic/clown + plasmaman_outfit = /datum/outfit/plasmaman/party_comedian + ert_job_path = /datum/job/ert/clown + +/datum/antagonist/ert/generic/clown/New() + . = ..() + name_source = GLOB.clown_names //they are a clown after all + +/datum/outfit/centcom/ert/generic/clown + name = "Code Honk Entertainment Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/generic/clown + box = /obj/item/storage/box/survival/ert + uniform = /obj/item/clothing/under/rank/civilian/clown + gloves = /obj/item/clothing/gloves/combat + mask = /obj/item/clothing/mask/gas/clown_hat + shoes = /obj/item/clothing/shoes/clown_shoes + suit = /obj/item/clothing/suit/space/ert/clown + suit_store = null + head = /obj/item/clothing/head/helmet/space/ert/clown + belt = /obj/item/tank/jetpack/oxygen/harness + back = /obj/item/storage/backpack/ert/clown + backpack_contents = list( + /obj/item/stamp/clown = 1, + /obj/item/reagent_containers/spray/waterflower/lube = 1, + /obj/item/food/grown/banana = 1, + /obj/item/instrument/bikehorn = 1, + /obj/item/food/pie/cream = 3, + ) + glasses = /obj/item/clothing/glasses/sunglasses + l_pocket = /obj/item/bikehorn + r_pocket = /obj/item/restraints/handcuffs/cable/zipties/fake + implants = list(/obj/item/implant/sad_trombone) + +/datum/outfit/centcom/ert/generic/clown/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + suit_store = pick( + /obj/item/tank/internals/emergency_oxygen/engi/clown/n2o, + /obj/item/tank/internals/emergency_oxygen/engi/clown/bz, + /obj/item/tank/internals/emergency_oxygen/engi/clown/helium, + ) + +/datum/outfit/centcom/ert/generic/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + if(visualsOnly) + return + + H.dna.add_mutation(/datum/mutation/human/clumsy) + for(var/datum/mutation/human/clumsy/M in H.dna.mutations) + M.mutadone_proof = TRUE + var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] + ADD_TRAIT(H, TRAIT_NAIVE, INNATE_TRAIT) + fan.show_to(H) + H.faction |= FACTION_CLOWN + if(!ishuman(H)) + return + var/obj/item/organ/internal/butt/butt = H.get_organ_slot(ORGAN_SLOT_BUTT) + if(butt) + butt.Remove(H, 1) + QDEL_NULL(butt) + butt = new/obj/item/organ/internal/butt/clown + butt.Insert(H) + + var/obj/item/organ/internal/bladder/bladder = H.get_organ_slot(ORGAN_SLOT_BLADDER) + if(bladder) + bladder.Remove(H, 1) + QDEL_NULL(bladder) + bladder = new/obj/item/organ/internal/bladder/clown + bladder.Insert(H) + +/datum/antagonist/ert/generic/clown/funny + name = "Code Honk! Entertainment Response Officer" + outfit = /datum/outfit/centcom/ert/generic/clown/funny + +/datum/outfit/centcom/ert/generic/clown/funny + name = "Code Honk! Entertainment Response Officer" + + backpack_contents = list( + /obj/item/stamp/clown = 1, + /obj/item/reagent_containers/spray/waterflower/lube = 1, + /obj/item/food/grown/banana = 1, + /obj/item/instrument/bikehorn = 1, + /obj/item/food/pie/cream = 3, + /obj/item/stack/sheet/mineral/bananium/five = 1, + ) + l_pocket = /obj/item/bikehorn/golden + +/datum/outfit/centcom/ert/generic/clown/funny/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/chest/knockout/punch_implant = new() + punch_implant.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/clown/funnier + name = "Code HONK!! Entertainment Response Officer" + outfit = /datum/outfit/centcom/ert/generic/clown/funnier + +/datum/outfit/centcom/ert/generic/clown/funnier + name = "Code HONK!! Entertainment Response Officer" + + id = /obj/item/card/id/advanced/centcom/ert/clown + shoes = /obj/item/clothing/shoes/clown_shoes/combat + suit = null + suit_store = /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot + head = null + belt = /obj/item/storage/belt/military/snack/pie + back = /obj/item/mod/control/pre_equipped/responsory/generic/clown + backpack_contents = list( + /obj/item/stamp/clown = 1, + /obj/item/reagent_containers/spray/waterflower/superlube = 1, + /obj/item/food/grown/banana = 1, + /obj/item/instrument/bikehorn = 1, + /obj/item/megaphone/clown = 1, + /obj/item/stack/sheet/mineral/bananium/five = 1, + /obj/item/suppressor = 1, + /obj/item/ammo_box/magazine/toy/smgm45/riot = 3, + + ) + glasses = /obj/item/clothing/glasses/night + additional_radio = /obj/item/encryptionkey/heads/hop + l_pocket = /obj/item/bikehorn/golden + +/datum/outfit/centcom/ert/generic/clown/funnier/pre_equip(mob/living/carbon/human/H, visualsOnly) + return + +/datum/outfit/centcom/ert/generic/clown/funnier/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/chest/knockout/punch_implant = new() + punch_implant.Insert(H, drop_if_replaced = FALSE) + +//------ +// Other +//------ + +/datum/antagonist/ert/generic/deathsquad + name = "Elite Deathsquad Commando" + role = "Commando" + outfit = /datum/outfit/centcom/ert/generic/deathsquad + ert_job_path = /datum/job/ert/deathsquad + +/datum/antagonist/ert/generic/deathsquad/New() + . = ..() + name_source = GLOB.commando_names + +/datum/outfit/centcom/ert/generic/deathsquad + name = "Elite Deathsquad Commando" + + id = /obj/item/card/id/advanced/black/deathsquad + box = /obj/item/storage/box/survival/ert + uniform = /obj/item/clothing/under/rank/centcom/military + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + mask = /obj/item/clothing/mask/gas/sechailer/swat + shoes = /obj/item/clothing/shoes/combat/swat + suit = null + suit_store = /obj/item/gun/energy/pulse/loyalpin + head = null + belt = /obj/item/storage/belt/military/assault + back = /obj/item/mod/control/pre_equipped/apocryphal/elite + backpack_contents = list( + /obj/item/storage/box/medipens/advanced = 1, + /obj/item/storage/box/c4 = 1, + /obj/item/storage/box/x4 = 1, + /obj/item/storage/box/flashbangs = 1, + /obj/item/storage/box/teargas = 1, + /obj/item/pinpointer/nuke = 1, + /obj/item/gun/ballistic/revolver/mateba = 1, + /obj/item/ammo_box/a357 = 3, + ) + glasses = /obj/item/clothing/glasses/thermal + l_pocket = /obj/item/melee/energy/sword/saber/purple //I am going to end to this, once and for all! + r_pocket = /obj/item/shield/energy + additional_radio = /obj/item/encryptionkey/heads/captain + implants = list(/obj/item/implant/krav_maga) + +/datum/outfit/centcom/ert/generic/deathsquad/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + var/obj/item/organ/internal/cyberimp/brain/anti_drop/nodrop = new() + nodrop.Insert(H, drop_if_replaced = FALSE) + var/obj/item/organ/internal/cyberimp/brain/anti_stun/rebooter = new() + rebooter.Insert(H, drop_if_replaced = FALSE) + var/obj/item/organ/internal/cyberimp/chest/reviver/reviver_implant = new() + reviver_implant.Insert(H, drop_if_replaced = FALSE) + var/obj/item/organ/internal/cyberimp/eyes/hud/security/sec_hud = new() + sec_hud.Insert(H, drop_if_replaced = FALSE) + +/datum/antagonist/ert/generic/deathsquad/dust + name = "Elite Deathsquad Commando" + outfit = /datum/outfit/centcom/ert/generic/deathsquad/dust + +/datum/outfit/centcom/ert/generic/deathsquad/dust + name = "Elite Deathsquad Commando (Do or Die!)" + implants = list(/obj/item/implant/dust, /obj/item/implant/krav_maga) + + diff --git a/monkestation/code/modules/ERT/ERT_shuttle.dm b/monkestation/code/modules/ERT/ERT_shuttle.dm new file mode 100644 index 000000000000..4e74f31a05ea --- /dev/null +++ b/monkestation/code/modules/ERT/ERT_shuttle.dm @@ -0,0 +1,87 @@ +////////////// Areas ////////////// +/area/shuttle/ert + name = "ERT Shuttle" + requires_power = TRUE + static_lighting = TRUE + ambience_index = AMBIENCE_ENGI + area_limited_icon_smoothing = /area/shuttle/ert + +/area/shuttle/ert/bridge + name = "ERT Shuttle Bridge" + +/area/shuttle/ert/engineering + name = "ERT Shuttle Engineering" + +/area/shuttle/ert/armory + name = "ERT Shuttle Armory" + +/area/shuttle/ert/cargo + name = "ERT Shuttle Cargo Hold" + +/area/shuttle/ert/medical + name = "ERT Shuttle Medbay" + +/area/shuttle/ert/clonerybay + name = "ERT Shuttle Cloner Bay" + +/area/shuttle/ert/airlock + name = "ERT Shuttle Airlock" + +/area/shuttle/ert/airlock/secondary + +/area/shuttle/ert/powered + requires_power = FALSE + + +/area/shuttle/ert/powered/deathsquad + name = "Deathsquad Shuttle" + requires_power = FALSE + +////////////// Consoles ////////////// +/obj/machinery/computer/shuttle/ert + name = "ERT shuttle console" + shuttleId = "ertshuttle" + possible_destinations = "ertshuttle_custom;syndicate_nw" + req_access = list(ACCESS_CENT_GENERAL) + +/obj/machinery/computer/shuttle/ert/deathsquad + name = "shuttle console" + req_access = list(ACCESS_CENT_SPECOPS) + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/ert + name = "ERT shuttle navigation computer" + desc = "Used to designate a precise transit location to travel to." + shuttleId = "ertshuttle" + lock_override = CAMERA_LOCK_STATION + shuttlePortId = "ertshuttle_custom" + see_hidden = FALSE + view_range = 4.5 + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/ert/deathsquad + name = "shuttle navigation computer" + +/obj/docking_port/mobile/ert + name = "ERT shuttle" + shuttle_id = "ertshuttle" + rechargeTime = 3 MINUTES + +////////////// Shuttle Templates ////////////// +/datum/map_template/shuttle/ert/generic + suffix = "generic" + name = "ERT Shuttle" + +/datum/map_template/shuttle/ert/dropship + suffix = "dropship" + name = "ERT Dropship" + +/datum/map_template/shuttle/ert/dropship/clown + suffix = "dropship-clown" + name = "ERT Dropship" + +/datum/map_template/shuttle/ert/dropship/janitor + suffix = "dropship-janitor" + name = "ERT Dropship" + +/datum/map_template/shuttle/ert/deathsquad + suffix = "deathsquad" + name = "Deathsquad Shuttle" diff --git a/monkestation/code/modules/ERT/equipment/ERT_id.dm b/monkestation/code/modules/ERT/equipment/ERT_id.dm new file mode 100644 index 000000000000..d59ff7b03b3a --- /dev/null +++ b/monkestation/code/modules/ERT/equipment/ERT_id.dm @@ -0,0 +1,190 @@ +// gonna just make the green and blue alert IDs. it's fine if they have all access on red and above i am guessing +// Ordering: +// ROLES +// *Generic +// *Commander +// *Medic +// *Security Officer +// *Engineer +// *Janitor +// *Chaplain +// *Clown +// OTHER + +/datum/id_trim/centcom/ert/generic + assignment = "Emergency Response Officer" + +/datum/id_trim/centcom/ert/generic/New() + . = ..() + access = list( + ACCESS_MAINT_TUNNELS, + ACCESS_MEDICAL, + ACCESS_BRIG_ENTRANCE, + ACCESS_SECURITY, + ACCESS_CENT_GENERAL, + ACCESS_WEAPONS, + ACCESS_CARGO, + ACCESS_CONSTRUCTION, + ACCESS_HYDROPONICS, + ACCESS_MORGUE, + ACCESS_SCIENCE, + ACCESS_SERVICE, + ACCESS_EXTERNAL_AIRLOCKS, + ACCESS_RC_ANNOUNCE, + ACCESS_AUX_BASE, + ACCESS_BIT_DEN, + ACCESS_MECH_MINING, + ACCESS_MINING_STATION, + ACCESS_MINERAL_STOREROOM, + ACCESS_MINING, + ACCESS_SHIPPING, + ) + +/obj/item/card/id/advanced/centcom/ert/generic + name = "\improper CentCom ID" + desc = "An ERT ID card." + registered_age = null + registered_name = "Emergency Response Officer" + trim = /datum/id_trim/centcom/ert/generic + +/datum/id_trim/centcom/ert/generic/commander + assignment = JOB_ERT_COMMANDER + trim_state = "trim_ert_commander" + sechud_icon_state = SECHUD_EMERGENCY_RESPONSE_TEAM_COMMANDER + +/datum/id_trim/centcom/ert/generic/commander/New() + ..() + access |= list( + ACCESS_AI_UPLOAD, + ACCESS_ALL_PERSONAL_LOCKERS, + ACCESS_AUX_BASE, + ACCESS_COMMAND, + ACCESS_COURT, + ACCESS_EVA, + ACCESS_GATEWAY, + ACCESS_KEYCARD_AUTH, + ACCESS_TELEPORTER, + ACCESS_BRIG, + ACCESS_MECH_SECURITY, + ACCESS_PERMABRIG, + ACCESS_DETECTIVE, + ACCESS_ARMORY, + ACCESS_ENGINE_EQUIP, + ) + +/obj/item/card/id/advanced/centcom/ert/generic/commander + registered_name = JOB_ERT_COMMANDER + trim = /datum/id_trim/centcom/ert/generic/commander + +/datum/id_trim/centcom/ert/generic/medical + assignment = JOB_ERT_MEDICAL_DOCTOR + trim_state = "trim_medicaldoctor" + subdepartment_color = COLOR_MEDICAL_BLUE + sechud_icon_state = SECHUD_MEDICAL_RESPONSE_OFFICER + +/datum/id_trim/centcom/ert/generic/medical/New() + ..() + access |= list( + ACCESS_PLUMBING, + ACCESS_MECH_MEDICAL, + ACCESS_PHARMACY, + ACCESS_PSYCHOLOGY, + ACCESS_SURGERY, + ACCESS_VIROLOGY, + ) + +/obj/item/card/id/advanced/centcom/ert/generic/medical + registered_name = JOB_ERT_MEDICAL_DOCTOR + trim = /datum/id_trim/centcom/ert/generic/medical + +/datum/id_trim/centcom/ert/generic/security + assignment = JOB_ERT_OFFICER + trim_state = "trim_securityofficer" + subdepartment_color = COLOR_SECURITY_RED + sechud_icon_state = SECHUD_SECURITY_RESPONSE_OFFICER + +/datum/id_trim/centcom/ert/generic/security/New() + ..() + access |= list( + ACCESS_BRIG, + ACCESS_MECH_SECURITY, + ACCESS_PERMABRIG, + ACCESS_DETECTIVE, + ) + +/obj/item/card/id/advanced/centcom/ert/generic/security + registered_name = JOB_ERT_OFFICER + trim = /datum/id_trim/centcom/ert/generic/security + +/datum/id_trim/centcom/ert/generic/engineer + assignment = JOB_ERT_ENGINEER + trim_state = "trim_stationengineer" + subdepartment_color = COLOR_ENGINEERING_ORANGE + sechud_icon_state = SECHUD_ENGINEERING_RESPONSE_OFFICER + +/datum/id_trim/centcom/ert/generic/engineer/New() + ..() + access |= list( + ACCESS_ATMOSPHERICS, + ACCESS_ENGINEERING, + ACCESS_ENGINE_EQUIP, + ACCESS_MECH_ENGINE, + ACCESS_MINISAT, + ACCESS_TCOMMS, + ACCESS_TCOMMS_ADMIN, + ACCESS_TECH_STORAGE, + ) + +/obj/item/card/id/advanced/centcom/ert/generic/engineer + registered_name = JOB_ERT_ENGINEER + trim = /datum/id_trim/centcom/ert/generic/engineer + +/datum/id_trim/centcom/ert/generic/janitor + assignment = JOB_ERT_JANITOR + trim_state = "trim_janitor" + subdepartment_color = COLOR_SERVICE_LIME + sechud_icon_state = SECHUD_JANITORIAL_RESPONSE_OFFICER + +/datum/id_trim/centcom/ert/generic/janitor/New() + ..() + access |= list( + ACCESS_JANITOR, + ) + +/obj/item/card/id/advanced/centcom/ert/generic/janitor + registered_name = JOB_ERT_JANITOR + trim = /datum/id_trim/centcom/ert/generic/janitor + +/datum/id_trim/centcom/ert/generic/chaplain + assignment = JOB_ERT_CHAPLAIN + trim_state = "trim_chaplain" + subdepartment_color = "#58C800" + sechud_icon_state = SECHUD_RELIGIOUS_RESPONSE_OFFICER + +/datum/id_trim/centcom/ert/generic/chaplain/New() + ..() + access |= list( + ACCESS_CHAPEL_OFFICE, + ACCESS_CREMATORIUM, + ACCESS_THEATRE, + ) + +/obj/item/card/id/advanced/centcom/ert/generic/chaplain + registered_name = JOB_ERT_CHAPLAIN + trim = /datum/id_trim/centcom/ert/generic/chaplain + +/datum/id_trim/centcom/ert/generic/clown + assignment = JOB_ERT_CLOWN + trim_state = "trim_clown" + subdepartment_color = COLOR_MAGENTA + sechud_icon_state = SECHUD_ENTERTAINMENT_RESPONSE_OFFICER + +/datum/id_trim/centcom/ert/generic/clown/New() + ..() + access |= list( + ACCESS_THEATRE, + ) + +/obj/item/card/id/advanced/centcom/ert/generic/clown + registered_name = JOB_ERT_CLOWN + trim = /datum/id_trim/centcom/ert/generic/clown diff --git a/monkestation/code/modules/ERT/equipment/ERT_misc_equipment.dm b/monkestation/code/modules/ERT/equipment/ERT_misc_equipment.dm new file mode 100644 index 000000000000..e589af80af24 --- /dev/null +++ b/monkestation/code/modules/ERT/equipment/ERT_misc_equipment.dm @@ -0,0 +1,341 @@ +/obj/item/implant/dust + name = "self immolation implant" + desc = "Dust to dust." + icon = 'icons/obj/nuke_tools.dmi' + icon_state = "supermatter_sliver_pulse" + actions_types = list(/datum/action/item_action/dust_implant) + var/popup = FALSE // is the window open? + var/active = FALSE + +/obj/item/implant/dust/proc/on_death(datum/source) + SIGNAL_HANDLER + + // There may be other signals that want to handle mob's death + // and the process of activating destroys the body, so let the other + // signal handlers at least finish. + INVOKE_ASYNC(src, PROC_REF(activate), "death") + +/obj/item/implant/dust/get_data() + var/dat = {"Implant Specifications:
+ Name: Robust Corp RX-81 Employee Management Implant
+ Life: Activates upon death.
+ Important Notes: Highly unstable.
+
+ Implant Details:
+ Function: Contains a compact supermatter fragment surrounded in a protective bluespace capsule that releases upon receiving a specially encoded signal or upon host death.
+ Special Features: Self Immolation
+ "} + return dat + +/obj/item/implant/dust/activate(cause) + . = ..() + if(!cause || !imp_in || active) + return FALSE + if(cause == "action_button") + if(popup) + return FALSE + popup = TRUE + var/response = tgui_alert(imp_in, "Are you sure you want to activate your [name]? This will cause you to disintergrate!", "[name] Confirmation", list("Yes", "No")) + popup = FALSE + if(response != "Yes") + return FALSE + if(cause == "death" && HAS_TRAIT(imp_in, TRAIT_PREVENT_IMPLANT_AUTO_EXPLOSION)) + return FALSE + to_chat(imp_in, span_notice("You activate your [name].")) + active = TRUE + to_chat(imp_in, "Your dusting implant activates!") + var/turf/immolationturf = get_turf(imp_in) + message_admins("[ADMIN_LOOKUPFLW(imp_in)] has activated their [name] at [ADMIN_VERBOSEJMP(immolationturf)], with cause of [cause].") + + if(imp_in) + imp_in.visible_message(span_warning("[imp_in]'s body flashes and burns up from inside in blazing light!")) + imp_in.investigate_log("has been dusted by a self immolation implant.", INVESTIGATE_DEATHS) + imp_in.dust() + playsound(src, 'sound/effects/supermatter.ogg', 50, TRUE) + qdel(src) + return + +/obj/item/implant/dust/implant(mob/living/target, mob/user, silent = FALSE, force = FALSE) + . = ..() + if(.) + RegisterSignal(target, COMSIG_LIVING_DEATH, PROC_REF(on_death)) + +/obj/item/implant/dust/removed(mob/target, silent = FALSE, special = FALSE) + . = ..() + if(.) + UnregisterSignal(target, COMSIG_LIVING_DEATH) + +/obj/item/implanter/dust + name = "implanter (self immolation)" + imp_type = /obj/item/implant/dust + +/obj/item/implantcase/dust + name = "implant case - 'Self Immolation'" + desc = "A glass case containing a self immolation implant." + imp_type = /obj/item/implant/dust + +/datum/action/item_action/dust_implant + check_flags = NONE + name = "Activate Self Immolation Implant" + +/obj/item/mod/module/energy_shield/nanotrasen + name = "MOD energy shield module" + desc = "A personal, protective forcefield typically seen in military applications. \ + This advanced deflector shield is essentially a scaled down version of those seen on starships, \ + and the power cost can be an easy indicator of this. However, it is capable of blocking nearly any incoming attack, \ + though with its' low amount of separate charges, the user remains mortal." + shield_icon = "shield-old" //red syndicate blue nanotrasen :P + +/obj/item/storage/belt/security/full/bola/PopulateContents() + new /obj/item/reagent_containers/spray/pepper(src) + new /obj/item/restraints/legcuffs/bola/energy(src) + new /obj/item/grenade/flashbang(src) + new /obj/item/assembly/flash/handheld(src) + new /obj/item/melee/baton/security/loaded(src) + update_appearance() + +/obj/item/clothing/mask/gas/sechailer/swat/ert + name = "\improper emergency response team mask" + desc = "A close-fitting tactical mask with a toned down Compli-o-nator 3000. This one is designed for Nanotrasen emergency response teams and has an inbuilt air-freshener. Fancy!" + icon = 'monkestation/icons/obj/clothing/masks.dmi' + worn_icon = 'monkestation/icons/mob/clothing/mask.dmi' + worn_icon_snouted = 'monkestation/icons/mob/clothing/species/mask_muzzled.dmi' + icon_state = "ert" + aggressiveness = 1 + +/obj/item/storage/box/survival/ert + name = "emergency response survival box" + desc = "A box with the bare essentials of ensuring the survival of your team. This one is labelled to contain a double tank." + icon_state = "ntbox" + illustration = "ntlogo" + internal_type = /obj/item/tank/internals/emergency_oxygen/double + +/obj/item/storage/box/survival/ert/PopulateContents() + . = ..() + new /obj/item/reagent_containers/pill/patch/advanced(src) + new /obj/item/crowbar/red(src) + new /obj/item/spess_knife(src) // i love this thing and i want it to be out there more + new /obj/item/flashlight/flare(src) + +/obj/item/reagent_containers/pill/patch/advanced + name = "advanced health patch" + desc = "Helps with brute and burn injuries while stabilizing the patient. Contains anti-toxin along with formaldehyde." + list_reagents = list(/datum/reagent/medicine/oxandrolone = 5, /datum/reagent/medicine/sal_acid = 5, /datum/reagent/medicine/granibitaluri = 10, /datum/reagent/medicine/c2/seiver = 5, /datum/reagent/toxin/formaldehyde = 3, /datum/reagent/medicine/coagulant = 2, /datum/reagent/medicine/epinephrine = 10) + icon_state = "bandaid_msic" //they misspelt it + +/obj/item/storage/box/rcd_upgrades + name = "RCD upgrade diskette box" + desc = "A box of essential RCD upgrade disks." + illustration = "disk_kit" + +/obj/item/storage/box/rcd_upgrades/PopulateContents() + . = ..() + new /obj/item/rcd_upgrade/simple_circuits(src) + new /obj/item/rcd_upgrade/anti_interrupt(src) + new /obj/item/rcd_upgrade/cooling(src) + new /obj/item/rcd_upgrade/silo_link(src) + new /obj/item/rcd_upgrade/frames(src) + new /obj/item/rcd_upgrade/furnishing(src) + +/obj/item/reagent_containers/spray/drying + name = "drying agent spray" + list_reagents = list(/datum/reagent/drying_agent = 250) + +/obj/vehicle/sealed/mecha/honker/dark/loaded/not_evil + operation_req_access = list() + internals_req_access = list() + +/obj/vehicle/sealed/mecha/honker/dark/loaded/not_evil + equip_by_category = list( + MECHA_L_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/honker, + MECHA_R_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar, + MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/thrusters/ion), + MECHA_POWER = list(), + MECHA_ARMOR = list(), + ) + +/obj/item/storage/belt/janitor/full/ert/PopulateContents() + new /obj/item/lightreplacer/blue(src) + new /obj/item/reagent_containers/spray/cleaner(src) + new /obj/item/soap/omega(src) + new /obj/item/holosign_creator(src) + new /obj/item/melee/flyswatter(src) + new /obj/item/wirebrush(src) + +/obj/item/scythe/compact + name = "compact scythe" + desc = "A sharp and curved blade on a long fibremetal handle, this tool makes it easy to reap what you sow. This one has been compacted with bluespace fields, don't question it." + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/mod/control/pre_equipped/responsory/generic + applied_cell = /obj/item/stock_parts/cell/bluespace + applied_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/welding, + /obj/item/mod/module/emp_shield/advanced, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/jetpack, + /obj/item/mod/module/magboot/advanced, + /obj/item/mod/module/rad_protection, + ) + default_pins = list( + /obj/item/mod/module/jetpack, + /obj/item/mod/module/magboot/advanced, + ) + +/obj/item/mod/control/pre_equipped/responsory/generic/commander + insignia_type = /obj/item/mod/module/insignia/commander + additional_module = /obj/item/mod/module/power_kick + +/obj/item/mod/control/pre_equipped/responsory/generic/security + insignia_type = /obj/item/mod/module/insignia/security + additional_module = /obj/item/mod/module/criminalcapture + +/obj/item/mod/control/pre_equipped/responsory/generic/engineer + insignia_type = /obj/item/mod/module/insignia/engineer + additional_module = /obj/item/mod/module/mister/atmos + +/obj/item/mod/control/pre_equipped/responsory/generic/medic + insignia_type = /obj/item/mod/module/insignia/medic + additional_module = /obj/item/mod/module/quick_carry/advanced + +/obj/item/mod/control/pre_equipped/responsory/generic/janitor + insignia_type = /obj/item/mod/module/insignia/janitor + additional_module = /obj/item/mod/module/mister/cleaner + +/obj/item/mod/control/pre_equipped/responsory/generic/clown + insignia_type = /obj/item/mod/module/insignia/clown + additional_module = list(/obj/item/mod/module/bikehorn, /obj/item/mod/module/waddle) + +/obj/item/mod/control/pre_equipped/responsory/generic/chaplain + applied_skin = "inquisitory" + insignia_type = /obj/item/mod/module/insignia/chaplain + additional_module = list(/obj/item/mod/module/injector, /obj/item/mod/module/anti_magic) + +/obj/item/mod/control/pre_equipped/apocryphal/elite + applied_modules = list( + /obj/item/mod/module/storage/bluespace, + /obj/item/mod/module/welding, + /obj/item/mod/module/emp_shield/advanced, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/noslip, + /obj/item/mod/module/power_kick, + /obj/item/mod/module/rad_protection, + /obj/item/mod/module/magboot/advanced, + /obj/item/mod/module/thermal_regulator, + /obj/item/mod/module/dna_lock, + /obj/item/mod/module/holster, + /obj/item/mod/module/visor/night, + /obj/item/mod/module/status_readout, + /obj/item/mod/module/joint_torsion = 1, + ) + default_pins = list( + /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/power_kick, + /obj/item/mod/module/magboot/advanced, + /obj/item/mod/module/thermal_regulator, + /obj/item/mod/module/dna_lock, + /obj/item/mod/module/holster, + /obj/item/mod/module/visor/night, + ) + +/obj/item/storage/box/syndie_kit/imp_deathrattle/nanotrasen + icon_state = "ntbox" + illustration = "implant" + +/obj/item/storage/belt/military/snack/pie + name = "tactical pie rig" + desc = "A set of snack-tical webbing worn by athletes of the Honk Co. VR sports division." + +/obj/item/storage/belt/military/snack/pie/Initialize(mapload) + . = ..() + atom_storage.max_slots = 7 + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL + atom_storage.max_total_storage = 21 // 7 * 3 = 21? + atom_storage.set_holdable(list( + /obj/item/food/pie/cream, + )) + +/obj/item/storage/belt/military/snack/pie/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/food/pie/cream(src) + +/obj/item/storage/box/medipens/advanced + name = "box of advanced medipens" + desc = "A box full of advanced MediPens." + icon_state = "ntbox" + illustration = "epipen" + +/obj/item/storage/box/medipens/advanced/PopulateContents() + new /obj/item/reagent_containers/hypospray/medipen/stimpack(src) + new /obj/item/reagent_containers/hypospray/medipen/atropine(src) + new /obj/item/reagent_containers/hypospray/medipen/blood_loss(src) + new /obj/item/reagent_containers/hypospray/medipen/oxandrolone(src) + new /obj/item/reagent_containers/hypospray/medipen/salacid(src) + new /obj/item/reagent_containers/hypospray/medipen/penacid(src) + new /obj/item/reagent_containers/hypospray/medipen/salbutamol(src) + +/obj/item/storage/box/x4 + name = "box of x-4 charges (WARNING)" + desc = "A box full of x-4 charges." + icon_state = "secbox" + illustration = "firecracker" + +/obj/item/storage/box/x4/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/grenade/c4/x4(src) + +/obj/item/storage/box/c4 + name = "box of c-4 charges (WARNING)" + desc = "A box full of c-4 charges." + icon_state = "secbox" + illustration = "firecracker" + +/obj/item/storage/box/c4/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/grenade/c4(src) + +/obj/vehicle/sealed/mecha/working/ripley/deathripley/real/elite + desc = "OH SHIT IT'S THE DEATHSQUAD WE'RE ALL GONNA DIE. FOR REAL" + operation_req_access = list(ACCESS_CENT_SPECOPS) + internals_req_access = list(ACCESS_CENT_SPECOPS) + fast_pressure_step_in = 1 //step_in while in low pressure conditions + slow_pressure_step_in = 1.5 //step_in while in normal pressure conditions + movedelay = 1.5 + max_integrity = 500 + encumbrance_gap = 5 + max_equip_by_category = list( + MECHA_UTILITY = 3, + MECHA_POWER = 2, + MECHA_ARMOR = 3, + ) + equip_by_category = list( + MECHA_L_ARM = /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill/elite, + MECHA_R_ARM = /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill/admantium, + MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/ejector, /obj/item/mecha_parts/mecha_equipment/thrusters/ion), + MECHA_POWER = list(), + MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/antiproj_armor_booster, /obj/item/mecha_parts/mecha_equipment/armor/anticcw_armor_booster), + ) + +/obj/vehicle/sealed/mecha/working/ripley/deathripley/real/elite/generate_actions() + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/mech_eject) + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_internals) + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_lights) + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_safeties) + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/mech_view_stats) + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/strafe) + +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill/elite + name = "\improper KILL CLAMP" + desc = "They won't know what clamped them! This time for real!" + clamp_damage = 150 + killer_clamp = TRUE + movedelay = 0 + +/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill/admantium + name = "adamantine-tipped exosuit drill" + desc = "Equipment for combat exosuits. This is an upgraded version of the drill that'll pierce the universe itself!" + icon_state = "mecha_diamond_drill" + drill_delay = 2 + force = 60 diff --git a/monkestation/code/modules/ERT/equipment/ERT_spacesuits.dm b/monkestation/code/modules/ERT/equipment/ERT_spacesuits.dm new file mode 100644 index 000000000000..4f0b8ca57b8f --- /dev/null +++ b/monkestation/code/modules/ERT/equipment/ERT_spacesuits.dm @@ -0,0 +1,193 @@ +/datum/armor/ert //might make it weaker later + melee = 35 + bullet = 30 + laser = 30 + energy = 40 + bomb = 25 + bio = 30 + fire = 80 + acid = 85 + wound = 10 + +/obj/item/clothing/suit/space/ert + name = "emergency response team space suit" + desc = "A special space suit designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." // simple description could use more tho + icon = 'monkestation/icons/obj/clothing/ERT/ERT_spacesuit_obj.dmi' + worn_icon = 'monkestation/icons/mob/clothing/ERT/ERT_spacesuit_worn.dmi' + worn_icon_digitigrade = 'monkestation/icons/mob/clothing/ERT/ERT_spacesuit_worn-digi.dmi' + icon_state = "ert-generic" + //lefthand_file = 'icons/mob/inhands/clothing/suits_lefthand.dmi' do i dare make inhand sprites + //righthand_file = 'icons/mob/inhands/clothing/suits_righthand.dmi' + slowdown = 0 //agile + max_integrity = 300 + armor_type = /datum/armor/ert + resistance_flags = ACID_PROOF | FIRE_PROOF + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT //this feels right? + cell = /obj/item/stock_parts/cell/bluespace + allowed = list( + /obj/item/tank/jetpack/oxygen/security, + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/tank/jetpack/oxygen/captain, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/gun/ballistic, + /obj/item/gun/energy, + /obj/item/gun/microfusion, + /obj/item/knife/combat, + /obj/item/melee/baton, + /obj/item/reagent_containers/spray/pepper, + /obj/item/restraints/handcuffs, + /obj/item/storage/belt/holster/detective, + /obj/item/storage/belt/holster/nukie, + /obj/item/storage/belt/holster/energy, + ) + +/obj/item/clothing/suit/space/ert/equipped(mob/user, slot) + . = ..() + if(!ishuman(user)) + return + user.AddElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_CONTENTS) + +/obj/item/clothing/suit/space/ert/dropped(mob/user) + . = ..() + if(!ishuman(user)) + return + user.RemoveElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_CONTENTS) + + +/obj/item/clothing/suit/space/ert/Initialize(mapload) + . = ..() + AddElement(/datum/element/radiation_protected_clothing) + +/obj/item/clothing/head/helmet/space/ert + name = "emergency response team space helmet" + desc = "A special space helmet designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon = 'monkestation/icons/obj/clothing/ERT/ERT_helmet_obj.dmi' + worn_icon = 'monkestation/icons/mob/clothing/ERT/ERT_helmet_worn.dmi' + icon_state = "ert-generic0" + //styling + var/style = "generic" + worn_icon_snouted = 'monkestation/icons/mob/clothing/ERT/ERT_helmet_worn-digi.dmi' + max_integrity = 300 + armor_type = /datum/armor/ert + resistance_flags = ACID_PROOF | FIRE_PROOF + //helmet light + actions_types = list(/datum/action/item_action/toggle_helmet_light) + light_system = OVERLAY_LIGHT_DIRECTIONAL + light_outer_range = 5 + light_power = 1 + light_on = FALSE + var/on = FALSE + +/obj/item/clothing/head/helmet/space/ert/attack_self(mob/user) + on = !on + icon_state = "ert-[style][on]" + user.update_worn_head() + + set_light_on(on) + +/obj/item/clothing/head/helmet/space/ert/Initialize(mapload) + . = ..() + AddElement(/datum/element/radiation_protected_clothing) + +// NOW FOR ALL THE VARIATIONS! +//----------- +// Commander +//----------- +/obj/item/clothing/suit/space/ert/commander + name = "emergency response team commander space suit" + desc = "A special space suit designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-commander" + +/obj/item/clothing/head/helmet/space/ert/commander + name = "emergency response team commander space helmet" + desc = "A special space helmet designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-commander0" + style = "commander" + +//--------- +// Medical +// -------- +/obj/item/clothing/suit/space/ert/medical + name = "emergency response team medical space suit" + desc = "A special space suit designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-medical" + +/obj/item/clothing/head/helmet/space/ert/medical + name = "emergency response team medical space helmet" + desc = "A special space helmet designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-medical0" + style = "medical" + +//---------- +// Security +//---------- +/obj/item/clothing/suit/space/ert/security + name = "emergency response team security space suit" + desc = "A special space suit designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-security" + +/obj/item/clothing/head/helmet/space/ert/security + name = "emergency response team security space helmet" + desc = "A special space helmet designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-security0" + style = "security" + +//---------- +// Engineer +//---------- +/obj/item/clothing/suit/space/ert/engineer + name = "emergency response team engineer space suit" + desc = "A special space suit designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-engineer" + +/obj/item/clothing/head/helmet/space/ert/engineer + name = "emergency response team engineer space helmet" + desc = "A special space helmet designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-engineer0" + style = "engineer" + +//---------- +// Janitor +//---------- +/obj/item/clothing/suit/space/ert/janitor + name = "emergency response team janitor space suit" + desc = "A special space suit designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-janitor" + +/obj/item/clothing/head/helmet/space/ert/janitor + name = "emergency response team janitor space helmet" + desc = "A special space helmet designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-janitor0" + style = "janitor" + +//---------- +// Chaplain +//---------- +/obj/item/clothing/suit/space/ert/chaplain + name = "emergency response team chaplain space suit" + desc = "A special space suit designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-chaplain" + +/obj/item/clothing/head/helmet/space/ert/chaplain + name = "emergency response team chaplain space helmet" + desc = "A special space helmet designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-chaplain0" + style = "chaplain" + +//------- +// Clown +//------- +/obj/item/clothing/suit/space/ert/clown + name = "emergency response team clown space suit" + desc = "A special space suit designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-clown" + +/obj/item/clothing/head/helmet/space/ert/clown + name = "emergency response team clown space helmet" + desc = "A special space helmet designed by Nanotrasen for use by it's emergency response teams. It has markings to distinguish the role of the wearer at a glance." + icon_state = "ert-clown0" + style = "clown" + + diff --git a/monkestation/icons/mob/clothing/ERT/ERT_helmet_worn-digi.dmi b/monkestation/icons/mob/clothing/ERT/ERT_helmet_worn-digi.dmi new file mode 100644 index 000000000000..a852d50e18d4 Binary files /dev/null and b/monkestation/icons/mob/clothing/ERT/ERT_helmet_worn-digi.dmi differ diff --git a/monkestation/icons/mob/clothing/ERT/ERT_helmet_worn.dmi b/monkestation/icons/mob/clothing/ERT/ERT_helmet_worn.dmi new file mode 100644 index 000000000000..c317b229a179 Binary files /dev/null and b/monkestation/icons/mob/clothing/ERT/ERT_helmet_worn.dmi differ diff --git a/monkestation/icons/mob/clothing/ERT/ERT_spacesuit_worn-digi.dmi b/monkestation/icons/mob/clothing/ERT/ERT_spacesuit_worn-digi.dmi new file mode 100644 index 000000000000..235ea5647134 Binary files /dev/null and b/monkestation/icons/mob/clothing/ERT/ERT_spacesuit_worn-digi.dmi differ diff --git a/monkestation/icons/mob/clothing/ERT/ERT_spacesuit_worn.dmi b/monkestation/icons/mob/clothing/ERT/ERT_spacesuit_worn.dmi new file mode 100644 index 000000000000..1d6c2a4d4115 Binary files /dev/null and b/monkestation/icons/mob/clothing/ERT/ERT_spacesuit_worn.dmi differ diff --git a/monkestation/icons/mob/clothing/mask.dmi b/monkestation/icons/mob/clothing/mask.dmi index 639493e982e5..75e60e4c7121 100644 Binary files a/monkestation/icons/mob/clothing/mask.dmi and b/monkestation/icons/mob/clothing/mask.dmi differ diff --git a/monkestation/icons/mob/clothing/species/mask_muzzled.dmi b/monkestation/icons/mob/clothing/species/mask_muzzled.dmi index 82b13494c5d7..205f8880f7b3 100644 Binary files a/monkestation/icons/mob/clothing/species/mask_muzzled.dmi and b/monkestation/icons/mob/clothing/species/mask_muzzled.dmi differ diff --git a/monkestation/icons/obj/clothing/ERT/ERT_helmet_obj.dmi b/monkestation/icons/obj/clothing/ERT/ERT_helmet_obj.dmi new file mode 100644 index 000000000000..ef2587c13530 Binary files /dev/null and b/monkestation/icons/obj/clothing/ERT/ERT_helmet_obj.dmi differ diff --git a/monkestation/icons/obj/clothing/ERT/ERT_spacesuit_obj.dmi b/monkestation/icons/obj/clothing/ERT/ERT_spacesuit_obj.dmi new file mode 100644 index 000000000000..200dd3cd1646 Binary files /dev/null and b/monkestation/icons/obj/clothing/ERT/ERT_spacesuit_obj.dmi differ diff --git a/monkestation/icons/obj/clothing/masks.dmi b/monkestation/icons/obj/clothing/masks.dmi index fd0bd387119f..a58e1800078e 100644 Binary files a/monkestation/icons/obj/clothing/masks.dmi and b/monkestation/icons/obj/clothing/masks.dmi differ diff --git a/monkestation/sound/ambience/antag/ert.ogg b/monkestation/sound/ambience/antag/ert.ogg new file mode 100644 index 000000000000..ee97b137b04e Binary files /dev/null and b/monkestation/sound/ambience/antag/ert.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 76548d2e39f8..f38b84e70734 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7186,6 +7186,11 @@ #include "monkestation\code\modules\donator\code\item\plush.dm" #include "monkestation\code\modules\donator\code\mob\pets.dm" #include "monkestation\code\modules\emotes\code\emote.dm" +#include "monkestation\code\modules\ERT\ERT_outfits.dm" +#include "monkestation\code\modules\ERT\ERT_shuttle.dm" +#include "monkestation\code\modules\ERT\equipment\ERT_id.dm" +#include "monkestation\code\modules\ERT\equipment\ERT_misc_equipment.dm" +#include "monkestation\code\modules\ERT\equipment\ERT_spacesuits.dm" #include "monkestation\code\modules\events\_event_admin_setup.dm" #include "monkestation\code\modules\events\artifact_spawn.dm" #include "monkestation\code\modules\events\brand_intelligence.dm"