diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 747a618c804..d0aeab0904c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,7 +41,7 @@ Maintainers can revert your changes if they feel they are not worth maintaining As mentioned before, you are expected to follow these specifications in order to make everyone's lives easier, it will also save you and us time, with having to make the changes and us having to tell you what to change. Thank you for reading this section. -###Object Oriented code +###Object Oriented code As BYOND's Dream Maker is an object oriented language, code must be object oriented when possible in order to be more flexible when adding content to it. If you are unfamiliar with this concept, it is highly recommended you look it up. ###All Byond paths must contain the full path. @@ -63,7 +63,7 @@ datum code proc2() code - + datum2 varname1 = 0 proc @@ -135,9 +135,20 @@ Copying code from one place to another maybe suitable for small short time proje Instead you can use object orientation, or simply placing repeated code in a function, to obey this specification easily. +###Startup/Runtime tradeoffs with lists and the "hidden" init proc +First, read the comments in this byond thread, starting here:http://www.byond.com/forum/?post=2086980&page=2#comment19776775 + +There are two key points here: + +1) Defining a list in the type definition incurs a hidden proc call - init, if you must define a list at startup, do so in New() and avoid the overhead of a second call (init() and then new()) + +2)Offsets list creation overhead to the point where the list is actually required (which for many objects, may be never at all). + +Remember, this tradeoff makes sense in many cases but not all, you should think carefully about your implementation before deciding if this is an appropriate thing to do + ###No magic numbers or strings Make these #defines with a name that more clearly states what it's for. - + ###Control statements: (if,while,for,etc) diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index 57039bae9d3..2036c6dc142 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -1,124 +1,1288 @@ -"aa" = (/turf/open/space,/area/space) -"ab" = (/obj/machinery/shieldwallgen{active = 2; anchored = 1; power = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/ruin/unpowered) -"ac" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/unpowered) -"ad" = (/obj/machinery/shieldwallgen{active = 2; anchored = 1; power = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/unpowered) -"ae" = (/obj/machinery/shieldwallgen{active = 2; anchored = 1; power = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/ruin/unpowered) -"af" = (/obj/machinery/shieldwallgen{active = 2; anchored = 1; power = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/ruin/unpowered) -"ag" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/unpowered) -"ah" = (/turf/closed/mineral,/area/ruin/unpowered) -"ai" = (/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"aj" = (/obj/structure/flora/rock,/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"ak" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/unpowered) -"al" = (/obj/structure/flora/ausbushes/genericbush,/turf/open/floor/grass,/area/ruin/unpowered) -"am" = (/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/poison/bees,/turf/open/floor/grass,/area/ruin/unpowered) -"an" = (/mob/living/simple_animal/hostile/poison/bees,/turf/open/floor/grass,/area/ruin/unpowered) -"ao" = (/obj/structure/flora/ausbushes/lavendergrass,/turf/open/floor/grass,/area/ruin/unpowered) -"ap" = (/mob/living/simple_animal/hostile/asteroid/goldgrub{will_burrow = 0},/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"aq" = (/obj/structure/flora/ausbushes/grassybush,/turf/open/floor/grass,/area/ruin/unpowered) -"ar" = (/obj/structure/flora/rock/pile,/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"as" = (/mob/living/simple_animal/hostile/asteroid/basilisk,/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"at" = (/turf/closed/wall/r_wall,/area/ruin/unpowered) -"au" = (/obj/structure/flora/ausbushes/leafybush,/mob/living/simple_animal/hostile/poison/bees,/turf/open/floor/grass,/area/ruin/unpowered) -"av" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/grass,/area/ruin/unpowered) -"aw" = (/obj/structure/flora/rock,/obj/machinery/light,/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"ax" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/clothing/mask/surgical,/obj/item/weapon/razor,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"ay" = (/turf/open/floor/plasteel/darkgreen,/area/ruin/unpowered) -"az" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/beakers,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aA" = (/obj/structure/flora/ausbushes/ywflowers,/turf/open/floor/grass,/area/ruin/unpowered) -"aB" = (/obj/machinery/light,/mob/living/simple_animal/hostile/poison/bees,/turf/open/floor/grass,/area/ruin/unpowered) -"aC" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/grass,/area/ruin/unpowered) -"aD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/highsecurity{name = "Bio Containment"; req_one_access_txt = "47"},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aE" = (/obj/machinery/shieldwallgen{active = 2; anchored = 1; power = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating,/area/ruin/unpowered) -"aF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/closed/wall/r_wall,/area/ruin/unpowered) -"aG" = (/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/weapon/gun/energy/floragun,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/darkgreen,/area/ruin/unpowered) -"aI" = (/obj/structure/table/reinforced,/obj/machinery/computer/med_data/laptop,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aJ" = (/obj/machinery/shieldwallgen{active = 2; anchored = 1; power = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/ruin/unpowered) -"aK" = (/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) -"aL" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/closed/wall/r_wall,/area/ruin/unpowered) -"aN" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aO" = (/obj/structure/chair/office/light{dir = 8},/turf/open/floor/plasteel/darkgreen,/area/ruin/unpowered) -"aP" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aQ" = (/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) -"aR" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aS" = (/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/rack,/obj/item/weapon/melee/baton/cattleprod,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aT" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/medical,/obj/item/weapon/tank/internals/emergency_oxygen/double,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aU" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/shield/riot,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aV" = (/obj/machinery/smartfridge/chemistry,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aW" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/syringe,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aX" = (/obj/structure/table/reinforced,/obj/item/weapon/grenade/chem_grenade/antiweed{pixel_x = 3; pixel_y = 5},/obj/item/weapon/grenade/chem_grenade/antiweed{pixel_x = 4},/obj/item/weapon/grenade/chem_grenade/antiweed{pixel_x = -3; pixel_y = -1},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aY" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/temperature,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"aZ" = (/obj/structure/table/reinforced,/obj/item/weapon/cultivator,/obj/item/weapon/shovel,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"ba" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bb" = (/obj/machinery/door/airlock/hatch{name = "Bio-Research Station"},/turf/open/floor/plasteel/darkgreen,/area/ruin/unpowered) -"bc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/darkgreen,/area/ruin/unpowered) -"bd" = (/obj/machinery/power/terminal,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/darkgreen,/area/ruin/unpowered) -"be" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bf" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bg" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bh" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bi" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/hypospray/medipen/stimpack,/obj/item/weapon/reagent_containers/glass/bottle/mutagen,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bj" = (/obj/structure/table/reinforced,/obj/item/weapon/surgicaldrill,/obj/item/weapon/hemostat,/obj/item/weapon/scalpel,/obj/item/weapon/surgical_drapes,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/machinery/light,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bk" = (/obj/structure/table/optable,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bl" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bm" = (/obj/structure/closet/wardrobe/science_white,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bn" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/carrotfries,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bo" = (/obj/machinery/shieldwallgen{active = 2; anchored = 1; power = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/ruin/unpowered) -"bp" = (/obj/structure/bed,/obj/item/weapon/bedsheet/green,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bq" = (/obj/item/stack/cable_coil/cut,/obj/item/stack/tile/plasteel{pixel_x = 3; pixel_y = -4},/obj/item/weapon/wirecutters,/turf/open/floor/plating,/area/ruin/unpowered) -"br" = (/obj/structure/table/reinforced,/obj/machinery/microwave,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/shieldwallgen,/turf/open/floor/plating,/area/ruin/unpowered) -"bt" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/shieldwallgen,/turf/open/floor/plating,/area/ruin/unpowered) -"bu" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/plating,/area/ruin/unpowered) -"bv" = (/turf/open/floor/plating,/area/ruin/unpowered) -"bw" = (/obj/machinery/light{dir = 1},/mob/living/simple_animal/hostile/carp,/turf/open/floor/plating,/area/ruin/unpowered) -"bx" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/plating,/area/ruin/unpowered) -"by" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/closed/wall/r_wall,/area/ruin/unpowered) -"bz" = (/obj/machinery/space_heater,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bA" = (/obj/structure/table/reinforced,/obj/machinery/juicer,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/unpowered) -"bB" = (/obj/structure/alien/weeds,/turf/open/floor/plating,/area/ruin/unpowered) -"bC" = (/obj/structure/alien/weeds/node,/obj/machinery/light{dir = 1},/turf/open/floor/plating,/area/ruin/unpowered) -"bD" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/open/floor/plating,/area/ruin/unpowered) -"bE" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/open/floor/plating,/area/ruin/unpowered) -"bF" = (/obj/structure/disposalpipe/segment,/turf/closed/wall/r_wall,/area/ruin/unpowered) -"bG" = (/obj/machinery/door/airlock/external,/turf/open/floor/plasteel/darkgreen,/area/ruin/unpowered) -"bH" = (/obj/structure/alien/resin/wall,/turf/open/floor/plating,/area/ruin/unpowered) -"bI" = (/obj/structure/flora/ausbushes/reedbush,/turf/open/floor/plating,/area/ruin/unpowered) -"bJ" = (/mob/living/simple_animal/crab{faction = list("carp")},/turf/open/floor/plating,/area/ruin/unpowered) -"bK" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/space) -"bL" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/darkgreen,/area/ruin/unpowered) -"bM" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/darkgreen,/area/ruin/unpowered) -"bN" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating,/area/ruin/unpowered) -"bO" = (/obj/item/weapon/shard,/turf/open/floor/plating,/area/ruin/unpowered) -"bP" = (/obj/structure/lattice,/turf/open/space,/area/space) -"bQ" = (/obj/machinery/shieldwallgen{active = 2; anchored = 1; power = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable,/turf/open/floor/plating,/area/ruin/unpowered) -"bR" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/open/floor/plating,/area/space) -"bS" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable,/obj/machinery/shieldwallgen,/turf/open/floor/plating,/area/ruin/unpowered) -"bT" = (/obj/structure/grille,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating,/area/ruin/unpowered) -"bU" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/open/floor/plating,/area/ruin/unpowered) -"bV" = (/obj/machinery/shieldwallgen,/turf/open/space,/area/space) -"bW" = (/obj/item/weapon/shard,/turf/open/space,/area/space) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"ac" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"ad" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"ae" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"af" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"ag" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/unpowered) +"ah" = ( +/turf/closed/mineral, +/area/ruin/unpowered) +"ai" = ( +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aj" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"ak" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"al" = ( +/obj/structure/flora/ausbushes/genericbush, +/turf/open/floor/grass, +/area/ruin/unpowered) +"am" = ( +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/turf/open/floor/grass, +/area/ruin/unpowered) +"an" = ( +/mob/living/simple_animal/hostile/poison/bees, +/turf/open/floor/grass, +/area/ruin/unpowered) +"ao" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/turf/open/floor/grass, +/area/ruin/unpowered) +"ap" = ( +/mob/living/simple_animal/hostile/asteroid/goldgrub{ + will_burrow = 0 + }, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aq" = ( +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/grass, +/area/ruin/unpowered) +"ar" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"as" = ( +/mob/living/simple_animal/hostile/asteroid/basilisk, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"at" = ( +/turf/closed/wall/r_wall, +/area/ruin/unpowered) +"au" = ( +/obj/structure/flora/ausbushes/leafybush, +/mob/living/simple_animal/hostile/poison/bees, +/turf/open/floor/grass, +/area/ruin/unpowered) +"av" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/grass, +/area/ruin/unpowered) +"aw" = ( +/obj/structure/flora/rock, +/obj/machinery/light, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"ax" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/clothing/mask/surgical, +/obj/item/weapon/razor, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"ay" = ( +/turf/open/floor/plasteel/darkgreen, +/area/ruin/unpowered) +"az" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/syringes{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/beakers, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aA" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/ruin/unpowered) +"aB" = ( +/obj/machinery/light, +/mob/living/simple_animal/hostile/poison/bees, +/turf/open/floor/grass, +/area/ruin/unpowered) +"aC" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/ruin/unpowered) +"aD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Bio Containment"; + req_one_access_txt = "47" + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aE" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"aF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/ruin/unpowered) +"aG" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/item/weapon/gun/energy/floragun, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/unpowered) +"aI" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/med_data/laptop, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aJ" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"aK" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aL" = ( +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/ruin/unpowered) +"aN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aO" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/unpowered) +"aP" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aQ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"aR" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aS" = ( +/obj/machinery/power/apc{ + dir = 8; + environ = 0; + equipment = 0; + lighting = 0; + locked = 0; + name = "Worn-out APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/rack, +/obj/item/weapon/melee/baton/cattleprod, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/rack, +/obj/item/clothing/suit/space/hardsuit/medical, +/obj/item/weapon/tank/internals/emergency_oxygen/double, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aU" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar, +/obj/item/weapon/shield/riot, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aV" = ( +/obj/machinery/smartfridge/chemistry, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aW" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/syringe, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/grenade/chem_grenade/antiweed{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/weapon/grenade/chem_grenade/antiweed{ + pixel_x = 4 + }, +/obj/item/weapon/grenade/chem_grenade/antiweed{ + pixel_x = -3; + pixel_y = -1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aY" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/energy/temperature{ + pin = /obj/item/device/firing_pin + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"aZ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/cultivator, +/obj/item/weapon/shovel, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"ba" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bb" = ( +/obj/machinery/door/airlock/hatch{ + name = "Bio-Research Station" + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/unpowered) +"bc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/unpowered) +"bd" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/unpowered) +"be" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bf" = ( +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; + name = "power storage unit" + }, +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bg" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bi" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, +/obj/item/weapon/reagent_containers/glass/bottle/mutagen, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bj" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/hemostat, +/obj/item/weapon/scalpel, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/retractor, +/obj/item/weapon/cautery, +/obj/item/weapon/circular_saw, +/obj/machinery/light, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bk" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bl" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bm" = ( +/obj/structure/closet/wardrobe/science_white, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/carrotfries, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bo" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bp" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/green, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bq" = ( +/obj/item/stack/cable_coil/cut, +/obj/item/stack/tile/plasteel{ + pixel_x = 3; + pixel_y = -4 + }, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating, +/area/ruin/unpowered) +"br" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/shieldwallgen, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bt" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/shieldwallgen, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bu" = ( +/obj/structure/flora/ausbushes/sunnybush, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bv" = ( +/turf/open/floor/plating, +/area/ruin/unpowered) +"bw" = ( +/obj/machinery/light{ + dir = 1 + }, +/mob/living/simple_animal/hostile/carp, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bx" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating, +/area/ruin/unpowered) +"by" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall/r_wall, +/area/ruin/unpowered) +"bz" = ( +/obj/machinery/space_heater, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bA" = ( +/obj/structure/table/reinforced, +/obj/machinery/juicer, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered) +"bB" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bC" = ( +/obj/structure/alien/weeds/node, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bD" = ( +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_dead"; + stat = 2 + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bE" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bF" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/ruin/unpowered) +"bG" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/unpowered) +"bH" = ( +/obj/structure/alien/resin/wall, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bI" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bJ" = ( +/mob/living/simple_animal/crab{ + faction = list("carp") + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bK" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/space) +"bL" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/unpowered) +"bM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/unpowered) +"bN" = ( +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bO" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bP" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bQ" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bR" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating, +/area/space) +"bS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable, +/obj/machinery/shieldwallgen, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bT" = ( +/obj/structure/grille, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bU" = ( +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"bV" = ( +/obj/machinery/shieldwallgen, +/turf/open/space, +/area/space) +"bW" = ( +/obj/item/weapon/shard, +/turf/open/space, +/area/space) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -abacacacacadaaaaaaaaaaaaaeacacacacafaaaa -agahahaiajakaaaaaaaaaaaaakalamanaoakaaaa -agaiapahaiakaaaaaaaaaaaaakanamaqanakaaaa -agaraiaiasakatagagagagatakanaoauavakaaaa -agahaiawarakataxayayazatakaAaBamaCakaaaa -abacaDacacaEaFaGaHaHaIaFaJacacaDacafaaaa -aaaKaLatataMataNaOayaPatatatataLaQaaaaaa -aaaKaRataSaTaUaVayayaWaXaYaZatbaaQaaaaaa -aaaKaLbbaybcayayayayayayayaybbaLaQaaaaaa -aaaKaLbbaybdayayayayayayayaybbaLaQaaaaaa -aaaKaRatbebfbgbhayaybibjbkblatbaaQaaaaaa -aaaKaLatataMatbmayaybnatatatataLaQaaaaaa -abacaDacacboaFbpaHbqbraFbsacacaDacbtaaaa -agbubvbwbxakbybzayaybAatakbBbCbDbBagaaaa -agbvbvbvbEakbFatbGbGatatakbBbHbBbBagaaaa -agbIbJbvbvakbKatbLbMataaakbDbHbvbvbNaaaa -agbvbvbvbvakbKatbGbGataaakbHbvbObvbPaaaa -abacacacacbQbRaaaaaaaaaabSacbTbUbPaabVaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWaaaaaaaa +aa +ab +ag +ag +ag +ag +ab +aa +aa +aa +aa +aa +aa +ab +ag +ag +ag +ag +ab +aa +"} +(2,1,1) = {" +aa +ac +ah +ai +ar +ah +ac +aK +aK +aK +aK +aK +aK +ac +bu +bv +bI +bv +ac +aa +"} +(3,1,1) = {" +aa +ac +ah +ap +ai +ai +aD +aL +aR +aL +aL +aR +aL +aD +bv +bv +bJ +bv +ac +aa +"} +(4,1,1) = {" +aa +ac +ai +ah +ai +aw +ac +at +at +bb +bb +at +at +ac +bw +bv +bv +bv +ac +aa +"} +(5,1,1) = {" +aa +ac +aj +ai +as +ar +ac +at +aS +ay +ay +be +at +ac +bx +bE +bv +bv +ac +aa +"} +(6,1,1) = {" +aa +ad +ak +ak +ak +ak +aE +aM +aT +bc +bd +bf +aM +bo +ak +ak +ak +ak +bQ +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +at +at +aF +at +aU +ay +ay +bg +at +aF +by +bF +bK +bK +bR +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +ag +ax +aG +aN +aV +ay +ay +bh +bm +bp +bz +at +at +at +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +ag +ay +aH +aO +ay +ay +ay +ay +ay +aH +ay +bG +bL +bG +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +ag +ay +aH +ay +ay +ay +ay +ay +ay +bq +ay +bG +bM +bG +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +ag +az +aI +aP +aW +ay +ay +bi +bn +br +bA +at +at +at +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +at +at +aF +at +aX +ay +ay +bj +at +aF +at +at +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +ae +ak +ak +ak +ak +aJ +at +aY +ay +ay +bk +at +bs +ak +ak +ak +ak +bS +aa +"} +(14,1,1) = {" +aa +ac +al +an +an +aA +ac +at +aZ +ay +ay +bl +at +ac +bB +bB +bD +bH +ac +aa +"} +(15,1,1) = {" +aa +ac +am +am +ao +aB +ac +at +at +bb +bb +at +at +ac +bC +bH +bH +bv +bT +aa +"} +(16,1,1) = {" +aa +ac +an +aq +au +am +aD +aL +ba +aL +aL +ba +aL +aD +bD +bB +bv +bO +bU +bW +"} +(17,1,1) = {" +aa +ac +ao +an +av +aC +ac +aQ +aQ +aQ +aQ +aQ +aQ +ac +bB +bB +bv +bv +bP +aa +"} +(18,1,1) = {" +aa +af +ak +ak +ak +ak +af +aa +aa +aa +aa +aa +aa +bt +ag +ag +bN +bP +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bV +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} diff --git a/_maps/RandomRuins/SpaceRuins/spacebar.dmm b/_maps/RandomRuins/SpaceRuins/spacebar.dmm index a64c14d8a47..b7ed1dc854e 100644 --- a/_maps/RandomRuins/SpaceRuins/spacebar.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacebar.dmm @@ -1,109 +1,2149 @@ -"aa" = (/turf/open/space,/area/space) -"ab" = (/turf/closed/mineral,/area/space) -"ac" = (/turf/open/floor/plating/asteroid,/area/space) -"ad" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/unpowered) -"ae" = (/turf/closed/wall,/area/ruin/unpowered) -"af" = (/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"ag" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/asteroid,/area/ruin/unpowered) -"ah" = (/turf/closed/mineral,/area/ruin/unpowered) -"ai" = (/turf/open/floor/plating/asteroid,/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/ruin/unpowered) -"aj" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/ruin/unpowered) -"ak" = (/turf/open/floor/plating/asteroid,/turf/closed/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/ruin/unpowered) -"al" = (/turf/closed/wall,/area/ruin/powered) -"am" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/ruin/unpowered) -"an" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/ruin/unpowered) -"ao" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/wood,/area/ruin/powered) -"ap" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/wood,/area/ruin/powered) -"aq" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/open/floor/wood,/area/ruin/powered) -"ar" = (/turf/open/floor/wood,/area/ruin/powered) -"as" = (/obj/structure/table,/obj/item/toy/figure/bartender,/turf/open/floor/wood,/area/ruin/powered) -"at" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/wood,/area/ruin/powered) -"au" = (/obj/effect/mob_spawn/human/bartender/alive,/turf/open/floor/wood,/area/ruin/powered) -"av" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/ruin/powered) -"aw" = (/turf/open/floor/plasteel/shuttle,/area/ruin/unpowered) -"ax" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/open/floor/wood,/area/ruin/powered) -"ay" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/wood,/area/ruin/powered) -"az" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/ruin/unpowered) -"aA" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/turf/open/floor/plasteel/shuttle,/area/ruin/unpowered) -"aB" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/ruin/unpowered) -"aC" = (/obj/machinery/button/door{id = "spacebardock"; name = "pod dock door cycle"; pixel_x = -32},/turf/open/floor/wood,/area/ruin/powered) -"aD" = (/obj/machinery/vending/boozeomat,/turf/closed/wall,/area/ruin/powered) -"aE" = (/obj/machinery/light/small,/turf/open/floor/wood,/area/ruin/powered) -"aF" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/turf/open/floor/wood,/area/ruin/powered) -"aG" = (/obj/structure/table,/turf/open/floor/wood,/area/ruin/powered) -"aH" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/glass/rag,/turf/open/floor/wood,/area/ruin/powered) -"aI" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/open/floor/plasteel{icon_state = "wood"},/area/ruin/powered) -"aJ" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aK" = (/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aL" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered) -"aN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/closed/wall,/area/ruin/powered) -"aO" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/powered) -"aP" = (/turf/open/floor/plating,/area/ruin/powered) -"aQ" = (/obj/structure/chair{tag = "icon-chair (EAST)"; icon_state = "chair"; dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aR" = (/obj/structure/table/wood,/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aS" = (/obj/structure/chair{tag = "icon-chair (WEST)"; icon_state = "chair"; dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aT" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aU" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aV" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aW" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aX" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aY" = (/obj/machinery/vending/snack,/obj/machinery/light,/turf/open/floor/plasteel/bar,/area/ruin/powered) -"aZ" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/ruin/powered) -"ba" = (/obj/machinery/door/airlock{name = "Unisex Bathroom"},/turf/open/floor/plasteel/freezer,/area/ruin/powered) -"bb" = (/obj/structure/urinal{pixel_x = -32},/turf/open/floor/plasteel/freezer,/area/ruin/powered) -"bc" = (/turf/open/floor/plasteel/freezer,/area/ruin/powered) -"bd" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer,/area/ruin/powered) -"be" = (/obj/structure/table/wood,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered) -"bf" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/powered) -"bg" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/powered) -"bh" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/open/floor/plasteel/freezer,/area/ruin/powered) -"bi" = (/obj/effect/glowshroom/single,/turf/open/floor/plasteel/freezer,/area/ruin/powered) -"bj" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/unpowered) -"bk" = (/turf/open/floor/plating,/area/ruin/unpowered) -"bl" = (/turf/open/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/ruin/powered) -"bm" = (/obj/machinery/door/poddoor/preopen{id = "spacebardock"; name = "airlock dock"},/turf/open/floor/plating,/area/ruin/powered) -"bn" = (/obj/machinery/door/poddoor{id = "spacebardock"; name = "airlock dock"},/turf/open/floor/plating,/area/ruin/powered) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/mineral, +/area/space) +"ac" = ( +/turf/open/floor/plating/asteroid, +/area/space) +"ad" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/unpowered) +"ae" = ( +/turf/closed/wall, +/area/ruin/unpowered) +"af" = ( +/turf/open/floor/plating/asteroid, +/area/ruin/powered) +"ag" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/asteroid, +/area/ruin/powered) +"ah" = ( +/turf/closed/mineral, +/area/ruin/powered) +"ai" = ( +/turf/open/floor/plating/asteroid, +/turf/closed/wall/shuttle{ + icon_state = "swall_f6"; + dir = 2 + }, +/area/ruin/powered) +"aj" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/ruin/powered) +"ak" = ( +/turf/open/floor/plating/asteroid, +/turf/closed/wall/shuttle{ + dir = 2; + icon_state = "swall_f10"; + layer = 2 + }, +/area/ruin/powered) +"al" = ( +/turf/closed/wall, +/area/ruin/powered) +"am" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/ruin/powered) +"an" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle, +/area/ruin/powered) +"ao" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"ap" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"aq" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"ar" = ( +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"as" = ( +/obj/structure/table, +/obj/item/toy/figure/bartender, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"at" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"au" = ( +/obj/effect/mob_spawn/human/bartender/alive, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"av" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"aw" = ( +/turf/open/floor/plasteel/shuttle, +/area/ruin/powered) +"ax" = ( +/obj/machinery/door/airlock{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"ay" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"az" = ( +/turf/open/floor/plating, +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/ruin/powered) +"aA" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/turf/open/floor/plasteel/shuttle, +/area/ruin/powered) +"aB" = ( +/turf/open/floor/plating, +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/shuttle{ + icon_state = "swall_f9"; + dir = 2 + }, +/area/ruin/powered) +"aC" = ( +/obj/machinery/button/door{ + id = "spacebardock"; + name = "pod dock door cycle"; + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"aD" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall, +/area/ruin/powered{ + name = "Space Bar" + }) +"aE" = ( +/obj/machinery/light/small, +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"aF" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 10 + }, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"aG" = ( +/obj/structure/table, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"aH" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"aI" = ( +/obj/machinery/door/airlock{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/turf/open/floor/plasteel{ + icon_state = "wood" + }, +/area/ruin/powered{ + name = "Space Bar" + }) +"aJ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aK" = ( +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aL" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/powered) +"aN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/closed/wall, +/area/ruin/powered{ + name = "Space Bar" + }) +"aO" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/ruin/powered) +"aP" = ( +/turf/open/floor/plating, +/area/ruin/powered) +"aQ" = ( +/obj/structure/chair{ + tag = "icon-chair (EAST)"; + icon_state = "chair"; + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aR" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aS" = ( +/obj/structure/chair{ + tag = "icon-chair (WEST)"; + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aT" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aU" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aV" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aW" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aX" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aY" = ( +/obj/machinery/vending/snack, +/obj/machinery/light, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"aZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"ba" = ( +/obj/machinery/door/airlock{ + name = "Unisex Bathroom" + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered{ + name = "Space Bar" + }) +"bb" = ( +/obj/structure/urinal{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered{ + name = "Space Bar" + }) +"bc" = ( +/turf/open/floor/plasteel/freezer, +/area/ruin/powered{ + name = "Space Bar" + }) +"bd" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered{ + name = "Space Bar" + }) +"be" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"bf" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered{ + name = "Space Bar" + }) +"bg" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered{ + name = "Space Bar" + }) +"bh" = ( +/obj/machinery/door/airlock{ + name = "Toilet" + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered{ + name = "Space Bar" + }) +"bi" = ( +/obj/effect/glowshroom/single, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered{ + name = "Space Bar" + }) +"bj" = ( +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Space Bar" + }) +"bk" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/bar, +/area/ruin/powered{ + name = "Space Bar" + }) +"bl" = ( +/turf/open/floor/plating{ + icon_plating = "warnplate"; + icon_state = "warnplate" + }, +/area/ruin/powered) +"bm" = ( +/obj/machinery/door/poddoor/preopen{ + id = "spacebardock"; + name = "airlock dock" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"bn" = ( +/obj/machinery/door/poddoor{ + id = "spacebardock"; + name = "airlock dock" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"bs" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Space Bar" + }) +"br" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Space Bar" + }) +"bq" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"bp" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/wood, +/area/ruin/powered{ + name = "Space Bar" + }) +"bo" = ( +/turf/closed/wall, +/area/ruin/powered{ + name = "Space Bar" + }) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacababacacacacacaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaacacacacacadadaeadadacacacacacacacacacacacacacaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaacacacadadadafafafafafadadacacadadadadadadagacacacacaaaaaaaaaa -aaaaaaaaaaaaaaaaacacacadafafafafafafahahafafadadafafafafafafafadadacacacaaaaaaaa -aaaaaaaaaaaaaaacacacadafafafafafafahahahahafafafafafafafafafafafafadacacaaaaaaaa -aaaaaaaaaaacacacacadafaiajakafafahahahalalalalalalalalalalalalafafadacacaaaaaaaa -aaaaaaaaaaacacacadafafamanamafafahahahalaoapaqaralasatauaravalafafadacacacaaaaaa -aaaaaaaaacacadadafafafamawamafafahahahalararararaxararararayalafafafadacacaaaaaa -aaaaaaababacadafafafafazaAaBafafafahahalaCarararaDaraEararaFalafafafadacacaaaaaa -aaaaaaaaabacaeafafafafafafafafafafafafalaGaGaHaGalalalalaIalalafafafaeacaaaaaaaa -aaaaaaaaabacadadafafafafafafafafafafafalaJaJaJaJaKaKaLaKaKaKalafafafadacabaaaaaa -aaaaaaaaacacacacadafafafafafafafalaMaNalaKaKaKaKaKaKaKaKaKaKaMafafadacacababaaaa -aaaaaaaaaaacacadafafafafafafafafaOaPaPaOaKaKaKaKaKaKaQaRaSaKaMafafadacabababaaaa -aaaaaaaaaaacacadafafafafafafafafalaMaMalaTaKaQaRaSaKaKaKaKaKaMafafadacacaaaaaaaa -aaaaaaaaacacadafafafafafafafafafafafafalaUaKaKaKaKaKaKaKaKaKaMafafadacacaaaaaaaa -aaaaaaaaabacadafafafafafafafafafafafafalaRaKaKaKaVaWaXaYaKaKalafafadacacacaaaaaa -aaaaaaababacadafafafafafafafafafafafafalaZaKaKaKalalalalalbaalahafafadacacacaaaa -aaaaaaaaabacadafafafafafafafafaiajakafalaKaKaKaKalbbbcbcbcbcalahafafafadacabaaaa -aaaaaaaaacacadafafafafafafafafamanamafaMaKaKaKaUalbbbcbcbcbdalahahafafadacabaaaa -aaaaaaaaacacacadafafafafafafafamawamafafaMaKaKbealalalbfbcbdalahahafafadacabaaaa -aaaaaaaaaaacacadafafafafafafafazaAaBafafafaMaKaZalbgbhbcbibcalahahafafadacacaaaa -aaaaaaaaaaacaeaeaeaeafafafafafafafafafafafafaMalalalalalalalalahahafadacacacaaaa -aaaaaaaaaaaabjbkbkbjafafafafafafafafafafahahafafafahahahahahahahahafadacacacaaaa -aaaaaaaaaaaaaeaeaeaeafafafafafafafafafahahahafafafafafahahahahahahadacacacaaaaaa -aaaaaaaaaaaaacacaeafalblblblblblblalafafahafafafafafafafafahahahafadacacaaaaaaaa -aaaaaaaaaaaaacabaeafalbmbmbmbmbmbmalafafafafafafafafafafafafafafadaeacabaaaaaaaa -aaaaaaaaaaaaababaeaealaPaPaPaPaPaPalaeaeaeadadadadadadadadadadaeacacacacaaaaaaaa -aaaaaaaaaaaaababababalaPaPaPaPaPaPalacacacacacacacacacacacacacacacacacaaaaaaaaaa -aaaaaaaaaaaaaaaaababalaPaPaPaPaPaPalacacacacacacacacabacacacacacacaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaalaPaPaPaPaPaPalacacacacaaaaaaacacacababaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaalbnbnbnbnbnbnalacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaalaaaaaaaaaaaaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ab +ab +ab +ac +aa +aa +ac +ab +ab +ab +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aM +aM +al +aM +ac +ac +ac +aM +aM +aM +aM +aM +ac +ac +al +aO +al +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +aM +ac +aM +aM +af +af +af +af +af +aM +aM +al +aP +al +ac +ab +ab +ab +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +af +af +aM +af +af +af +af +af +af +af +af +af +al +aP +al +al +al +al +ab +ab +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +al +aO +al +af +af +al +ab +ab +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +al +al +al +al +al +al +al +al +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +ai +am +am +az +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bl +bm +aP +aP +aP +aP +bn +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +ac +ac +aM +af +af +aj +an +aw +aA +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bl +bm +aP +aP +aP +aP +bn +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +ak +am +am +aB +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bl +bm +aP +aP +aP +aP +bn +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bl +bm +aP +aP +aP +aP +bn +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +ac +ac +ac +ad +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ai +am +am +az +af +af +af +bl +bm +aP +aP +aP +aP +bn +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +ac +ac +ac +ad +af +af +af +ah +ah +ah +af +af +af +bo +bs +bo +af +af +af +aj +an +aw +aA +af +af +af +bl +bm +aP +aP +aP +aP +bn +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +ac +ac +ac +ae +af +af +ah +ah +ah +ah +ah +af +af +br +bj +br +af +af +af +ak +am +am +aB +af +af +af +al +al +al +al +al +al +al +al +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +ac +ac +ac +ad +af +ah +ah +ah +ah +ah +ah +af +af +aN +bj +br +af +af +af +af +af +af +af +af +af +af +af +af +al +ac +ac +ac +ac +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +ab +ac +ac +ac +ad +af +ah +ah +bo +bo +bo +bo +bo +bo +bo +bs +bo +bo +bo +bo +bo +br +af +af +af +af +ah +af +af +al +ac +ac +ac +ac +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +ab +ab +ac +ac +ac +aM +af +ah +bo +ao +ar +aC +aG +aJ +aK +aK +aT +aU +aR +aZ +aK +aK +br +af +af +ah +ah +ah +af +al +ac +ac +ac +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +ab +ab +ac +ac +ac +aM +af +af +bo +ap +ar +ar +aG +aJ +aK +aK +aK +aK +aK +aK +aK +aK +aK +br +af +ah +ah +af +af +aM +ac +ac +ac +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +ab +ab +ac +ac +ac +aM +af +bo +aq +ar +ar +aH +aJ +aK +aK +aQ +aK +aK +aK +aK +aK +aK +aK +br +af +af +af +af +aM +ac +ac +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +ab +ab +ac +ac +ac +aM +af +bo +ar +ar +ar +aG +aJ +aK +aK +aR +aK +aK +aK +aK +aU +be +aZ +bo +af +af +af +af +aM +ac +ac +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +bo +bo +ax +aD +bo +aK +aK +aK +aS +aK +aV +bo +bo +bo +bo +bo +bo +af +af +af +af +aM +ac +ac +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +bo +as +ar +bp +bo +aK +aK +aK +aK +bk +aW +bo +bb +bb +bo +bg +bo +ah +af +af +af +aM +ac +ac +ac +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +bo +at +ar +aE +bo +aL +aK +aQ +aK +aK +aX +bo +bc +bc +bo +bh +bo +ah +af +af +af +aM +ac +ab +ac +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +bo +au +ar +bq +bo +aK +aK +aR +aK +aK +aY +bo +bc +bc +bf +bc +bo +ah +ah +af +af +aM +ac +ac +ac +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +ac +ac +ac +aM +af +af +bo +ar +ar +ar +aI +aK +aK +aS +aK +aK +aK +bo +bc +bc +bc +bi +bo +ah +ah +af +af +aM +ac +ac +ab +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +ac +ac +aM +af +af +bo +av +ay +aF +bo +aK +aK +aK +aK +aK +aK +ba +bc +bd +bd +bc +bo +ah +ah +ah +af +aM +ac +ac +ab +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +ac +ac +ag +af +af +bo +bo +bo +bo +bo +bo +br +br +br +br +bo +bo +bo +bo +bo +bo +bo +ah +ah +ah +af +aM +ac +ac +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +aM +af +af +af +af +af +af +af +af +af +af +af +af +ah +ah +ah +ah +ah +ah +ah +ah +ah +af +al +ac +ac +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +aM +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ah +ah +ah +ah +ah +ah +af +aM +ac +ac +ac +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aM +aM +aM +af +af +af +af +aM +aM +aM +aM +aM +af +af +af +af +af +af +af +aM +aM +al +ac +ac +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aM +aM +al +aM +ac +ac +ac +ac +ac +aM +af +af +af +af +aM +aM +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +aM +aM +aM +aM +ac +ac +ac +ac +ab +ac +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aa +ab +ab +ab +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aa +aa +aa +ac +ab +ab +ab +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 37d91dd73ba..57b2c9c959e 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -93876,18 +93876,12 @@ }, /area/chapel/main) "cTE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/turf/closed/wall/shuttle{ + tag = "icon-wall3 (NORTHWEST)"; + icon_state = "wall3"; + dir = 9 }, -/mob/living/simple_animal/hostile/retaliate/bat{ - name = "Orlocke"; - real_name = "Orlocke"; - turns_per_move = 6 - }, -/turf/open/floor/plasteel{ - icon_state = "dark" - }, -/area/chapel/main) +/area/shuttle/escape) "cTF" = ( /obj/machinery/door/window{ dir = 4; @@ -93927,8 +93921,13 @@ }, /area/chapel/main) "cTH" = ( -/obj/structure/bookcase{ - name = "Holy Bookcase" +/obj/machinery/camera{ + c_tag = "Chapel - Port"; + dir = 4; + network = list("SS13") + }, +/obj/structure/chair/comfy/black{ + dir = 4 }, /turf/open/floor/plasteel{ dir = 8; @@ -99123,11 +99122,11 @@ /obj/docking_port/stationary{ dheight = 0; dir = 2; - dwidth = 5; - height = 14; + dwidth = 10; + height = 25; id = "emergency_home"; - name = "emergency evac bay"; - width = 25 + name = "MetaStation emergency evac bay"; + width = 29 }, /turf/open/floor/plasteel/shuttle, /area/shuttle/escape) @@ -100611,18 +100610,20 @@ icon_state = "warning" }, /area/hydroponics) +"dfJ" = ( +/obj/structure/bookcase{ + name = "Holy Bookcase" + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) "dfK" = ( /turf/closed/wall/shuttle{ icon_state = "swall2" }, /area/shuttle/escape) -"dfJ" = ( -/turf/closed/wall/shuttle{ - tag = "icon-wall3 (NORTHWEST)"; - icon_state = "wall3"; - dir = 9 - }, -/area/shuttle/escape) (1,1,1) = {" aaa @@ -121632,7 +121633,7 @@ cSr cSR cSQ cSr -cUd +cUe cRQ aaa aaf @@ -121886,10 +121887,10 @@ cQW cNm cRV cSr -cSQ -cSQ -cTE -cUe +cTJ +cTn +cSr +cTK cRQ aaa aaf @@ -122144,10 +122145,10 @@ cRz cRW cSs cSS -cTn -cSr -cTK -cRQ +cOU +cTF +cUf +cOU aaa aaf aaa @@ -122402,9 +122403,9 @@ cRX cSt cST cOU -cTF -cUf -cOU +cTG +cUg +cUt aaa aaf aaa @@ -122659,9 +122660,9 @@ cRY cSu cXo cOU -cTG -cUg -cUt +cOU +cOU +cOU aaf aaf aaa @@ -122916,9 +122917,9 @@ cOU cSv cXc cOU +dfJ cOU -cOU -cOU +aaa aaa ddg ddg @@ -123172,11 +123173,11 @@ cNm cRZ cSw cXp -cOU cTH +cRh cOU aaa -dfJ +cTE ddi ddi ddi @@ -123429,7 +123430,7 @@ cRB cSa cSx cSX -cTo +cSB cTI cOU ddb @@ -130127,11 +130128,11 @@ aaa aaa aaa aaf -cTC -cTC -cTC -cTC -cTC +aaa +aaa +aaa +aaa +aaa aaa aaa aaf @@ -130385,9 +130386,9 @@ cTC cTC cTC cTC -cVt -dfw -cVB +cTC +cTC +cTC cTC cTC cTC @@ -130642,8 +130643,8 @@ cVt dfs cVN cVo -cVs -cVC +cVt +dfw cVB cTC cXd @@ -130900,7 +130901,7 @@ cVC cVB cVo cVs -cVB +cVC cVB cTC cXb @@ -131138,7 +131139,7 @@ cTy cTy cTy cTy -cTy +aaa aaf aaf aaa @@ -131393,10 +131394,10 @@ cTz cTA dcN dcN -dcN dcQ cTy aaa +aaa aaf aaa cTC @@ -131650,9 +131651,9 @@ cTy cTy cTy cTy -cTy dcW cTy +aaa cTO cTC cTC @@ -131906,10 +131907,10 @@ bVE aaa aaf aaa -aaa cTy dcW cTy +cTy cTC cTR cTU @@ -132163,9 +132164,9 @@ bVE aaa aaf aaa -aaa cTy dcY +dcN cTB cTP cTT @@ -132420,7 +132421,7 @@ bVE aaf aaf aaf -aaa +cTy cTy cTy cTy diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index a2831ee955f..df61d13b779 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -2476,17 +2476,11 @@ /turf/open/floor/plasteel, /area/security/prison) "aeR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/light/small{ + dir = 1 }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plating, +/area/hallway/secondary/exit) "aeS" = ( /obj/structure/cable{ d1 = 4; @@ -2613,36 +2607,22 @@ /turf/open/floor/plating, /area/ai_monitored/security/armory) "afa" = ( -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Armory"; - req_access_txt = "3" +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" }, -/obj/machinery/door/firedoor, -/obj/machinery/light{ +/obj/docking_port/mobile/emergency{ + name = "BoxStation emergency shuttle" + }, +/obj/docking_port/stationary{ dir = 4; - icon_state = "tube1" + dwidth = 12; + height = 18; + id = "emergency_home"; + name = "BoxStation emergency evac bay"; + width = 32 }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8"; - tag = "" - }, -/turf/open/floor/plasteel{ - dir = 6; - icon_state = "warning" - }, -/area/ai_monitored/security/armory) +/turf/open/floor/plating, +/area/shuttle/escape) "afb" = ( /obj/machinery/recharger, /obj/structure/table, @@ -2940,16 +2920,9 @@ }, /area/security/prison) "afE" = ( -/obj/machinery/button/flasher{ - id = "insaneflash"; - pixel_y = -26 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ - icon_state = "whitehall"; - dir = 2 - }, -/area/security/prison) +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/exit) "afF" = ( /obj/structure/table, /obj/item/device/assembly/signaler, @@ -32667,7 +32640,10 @@ /turf/open/floor/plating, /area/maintenance/asmaint2) "bqh" = ( -/obj/structure/closet, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/asmaint2) "bqi" = ( @@ -34363,8 +34339,10 @@ /turf/open/floor/plating, /area/maintenance/asmaint2) "btq" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 2 +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" }, /turf/open/floor/plating, /area/maintenance/asmaint2) @@ -62758,20 +62736,12 @@ }, /area/shuttle/escape) "cxn" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Emergency Shuttle Airlock" +/obj/structure/lattice, +/obj/effect/landmark{ + name = "carpspawn" }, -/obj/docking_port/mobile/emergency, -/obj/docking_port/stationary{ - dir = 4; - dwidth = 9; - height = 11; - id = "emergency_home"; - name = "emergency evac bay"; - width = 22 - }, -/turf/open/floor/plating, -/area/shuttle/escape) +/turf/open/space, +/area/space) "cxo" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -5; @@ -114061,7 +114031,7 @@ bgg aNa aaa bky -blQ +bqh bme bnx bqe @@ -115322,7 +115292,7 @@ aoV aoV aaa aaa -aaa +aaf aaa aaa aaa @@ -115330,17 +115300,17 @@ aaa aaa aaa aNa -aQF -aRW -aTo +aeR aNa -aaa -aaa -aaa +aQE aNa -aTo -aRW -bdA +aaf +aaa +aaf +aNa +aQE +aNa +afE aNa aaa aaa @@ -115579,28 +115549,28 @@ aaa aaa aaa aaa +aaf aaa aaa aaa aaa aaa -cry -cwI -cwI -cxg -cxl -cxn -cwI -crx -crx -crx -cwI -cxK -cxl -cxK -cwI -cwI -cxW +aaa +aNa +aQE +aNa +aQE +aNa +aaf +aaf +aaf +aNa +aQE +aNa +aQE +aNa +aaa +aaa aaa aaf aaf @@ -115838,36 +115808,36 @@ aaa aaa aaa aaa -cry -cwI -cwI -cwT -cwY -cxd -cxe -cwU -cwL -anq -anq -anq -anq -anq -cwL -cwU -cxQ -cxQ -cxU -cwV -cxW +aaa +aaa +aaa +aaa +aaa +aNa +aQF +aRW +aTo +aNa +aaa aaf aaa +aNa +aTo +aRW +bdA +aNa +aaa +aaa +aaf +aaf +aaf bnu bhG bhG -brE +bhG bhG bsJ -bhG +brE bhG bhG bhG @@ -116094,41 +116064,41 @@ aaa aaa aaa aaa +aaa +aaa +aaa +aaa cry -crO -cwK -cwP -cwU -cwY -cxe -cxh -cwU -cxo -cwL -cwL -cwL -cwL -cwL -cxL -cwU -cxQ -cxQ -cxU -cxX -cxZ -aaf -aaf -aaf +cwI +cwI +cxg +cxl +afa +cwI +crx +crx +crx +cwI +cxK +cxl +cxK +cwI +cwI +cxW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bky -bqh +btq brH -btq -btq bvQ bxt bvQ -btq -btq bCm bDh bEs @@ -116351,41 +116321,41 @@ aaa aaa aaa aaa -crx -crN -cwJ -cwO -cwU +aaa +cry +cwI +cwI +cwT cwY +cxd cxe -cxh cwU cwL -cxq -cxq -cxq -cxq -cxq +anq +anq +anq +anq +anq cwL -cxM +cwU cxQ cxQ -cxV -cxX -cxZ -aaf +cxU +cwV +cxW aaa aaa -bky +aaa +aaa +aaa +aaa +aaa +bZi bqg brG -btp -btp brG btp brG -btp -btp brG bDg bEs @@ -116608,41 +116578,41 @@ aae aaa aaa aaa -crx -cwF -cwL -cwR -cwV -crx -cxf -crx -cxm -cwL -cxr -cxr -cxr -cxr -cxr -cwL +cry +crO +cwK +cwP +cwU +cwY +cxe +cxh +cwU +cxo +cwL +cwL +cwL +cwL +cwL +cxL cwU -cxR cxQ -cxV +cxQ +cxU cxX cxZ -aaf -aaf -aaf -bky -bky +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bZi +btp brI -btp -btp bvR btp byx -btp -btp brI bky bky @@ -116866,34 +116836,34 @@ aaa aaa aaa crx -crQ -cwL -cwQ +crN +cwJ +cwO +cwU +cwY +cxe +cxh cwU -cwZ cwL -cxi -cxj +cxq +cxq +cxq +cxq +cxq cwL -cwL -cwL -cwL -cwL -cwL -cwL -cxN -cwI -cwI -cwI +cxM +cxQ +cxQ +cxV cxX cxZ -aaf aaa aaa aaa -bky -bky -bky +aaa +aaa +aaa +aaa bky bky bky @@ -117125,32 +117095,32 @@ aaa crx cwF cwL -cwL -cwX -cwL -cwL -anq -cxj -cwL -cxq -cxq -cxq -cxq -cxq -cwL +cwR +cwV crx -cxc -cxa -cxc +cxf +crx +cxm +cwL +cxr +cxr +cxr +cxr +cxr +cwL +cwU +cxR +cxQ +cxV cxX cxZ -aaf -aaf aaa aaa -aaf aaa -aaf +aaa +aaa +aaa +aaa aaf aaf aaa @@ -117380,38 +117350,38 @@ aaa aaa aaa crx -cwG -amB -amB -cwW -cxa +crQ cwL -cxj +cwQ +cwU +cwZ +cwL +cxi cxj cwL -cxr -cxr -cxr -cxr -cxr cwL -cxO -cxa -cxa -cxa +cwL +cwL +cwL +cwL +cwL +cxN +cwI +cwI +cwI cxX cxZ -aaf -aaf -aaf -aaf -aaf -aaf aaa aaa aaa aaa aaa +aaa +aaa +aaf +aaa +aaa +aaa aaf aaa aaa @@ -117636,39 +117606,39 @@ aaa aaa aaa aaa -crz -cwH -cwN -cwS -cwU -cxc -cwL -cwL -cwL -cwL +crx +cwF cwL cwL +cwX cwL cwL +anq +cxj cwL +cxq +cxq +cxq +cxq +cxq cwL crx +cxc cxa -cxa -cxa +cxc cxX cxZ -aaf -aaf +aaa +aaa +aaa +aaa +aaa aaa aaa aaf aaa aaa aaa -aaa -aaa -aaa aaf aaa aaa @@ -117893,39 +117863,39 @@ aaa aaa aaa aaa -aaa -crz -cwI -cwI -cwT -cxb -cxa -cxa -cxa -cxp -cxs -cxs -cxs -cxs -cxs -cxp crx -cxS -cxT -cxS -cwV -cxY -aaf -aaf -aaf -aaf -aaf +cwG +amB +amB +cwW +cxa +cwL +cxj +cxj +cwL +cxr +cxr +cxr +cxr +cxr +cwL +cxO +cxa +cxa +cxa +cxX +cxZ aaa aaa aaa aaa aaa aaa +aaa +aaf +aaa +aaa +aaa aaf aaa aaa @@ -118150,36 +118120,36 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa crz +cwH +cwN +cwS +cwU +cxc +cwL +cwL +cwL +cwL +cwL +cwL +cwL +cwL +cwL +cwL crx -cwI -crx -cwI -cwI -cwI -crx -crx -crx -cwI -cwI -cxP -crx -cwI -crx -cxY +cxa +cxa +cxa +cxX +cxZ aaa -aaf -aaf aaa aaa aaa aaa aaa aaa +aaf aaa aaa aaa @@ -118408,20 +118378,27 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +crz +cwI +cwI +cwT +cxb +cxa +cxa +cxa +cxp +cxs +cxs +cxs +cxs +cxs +cxp +crx +cxS +cxT +cxS +cwV +cxY aaa aaa aaa @@ -118436,13 +118413,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aag aaa aaa @@ -118668,6 +118638,23 @@ aaa aaa aaa aaa +crz +crx +cwI +crx +cwI +cwI +cwI +crx +crx +crx +cwI +cwI +cxP +crx +cwI +crx +cxY aaa aaa aaa @@ -118676,16 +118663,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aaa -aaa -aaa aaf aaa aaa @@ -118693,13 +118670,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aag aaa aaa @@ -118928,7 +118898,6 @@ aaa aaa aaa aaa -aae aaa aaa aaa @@ -118948,11 +118917,12 @@ aaa aaa aaa aaa -aae -aaa aaa aaa aaa +aaf +aaf +aaf aaa aaa aaa @@ -119209,7 +119179,7 @@ aaa aaa aaa aaa -aaa +cxn aaa aaa aaa @@ -119465,8 +119435,8 @@ aaa aaa aaa aaa -aaa -aaa +aaf +aaf aaa aaa aaa @@ -120727,7 +120697,7 @@ aaa aaa aaa aaa -aaa +aae aaa aaa aaa diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index a2953331701..955b079e46b 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -1625,7 +1625,11 @@ /turf/open/floor/plasteel/black, /area/centcom/ferry) "eP" = ( -/obj/structure/flora/kirbyplants, +/obj/machinery/door/airlock/centcom{ + name = "Centcom Backup Docks"; + opacity = 1; + req_access_txt = "101" + }, /turf/open/floor/plasteel/black, /area/centcom/ferry) "eQ" = ( @@ -1658,12 +1662,11 @@ /turf/open/floor/plasteel/black, /area/centcom/ferry) "eU" = ( -/obj/structure/sign/map/left, -/turf/open/floor/light, +/obj/machinery/shuttle_manipulator, +/turf/open/floor/plasteel/circuit, /area/centcom/ferry) "eV" = ( -/obj/structure/sign/map/right, -/turf/open/floor/light, +/turf/open/floor/plasteel/circuit, /area/centcom/ferry) "eW" = ( /obj/structure/extinguisher_cabinet{ @@ -2358,11 +2361,11 @@ "hh" = ( /obj/docking_port/stationary{ dir = 4; - dwidth = 9; - height = 11; + dwidth = 25; + height = 50; id = "emergency_away"; - name = "Centcom"; - width = 22 + name = "Centcom Emergency Shuttle Dock"; + width = 50 }, /turf/open/space, /area/space) @@ -5875,12 +5878,12 @@ /area/shuttle/escape) "rN" = ( /obj/machinery/status_display{ - layer = 4; - pixel_x = 0; - pixel_y = 32 + density = 0; + pixel_y = 32; + supply_display = 1 }, -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/escape) +/turf/open/floor/plasteel/black, +/area/centcom/ferry) "rO" = ( /turf/open/floor/plasteel/shuttle/white, /area/shuttle/escape) @@ -5897,7 +5900,9 @@ name = "Backup Shuttle Dock"; width = 8 }, -/obj/docking_port/mobile/emergency/backup, +/obj/docking_port/mobile/emergency/backup{ + dwidth = 3 + }, /turf/open/floor/plating, /area/shuttle/escape) "rR" = ( @@ -5924,21 +5929,37 @@ /turf/open/space/transit, /area/space) "rU" = ( +/obj/structure/flora/kirbyplants, /obj/machinery/status_display{ - density = 0; - pixel_y = -30; - supply_display = 1 + pixel_y = 32 }, -/turf/open/floor/plasteel/shuttle/white, -/area/shuttle/escape) +/turf/open/floor/plasteel/black, +/area/centcom/ferry) "rV" = ( /obj/structure/table/wood, /obj/item/weapon/book/manual/random, /turf/open/floor/plasteel/shuttle/white, /area/shuttle/escape) "rW" = ( -/obj/machinery/shuttle_manipulator, -/turf/open/floor/plasteel/black, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"rX" = ( +/obj/machinery/status_display, +/turf/closed/wall/shuttle/smooth, +/area/shuttle/escape) +"rY" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + icon_state = "warndark"; + dir = 4 + }, +/area/centcom/ferry) +"rZ" = ( +/obj/machinery/door/airlock/external{ + name = "Backup Emergency Escape Shuttle" + }, +/turf/open/floor/plasteel/delivery, /area/centcom/ferry) (1,1,1) = {" @@ -36889,7 +36910,7 @@ ab ab ab ab -ab +rL ab ab ab @@ -38457,7 +38478,7 @@ ab ab ab eJ -eO +rN eO eS eO @@ -38710,11 +38731,11 @@ ab ab ab ab -ab -ab -ab eJ -eP +eJ +eJ +eJ +rU eO eO eO @@ -38967,11 +38988,11 @@ ab ab ab ab -ab -ab -ab eJ -rW +eO +eO +eP +eO eO eO eW @@ -39224,9 +39245,9 @@ ab ab ab ab -ab -ab -ab +eJ +rY +eJ eJ eJ eJ @@ -39481,9 +39502,9 @@ ab ab ab ab -ab -ab -ab +eJ +fQ +eJ ab ab ab @@ -39738,9 +39759,9 @@ ab ab ab ab -ab -ab -ab +eJ +rZ +eJ ab ab ab @@ -39994,14 +40015,14 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab +rM +rM +rQ +rM +rM +rM +rM +rM ab ab eJ @@ -40251,14 +40272,14 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab +rX +rO +rO +rO +rO +rO +rO +rX ab ab eJ @@ -40508,14 +40529,14 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab +rM +rO +rO +rO +rO +rO +rO +rM ab ab fh @@ -40765,14 +40786,14 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab +rM +rP +rP +rP +rP +rO +rP +rM ab ab fh @@ -41022,14 +41043,14 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab +rM +rP +rP +rP +rP +rO +rP +rM ab ab fh @@ -41279,14 +41300,14 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab +rM +rO +rR +rO +rO +rO +rO +rM ab ab fh @@ -41536,14 +41557,14 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab +rX +rO +rS +rV +rO +rO +rO +rX ab ab fh @@ -41793,14 +41814,14 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab +rM +rM +rM +rM +rM +rM +rM +rM ab ab fh @@ -57018,7 +57039,7 @@ ab ab ab ab -rL +ab ab ab ab @@ -64829,16 +64850,16 @@ df dg cT ab -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -65086,16 +65107,16 @@ cT cT cT ab -ad -rM -rM -rQ -rM -rM -rM -rM -rM -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -65343,16 +65364,16 @@ cU ad ab ab -ad -rM -rN -rO -rO -rO -rO -rU -rM -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -65600,16 +65621,16 @@ cV ad ab ab -ad -rM -rO -rO -rO -rO -rO -rO -rM -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -65857,16 +65878,16 @@ cV ad ab ab -ad -rM -rP -rP -rP -rP -rO -rP -rM -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -66114,16 +66135,16 @@ cV ad ab ab -ad -rM -rP -rP -rP -rP -rO -rP -rM -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -66371,16 +66392,16 @@ cV ad ab ab -ad -rM -rO -rR -rO -rO -rO -rO -rM -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -66628,16 +66649,16 @@ cV ad ab ab -ad -rM -rN -rS -rV -rO -rO -rU -rM -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -66885,16 +66906,16 @@ cV ad ab ab -ad -rM -rM -rM -rM -rM -rM -rM -rM -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -67142,16 +67163,16 @@ cV ad ab ab -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -71473,6 +71494,6 @@ ab ab ab ab -ab -ab +rW +rW "} diff --git a/_maps/shuttles/cargo_birdboat.dmm b/_maps/shuttles/cargo_birdboat.dmm index 423c397f6c1..345fb45a23a 100644 --- a/_maps/shuttles/cargo_birdboat.dmm +++ b/_maps/shuttles/cargo_birdboat.dmm @@ -14,7 +14,7 @@ "n" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/supply) "o" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/shuttle/supply) "p" = (/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/obj/machinery/conveyor_switch/oneway{id = "cargoshuttle"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/supply) -"q" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 3; width = 10},/turf/open/floor/plating,/area/shuttle/supply) +"q" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 3; width = 10; timid = 1},/turf/open/floor/plating,/area/shuttle/supply) "r" = (/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/obj/machinery/conveyor{dir = 4; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plating,/area/shuttle/supply) "s" = (/turf/closed/wall/shuttle{icon_state = "swallc3"},/area/shuttle/supply) "t" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/supply) diff --git a/_maps/shuttles/cargo_box.dmm b/_maps/shuttles/cargo_box.dmm index 05df2fa52ba..f2fad41946a 100644 --- a/_maps/shuttles/cargo_box.dmm +++ b/_maps/shuttles/cargo_box.dmm @@ -6,7 +6,7 @@ "f" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) "g" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/shuttle/supply) "h" = (/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) -"i" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; width = 12},/turf/open/floor/plating,/area/shuttle/supply) +"i" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; width = 12; timid = 1},/turf/open/floor/plating,/area/shuttle/supply) "j" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) "k" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/supply) "l" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f10"},/area/shuttle/supply) diff --git a/_maps/shuttles/emergency_airless.dmm b/_maps/shuttles/emergency_airless.dmm index d2d0025ee2f..c1a9f4f3b77 100644 --- a/_maps/shuttles/emergency_airless.dmm +++ b/_maps/shuttles/emergency_airless.dmm @@ -5,15 +5,15 @@ "e" = (/obj/structure/closet/malf,/turf/open/floor/plating/airless,/area/shuttle/escape) "f" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) "g" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) -"h" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) +"h" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) "i" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plating/airless,/area/shuttle/escape) "j" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) "k" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) "l" = (/turf/open/floor/plating,/area/shuttle/escape) -"m" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plating/airless,/area/shuttle/escape) +"m" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plating/airless,/area/shuttle/escape) "n" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) -"o" = (/obj/docking_port/mobile/emergency{name = "Shuttle Under Construction"},/turf/open/floor/plating/airless,/area/shuttle/escape) -"p" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating/airless,/area/shuttle/escape) +"o" = (/obj/docking_port/mobile/emergency{name = "Shuttle Under Construction";timid = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"p" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4;name = "4maintenance loot spawner"},/turf/open/floor/plating/airless,/area/shuttle/escape) "q" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) "r" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm index 387ebe9f888..320859dd4cb 100644 --- a/_maps/shuttles/emergency_bar.dmm +++ b/_maps/shuttles/emergency_bar.dmm @@ -4,83 +4,105 @@ "ad" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/carpet,/area/shuttle/escape) "ae" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/carpet,/area/shuttle/escape) "af" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/carpet,/area/shuttle/escape) -"ag" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes/cigars/havana,/obj/item/weapon/lighter{pixel_x = -4; pixel_y = 6},/turf/open/floor/carpet,/area/shuttle/escape) +"ag" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes/cigars/havana,/obj/item/weapon/lighter{pixel_x = -4;pixel_y = 6},/turf/open/floor/carpet,/area/shuttle/escape) "ah" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/carpet,/area/shuttle/escape) "ai" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) "aj" = (/turf/open/floor/carpet,/area/shuttle/escape) "ak" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/carpet,/area/shuttle/escape) "al" = (/obj/machinery/computer/security,/turf/open/floor/carpet,/area/shuttle/escape) "am" = (/obj/machinery/computer/crew,/turf/open/floor/carpet,/area/shuttle/escape) -"an" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) -"ao" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/carpet,/area/shuttle/escape) -"ap" = (/obj/machinery/button/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/obj/structure/statue/diamond/captain{anchored = 1; name = "statue of THE captain"},/turf/open/floor/carpet,/area/shuttle/escape) +"an" = (/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = -30},/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) +"ao" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)";pixel_x = 0;pixel_y = -29},/turf/open/floor/carpet,/area/shuttle/escape) +"ap" = (/obj/machinery/button/flasher{id = "cockpit_flasher";pixel_x = 6;pixel_y = -24},/obj/structure/statue/diamond/captain{anchored = 1;name = "statue of THE captain"},/turf/open/floor/carpet,/area/shuttle/escape) "aq" = (/obj/machinery/computer/communications,/turf/open/floor/carpet,/area/shuttle/escape) -"ar" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/carpet,/area/shuttle/escape) +"ar" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit";req_access_txt = "19"},/turf/open/floor/carpet,/area/shuttle/escape) "as" = (/obj/machinery/status_display,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) "at" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"au" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/obj/structure/flora/kirbyplants{icon_state = "plant-10"; layer = 4.1},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"au" = (/obj/machinery/flasher{id = "cockpit_flasher";pixel_x = 6;pixel_y = 24},/obj/structure/flora/kirbyplants{icon_state = "plant-10";layer = 4.1},/turf/open/floor/plasteel/bar,/area/shuttle/escape) "av" = (/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aw" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"ax" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"ay" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aw" = (/obj/structure/piano,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"ax" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"ay" = (/obj/machinery/flasher{id = "shuttle_flasher";pixel_x = -24;pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher";pixel_x = -24;pixel_y = -6},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) "az" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aA" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aB" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aC" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aA" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig";req_access_txt = "2"},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aB" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock";req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aC" = (/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = -30},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) "aD" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) "aE" = (/obj/structure/chair/wood{dir = 4},/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aF" = (/obj/structure/table/wood,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aG" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aH" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "The Emergency Escape Bar"},/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aI" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aJ" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aK" = (/mob/living/simple_animal/drone/snowflake/bardrone,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aL" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aM" = (/obj/structure/table,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 6; pixel_y = 4},/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aO" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aP" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aQ" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aR" = (/obj/structure/chair/stool,/turf/open/floor/wood,/area/shuttle/escape) -"aS" = (/obj/structure/table/wood/poker,/obj/effect/spawner/lootdrop/gambling,/turf/open/floor/wood,/area/shuttle/escape) -"aT" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aU" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"aV" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"aW" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"aX" = (/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"aY" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"aZ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"ba" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"bb" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"bc" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"bd" = (/obj/structure/closet/jcloset,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"be" = (/obj/structure/toilet{dir = 1},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"bf" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"bg" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) -"bh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) -"bi" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) +"aF" = (/obj/structure/table/wood/bar{boot_dir = 9},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aG" = (/obj/structure/table/wood/bar,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aH" = (/obj/structure/table/wood/bar{boot_dir = 8},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aI" = (/obj/structure/extinguisher_cabinet{pixel_x = 27;pixel_y = 0},/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aJ" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "The Emergency Escape Bar";timid = 1},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aK" = (/mob/living/simple_animal/hostile/alien/maid/barmaid,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aL" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aM" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aN" = (/mob/living/simple_animal/drone/snowflake/bardrone,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aO" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aP" = (/obj/structure/table,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aQ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 6;pixel_y = 4},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aR" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aS" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aT" = (/obj/structure/table/wood/bar{boot_dir = 10},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aU" = (/obj/structure/table/wood/bar{boot_dir = 2},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aV" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aW" = (/obj/structure/chair/stool,/turf/open/floor/wood,/area/shuttle/escape) +"aX" = (/obj/structure/table/wood/poker,/obj/effect/spawner/lootdrop/gambling,/turf/open/floor/wood,/area/shuttle/escape) +"aY" = (/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = -30},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aZ" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"ba" = (/obj/machinery/door/airlock{name = "Unisex Restrooms";req_access_txt = "0"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bb" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bc" = (/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bd" = (/obj/structure/extinguisher_cabinet{pixel_x = -5;pixel_y = 30},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"be" = (/obj/structure/sink{dir = 4;icon_state = "sink";pixel_x = 11;pixel_y = 0},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bf" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bg" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bh" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bi" = (/obj/structure/closet/jcloset,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bj" = (/obj/structure/toilet{dir = 1},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bk" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bl" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bm" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"bn" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) +"bE" = (/turf/closed/wall/shuttle{tag = "icon-gwall_space (EAST)";icon_state = "gwall_space";dir = 4},/area/shuttle/escape) +"bD" = (/turf/closed/wall/shuttle{tag = "icon-wall3";icon_state = "wall3";dir = 2},/area/shuttle/escape) +"bC" = (/turf/closed/wall/shuttle{tag = "icon-gwall_space";icon_state = "gwall_space";dir = 2},/area/shuttle/escape) +"bB" = (/turf/closed/wall/shuttle{icon_state = "swall11";dir = 2},/area/shuttle/escape) +"bA" = (/turf/closed/wall/shuttle{icon_state = "swallc2";dir = 2},/area/shuttle/escape) +"bz" = (/turf/closed/wall/shuttle{icon_state = "swall1";dir = 2},/area/shuttle/escape) +"by" = (/turf/closed/wall/shuttle{icon_state = "swall7";dir = 2},/area/shuttle/escape) +"bx" = (/turf/closed/wall/shuttle{icon_state = "swall4";dir = 2},/area/shuttle/escape) +"bw" = (/turf/closed/wall/shuttle{icon_state = "swall8";dir = 2},/area/shuttle/escape) +"bv" = (/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape) +"bu" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) +"bt" = (/turf/closed/wall/shuttle{tag = "icon-swall13";icon_state = "swall13";dir = 2},/area/shuttle/escape) +"bs" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape) +"br" = (/turf/closed/wall/shuttle{tag = "icon-swallc3";icon_state = "swallc3";dir = 2},/area/shuttle/escape) +"bq" = (/turf/closed/wall/shuttle{icon_state = "swallc4";dir = 2},/area/shuttle/escape) +"bp" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/escape) +"bo" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/shuttle/escape) (1,1,1) = {" -aaaaabacacacacacabaaaa -aaababadaeafaeagababaa -aaabahaiajajajakalabaa -aaabamanaoapajakaqabaa -ababababababarasababab -abatatatacauavavawaxac -abayazazaAavavavavavab -aBaCaDaDacavaEaFaFaFac -abababababavaEaFavaGab -aHavavavavavaEaFavaIab -abaJaJaJavavaEaFaKaLab -acaMaNaMavavaEaFavaOac -acaPaPaPavavaEaFavavac -acavavavavavaEaFaFaFac -abavavavavavavavavavab -aQavaRaSaRaTavavavaUab -ababababababababaVabab -aWaXaXaXaXaXaYaXaXaZac -abbaabbbabbcabbdaXaZab -abbeabbeabbfabbgaXaZac -ababbhbhbhbhbhbhbhabab -aaabbibibibibibibiabaa +aaaaboacacacacacbpaaaa +aabobqadaeafaeagbrbpaa +aabsahaiajajajakalbsaa +aabsamanaoapajakaqbsaa +bobtbububvbwarasbxbtbp +bsatatatacauavavawaxac +bsayazazaAavavavavavbs +aBaCaDaDacavaEaFaGaGac +bybubububqavaEaHavaIbs +aJavavavavavaEaHaKaLbs +bsaMaMaMavavaEaHaNaObs +acaPaQaPavavaEaHavaRac +acaSaSaSavavaEaHavavac +acavavavavavaEaTaUaUac +bzavavavavavavavavavbs +aVavaWaXaWaYavavavaZbs +bAbububububububwbabxbB +bbbcbcbcbcbcbdbcbcbeac +bsbfabbgabbhabbibcbebs +bzbjbzbjbzbkbzblbcbeac +bCbDbmbmbmbmbmbmbmbDbE +aabDbnbnbnbnbnbnbnbDaa "} diff --git a/_maps/shuttles/emergency_birdboat.dmm b/_maps/shuttles/emergency_birdboat.dmm index 05f356775bd..80b1bc6fb43 100644 --- a/_maps/shuttles/emergency_birdboat.dmm +++ b/_maps/shuttles/emergency_birdboat.dmm @@ -1,63 +1,63 @@ "aa" = (/turf/open/space,/area/space) -"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape) -"ac" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) -"ad" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) -"ae" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape) -"af" = (/turf/closed/wall/shuttle{icon_state = "swall8"; dir = 2},/area/shuttle/escape) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/shuttle/escape) +"ac" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) +"ad" = (/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape) +"ae" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/escape) +"af" = (/turf/closed/wall/shuttle{icon_state = "swall8";dir = 2},/area/shuttle/escape) "ag" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) -"ah" = (/turf/closed/wall/shuttle{icon_state = "swall4"; dir = 2},/area/shuttle/escape) -"ai" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/escape) -"aj" = (/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/weapon/retractor{pixel_x = 0; pixel_y = 5},/obj/item/weapon/hemostat,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"ah" = (/turf/closed/wall/shuttle{icon_state = "swall4";dir = 2},/area/shuttle/escape) +"ai" = (/turf/closed/wall/shuttle{icon_state = "swall11";dir = 2},/area/shuttle/escape) +"aj" = (/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/weapon/retractor{pixel_x = 0;pixel_y = 5},/obj/item/weapon/hemostat,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) "ak" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw{pixel_y = 9},/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) "al" = (/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) -"am" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) -"an" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 8},/turf/open/floor/plating/airless,/area/shuttle/escape) -"ao" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape) +"am" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape) +"an" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r";dir = 8},/turf/open/floor/plating/airless,/area/shuttle/escape) +"ao" = (/turf/closed/wall/shuttle{icon_state = "swallc4";dir = 2},/area/shuttle/escape) "ap" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "aq" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ar" = (/obj/structure/flora/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"as" = (/turf/closed/wall/shuttle{icon_state = "swall1"; dir = 2},/area/shuttle/escape) +"as" = (/turf/closed/wall/shuttle{icon_state = "swall1";dir = 2},/area/shuttle/escape) "at" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) "au" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) -"av" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/open/floor/plating/airless,/area/shuttle/escape) +"av" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion";dir = 8},/turf/open/floor/plating/airless,/area/shuttle/escape) "aw" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ax" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"ay" = (/obj/machinery/door/airlock/glass_command{name = "bridge door"; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ay" = (/obj/machinery/door/airlock/glass_command{name = "bridge door";req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "az" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) -"aA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/open/floor/plating/airless,/area/shuttle/escape) +"aA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l";dir = 8},/turf/open/floor/plating/airless,/area/shuttle/escape) "aB" = (/obj/structure/extinguisher_cabinet{pixel_y = -32},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aC" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0; pixel_y = 4; use_power = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) +"aC" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0;idle_power_usage = 0;pixel_y = 4;use_power = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) "aD" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) -"aE" = (/turf/closed/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/shuttle/escape) -"aF" = (/turf/closed/wall/shuttle{icon_state = "swall15"; dir = 2},/area/shuttle/escape) -"aG" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape) +"aE" = (/turf/closed/wall/shuttle{icon_state = "swallc2";dir = 2},/area/shuttle/escape) +"aF" = (/turf/closed/wall/shuttle{icon_state = "swall15";dir = 2},/area/shuttle/escape) +"aG" = (/turf/closed/wall/shuttle{icon_state = "swall_s9";dir = 2},/area/shuttle/escape) "aH" = (/turf/closed/wall/shuttle,/area/shuttle/escape) -"aI" = (/obj/machinery/door/airlock/glass_security{name = "security airlock"; req_access_txt = "63"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) +"aI" = (/obj/machinery/door/airlock/glass_security{name = "security airlock";req_access_txt = "63"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) "aJ" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) "aK" = (/turf/closed/wall/shuttle{icon_state = "swallc3"},/area/shuttle/escape) -"aL" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/escape) -"aM" = (/obj/structure/flora/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aL" = (/turf/closed/wall/shuttle{icon_state = "swall13";dir = 2},/area/shuttle/escape) +"aM" = (/obj/structure/flora/kirbyplants{icon_state = "plant-21";layer = 4.1},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aN" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aO" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "aP" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "aQ" = (/obj/structure/table,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "aR" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aS" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) -"aT" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti{name = "pasghetti"; pixel_x = 4; pixel_y = 7},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) -"aU" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile/emergency{dheight = 0; dir = 8; dwidth = 6; height = 18; travelDir = 90; width = 14},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aT" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti{name = "pasghetti";pixel_x = 4;pixel_y = 7},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aU" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile/emergency{dheight = 0;dir = 8;dwidth = 6;height = 18;travelDir = 90;width = 14;timid = 1},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "aW" = (/obj/structure/chair{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) -"aX" = (/turf/closed/wall/shuttle{icon_state = "swall2"; dir = 2},/area/shuttle/escape) -"aY" = (/obj/structure/chair,/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aX" = (/turf/closed/wall/shuttle{icon_state = "swall2";dir = 2},/area/shuttle/escape) +"aY" = (/obj/structure/chair,/obj/structure/window/reinforced{dir = 1;pixel_y = 2},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "aZ" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) -"ba" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/fire{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) -"bb" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape) -"bc" = (/turf/closed/wall/shuttle{icon_state = "swallc1"; dir = 2},/area/shuttle/escape) +"ba" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/fire{pixel_x = 5;pixel_y = 5},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"bb" = (/turf/closed/wall/shuttle{icon_state = "swall_s5";dir = 2},/area/shuttle/escape) +"bc" = (/turf/closed/wall/shuttle{icon_state = "swallc1";dir = 2},/area/shuttle/escape) "bd" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) -"be" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/brute{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"be" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/brute{pixel_x = 5;pixel_y = 5},/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) "bf" = (/obj/structure/extinguisher_cabinet{pixel_y = -32},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "bg" = (/obj/structure/chair,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) -"bh" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"bh" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 1},/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) "bi" = (/obj/structure/table/glass,/obj/item/weapon/defibrillator/loaded,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) (1,1,1) = {" diff --git a/_maps/shuttles/emergency_box.dmm b/_maps/shuttles/emergency_box.dmm index 87cc48d438c..159e7b94fd1 100644 --- a/_maps/shuttles/emergency_box.dmm +++ b/_maps/shuttles/emergency_box.dmm @@ -1,65 +1,65 @@ "aa" = (/turf/open/space,/area/space) -"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/shuttle/escape) "ac" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) -"ad" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape) +"ad" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/escape) "ae" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/turf/closed/wall/shuttle/interior{icon_state = "swall_f9"},/area/shuttle/escape) "af" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "ag" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ah" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"ai" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"ai" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aj" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/turf/closed/wall/shuttle/interior{icon_state = "swall_f5"},/area/shuttle/escape) -"ak" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"ak" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape) "al" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "am" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "an" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ao" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ap" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aq" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) -"ar" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"as" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"at" = (/obj/machinery/button/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ar" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = -30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"as" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)";pixel_x = 0;pixel_y = -29},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"at" = (/obj/machinery/button/flasher{id = "cockpit_flasher";pixel_x = 6;pixel_y = -24},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "au" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) -"av" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/escape) -"aw" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) -"ax" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) -"ay" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"az" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"av" = (/turf/closed/wall/shuttle{icon_state = "swall13";dir = 2},/area/shuttle/escape) +"aw" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) +"ax" = (/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape) +"ay" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit";req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"az" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) "aA" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aB" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aB" = (/obj/machinery/flasher{id = "cockpit_flasher";pixel_x = 6;pixel_y = 24},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aC" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aD" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) -"aE" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) -"aF" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aE" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aF" = (/obj/machinery/flasher{id = "shuttle_flasher";pixel_x = -24;pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher";pixel_x = -24;pixel_y = -6},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) "aG" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aH" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aI" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) +"aH" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig";req_access_txt = "2"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aI" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock";req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) "aJ" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) "aK" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aL" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aM" = (/obj/structure/table,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) -"aN" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/escape) -"aO" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape) -"aP" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency,/turf/open/floor/plating,/area/shuttle/escape) -"aQ" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aR" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aN" = (/turf/closed/wall/shuttle{icon_state = "swall7";dir = 2},/area/shuttle/escape) +"aO" = (/turf/closed/wall/shuttle{icon_state = "swallc4";dir = 2},/area/shuttle/escape) +"aP" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{timid = 1},/turf/open/floor/plating,/area/shuttle/escape) +"aQ" = (/obj/structure/extinguisher_cabinet{pixel_x = -5;pixel_y = 30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aR" = (/obj/structure/extinguisher_cabinet{pixel_x = 27;pixel_y = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "aS" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aT" = (/obj/structure/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aU" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aV" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) -"aW" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aW" = (/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = -30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "aX" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aY" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"aY" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape) "aZ" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"ba" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/escape) +"ba" = (/turf/closed/wall/shuttle{icon_state = "swall11";dir = 2},/area/shuttle/escape) "bb" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor2"},/area/shuttle/escape) -"bc" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor2"},/area/shuttle/escape) -"bd" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) -"be" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"bc" = (/obj/structure/extinguisher_cabinet{pixel_x = 27;pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor2"},/area/shuttle/escape) +"bd" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"be" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27;pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "bf" = (/obj/structure/closet,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor2"},/area/shuttle/escape) "bg" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor2"},/area/shuttle/escape) -"bh" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape) +"bh" = (/turf/closed/wall/shuttle{icon_state = "swall_s5";dir = 2},/area/shuttle/escape) "bi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) -"bj" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape) +"bj" = (/turf/closed/wall/shuttle{icon_state = "swall_s9";dir = 2},/area/shuttle/escape) "bk" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) (1,1,1) = {" diff --git a/_maps/shuttles/emergency_clown.dmm b/_maps/shuttles/emergency_clown.dmm index 2e082b3e67e..a80e41e756f 100644 --- a/_maps/shuttles/emergency_clown.dmm +++ b/_maps/shuttles/emergency_clown.dmm @@ -1,64 +1,64 @@ "aa" = (/turf/open/space,/area/space) -"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/shuttle/escape) "ac" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) -"ad" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape) +"ad" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/escape) "ae" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/turf/closed/wall/shuttle/interior{icon_state = "swall_f9"},/area/shuttle/escape) "af" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/noslip,/area/shuttle/escape) "ag" = (/obj/structure/chair{dir = 1},/turf/open/floor/bluespace,/area/shuttle/escape) "ah" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/bluespace,/area/shuttle/escape) -"ai" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/noslip,/area/shuttle/escape) +"ai" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/noslip,/area/shuttle/escape) "aj" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/turf/closed/wall/shuttle/interior{icon_state = "swall_f5"},/area/shuttle/escape) -"ak" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"ak" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape) "al" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/noslip,/area/shuttle/escape) "am" = (/obj/structure/chair{dir = 8},/turf/open/floor/bluespace,/area/shuttle/escape) "an" = (/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) "ao" = (/obj/structure/chair{dir = 4},/turf/open/floor/bluespace,/area/shuttle/escape) "ap" = (/obj/machinery/computer/security,/turf/open/floor/noslip,/area/shuttle/escape) "aq" = (/obj/machinery/computer/crew,/turf/open/floor/noslip,/area/shuttle/escape) -"ar" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/bluespace,/area/shuttle/escape) -"as" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"ar" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = -30},/turf/open/floor/bluespace,/area/shuttle/escape) +"as" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)";pixel_x = 0;pixel_y = -29},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) "at" = (/obj/machinery/computer/communications,/turf/open/floor/noslip,/area/shuttle/escape) -"au" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/escape) -"av" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) -"aw" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) -"ax" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Premium Lounge"; req_access_txt = "0"},/turf/open/floor/bluespace,/area/shuttle/escape) -"ay" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"au" = (/turf/closed/wall/shuttle{icon_state = "swall13";dir = 2},/area/shuttle/escape) +"av" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) +"aw" = (/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape) +"ax" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Premium Lounge";req_access_txt = "0"},/turf/open/floor/bluespace,/area/shuttle/escape) +"ay" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) "az" = (/turf/open/chasm/straight_down/lava_land_surface,/area/shuttle/escape) "aA" = (/turf/open/floor/noslip,/area/shuttle/escape) "aB" = (/obj/structure/closet/emcloset,/obj/item/toy/sword,/turf/open/floor/noslip,/area/shuttle/escape) -"aC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/noslip,/area/shuttle/escape) -"aD" = (/obj/item/weapon/greentext{anchored = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aE" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/bluespace,/area/shuttle/escape) +"aC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/noslip,/area/shuttle/escape) +"aD" = (/obj/item/weapon/greentext/quiet{anchored = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aE" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig";req_access_txt = "2"},/turf/open/floor/bluespace,/area/shuttle/escape) "aF" = (/obj/structure/chair,/turf/open/floor/noslip,/area/shuttle/escape) "aG" = (/obj/structure/chair{dir = 4},/turf/open/floor/noslip,/area/shuttle/escape) "aH" = (/obj/structure/table,/obj/item/device/multitool/ai_detect,/turf/open/floor/noslip,/area/shuttle/escape) -"aI" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/escape) -"aJ" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape) +"aI" = (/turf/closed/wall/shuttle{icon_state = "swall7";dir = 2},/area/shuttle/escape) +"aJ" = (/turf/closed/wall/shuttle{icon_state = "swallc4";dir = 2},/area/shuttle/escape) "aK" = (/obj/structure/table,/obj/item/toy/sword,/turf/open/floor/noslip,/area/shuttle/escape) -"aL" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Snappop(tm)!"},/turf/open/floor/plating,/area/shuttle/escape) -"aM" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) -"aN" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"aL" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Snappop(tm)!";timid = 1},/turf/open/floor/plating,/area/shuttle/escape) +"aM" = (/obj/structure/extinguisher_cabinet{pixel_x = -5;pixel_y = 30},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"aN" = (/obj/structure/extinguisher_cabinet{pixel_x = 27;pixel_y = 0},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) "aO" = (/obj/structure/bed,/obj/item/weapon/bedsheet/random,/turf/open/floor/noslip,/area/shuttle/escape) "aP" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed,/obj/item/weapon/bedsheet/random,/turf/open/floor/noslip,/area/shuttle/escape) "aQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/random,/turf/open/floor/noslip,/area/shuttle/escape) "aR" = (/obj/structure/bed,/obj/item/weapon/bedsheet/random,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/noslip,/area/shuttle/escape) "aS" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) -"aT" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"aT" = (/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = -30},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) "aU" = (/obj/item/toy/snappop,/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) "aV" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/open/floor/bluespace,/area/shuttle/escape) -"aW" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"aW" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape) "aX" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/bluespace,/area/shuttle/escape) -"aY" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/escape) +"aY" = (/turf/closed/wall/shuttle{icon_state = "swall11";dir = 2},/area/shuttle/escape) "aZ" = (/turf/open/floor/mineral/bananium,/area/shuttle/escape) -"ba" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/mineral/bananium,/area/shuttle/escape) -"bb" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/noslip,/area/shuttle/escape) -"bc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/noslip,/area/shuttle/escape) +"ba" = (/obj/structure/extinguisher_cabinet{pixel_x = 27;pixel_y = 0},/turf/open/floor/mineral/bananium,/area/shuttle/escape) +"bb" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 8},/turf/open/floor/noslip,/area/shuttle/escape) +"bc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27;pixel_y = 0},/turf/open/floor/noslip,/area/shuttle/escape) "bd" = (/obj/structure/closet/crate/trashcart{desc = "A heavy, metal trashcart with wheels. Feel free to hop in at any time!"},/obj/item/toy/sword,/turf/open/floor/mineral/bananium,/area/shuttle/escape) -"be" = (/obj/machinery/vending/autodrobe{extended_inventory = 1; scan_id = 0},/turf/open/floor/mineral/bananium,/area/shuttle/escape) +"be" = (/obj/machinery/vending/autodrobe{extended_inventory = 1;scan_id = 0},/turf/open/floor/mineral/bananium,/area/shuttle/escape) "bf" = (/obj/machinery/vending/clothing{extended_inventory = 1},/turf/open/floor/mineral/bananium,/area/shuttle/escape) -"bg" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape) +"bg" = (/turf/closed/wall/shuttle{icon_state = "swall_s5";dir = 2},/area/shuttle/escape) "bh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) -"bi" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape) +"bi" = (/turf/closed/wall/shuttle{icon_state = "swall_s9";dir = 2},/area/shuttle/escape) "bj" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) (1,1,1) = {" diff --git a/_maps/shuttles/emergency_cramped.dmm b/_maps/shuttles/emergency_cramped.dmm index db8c02bfc04..2f558a66be1 100644 --- a/_maps/shuttles/emergency_cramped.dmm +++ b/_maps/shuttles/emergency_cramped.dmm @@ -1,18 +1,18 @@ "a" = (/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) "b" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) -"c" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) +"c" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock";req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) "d" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "e" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "f" = (/obj/machinery/computer/shuttle,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "g" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/book/manual/random,/obj/structure/extinguisher_cabinet{pixel_x = -30},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "h" = (/obj/machinery/door/window/southleft,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) "i" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/device/gps{gpstag = "STV5"},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) -"j" = (/obj/machinery/status_display,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) -"k" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dwidth = 3; height = 5; name = "Secure Transport Vessel 5"; width = 14},/turf/open/floor/plating,/area/shuttle/escape) +"j" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall3"},/area/shuttle/escape) +"k" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dwidth = 3;height = 5;name = "Secure Transport Vessel 5";width = 14;timid = 1},/turf/open/floor/plating,/area/shuttle/escape) "l" = (/turf/open/floor/plating,/area/shuttle/escape) "m" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/shuttle/escape) "n" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating,/area/shuttle/escape) -"o" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 8; name = "8maintenance loot spawner"},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"o" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 8;name = "8maintenance loot spawner"},/turf/open/floor/plasteel/bot,/area/shuttle/escape) "p" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/plasteel/bot,/area/shuttle/escape) "q" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) "r" = (/obj/structure/closet/crate/secure/weapon,/obj/effect/spawner/lootdrop/armory_contraband,/turf/open/floor/plasteel/bot,/area/shuttle/escape) @@ -20,20 +20,26 @@ "t" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) "u" = (/turf/open/space,/area/space) "v" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) +"B" = (/turf/closed/wall/shuttle{tag = "icon-wall3 (WEST)";icon_state = "wall3";dir = 8},/area/shuttle/escape) +"A" = (/turf/closed/wall/shuttle{icon_state = "swall1";dir = 2},/area/shuttle/escape) +"z" = (/turf/closed/wall/shuttle{icon_state = "swall2";dir = 2},/area/shuttle/escape) +"y" = (/turf/closed/wall/shuttle{icon_state = "swall3"},/area/shuttle/escape) +"x" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/escape) +"w" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/shuttle/escape) (1,1,1) = {" -abbba -cdefa +wbbbx +cdefy aghij -kllma -anloa +kllmy +znloy bnlob bnlob bnlpb -anlpa -qllra -aslra -qllma -attta +Anlpy +qllry +aslry +qllmA +BtttB uvvvu "} diff --git a/_maps/shuttles/emergency_goon.dmm b/_maps/shuttles/emergency_goon.dmm index 3d8ebf08142..cc4bf12d0fc 100644 --- a/_maps/shuttles/emergency_goon.dmm +++ b/_maps/shuttles/emergency_goon.dmm @@ -1,45 +1,45 @@ "a" = (/turf/open/space,/area/space) -"b" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/open/floor/plating,/area/shuttle/escape) -"c" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/open/floor/plating,/area/shuttle/escape) -"d" = (/turf/closed/wall/shuttle{tag = "icon-swall0"; icon_state = "swall0"},/area/shuttle/escape) -"e" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (NORTH)"; icon_state = "wall_space"; dir = 1},/area/shuttle/escape) -"f" = (/turf/closed/wall/shuttle{tag = "icon-swall2"; icon_state = "swall2"},/area/shuttle/escape) +"b" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion";dir = 4},/turf/open/floor/plating,/area/shuttle/escape) +"c" = (/obj/structure/shuttle/engine/heater{icon_state = "heater";dir = 8},/turf/open/floor/plating,/area/shuttle/escape) +"d" = (/turf/closed/wall/shuttle{tag = "icon-swall0";icon_state = "swall0"},/area/shuttle/escape) +"e" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (NORTH)";icon_state = "wall_space";dir = 1},/area/shuttle/escape) +"f" = (/turf/closed/wall/shuttle{tag = "icon-swall2";icon_state = "swall2"},/area/shuttle/escape) "g" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"h" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dheight = 0; dir = 2; dwidth = 9; name = "NES Port"; width = 19},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"i" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (WEST)"; icon_state = "wall_space"; dir = 8},/area/shuttle/escape) -"j" = (/turf/closed/wall/shuttle{tag = "icon-swall4"; icon_state = "swall4"},/area/shuttle/escape) -"k" = (/turf/closed/wall/shuttle{tag = "icon-swall12"; icon_state = "swall12"},/area/shuttle/escape) -"l" = (/obj/machinery/vending/wallmed,/turf/closed/wall/shuttle{tag = "icon-swall8"; icon_state = "swall8"},/area/shuttle/escape) +"h" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dheight = 0;dir = 2;dwidth = 9;name = "NES Port";width = 19;timid = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"i" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (WEST)";icon_state = "wall_space";dir = 8},/area/shuttle/escape) +"j" = (/turf/closed/wall/shuttle{tag = "icon-swall4";icon_state = "swall4"},/area/shuttle/escape) +"k" = (/turf/closed/wall/shuttle{tag = "icon-swall12";icon_state = "swall12"},/area/shuttle/escape) +"l" = (/obj/machinery/vending/wallmed,/turf/closed/wall/shuttle{tag = "icon-swall8";icon_state = "swall8"},/area/shuttle/escape) "m" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"n" = (/turf/closed/wall/shuttle{tag = "icon-swall1"; icon_state = "swall1"},/area/shuttle/escape) +"n" = (/turf/closed/wall/shuttle{tag = "icon-swall1";icon_state = "swall1"},/area/shuttle/escape) "o" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"p" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plating,/area/shuttle/escape) -"q" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) +"p" = (/obj/structure/shuttle/engine/heater{icon_state = "heater";dir = 8},/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plating,/area/shuttle/escape) +"q" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 4},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) "r" = (/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) "s" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"t" = (/turf/closed/wall/shuttle{tag = "icon-wall_floor"; icon_state = "wall_floor"},/area/shuttle/escape) +"t" = (/turf/closed/wall/shuttle{tag = "icon-wall_floor";icon_state = "wall_floor"},/area/shuttle/escape) "u" = (/turf/open/space,/area/shuttle/escape) "v" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) "w" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) "x" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) "y" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"z" = (/obj/structure/table/reinforced,/obj/item/device/radio,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"z" = (/obj/structure/table/reinforced,/obj/item/device/radio,/obj/structure/window/reinforced{dir = 1;layer = 2.9},/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) "A" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"B" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/table/reinforced,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"C" = (/turf/closed/wall/shuttle{tag = "icon-swall8"; icon_state = "swall8"},/area/shuttle/escape) -"D" = (/turf/closed/wall/shuttle{tag = "icon-swall3"; icon_state = "swall3"},/area/shuttle/escape) -"E" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"B" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/table/reinforced,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"C" = (/turf/closed/wall/shuttle{tag = "icon-swall8";icon_state = "swall8"},/area/shuttle/escape) +"D" = (/turf/closed/wall/shuttle{tag = "icon-swall3";icon_state = "swall3"},/area/shuttle/escape) +"E" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit";req_access_txt = "19"},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) "F" = (/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"G" = (/obj/machinery/computer/emergency_shuttle,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"G" = (/obj/machinery/computer/emergency_shuttle,/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) "H" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"I" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"I" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/structure/window/reinforced,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) "J" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"K" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"K" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig";req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) "L" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"M" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"N" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (EAST)"; icon_state = "wall_space"; dir = 4},/area/shuttle/escape) -"O" = (/turf/closed/wall/shuttle{tag = "icon-wall_floor (WEST)"; icon_state = "wall_floor"; dir = 8},/area/shuttle/escape) -"P" = (/turf/closed/wall/shuttle{tag = "icon-wall_space"; icon_state = "wall_space"},/area/shuttle/escape) +"M" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"N" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (EAST)";icon_state = "wall_space";dir = 4},/area/shuttle/escape) +"O" = (/turf/closed/wall/shuttle{tag = "icon-wall_floor (WEST)";icon_state = "wall_floor";dir = 8},/area/shuttle/escape) +"P" = (/turf/closed/wall/shuttle{tag = "icon-wall_space";icon_state = "wall_space"},/area/shuttle/escape) (1,1,1) = {" abcdeaafghfaaaaaaaa diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index 4ecb0e8fd64..c1b24953b44 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -1,6 +1,6 @@ "a" = (/turf/closed/wall/mineral/wood,/area/shuttle/escape) "b" = (/obj/machinery/light_switch,/turf/closed/wall/mineral/wood,/area/shuttle/escape) -"c" = (/obj/machinery/door/unpowered/shuttle,/obj/docking_port/mobile/emergency{dheight = 0; dir = 4; dwidth = 1; height = 10; name = "Oh Hi Mark"; width = 12},/turf/open/floor/wood,/area/shuttle/escape) +"c" = (/obj/docking_port/mobile/emergency{dheight = 0;dir = 4;dwidth = 1;height = 10;name = "Oh Hi Mark";width = 12;timid = 1},/obj/machinery/door/airlock/wood,/turf/open/floor/wood,/area/shuttle/escape) "d" = (/turf/open/floor/wood,/area/shuttle/escape) "e" = (/obj/machinery/light{dir = 1},/turf/open/floor/carpet,/area/shuttle/escape) "f" = (/obj/structure/chair/comfy/teal,/turf/open/floor/carpet,/area/shuttle/escape) @@ -8,17 +8,17 @@ "h" = (/turf/open/floor/carpet,/area/shuttle/escape) "i" = (/obj/structure/table/reinforced,/obj/item/weapon/kitchen/knife,/turf/open/floor/carpet,/area/shuttle/escape) "j" = (/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"k" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"k" = (/obj/machinery/light{icon_state = "tube1";dir = 4},/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/shuttle/escape) "l" = (/obj/machinery/computer/security/wooden_tv,/turf/open/floor/carpet,/area/shuttle/escape) "m" = (/obj/structure/table/glass,/turf/open/floor/carpet,/area/shuttle/escape) -"n" = (/obj/structure/chair/comfy/teal{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) +"n" = (/obj/structure/chair/comfy/teal{tag = "icon-comfychair (WEST)";icon_state = "comfychair";dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) "o" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/store/cake/birthday,/turf/open/floor/carpet,/area/shuttle/escape) "p" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/bar,/area/shuttle/escape) "q" = (/obj/structure/table/reinforced,/turf/open/floor/carpet,/area/shuttle/escape) "r" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/turf/open/floor/plasteel/bar,/area/shuttle/escape) "s" = (/obj/machinery/door/window{dir = 8},/turf/open/floor/plasteel/bar,/area/shuttle/escape) "t" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bar,/area/shuttle/escape) -"u" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/wood,/area/shuttle/escape) +"u" = (/obj/machinery/light{icon_state = "tube1";dir = 8},/turf/open/floor/wood,/area/shuttle/escape) "v" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/shuttle/escape) "w" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/blood/drip,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/mob_spawn/human/corpse,/obj/item/weapon/gun/projectile/automatic/pistol/m1911,/obj/machinery/light/small{dir = 8},/obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday,/turf/open/floor/carpet,/area/shuttle/escape) "x" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/obj/item/weapon/paper{info = "i love daniel
daniel is my best friend

you are tearing me apart elise"},/turf/open/floor/carpet,/area/shuttle/escape) diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm index e972853c165..948f36a7b5e 100644 --- a/_maps/shuttles/emergency_meta.dmm +++ b/_maps/shuttles/emergency_meta.dmm @@ -1,58 +1,58 @@ "aa" = (/turf/open/space,/area/space) -"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/shuttle/escape) "ac" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) -"ad" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) -"ae" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"ad" = (/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape) +"ae" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) "af" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"ag" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) -"ah" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dir = 2; dwidth = 5; height = 14; name = "MetaStation emergency shuttle"; width = 25},/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 5; height = 14; id = "emergency_home"; name = "emergency evac bay"; width = 25},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"ai" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape) -"aj" = (/turf/closed/wall/shuttle{tag = "icon-wall3 (NORTHWEST)"; icon_state = "wall3"; dir = 9},/area/shuttle/escape) -"ak" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) -"al" = (/obj/structure/table,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ag" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) +"ah" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dir = 2;dwidth = 5;height = 14;name = "MetaStation emergency shuttle";width = 25;timid = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ai" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/escape) +"aj" = (/turf/closed/wall/shuttle{tag = "icon-wall3 (NORTHWEST)";icon_state = "wall3";dir = 9},/area/shuttle/escape) +"ak" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape) +"al" = (/obj/structure/table,/obj/item/weapon/phone{pixel_x = -3;pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5;pixel_y = -1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "am" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "an" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ao" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ap" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aq" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ar" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"as" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 27},/obj/structure/chair,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) -"at" = (/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/structure/closet/crate{name = "lifejackets"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"as" = (/obj/item/device/radio/intercom{dir = 4;name = "Station Intercom (General)";pixel_x = 0;pixel_y = 27},/obj/structure/chair,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) +"at" = (/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";name = "emergency lifejacket"},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/clothing/mask/breath{pixel_x = -3;pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3;pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3;pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3;pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3;pixel_y = -3},/obj/item/clothing/head/hardhat/orange{name = "protective hat";pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat";pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat";pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat";pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat";pixel_y = 9},/obj/structure/closet/crate{name = "lifejackets"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "au" = (/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) "av" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) "aw" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ax" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "ay" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs{pixel_y = 3},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"az" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) -"aA" = (/obj/structure/tank_dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"az" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape) +"aA" = (/obj/structure/tank_dispenser/oxygen{layer = 2.7;pixel_x = -1;pixel_y = 2},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "aB" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "aC" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "aD" = (/turf/closed/wall/shuttle{icon_state = "swall1"},/area/shuttle/escape) "aE" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) "aF" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "aG" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aH" = (/obj/machinery/door/airlock/glass_command{name = "Cockpit"; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aI" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 0; req_access_txt = "0"; use_power = 0},/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) -"aJ" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"aH" = (/obj/machinery/door/airlock/glass_command{name = "Cockpit";req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aI" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed";pixel_x = 0;pixel_y = 0;req_access_txt = "0";use_power = 0},/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) +"aJ" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape) "aK" = (/turf/closed/wall/shuttle{icon_state = "wall3"},/area/shuttle/escape) "aL" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "aM" = (/turf/closed/wall/shuttle{icon_state = "swall2"},/area/shuttle/escape) -"aN" = (/obj/machinery/status_display{dir = 8; pixel_x = 32; pixel_y = 0},/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aN" = (/obj/machinery/status_display{dir = 8;pixel_x = 32;pixel_y = 0},/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) "aO" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency{pixel_y = 3},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aP" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0; pixel_y = 4; use_power = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aQ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -31},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aR" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 0; pixel_y = -27},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aS" = (/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -31},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) +"aP" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0;idle_power_usage = 0;pixel_y = 4;use_power = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aQ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2;pixel_y = 8},/obj/item/device/radio/intercom{dir = 2;name = "Station Intercom (General)";pixel_x = 0;pixel_y = -31},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aR" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/structure/extinguisher_cabinet{dir = 4;pixel_x = 0;pixel_y = -27},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aS" = (/obj/item/device/radio/intercom{dir = 2;name = "Station Intercom (General)";pixel_x = 0;pixel_y = -31},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape) "aT" = (/obj/structure/table,/obj/item/stack/medical/gauze,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) -"aU" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/escape) -"aV" = (/turf/closed/wall/shuttle{icon_state = "swall8"; dir = 2},/area/shuttle/escape) -"aW" = (/obj/machinery/door/airlock/command{name = "Emergency Recovery Airlock"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"aX" = (/turf/closed/wall/shuttle{icon_state = "swall15"; dir = 2},/area/shuttle/escape) -"aY" = (/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"aZ" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"ba" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"aU" = (/turf/closed/wall/shuttle{icon_state = "swall7";dir = 2},/area/shuttle/escape) +"aV" = (/turf/closed/wall/shuttle{icon_state = "swall8";dir = 2},/area/shuttle/escape) +"aW" = (/obj/machinery/door/airlock/command{name = "Emergency Recovery Airlock";req_access = null;req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aX" = (/turf/closed/wall/shuttle{icon_state = "swall15";dir = 2},/area/shuttle/escape) +"aY" = (/obj/machinery/door/airlock/glass_security{name = "Brig";req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aZ" = (/obj/machinery/door/airlock/glass_medical{id_tag = null;name = "Escape Shuttle Infirmary";req_access_txt = "0"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ba" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape) "bb" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo Bay Airlock"},/turf/open/floor/plasteel/delivery,/area/shuttle/escape) -"bc" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/escape) +"bc" = (/turf/closed/wall/shuttle{icon_state = "swall11";dir = 2},/area/shuttle/escape) "bd" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) "be" = (/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) "bf" = (/obj/machinery/door/airlock/external{name = "Emergency Recovery Airlock"},/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) @@ -67,11 +67,11 @@ "bo" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/delivery,/area/shuttle/escape) "bp" = (/turf/open/floor/plasteel/delivery,/area/shuttle/escape) "bq" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/delivery,/area/shuttle/escape) -"br" = (/turf/closed/wall/shuttle{icon_state = "swall4"; dir = 2},/area/shuttle/escape) +"br" = (/turf/closed/wall/shuttle{icon_state = "swall4";dir = 2},/area/shuttle/escape) "bs" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"bt" = (/obj/structure/reagent_dispensers/peppertank,/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) -"bu" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 4; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = -2; pixel_y = 5},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 2; pixel_y = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) -"bv" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = -1},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -5},/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape) +"bt" = (/obj/structure/reagent_dispensers/peppertank,/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape) +"bu" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6;pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = -3;pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 6;pixel_y = 8},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3;pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 4;pixel_y = 1},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = -2;pixel_y = 5},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 2;pixel_y = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"bv" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3;pixel_y = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0;pixel_y = -1},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3;pixel_y = -5},/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape) "bw" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) "bx" = (/turf/open/floor/plasteel/floorgrime,/area/shuttle/escape) "by" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) @@ -79,24 +79,24 @@ "bA" = (/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape) "bB" = (/turf/closed/wall/shuttle{icon_state = "diagonalWall3"},/area/shuttle/escape) "bC" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) -"bD" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -31},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -4; pixel_y = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bD" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4;pixel_y = 2},/obj/item/device/radio/intercom{dir = 2;name = "Station Intercom (General)";pixel_x = 0;pixel_y = -31},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -4;pixel_y = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) "bE" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs{pixel_y = 3},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"bF" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0; use_power = 0},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"bG" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs{pixel_x = 2; pixel_y = 2},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) -"bH" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/retractor{pixel_x = 4},/obj/item/weapon/hemostat{pixel_x = -4},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"bF" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0;idle_power_usage = 0;use_power = 0},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bG" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs{pixel_x = 2;pixel_y = 2},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bH" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/retractor{pixel_x = 4},/obj/item/weapon/hemostat{pixel_x = -4},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/device/radio/intercom{dir = 2;name = "Station Intercom (General)";pixel_x = -27;pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "bI" = (/obj/structure/sink,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) -"bJ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) -"bK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"bJ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"bK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3;pixel_y = 3},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "bL" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/shuttle{icon_state = "swall2"},/area/shuttle/escape) "bM" = (/obj/structure/rack{dir = 1},/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/suit/fire/firefighter,/obj/item/clothing/mask/gas,/obj/item/clothing/head/hardhat/red,/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape) -"bN" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 0; pixel_y = -27},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) -"bO" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/device/radio,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) -"bP" = (/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -4; pixel_y = 3},/obj/item/device/healthanalyzer{pixel_x = 3; pixel_y = 3},/obj/item/weapon/lazarus_injector,/mob/living/simple_animal/bot/medbot{name = "\improper emergency medibot"; pixel_x = -3; pixel_y = 2},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) -"bQ" = (/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -31},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"bN" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{dir = 4;pixel_x = 0;pixel_y = -27},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"bO" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3;pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6;pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/device/radio,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"bP" = (/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3;pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -4;pixel_y = 3},/obj/item/device/healthanalyzer{pixel_x = 3;pixel_y = 3},/obj/item/weapon/lazarus_injector,/mob/living/simple_animal/bot/medbot{name = "\improper emergency medibot";pixel_x = -3;pixel_y = 2},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"bQ" = (/obj/item/device/radio/intercom{dir = 2;name = "Station Intercom (General)";pixel_x = 0;pixel_y = -31},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) "bR" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/item/hand_labeler_refill,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) -"bS" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape) -"bT" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/escape) -"bU" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape) +"bS" = (/turf/closed/wall/shuttle{icon_state = "swall_s5";dir = 2},/area/shuttle/escape) +"bT" = (/turf/closed/wall/shuttle{icon_state = "swall13";dir = 2},/area/shuttle/escape) +"bU" = (/turf/closed/wall/shuttle{icon_state = "swall_s9";dir = 2},/area/shuttle/escape) (1,1,1) = {" aaaaabacacacacadaeacaeafacafagacacacaeahacafaeaeai diff --git a/_maps/shuttles/emergency_narnar.dmm b/_maps/shuttles/emergency_narnar.dmm index 17b1b2dc1cd..8f1957d974e 100644 --- a/_maps/shuttles/emergency_narnar.dmm +++ b/_maps/shuttles/emergency_narnar.dmm @@ -4,21 +4,21 @@ "d" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "e" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/cult,/area/shuttle/escape) "f" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"g" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"g" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "h" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "i" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/cult,/area/shuttle/escape) "j" = (/turf/open/floor/plasteel/cult,/area/shuttle/escape) "k" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/cult,/area/shuttle/escape) "l" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "m" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"n" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"o" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"n" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = -30},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"o" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)";pixel_x = 0;pixel_y = -29},/turf/open/floor/plasteel/cult,/area/shuttle/escape) "p" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "q" = (/obj/item/stack/sheet/metal,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "r" = (/obj/machinery/door/airlock/cult/unruned/glass/friendly,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "s" = (/obj/machinery/status_display,/turf/closed/wall/mineral/cult,/area/shuttle/escape) "t" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"u" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"u" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "v" = (/obj/effect/decal/cleanable/blood,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "w" = (/mob/living/simple_animal/hostile/construct/builder,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "x" = (/obj/machinery/door/airlock/cult/friendly,/turf/open/floor/plating,/area/shuttle/escape) @@ -28,19 +28,19 @@ "B" = (/obj/effect/rune/true_sight,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/gibs/body,/obj/effect/decal/cleanable/blood/gibs/core,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "C" = (/mob/living/simple_animal/hostile/construct/armored,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "D" = (/obj/effect/rune/true_sight,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"E" = (/obj/machinery/door/airlock/cult/friendly,/obj/docking_port/mobile/emergency{name = "shuttle 667"},/turf/open/floor/plating,/area/shuttle/escape) +"E" = (/obj/machinery/door/airlock/cult/friendly,/obj/docking_port/mobile/emergency{name = "shuttle 667";timid = 1},/turf/open/floor/plating,/area/shuttle/escape) "F" = (/obj/effect/decal/cleanable/blood/gibs/down,/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"G" = (/obj/structure/extinguisher_cabinet{has_extinguisher = null; icon_state = "extinguisher_empty"; opened = 1; pixel_x = 27; pixel_y = 0},/obj/item/weapon/extinguisher{safety = 0},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"G" = (/obj/structure/extinguisher_cabinet{has_extinguisher = null;icon_state = "extinguisher_empty";opened = 1;pixel_x = 27;pixel_y = 0},/obj/item/weapon/extinguisher{safety = 0},/turf/open/floor/plasteel/cult,/area/shuttle/escape) "H" = (/mob/living/simple_animal/hostile/construct/wraith,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "I" = (/obj/effect/rune/narsie,/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"J" = (/mob/living/simple_animal/hostile/carp/eyeball{faction = list("cult"); name = "left eyeball"},/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"K" = (/mob/living/simple_animal/hostile/carp/eyeball{faction = list("cult"); name = "right eyeball"},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"J" = (/mob/living/simple_animal/hostile/carp/eyeball{faction = list("cult");name = "left eyeball"},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"K" = (/mob/living/simple_animal/hostile/carp/eyeball{faction = list("cult");name = "right eyeball"},/turf/open/floor/plasteel/cult,/area/shuttle/escape) "L" = (/obj/effect/decal/cleanable/blood/drip,/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"M" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"M" = (/obj/structure/extinguisher_cabinet{pixel_x = 27;pixel_y = 0},/turf/open/floor/plasteel/cult,/area/shuttle/escape) "N" = (/obj/machinery/door/airlock/cult/glass/friendly,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "O" = (/obj/structure/dresser,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "P" = (/obj/structure/showcase/horrific_experiment,/turf/open/floor/plasteel/cult,/area/shuttle/escape) -"Q" = (/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/stack/sheet/metal,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"Q" = (/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2;pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27;pixel_y = 0},/obj/item/stack/sheet/metal,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "R" = (/obj/item/stack/sheet/metal,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "S" = (/obj/structure/table/wood,/obj/item/weapon/tome,/turf/open/floor/plasteel/cult,/area/shuttle/escape) "T" = (/obj/structure/bed,/obj/item/weapon/bedsheet/cult,/turf/open/floor/plasteel/cult,/area/shuttle/escape) diff --git a/_maps/shuttles/emergency_supermatter.dmm b/_maps/shuttles/emergency_supermatter.dmm index 5b51ab7b5b1..0187e4514d0 100644 --- a/_maps/shuttles/emergency_supermatter.dmm +++ b/_maps/shuttles/emergency_supermatter.dmm @@ -1,69 +1,82 @@ -"a" = (/turf/open/space,/area/space) -"b" = (/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) -"c" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) -"d" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) -"e" = (/obj/structure/closet/radiation{anchored = 1},/obj/item/clothing/glasses/meson/engine,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"f" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"g" = (/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"h" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"i" = (/obj/machinery/shower{dir = 8},/turf/open/floor/noslip,/area/shuttle/escape) -"j" = (/obj/structure/reflector/single{anchored = 1},/turf/open/floor/plating{icon_state = "warnplate"; dir = 8},/area/shuttle/escape) -"k" = (/obj/structure/reflector/box{anchored = 1},/turf/open/floor/plating,/area/shuttle/escape) -"l" = (/obj/structure/reflector/single{tag = "icon-reflector (WEST)"; icon_state = "reflector"; dir = 8; anchored = 1},/turf/open/floor/plating{icon_state = "warnplate"; dir = 4},/area/shuttle/escape) -"m" = (/obj/machinery/shower{dir = 4},/turf/open/floor/noslip,/area/shuttle/escape) -"n" = (/obj/machinery/status_display,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) -"o" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"p" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 8},/area/shuttle/escape) -"q" = (/turf/open/floor/plating,/area/shuttle/escape) -"r" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 4},/area/shuttle/escape) -"s" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"t" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) -"u" = (/obj/machinery/power/supermatter_shard/hugbox{anchored = 1; base_icon_state = "darkmatter"; explosion_power = 20; gasefficency = 0.15; icon_state = "darkmatter"; name = "anchored supermatter crystal"},/turf/open/floor/plating,/area/shuttle/escape) -"v" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/crowbar/red,/obj/item/weapon/storage/box/snappops{pixel_x = 4; pixel_y = -4},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"w" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) -"x" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Hyperfractal Gigashuttle"},/turf/open/floor/plating,/area/shuttle/escape) -"y" = (/obj/machinery/door/airlock/external{name = "Emergency Launch Catwalk"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/shuttle/escape) -"z" = (/turf/open/floor/plating/airless,/area/shuttle/escape) -"A" = (/obj/structure/reflector/single{anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) -"B" = (/obj/structure/reflector/double{anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) -"C" = (/obj/structure/reflector/double{tag = "icon-reflector_double (NORTH)"; icon_state = "reflector_double"; dir = 1; anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) -"D" = (/obj/structure/reflector/single{tag = "icon-reflector (WEST)"; icon_state = "reflector"; dir = 8; anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) -"E" = (/turf/open/floor/plating/airless{dir = 9; icon_state = "warnplate"},/area/shuttle/escape) -"F" = (/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/shuttle/escape) -"G" = (/turf/open/floor/plating/airless{dir = 5; icon_state = "warnplate"},/area/shuttle/escape) -"H" = (/turf/open/floor/plating/airless{dir = 8; icon_state = "warnplate"},/area/shuttle/escape) -"I" = (/obj/machinery/power/supermatter_shard/hugbox{anchored = 1; name = "anchored supermatter shard"},/turf/open/floor/plating/airless,/area/shuttle/escape) -"J" = (/turf/open/floor/plating/airless{dir = 4; icon_state = "warnplate"},/area/shuttle/escape) -"K" = (/turf/open/floor/plating/airless{dir = 10; icon_state = "warnplate"},/area/shuttle/escape) -"L" = (/turf/open/floor/plating/airless{dir = 2; icon_state = "warnplate"},/area/shuttle/escape) -"M" = (/turf/open/floor/plating/airless{dir = 6; icon_state = "warnplate"},/area/shuttle/escape) -"N" = (/obj/machinery/power/emitter/energycannon{dir = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) -"O" = (/obj/structure/chair,/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/shuttle/escape) -"P" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) -"Q" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plating/airless,/area/shuttle/escape) -"R" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape) +"ac" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle{tag = "icon-swall12"; icon_state = "swall12"},/area/shuttle/escape) +"ad" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"ae" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape) +"af" = (/turf/closed/wall/shuttle{tag = "icon-swall3"; icon_state = "swall3"},/area/shuttle/escape) +"ag" = (/obj/structure/closet/radiation{anchored = 1},/obj/item/clothing/glasses/meson/engine,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"ah" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"ai" = (/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"aj" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"ak" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle{tag = "icon-swall3"; icon_state = "swall3"},/area/shuttle/escape) +"al" = (/obj/machinery/shower{dir = 8},/turf/open/floor/noslip,/area/shuttle/escape) +"am" = (/obj/structure/reflector/single{anchored = 1},/turf/open/floor/plating{icon_state = "warnplate"; dir = 8},/area/shuttle/escape) +"an" = (/obj/structure/reflector/box{anchored = 1},/turf/open/floor/plating,/area/shuttle/escape) +"ao" = (/obj/structure/reflector/single{tag = "icon-reflector (WEST)"; icon_state = "reflector"; dir = 8; anchored = 1},/turf/open/floor/plating{icon_state = "warnplate"; dir = 4},/area/shuttle/escape) +"ap" = (/obj/machinery/shower{dir = 4},/turf/open/floor/noslip,/area/shuttle/escape) +"aq" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{tag = "icon-swall3"; icon_state = "swall3"},/area/shuttle/escape) +"ar" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"as" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 8},/area/shuttle/escape) +"at" = (/turf/open/floor/plating,/area/shuttle/escape) +"au" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 4},/area/shuttle/escape) +"av" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"aw" = (/turf/closed/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/shuttle/escape) +"ax" = (/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape) +"ay" = (/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape) +"az" = (/turf/closed/wall/shuttle{icon_state = "swallc1"},/area/shuttle/escape) +"aA" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) +"aB" = (/obj/machinery/power/supermatter_shard/hugbox{anchored = 1; base_icon_state = "darkmatter"; explosion_power = 20; gasefficency = 0.15; icon_state = "darkmatter"; name = "anchored supermatter crystal"},/turf/open/floor/plating,/area/shuttle/escape) +"aC" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) +"aD" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/crowbar/red,/obj/item/weapon/storage/box/snappops{pixel_x = 4; pixel_y = -4},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"aE" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"aF" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Hyperfractal Gigashuttle"; timid = 1},/turf/open/floor/plating,/area/shuttle/escape) +"aG" = (/turf/closed/wall/shuttle{icon_state = "swallc3"},/area/shuttle/escape) +"aH" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12"},/area/shuttle/escape) +"aI" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle{icon_state = "swallc1"},/area/shuttle/escape) +"aJ" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/shuttle/escape) +"aK" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape) +"aL" = (/obj/machinery/door/airlock/external{name = "Emergency Launch Catwalk"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/shuttle/escape) +"aM" = (/turf/open/floor/plating/airless,/area/shuttle/escape) +"aN" = (/obj/structure/reflector/single{anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"aO" = (/obj/structure/reflector/double{anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"aP" = (/obj/structure/reflector/double{tag = "icon-reflector_double (NORTH)"; icon_state = "reflector_double"; dir = 1; anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"aQ" = (/obj/structure/reflector/single{tag = "icon-reflector (WEST)"; icon_state = "reflector"; dir = 8; anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"aR" = (/turf/open/floor/plating/airless{dir = 9; icon_state = "warnplate"},/area/shuttle/escape) +"aS" = (/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/shuttle/escape) +"aT" = (/turf/open/floor/plating/airless{dir = 5; icon_state = "warnplate"},/area/shuttle/escape) +"aU" = (/turf/open/floor/plating/airless{dir = 8; icon_state = "warnplate"},/area/shuttle/escape) +"aV" = (/obj/machinery/power/supermatter_shard/hugbox{anchored = 1; name = "anchored supermatter shard"},/turf/open/floor/plating/airless,/area/shuttle/escape) +"aW" = (/turf/open/floor/plating/airless{dir = 4; icon_state = "warnplate"},/area/shuttle/escape) +"aX" = (/turf/open/floor/plating/airless{dir = 10; icon_state = "warnplate"},/area/shuttle/escape) +"aY" = (/turf/open/floor/plating/airless{dir = 2; icon_state = "warnplate"},/area/shuttle/escape) +"aZ" = (/turf/open/floor/plating/airless{dir = 6; icon_state = "warnplate"},/area/shuttle/escape) +"ba" = (/obj/machinery/power/emitter/energycannon{dir = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"bb" = (/obj/structure/chair,/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/shuttle/escape) +"bc" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"bd" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plating/airless,/area/shuttle/escape) +"be" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) (1,1,1) = {" -abcdddddcba -abefeeefeba -adeghhhgeda -aceijklmeca -aneopqrsena -adeopqrseda -bbeopqrsebb -tggopursggt -cvgopqrsgwc -xggopqrsggt -bndcpqrcdnb -aaabdydbaaa -aaaaqzqaaaa -aAqqBzCqqDa -azaaazaaaza -aEFGazaEFGa -aHIJzzzHIJa -aKLMazaKLMa -aqqaazaaqqa -aNNzEOGzNNa -aPPaHQJaPPa -aRRaKLMaRRa +aaabacadadadadadacaeaa +aaafagahagagagahagafaa +aaadagaiajajajaiagadaa +aaakagalamanaoapagakaa +aaaqagarasatauavagaqaa +aaadagarasatauavagadaa +awaxagarasatauavagayaz +aAaiaiarasaBauavaiaiaA +aCaDaiarasatauavaiaEaC +aFaiaiarasatauavaiaiaA +aGaHadaIasatauaJadaHaK +aaaaaaaGadaLadaKaaaaaa +aaaaaaaaataMataaaaaaaa +aaaNatataOaMaPatataQaa +aaaMaaaaaaaMaaaaaaaMaa +aaaRaSaTaaaMaaaRaSaTaa +aaaUaVaWaMaMaMaUaVaWaa +aaaXaYaZaaaMaaaXaYaZaa +aaatataaaaaMaaaaatataa +aababaaMaRbbaTaMbabaaa +aabcbcaaaUbdaWaabcbcaa +aabebeaaaXaYaZaabebeaa "} diff --git a/_maps/shuttles/emergency_wabbajack.dmm b/_maps/shuttles/emergency_wabbajack.dmm new file mode 100644 index 00000000000..9cc9bbcfe6c --- /dev/null +++ b/_maps/shuttles/emergency_wabbajack.dmm @@ -0,0 +1,648 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/shuttle/smooth, +/area/shuttle/escape) +"ac" = ( +/obj/structure/grille, +/obj/structure/window/shuttle/tinted, +/turf/open/floor/plating, +/area/shuttle/escape) +"ad" = ( +/turf/open/floor/plasteel/green, +/area/shuttle/escape) +"ae" = ( +/turf/open/floor/plasteel/darkgreen, +/area/shuttle/escape) +"af" = ( +/obj/machinery/power/emitter/energycannon/magical, +/turf/open/floor/plasteel/darkgreen, +/area/shuttle/escape) +"ag" = ( +/obj/structure/table/abductor/wabbajack/left, +/turf/open/floor/plasteel/darkgreen, +/area/shuttle/escape) +"ah" = ( +/obj/structure/table/abductor/wabbajack/right, +/turf/open/floor/plasteel/darkgreen, +/area/shuttle/escape) +"ai" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall/shuttle/smooth, +/area/shuttle/escape) +"aj" = ( +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"ak" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"al" = ( +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"am" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"an" = ( +/obj/structure/table/wood, +/obj/item/candle/infinite, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"ao" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"ap" = ( +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"aq" = ( +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"ar" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"as" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"at" = ( +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = -6 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"au" = ( +/obj/structure/chair/wood, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"av" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aw" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"ax" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"ay" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"az" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aA" = ( +/obj/structure/table, +/obj/item/weapon/coin/mythril, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aB" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aC" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aD" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + timid = 1, name = "NT Lepton Violet" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aE" = ( +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aF" = ( +/obj/machinery/door/window/eastleft, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aG" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/structure/table/glass, +/obj/item/weapon/storage/box/syringes{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/beakers, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aH" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/escape) +"aI" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aK" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aL" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aM" = ( +/obj/machinery/chem_dispenser, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aN" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/wrench/medical, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aO" = ( +/turf/open/floor/plating, +/area/shuttle/escape) +"aP" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aQ" = ( +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aR" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aS" = ( +/obj/machinery/door/window/eastright, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aT" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal, +/turf/open/floor/plasteel/shuttle{ + icon_state = "shuttlefloor3" + }, +/area/shuttle/escape) +"aU" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aV" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aW" = ( +/turf/open/floor/plasteel/yellow, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + icon_state = "warningline"; + dir = 1 + }, +/area/shuttle/escape) +"aX" = ( +/turf/open/floor/plasteel/yellow, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHEAST)"; + icon_state = "warningline"; + dir = 5 + }, +/area/shuttle/escape) +"aY" = ( +/turf/open/floor/plasteel/whitered, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHWEST)"; + icon_state = "warningline"; + dir = 9 + }, +/area/shuttle/escape) +"aZ" = ( +/turf/open/floor/plasteel/whitered, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + icon_state = "warningline"; + dir = 1 + }, +/area/shuttle/escape) +"ba" = ( +/obj/structure/cult/forge{ + desc = "A engine used in powering the shuttle."; + name = "magma engine" + }, +/turf/open/floor/plasteel/yellow, +/area/shuttle/escape) +"bb" = ( +/turf/open/floor/plasteel/yellow, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + icon_state = "warningline"; + dir = 4 + }, +/area/shuttle/escape) +"bc" = ( +/turf/open/floor/plasteel/whitered, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + icon_state = "warningline"; + dir = 8 + }, +/area/shuttle/escape) +"bd" = ( +/obj/structure/cult/forge{ + desc = "A engine used in powering the shuttle."; + name = "magma engine" + }, +/turf/open/floor/plasteel/whitered, +/area/shuttle/escape) +"be" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/airless, +/area/shuttle/escape) +"bf" = ( +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/lava/smooth/airless, +/area/shuttle/escape) +"bg" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) + +(1,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ax +ab +aD +aH +as +as +as +aH +aV +ab +aV +ab +ab +ab +aa +"} +(2,1,1) = {" +aa +ab +ab +ab +ab +ak +at +al +as +aE +aI +aI +aI +aE +ab +aE +aI +aW +ba +be +ab +ab +"} +(3,1,1) = {" +ab +ab +ag +ae +ab +al +al +al +aB +aE +aE +aE +aE +aE +ab +aE +aE +aX +bb +be +bf +bg +"} +(4,1,1) = {" +ac +ad +ae +ad +ab +am +am +am +as +aE +aJ +aJ +aJ +aE +aU +aE +aE +aE +aE +be +bf +bg +"} +(5,1,1) = {" +ac +ae +ad +ae +ab +ab +ab +ab +ab +aq +aK +aN +aK +aq +ab +aw +aw +aw +aw +be +bf +bg +"} +(6,1,1) = {" +ac +af +ad +ae +ai +an +au +ay +ab +aq +aq +aq +aq +aq +ab +ab +ab +ab +ab +be +bf +bg +"} +(7,1,1) = {" +ac +ae +ad +ae +aj +ao +au +az +ab +aF +aJ +aq +aJ +aS +as +aI +aI +aI +aI +be +bf +bg +"} +(8,1,1) = {" +ac +ad +ae +ad +ai +ap +av +aA +ab +aq +aL +aO +aL +aq +aU +aE +aE +aE +aE +be +bf +bg +"} +(9,1,1) = {" +ab +ab +ah +ae +ab +aq +aq +aq +aC +aq +aq +aP +aq +aq +as +av +aE +aY +bc +be +bf +bg +"} +(10,1,1) = {" +aa +ab +ab +ab +ab +ar +aw +aw +ab +aG +aM +aQ +aR +aT +as +av +aE +aZ +bd +be +ab +ab +"} +(11,1,1) = {" +aa +aa +aa +aa +ab +as +ab +as +ab +ab +ab +as +as +as +ab +ab +ab +as +ab +ab +ab +aa +"} diff --git a/_maps/shuttles/ferry_base.dmm b/_maps/shuttles/ferry_base.dmm index 66b39b7dd87..0e5e5f12a35 100644 --- a/_maps/shuttles/ferry_base.dmm +++ b/_maps/shuttles/ferry_base.dmm @@ -10,7 +10,7 @@ "j" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) "k" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) "l" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) -"m" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; roundstart_move = "ferry_away"; travelDir = 180; width = 5},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"m" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; roundstart_move = "ferry_away"; travelDir = 180; width = 5; timid = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) "n" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/transport) "o" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f10"},/area/shuttle/transport) "p" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm index 9267e97bcf0..867110f7d7a 100644 --- a/_maps/shuttles/ferry_lighthouse.dmm +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -38,7 +38,7 @@ "aL" = (/turf/closed/wall/rust,/area/shuttle/transport) "aM" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/shuttle/transport) "aN" = (/obj/machinery/power/grounding_rod{anchored = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) -"aO" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8;dwidth = 9;height = 27;id = "ferry";name = "ferry shuttle";roundstart_move = "ferry_away";travelDir = 180;width = 16},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aO" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8;dwidth = 8;height = 27;id = "ferry";name = "The Lighthouse";roundstart_move = "ferry_away";timid = 1;travelDir = 180;width = 16},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) "aP" = (/obj/machinery/vending/magivend,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) "aQ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) "aR" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/wood,/area/shuttle/transport) @@ -70,9 +70,9 @@ aaafamanaoapadadapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae aaafafaqakapararapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae agaaaaasakatauauavauapapapawawadadaxaxayaxaxaxazaxaxaA agagagaBakapauauaCaDaDaDaEaEaEakaFaGaHaIakaJaJaJaJaKay -aaaaaaasakaLauauaMaDaDaDaNaNaEaEaEaEaEaEaEaEaEaEaEaEaO +aaaaaaasakaLauauaCaDaDaDaNaNaEaEaEaEaEaEaEaEaEaEaEaEaO aaaaagasaPaQauaRaSaDaDaDaEaEaEakaTaUaVaWaWaWaWaWaWaWay -aaabacaXaXapauauaMaDaDaDadadadaYawadaxayaxaxaxazaxaxaZ +aaabacaXaXapauauaCaDaDaDadadadaYawadaxayaxaxaxazaxaxaZ aaaaagahbaaLaLbbbcbdadadadaeaeaeaeaeaeaeaeaeaeaeaeaeae aaaaaaahbebebfbgadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae aaaaagahbhbhadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae diff --git a/_maps/shuttles/ferry_meat.dmm b/_maps/shuttles/ferry_meat.dmm index e8bb7a536ce..eda349c9aa3 100644 --- a/_maps/shuttles/ferry_meat.dmm +++ b/_maps/shuttles/ferry_meat.dmm @@ -14,7 +14,7 @@ "n" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) "o" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/transport) "p" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) -"q" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8;dwidth = 2;height = 12;id = "ferry";name = "ferry shuttle";roundstart_move = "ferry_away";travelDir = 180;width = 5},/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"q" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8;dwidth = 2;height = 12;id = "ferry";name = "ferry shuttle";roundstart_move = "ferry_away";travelDir = 180;width = 5;timid = 1},/turf/open/floor/plasteel/freezer,/area/shuttle/transport) "r" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion";dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_s5";dir = 2},/area/shuttle/transport) "s" = (/turf/open/floor/plasteel/freezer,/turf/closed/wall/shuttle/interior{icon_state = "swall_f10"},/area/shuttle/transport) "t" = (/obj/structure/closet/chefcloset,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 44db343ee14..07756f111dd 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -1,7 +1,7 @@ "aa" = (/turf/open/space,/area/space) "ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/abandoned) "ac" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/abandoned) -"ad" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship"; launch_status = 0; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 35},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ad" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship"; launch_status = 0; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 35; timid = 1},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) "ae" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/abandoned) "af" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) "ag" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index 834aaa68d89..0b5fb24e513 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -4,7 +4,7 @@ "ad" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/abandoned) "ae" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/abandoned) "af" = (/turf/closed/wall/shuttle{icon_state = "swallc1"; dir = 2},/area/shuttle/abandoned) -"ag" = (/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship"; launch_status = 0; name = "NT Recovery White-Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 27},/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"ag" = (/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship"; launch_status = 0; name = "NT Recovery White-Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 27; timid = 1},/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) "ah" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) "ai" = (/turf/closed/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/shuttle/abandoned) "aj" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/abandoned) diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index d6ab9543d76..bf7afd1e029 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -32,8 +32,6 @@ #define BLOCK_GAS_SMOKE_EFFECT 8192 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! (NOTE: flag shared with THICKMATERIAL) #define THICKMATERIAL 8192 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. (NOTE: flag shared with BLOCK_GAS_SMOKE_EFFECT) -#define NOREACT 16384 //Reagents dont' react inside this container. - //turf-only flags #define NOJAUNT 1 @@ -81,3 +79,6 @@ #define SLIME 16 #define DRONE 32 #define SWARMER 64 + +// Flags for reagents +#define REAGENT_NOREACT 1 diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 74f542bda05..153ab82e1f3 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -396,12 +396,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA #define APPEARANCE_UI RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR -//Launching Shuttles to Centcomm -#define NOLAUNCH -1 -#define UNLAUNCHED 0 -#define ENDGAME_LAUNCHED 1 -#define EARLY_LAUNCHED 2 - //Just space #define SPACE_ICON_STATE "[((x + y) ^ ~(x * y) + z) % 25]" @@ -424,10 +418,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define MAP_MAXY 5 #define MAP_MAXZ 6 -// Shuttle return values -#define SHUTTLE_ALREADY_DOCKED 7 - - #define CHECK_DNA_AND_SPECIES(C) if((!(C.dna)) || (!(C.dna.species))) return // Evil narsie colour diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm new file mode 100644 index 00000000000..fe600a713a2 --- /dev/null +++ b/code/__DEFINES/shuttles.dm @@ -0,0 +1,23 @@ +//shuttle mode defines +#define SHUTTLE_IDLE "idle" +#define SHUTTLE_RECALL "recalled" +#define SHUTTLE_CALL "called" +#define SHUTTLE_DOCKED "docked" +#define SHUTTLE_STRANDED "stranded" +#define SHUTTLE_ESCAPE "escape" +#define SHUTTLE_ENDGAME "endgame" + +// Shuttle return values +#define SHUTTLE_NOT_A_DOCKING_PORT "not_a_docking_port" +#define SHUTTLE_DWIDTH_TOO_LARGE "docking_width_too_large" +#define SHUTTLE_WIDTH_TOO_LARGE "width_too_large" +#define SHUTTLE_DHEIGHT_TOO_LARGE "docking_height_too_large" +#define SHUTTLE_HEIGHT_TOO_LARGE "height_too_large" +#define SHUTTLE_ALREADY_DOCKED "we_are_already_docked" +#define SHUTTLE_SOMEONE_ELSE_DOCKED "someone_else_docked" + +//Launching Shuttles to Centcomm +#define NOLAUNCH -1 +#define UNLAUNCHED 0 +#define ENDGAME_LAUNCHED 1 +#define EARLY_LAUNCHED 2 diff --git a/code/__DEFINES/stat.dm b/code/__DEFINES/stat.dm index 7397a22d21f..f7e519336d0 100644 --- a/code/__DEFINES/stat.dm +++ b/code/__DEFINES/stat.dm @@ -24,12 +24,3 @@ #define POWEROFF 4 // tbd #define MAINT 8 // under maintaince #define EMPED 16 // temporary broken by EMP pulse - -//shuttle mode defines -#define SHUTTLE_IDLE 0 -#define SHUTTLE_RECALL 1 -#define SHUTTLE_CALL 2 -#define SHUTTLE_DOCKED 3 -#define SHUTTLE_STRANDED 4 -#define SHUTTLE_ESCAPE 5 -#define SHUTTLE_ENDGAME 6 diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm index e5d13b03080..b1b557b6451 100644 --- a/code/__HELPERS/files.dm +++ b/code/__HELPERS/files.dm @@ -49,7 +49,7 @@ It is just a timer that only permits a download every [FTPDELAY] ticks. This can be changed by modifying FTPDELAY's value above. - PLEASE USE RESPONSIBLY, Some log files canr each sizes of 4MB! */ + PLEASE USE RESPONSIBLY, Some log files can reach sizes of 4MB! */ /client/proc/file_spam_check() var/time_to_wait = fileaccess_timer - world.time if(time_to_wait > 0) @@ -57,4 +57,22 @@ return 1 fileaccess_timer = world.time + FTPDELAY return 0 -#undef FTPDELAY \ No newline at end of file +#undef FTPDELAY + +/proc/pathwalk(path) + var/list/jobs = list(path) + var/list/filenames = list() + + while(jobs.len) + var/current_dir = pop(jobs) + var/list/new_filenames = flist(current_dir) + for(var/new_filename in new_filenames) + // if filename ends in / it is a directory, append to currdir + if(findtext(new_filename, "/", -1)) + jobs += current_dir + new_filename + else + filenames += current_dir + new_filename + return filenames + +/proc/pathflatten(path) + return replacetext(path, "/", "_") diff --git a/code/controllers/master.dm b/code/controllers/master.dm index a01c867c134..13533f67f03 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -108,6 +108,7 @@ var/global/datum/controller/master/Master = new() CHECK_TICK world << "Initializations complete!" + world.log << "Initializations complete." // Sort subsystems by display setting for easy access. sortTim(subsystems, /proc/cmp_subsystem_display) diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 08561726e6b..0fdc5702433 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -17,7 +17,7 @@ var/datum/subsystem/garbage_collector/SSgarbage var/gcedlasttick = 0 // number of things that gc'ed last tick var/totaldels = 0 var/totalgcs = 0 - + var/highest_del_time = 0 var/highest_del_tickusage = 0 @@ -31,6 +31,9 @@ var/datum/subsystem/garbage_collector/SSgarbage // the types are stored as strings var/list/noqdelhint = list()// list of all types that do not return a QDEL_HINT + // all types that did not respect qdel(A, force=TRUE) and returned one + // of the immortality qdel hints + var/list/noforcerespect = list() #ifdef TESTING var/list/qdel_list = list() // list of all types that have been qdel()eted @@ -150,7 +153,7 @@ var/datum/subsystem/garbage_collector/SSgarbage // Should be treated as a replacement for the 'del' keyword. // Datums passed to this will be given a chance to clean up references to allow the GC to collect them. -/proc/qdel(datum/D) +/proc/qdel(datum/D, force=FALSE) if(!D) return #ifdef TESTING @@ -159,16 +162,25 @@ var/datum/subsystem/garbage_collector/SSgarbage if(!istype(D)) del(D) else if(isnull(D.gc_destroyed)) - var/hint = D.Destroy() // Let our friend know they're about to get fucked up. + var/hint = D.Destroy(force) // Let our friend know they're about to get fucked up. if(!D) return switch(hint) if (QDEL_HINT_QUEUE) //qdel should queue the object for deletion. SSgarbage.QueueForQueuing(D) - if (QDEL_HINT_LETMELIVE) //qdel should let the object live after calling destory. - return - if (QDEL_HINT_IWILLGC) //functionally the same as the above. qdel should assume the object will gc on its own, and not check it. - return + if (QDEL_HINT_LETMELIVE, QDEL_HINT_IWILLGC) //qdel should let the object live after calling destory. + if(!force) + return + // Returning LETMELIVE after being told to force destroy + // indicates the objects Destroy() does not respect force + if(!("[D.type]" in SSgarbage.noforcerespect)) + SSgarbage.noforcerespect += "[D.type]" + testing("WARNING: [D.type] has been force deleted, but is \ + returning an immortal QDEL_HINT, indicating it does \ + not respect the force flag for qdel(). It has been \ + placed in the queue, further instances of this type \ + will also be queued.") + SSgarbage.QueueForQueuing(D) if (QDEL_HINT_HARDDEL) //qdel should assume this object won't gc, and queue a hard delete using a hard reference to save time from the locate() SSgarbage.HardQueue(D) if (QDEL_HINT_HARDDEL_NOW) //qdel should assume this object won't gc, and hard del it post haste. @@ -197,7 +209,7 @@ var/datum/subsystem/garbage_collector/SSgarbage // Default implementation of clean-up code. // This should be overridden to remove all references pointing to the object being destroyed. // Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE. -/datum/proc/Destroy() +/datum/proc/Destroy(force=FALSE) tag = null return QDEL_HINT_QUEUE diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index e2df3ccd9f6..5955447600f 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -79,9 +79,16 @@ var/datum/subsystem/shuttle/SSshuttle /datum/subsystem/shuttle/proc/requestEvac(mob/user, call_reason) if(!emergency) - WARNING("requestEvac(): There is no emergency shuttle, but the shuttle was called. Using the backup shuttle instead.") + WARNING("requestEvac(): There is no emergency shuttle, but the \ + shuttle was called. Using the backup shuttle instead.") if(!backup_shuttle) - throw EXCEPTION("requestEvac(): There is no emergency shuttle, or backup shuttle! The game will be unresolvable. This is likely due to a mapping error") + throw EXCEPTION("requestEvac(): There is no emergency shuttle, \ + or backup shuttle! The game will be unresolvable. This is \ + possibly a mapping error, more likely a bug with the shuttle \ + manipulation system, or badminry. It is possible to manually \ + resolve this problem by loading an emergency shuttle template \ + manually, and then calling register() on the mobile docking port. \ + Good luck.") return emergency = backup_shuttle @@ -211,11 +218,5 @@ var/datum/subsystem/shuttle/SSshuttle for(var/obj/docking_port/mobile/M in mobile) if(!M.roundstart_move) continue - for(var/obj/docking_port/stationary/S in stationary) - if(S.z != ZLEVEL_STATION && findtext(S.id, M.id)) - S.width = M.width - S.height = M.height - S.dwidth = M.dwidth - S.dheight = M.dheight moveShuttle(M.id, "[M.roundstart_move]", 0) CHECK_TICK diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm index a545622036a..a6bd818abad 100644 --- a/code/datums/helper_datums/map_template.dm +++ b/code/datums/helper_datums/map_template.dm @@ -120,5 +120,5 @@ var/datum/map_template/shuttle/S = new shuttle_type() - shuttle_templates[S.name] = S - map_templates[S.name] = S + shuttle_templates[S.shuttle_id] = S + map_templates[S.shuttle_id] = S diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 793cab7db2b..1ad6ec8e32f 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -158,4 +158,47 @@ if(istype(teleatom, /mob/living)) var/mob/living/MM = teleatom MM << "The bluespace interface on your bag of holding interferes with the teleport!" - return 1 \ No newline at end of file + return 1 + +// Safe location finder + +/proc/find_safe_turf(zlevel = ZLEVEL_STATION, list/zlevels) + if(!zlevels) + zlevels = list(zlevel) + for(var/cycle in 1 to 100) + // DRUNK DIALLING WOOOOOOOOO + var/random_location = locate(rand(37,202),rand(75,192),pick(zlevels)) + if(!(istype(random_location, /turf/open/floor))) + continue + var/turf/open/floor/F = random_location + if(!F.air) + continue + + var/datum/gas_mixture/A = F.air + var/list/A_gases = A.gases + var/trace_gases + for(var/id in A_gases) + if(id in hardcoded_gases) + continue + trace_gases = TRUE + break + + // Can most things breathe? + if(trace_gases) + continue + if(!(A_gases["o2"] && A_gases["o2"][MOLES] >= 16)) + continue + if(A_gases["plasma"]) + continue + if(A_gases["co2"] && A_gases["co2"][MOLES] >= 10) + continue + + // Aim for goldilocks temperatures and pressure + if((A.temperature <= 270) || (A.temperature >= 360)) + continue + var/pressure = A.return_pressure() + if((pressure <= 20) || (pressure >= 550)) + continue + + // DING! You have passed the gauntlet, and are "probably" safe. + return F diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index f34e49e96a0..77afc9e5f36 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -3,12 +3,14 @@ var/prefix = "_maps/shuttles/" var/suffix var/port_id + var/shuttle_id var/description var/admin_notes /datum/map_template/shuttle/New() - mappath = "[prefix][port_id]_[suffix].dmm" + shuttle_id = "[port_id]_[suffix]" + mappath = "[prefix][shuttle_id].dmm" . = ..() /datum/map_template/shuttle/emergency @@ -129,6 +131,18 @@ is a shuttle used at other less known nanotrasen facilities \ and has a more open inside for larger crowds." +/datum/map_template/shuttle/emergency/wabbajack + suffix = "wabbajack" + name = "NT Lepton Violet" + description = "The research team based on this vessel went missing one \ + day, and no amount of investigation could discover what happened to \ + them. The only occupants were a number of dead rodents, who appeared to \ + have clawed each other to death. Needless to say, no engineering team \ + wanted to go near the thing, and it's only being used as an Emergency \ + Escape Shuttle because there is literally nothing else available." + admin_notes = "If the crew can solve the puzzle, they will wake the \ + wabbajack statue. It will likely not end well. There's a reason it's \ + boarded up. Maybe they should have just left it alone." /datum/map_template/shuttle/ferry/base suffix = "base" diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 6a324797bfc..4aa0633f3be 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -319,38 +319,38 @@ return /mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(var/mob/living/target) - if(target != src) - src << "Attempting to remove this being from our presence." - if(src.z != ZLEVEL_STATION) - src << "Our bluespace transceiver cannot locate a viable bluespace link, our teleportation abilities are useless in this area." - return - if(do_mob(src, target, 30)) - var/cycle - for(cycle=0,cycle<100,cycle++) - var/random_location = locate(rand(37,202),rand(75,192),ZLEVEL_STATION)//Drunk dial a turf in the general ballpark of the station - if(istype(random_location, /turf/open/floor)) - var/turf/open/floor/F = random_location - if(F.air) - var/datum/gas_mixture/A = F.air - var/list/A_gases = A.gases - var/trace_gases - for(var/id in A_gases) - if(id in hardcoded_gases) - continue - trace_gases = TRUE - break - if((A_gases["o2"] && A_gases["o2"][MOLES] >= 16) && !A_gases["plasma"] && (!A_gases["co2"] || A_gases["co2"][MOLES] < 10) && !trace_gases)//Can most things breathe in this location? - if((A.temperature > 270) && (A.temperature < 360))//Not too hot, not too cold - var/pressure = A.return_pressure() - if((pressure > 20) && (pressure < 550))//Account for crushing pressure or vaccuums - if(ishuman(target))//If we're getting rid of a human, slap some energy cuffs on them to keep them away from us a little longer - var/obj/item/weapon/restraints/handcuffs/energy/used/Z = new /obj/item/weapon/restraints/handcuffs/energy/used(src) - var/mob/living/carbon/human/H = target - Z.apply_cuffs(H, src) - do_teleport(target, F, 0) - playsound(src,'sound/effects/sparks4.ogg',50,1) - break - return + if(target == src) + return + + if(src.z != ZLEVEL_STATION) + src << "Our bluespace transceiver cannot \ + locate a viable bluespace link, our teleportation abilities \ + are useless in this area." + return + + src << "Attempting to remove this being from \ + our presence." + + if(!do_mob(src, target, 30)) + return + + var/turf/open/floor/F = find_safe_turf(zlevel=ZLEVEL_STATION) + if(!F) + return + // If we're getting rid of a human, slap some energy cuffs on + // them to keep them away from us a little longer + + var/mob/living/carbon/human/H = target + if(ishuman(target) && (!H.handcuffed)) + H.handcuffed = new /obj/item/weapon/restraints/handcuffs/energy/used(H) + H.update_handcuffed() + add_logs(src, H, "handcuffed") + + var/datum/effect_system/spark_spread/S = new + S.set_up(4,0,get_turf(target)) + S.start() + playsound(src,'sound/effects/sparks4.ogg',50,1) + do_teleport(target, F, 0) /mob/living/simple_animal/hostile/swarmer/proc/DismantleMachine(var/obj/machinery/target) do_attack_animation(target) @@ -462,7 +462,6 @@ src << "There is already a trap here. Aborting." return Fabricate(/obj/effect/swarmer/destructible/trap, 5) - return /obj/effect/swarmer/destructible/trap name = "swarmer trap" diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index b10374a2dbf..418a878733d 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -429,10 +429,16 @@ This is here to make the tiles around the station mininuke change when it's arme get(src, /mob) << "You can't help but feel that you just lost something back there..." qdel(src) -/obj/item/weapon/disk/nuclear/Destroy() +/obj/item/weapon/disk/nuclear/Destroy(force) + var/turf/diskturf = get_turf(src) + + if(force) + message_admins("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z] - JMP":"nonexistent location"]).") + log_game("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]).") + return ..() + if(blobstart.len > 0) var/turf/targetturf = get_turf(pick(blobstart)) - var/turf/diskturf = get_turf(src) if(ismob(loc)) var/mob/M = loc M.remove_from_mob(src) @@ -444,4 +450,4 @@ This is here to make the tiles around the station mininuke change when it's arme log_game("[src] has been destroyed in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]). Moving it to ([targetturf.x], [targetturf.y], [targetturf.z]).") else throw EXCEPTION("Unable to find a blobstart landmark") - return QDEL_HINT_LETMELIVE //Cancel destruction regardless of success + return QDEL_HINT_LETMELIVE //Cancel destruction unless forced diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 6e2d45a1f1a..b916029f14e 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -10,7 +10,7 @@ use_power = 2 idle_power_usage = 5 active_power_usage = 10 - layer = 5 + layer = MOB_LAYER + 0.25 var/health = 50 var/list/network = list("SS13") diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index e63601e0d1b..732fdc85a09 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -263,11 +263,11 @@ /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/New() ..() - flags |= NOREACT + create_reagents(max_volume) + reagents.set_reacting(FALSE) syringes = new known_reagents = list("epinephrine"="Epinephrine","charcoal"="Charcoal") processed_reagents = new - create_reagents(max_volume) /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach() SSobj.processing -= src @@ -279,8 +279,8 @@ /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/critfail() ..() - flags &= ~NOREACT - return + if(reagents) + reagents.set_reacting(TRUE) /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/can_attach(obj/mecha/medical/M) if(..()) diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index d8cd87d804b..00f12ae5119 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -121,10 +121,16 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/cigarette/New() ..() - flags |= NOREACT // so it doesn't react until you light it create_reagents(chem_volume) // making the cigarette a chemical holder with a maximum volume of 15 + reagents.set_reacting(FALSE) // so it doesn't react until you light it reagents.add_reagent("nicotine", 15) +/obj/item/clothing/mask/cigarette/Destroy() + if(reagents) + qdel(reagents) + SSobj.processing -= src + . = ..() + /obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W, mob/user, params) if(!lit && smoketime > 0 && W.is_hot()) var/lighting_text = is_lighter(W,user) @@ -155,7 +161,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM else if(istype(O, /obj/item/weapon/lighter)) lighting_text = "With a single flick of their wrist, [user] smoothly lights their [name] with [O]. Damn they're cool." else if(istype(O, /obj/item/weapon/melee/energy)) - lighting_text = "[user] swings their [O], barely missing their nose. They light their [name] in the process." + var/in_mouth = "" + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(C.wear_mask == src) + in_mouth = ", barely missing their nose" + lighting_text = "[user] swings their \ + [O][in_mouth]. They light their [name] in the process." else if(istype(O, /obj/item/device/assembly/igniter)) lighting_text = "[user] fiddles with [O], and manages to light their [name]." else if(istype(O, /obj/item/device/flashlight/flare)) @@ -165,46 +177,49 @@ CIGARETTE PACKETS ARE IN FANCY.DM return lighting_text /obj/item/clothing/mask/cigarette/proc/light(flavor_text = null) - if(!src.lit) - src.lit = 1 - name = "lit [name]" - attack_verb = list("burnt", "singed") - hitsound = 'sound/items/welder.ogg' - damtype = "fire" - force = 4 - if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) - e.start() - if(ismob(loc)) - var/mob/M = loc - M.unEquip(src, 1) - qdel(src) - return - if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0) - e.start() - if(ismob(loc)) - var/mob/M = loc - M.unEquip(src, 1) - qdel(src) - return - flags &= ~NOREACT // allowing reagents to react after being lit - reagents.handle_reactions() - icon_state = icon_on - item_state = icon_on - if(flavor_text) - var/turf/T = get_turf(src) - T.visible_message(flavor_text) - SSobj.processing |= src + if(lit) + return - //can't think of any other way to update the overlays :< + lit = TRUE + name = "lit [name]" + attack_verb = list("burnt", "singed") + hitsound = 'sound/items/welder.ogg' + damtype = "fire" + force = 4 + if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) + e.start() if(ismob(loc)) var/mob/M = loc - M.update_inv_wear_mask() - M.update_inv_l_hand() - M.update_inv_r_hand() + M.unEquip(src, 1) + qdel(src) + return + if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0) + e.start() + if(ismob(loc)) + var/mob/M = loc + M.unEquip(src, 1) + qdel(src) + return + // allowing reagents to react after being lit + reagents.set_reacting(TRUE) + reagents.handle_reactions() + icon_state = icon_on + item_state = icon_on + if(flavor_text) + var/turf/T = get_turf(src) + T.visible_message(flavor_text) + SSobj.processing |= src + + //can't think of any other way to update the overlays :< + if(ismob(loc)) + var/mob/M = loc + M.update_inv_wear_mask() + M.update_inv_l_hand() + M.update_inv_r_hand() /obj/item/clothing/mask/cigarette/proc/handle_reagents() @@ -228,25 +243,20 @@ CIGARETTE PACKETS ARE IN FANCY.DM smoketime-- if(smoketime < 1) new type_butt(location) - SSobj.processing.Remove(src) if(ismob(loc)) M << "Your [name] goes out." M.unEquip(src, 1) //un-equip it so the overlays can update //Force the un-equip so the overlays update qdel(src) return - if(location) - location.hotspot_expose(700, 5) - if(reagents && reagents.total_volume) // check if it has any reagents at all + open_flame() + if(reagents && reagents.total_volume) handle_reagents() - return - /obj/item/clothing/mask/cigarette/attack_self(mob/user) if(lit == 1) user.visible_message("[user] calmly drops and treads on \the [src], putting it out instantly.") new type_butt(user.loc) new /obj/effect/decal/cleanable/ash(user.loc) - SSobj.processing.Remove(src) qdel(src) return ..() @@ -370,6 +380,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM ..() name = "empty [initial(name)]" +/obj/item/clothing/mask/cigarette/pipe/Destroy() + if(reagents) + qdel(reagents) + SSobj.processing -= src + . = ..() + /obj/item/clothing/mask/cigarette/pipe/process() var/turf/location = get_turf(src) smoketime-- @@ -386,8 +402,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM name = "empty [initial(name)]" SSobj.processing.Remove(src) return - if(location) - location.hotspot_expose(700, 5) + open_flame() if(reagents && reagents.total_volume) // check if it has any reagents at all handle_reagents() return diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 9f9d9eaa162..2a1cd3a1814 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -99,8 +99,8 @@ /obj/item/weapon/storage/fancy/cigarettes/New() ..() - flags |= NOREACT create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one + reagents.set_reacting(FALSE) for(var/obj/item/clothing/mask/cigarette/cig in src) cig.desc = "\An [name] brand [cig.name]." name = "\improper [name] packet" diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index d5dc481041d..8c23c5046cc 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -66,7 +66,7 @@ go_up(user,is_ghost) else if(down) go_down(user,is_ghost) - + if(!is_ghost) add_fingerprint(user) @@ -92,6 +92,8 @@ /obj/structure/ladder/proc/can_use(mob/user) return 1 -/obj/structure/ladder/unbreakable/Destroy() - return QDEL_HINT_LETMELIVE - +/obj/structure/ladder/unbreakable/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index a38f9465763..5efd453e419 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -325,7 +325,9 @@ buildstack = /obj/item/stack/sheet/mineral/wood burn_state = FLAMMABLE burntime = 20 - canSmoothWith = list(/obj/structure/table/wood, /obj/structure/table/wood/poker) + canSmoothWith = list(/obj/structure/table/wood, + /obj/structure/table/wood/poker, + /obj/structure/table/wood/bar) /obj/structure/table/wood/narsie_act() return @@ -336,7 +338,6 @@ icon = 'icons/obj/smooth_structures/poker_table.dmi' icon_state = "poker_table" buildstack = /obj/item/stack/tile/carpet - canSmoothWith = list(/obj/structure/table/wood/poker, /obj/structure/table/wood) /obj/structure/table/wood/poker/narsie_act() new /obj/structure/table/wood(src.loc) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index e81ee6965a7..5b37185a6b2 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -487,3 +487,6 @@ /obj/structure/window/shuttle/narsie_act() color = "#3C3434" + +/obj/structure/window/shuttle/tinted + opacity = TRUE diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 06581872610..b6663bfa960 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -19,8 +19,11 @@ update_icon() air = space_gas -/turf/open/space/Destroy() - return QDEL_HINT_LETMELIVE +/turf/open/space/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE /turf/open/space/Initalize_Atmos(times_fired) return diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 33971447d07..0db152579cf 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -299,3 +299,22 @@ /turf/proc/add_blueprints_preround(atom/movable/AM) if(!ticker || ticker.current_state != GAME_STATE_PLAYING) add_blueprints(AM) + +/turf/proc/empty(turf_type=/turf/open/space) + // Remove all atoms except observers, landmarks, docking ports + var/turf/T0 = src + for(var/A in T0.GetAllContents()) + if(istype(A, /mob/dead)) + continue + if(istype(A, /obj/effect/landmark)) + continue + if(istype(A, /obj/docking_port)) + continue + qdel(A, force=TRUE) + + T0.ChangeTurf(turf_type) + + T0.redraw_lighting() + SSair.remove_from_active(T0) + T0.CalculateAdjacentTurfs() + SSair.add_to_active(T0,1) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 91c0770c04d..11c21972abb 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -56,8 +56,6 @@ var/list/admin_verbs_admin = list( /client/proc/jumptoturf, /*allows us to jump to a specific turf*/ /client/proc/admin_call_shuttle, /*allows us to call the emergency shuttle*/ /client/proc/admin_cancel_shuttle, /*allows us to cancel the emergency shuttle, sending it back to centcom*/ - /client/proc/cmd_admin_destroy_shuttle, /* Destroys the emergency shuttle, allowing us to import a new shuttle template. Or just horribly fuck with the game. */ - /client/proc/cmd_admin_import_shuttle, /* Imports a emergency shuttle from a template, and sends it to its round start location. Probably should destroy the old one first.*/ /client/proc/cmd_admin_direct_narrate, /*send text directly to a player with no padding. Useful for narratives and fluff-text*/ /client/proc/cmd_admin_world_narrate, /*sends text to all players with no padding*/ /client/proc/cmd_admin_local_narrate, /*sends text to all mobs within view of atom*/ diff --git a/code/modules/admin/verbs/shuttles.dm b/code/modules/admin/verbs/shuttles.dm deleted file mode 100644 index 2dc8e5820ee..00000000000 --- a/code/modules/admin/verbs/shuttles.dm +++ /dev/null @@ -1,116 +0,0 @@ -/proc/emergency_sanity_check() - if(SSshuttle.emergency.mode != SHUTTLE_IDLE) - var/confirm = alert(src, "Modification of the emergency shuttle while it is not idle can be highly dangerous, and may result in WEIRD UNPREDICTABLE SHIT. Are you SURE you want to continue? Obviously if you're not touching the emergency shuttle, then you're probably fine.", "Confirm", "Yes", "No") - if(confirm == "Yes") - return TRUE - else - return FALSE - else - return TRUE - -/client/proc/cmd_admin_destroy_shuttle() - set category = "Admin" - set name = "Shuttle Destroy" - - if (!holder) - src << "Only administrators may use this command." - return - - if(!emergency_sanity_check()) - return - - var/list/names = list() - var/obj/docking_port/mobile/M - for (var/atom/AM in SSshuttle.mobile) - M = AM - names += M.name - - var/selected = input("Select shuttle to DESTROY", "Shuttles") as null|anything in names - - var/decide_against_msg = "You decide against destroying a shuttle." - - if(!selected) - src << decide_against_msg - return - - var/confirm = alert(src, "Are you sure you want to destroy [selected]?", "Confirm", "Yes", "No") - - if(confirm != "Yes") - src << decide_against_msg - return - - var/destroyed = FALSE - for (var/atom/AM in SSshuttle.mobile) - M = AM - if(M.name == selected) - M.jumpToNullSpace() - destroyed = TRUE - break - - if(!destroyed) - src << "Something went wrong, the selected shuttle doesn't exist anymore." - return - - log_admin("[key_name(usr)] - ShuttleDestroy: [M]") - message_admins("[key_name_admin(usr)] has used ShuttleDestroy on [selected]
") - feedback_add_details("admin_verb","SHTDEL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/proc/cmd_admin_import_shuttle() - set category = "Admin" - set name = "Shuttle Import" - - if (!holder) - src << "Only administrators may use this command." - return - - if(!emergency_sanity_check()) - return - - var/datum/map_template/template - var/map = input(usr, "Choose a Shuttle Template to import","Import Shuttle Template") as null|anything in shuttle_templates - if(!map) - return - template = shuttle_templates[map] - - if(alert(usr,"Confirm importing of [map]","Shuttle Import Confirm","Yes","No") != "Yes") - return - - var/turf/T = get_turf(locate("landmark*Shuttle Import")) - if(!T) - usr << "Shuttle import landmark not found. \ - Aborting." - template.load(T, centered = TRUE) - - var/obj/docking_port/mobile/M - - for(var/S in template.get_affected_turfs(T,centered = TRUE)) - for (var/AM in S) - if(istype(AM, /obj/docking_port/mobile)) - if(!M) - M = AM - else - usr << "More than one mobile docking port was detected ([AM]), this is a BAD THING, TELL A CODER." - if(istype(AM, /obj/docking_port/stationary)) - usr << "REEEEEEEEEEEE! THE LOADED TEMPLATE HAS [AM], A STATIONARY DOCKING PORT, THIS IS A BAD THING FIX IT. TELL A CODER. WE CAN DELETE IT BUT IT SHOULD NOT BE THERE." - var/obj/docking_port/stationary/bad = AM - bad.i_know_what_im_doing = TRUE - qdel(bad) - - if(!M) - usr << "The loaded template didn't have a mobile docking port! The template has been deleted." - for(var/S in template.get_affected_turfs(T,centered = TRUE)) - var/turf/T0 = S - for(var/atom/AM in T0.GetAllContents()) - if(istype(AM, /mob/dead)) - continue - qdel(AM) - qdel(S) - return - - var/status = M.dockRoundstart() - if(status) - message_admins("The imported shuttle [map]/[M] failed to travel to its roundstart location (error code [status]). Please fix or delete the imported shuttle before continuing any more shuttle import hijinks.") - - log_admin("[key_name(usr)] - ShuttleImport: [map] - [M]") - message_admins("[key_name_admin(usr)] has used ShuttleImport: [map] - [M]
") - feedback_add_details("admin_verb","SHTIMP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/awaymissions/mission_code/challenge.dm b/code/modules/awaymissions/mission_code/challenge.dm index 2134e7db4cb..75d240ec777 100644 --- a/code/modules/awaymissions/mission_code/challenge.dm +++ b/code/modules/awaymissions/mission_code/challenge.dm @@ -1,40 +1,35 @@ -//Challenge Areas - -/area/awaymission/challenge/start - name = "Where Am I?" - icon_state = "away" - -/area/awaymission/challenge/main - name = "Danger Room" - icon_state = "away1" - requires_power = 0 - -/area/awaymission/challenge/end - name = "Administration" - icon_state = "away2" - requires_power = 0 - - -/obj/machinery/power/emitter/energycannon - name = "Energy Cannon" - desc = "A heavy duty industrial laser" - icon = 'icons/obj/singularity.dmi' - icon_state = "emitter" - anchored = 1 - density = 1 - - use_power = 0 - idle_power_usage = 0 - active_power_usage = 0 - - active = 1 - locked = 1 - state = 2 - -/obj/machinery/power/emitter/energycannon/RefreshParts() - return - -/obj/machinery/power/emitter/energycannon/magical - name = "wabbajack statue" - desc = "Who am I? What is my purpose in life? What do I mean by who am I?" - projectile_type = /obj/item/projectile/magic/change +//Challenge Areas + +/area/awaymission/challenge/start + name = "Where Am I?" + icon_state = "away" + +/area/awaymission/challenge/main + name = "Danger Room" + icon_state = "away1" + requires_power = 0 + +/area/awaymission/challenge/end + name = "Administration" + icon_state = "away2" + requires_power = 0 + + +/obj/machinery/power/emitter/energycannon + name = "Energy Cannon" + desc = "A heavy duty industrial laser" + icon = 'icons/obj/singularity.dmi' + icon_state = "emitter" + anchored = 1 + density = 1 + + use_power = 0 + idle_power_usage = 0 + active_power_usage = 0 + + active = 1 + locked = 1 + state = 2 + +/obj/machinery/power/emitter/energycannon/RefreshParts() + return diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index b09809c649e..3054e6a18e1 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -183,7 +183,7 @@ BLIND // can't see anything permeability_coefficient = null flags &= ~visor_flags flags_inv &= ~visor_flags_inv - flags_cover &= 0 + flags_cover = 0 if(adjusted_flags) slot_flags = adjusted_flags user.wear_mask_update(src, toggle_off = mask_adjusted) diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm index b301049eaf4..f472cfe6796 100644 --- a/code/modules/events/wizard/greentext.dm +++ b/code/modules/events/wizard/greentext.dm @@ -29,6 +29,7 @@ var/mob/living/new_holder var/list/color_altered_mobs = list() burn_state = FIRE_PROOF + var/quiet = FALSE /obj/item/weapon/greentext/New() ..() @@ -76,9 +77,11 @@ last_holder.color = "#FF0000" last_holder = new_holder //long live the king -/obj/item/weapon/greentext/Destroy() - if(burn_state != ON_FIRE) +/obj/item/weapon/greentext/Destroy(force) + if((burn_state != ON_FIRE) && (!force)) return QDEL_HINT_LETMELIVE + + . = ..() poi_list.Remove(src) for(var/mob/M in mob_list) var/message = "A dark temptation has passed from this world" @@ -86,5 +89,9 @@ message += " and you're finally able to forgive yourself" M.color = initial(M.color) message += "..." - M << message - return ..() + // can't skip the mob check as it also does the decolouring + if(!quiet) + M << message + +/obj/item/weapon/greentext/quiet + quiet = TRUE diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm index 2e17639cd25..6ce7a8b1790 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm @@ -15,12 +15,13 @@ var/portion = 10 var/selected_drink var/list/stored_food = list() - flags = OPENCONTAINER | NOREACT + flags = OPENCONTAINER var/obj/item/weapon/reagent_containers/mixer /obj/machinery/food_cart/New() ..() create_reagents(LIQUID_CAPACIY) + reagents.set_reacting(FALSE) mixer = new /obj/item/weapon/reagent_containers(src, MIXER_CAPACITY) mixer.name = "Mixer" @@ -151,4 +152,4 @@ #undef STORAGE_CAPACITY #undef LIQUID_CAPACIY -#undef MIXER_CAPACITY \ No newline at end of file +#undef MIXER_CAPACITY diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 85c904ec981..e88e4e784cb 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -16,8 +16,7 @@ var/list/product_types = list() var/dispense_flavour = ICECREAM_VANILLA var/flavour_name = "vanilla" - flags = OPENCONTAINER | NOREACT - reagents = new() + flags = OPENCONTAINER /obj/machinery/icecream_vat/proc/get_ingredient_list(type) switch(type) @@ -55,7 +54,8 @@ ..() while(product_types.len < 6) product_types.Add(5) - reagents.my_atom = src + create_reagents() + reagents.set_reacting(FALSE) reagents.add_reagent("milk", 5) reagents.add_reagent("flour", 5) reagents.add_reagent("sugar", 5) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index ca7dfd00041..ca330eeddef 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -12,13 +12,15 @@ use_power = 1 idle_power_usage = 5 active_power_usage = 100 - flags = NOREACT var/max_n_of_items = 1500 var/icon_on = "smartfridge" var/icon_off = "smartfridge-off" /obj/machinery/smartfridge/New() ..() + create_reagents() + reagents.set_reacting(FALSE) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/smartfridge(null) B.apply_default_parts(src) @@ -360,8 +362,11 @@ /obj/machinery/smartfridge/chemistry name = "smart chemical storage" desc = "A refrigerated storage unit for medicine storage." - var/list/spawn_meds = list(/obj/item/weapon/reagent_containers/pill/epinephrine = 12,/obj/item/weapon/reagent_containers/pill/charcoal = 1, - /obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 1, /obj/item/weapon/reagent_containers/glass/bottle/charcoal = 1) + var/list/spawn_meds = list( + /obj/item/weapon/reagent_containers/pill/epinephrine = 12, + /obj/item/weapon/reagent_containers/pill/charcoal = 1, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 1, + /obj/item/weapon/reagent_containers/glass/bottle/charcoal = 1) /obj/machinery/smartfridge/chemistry/New() ..() @@ -397,4 +402,10 @@ /obj/machinery/smartfridge/chemistry/virology name = "smart virus storage" desc = "A refrigerated storage unit for volatile sample storage." - spawn_meds = list(/obj/item/weapon/reagent_containers/syringe/antiviral = 4, /obj/item/weapon/reagent_containers/glass/bottle/cold = 1, /obj/item/weapon/reagent_containers/glass/bottle/flu_virion = 1, /obj/item/weapon/reagent_containers/glass/bottle/mutagen = 1, /obj/item/weapon/reagent_containers/glass/bottle/plasma = 1, /obj/item/weapon/reagent_containers/glass/bottle/synaptizine = 1) \ No newline at end of file + spawn_meds = list( + /obj/item/weapon/reagent_containers/syringe/antiviral = 4, + /obj/item/weapon/reagent_containers/glass/bottle/cold = 1, + /obj/item/weapon/reagent_containers/glass/bottle/flu_virion = 1, + /obj/item/weapon/reagent_containers/glass/bottle/mutagen = 1, + /obj/item/weapon/reagent_containers/glass/bottle/plasma = 1, + /obj/item/weapon/reagent_containers/glass/bottle/synaptizine = 1) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 801060040c2..c1edd43e2c1 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -291,15 +291,15 @@ /datum/plant_gene/trait/noreact - // Makes plant NOREACT until squashed. + // Makes plant reagents not react until squashed. name = "Separated Chemicals" /datum/plant_gene/trait/noreact/on_new(obj/item/weapon/reagent_containers/food/snacks/grown/G, newloc) ..() - G.flags |= NOREACT + G.reagents.set_reacting(FALSE) /datum/plant_gene/trait/noreact/on_squash(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) - G.flags &= ~NOREACT + G.reagents.set_reacting(TRUE) G.reagents.handle_reactions() diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index 64bef84887e..5c9f8678509 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -76,6 +76,7 @@ /var/const/access_cent_storage = 106//Generic storage areas. /var/const/access_cent_teleporter = 107//Teleporter. /var/const/access_cent_captain = 109//Captain's office/ID comp/AI. +/var/const/access_cent_bar = 110 // The non-existent Centcom Bar //The Syndicate /var/const/access_syndicate = 150//General Syndicate Access @@ -209,6 +210,8 @@ return get_ert_access("eng") if("Medical Response Officer") return get_ert_access("med") + if("Centcom Bartender") + return list(access_cent_general, access_cent_living, access_cent_bar) /proc/get_all_accesses() return list(access_security, access_sec_doors, access_brig, access_armory, access_forensics_lockers, access_court, @@ -427,6 +430,8 @@ return "Code Black" if(access_cent_captain) return "Code Gold" + if(access_cent_bar) + return "Code Scotch" /proc/get_all_jobs() return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician", @@ -438,7 +443,7 @@ return get_all_jobs() + list("Prisoner") /proc/get_all_centcom_jobs() - return list("VIP Guest","Custodian","Thunderdome Overseer","Centcom Official","Medical Officer","Death Commando","Research Officer","Special Ops Officer","Admiral","Centcom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer") + return list("VIP Guest","Custodian","Thunderdome Overseer","Centcom Official","Medical Officer","Death Commando","Research Officer","Special Ops Officer","Admiral","Centcom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer","Centcom Bartender") /obj/item/proc/GetJobName() //Used in secHUD icon generation var/obj/item/weapon/card/id/I = GetID() diff --git a/code/modules/lighting/lighting_system.dm b/code/modules/lighting/lighting_system.dm index e797c182abc..4cd39bcbf8d 100644 --- a/code/modules/lighting/lighting_system.dm +++ b/code/modules/lighting/lighting_system.dm @@ -245,8 +245,11 @@ infra_luminosity = 1 anchored = 1 -/atom/movable/light/Destroy() - return QDEL_HINT_LETMELIVE +/atom/movable/light/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE /atom/movable/light/Move() return 0 diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index e367f1d425a..198f92cdb58 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -212,8 +212,11 @@ icon_state = "talisman" var/cooldown = 0 -/obj/item/device/immortality_talisman/Destroy() - return QDEL_HINT_LETMELIVE +/obj/item/device/immortality_talisman/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE /obj/item/device/immortality_talisman/attack_self(mob/user) if(cooldown < world.time) @@ -250,11 +253,11 @@ /obj/effect/immortality_talisman/singularity_pull() return 0 -/obj/effect/immortality_talisman/Destroy() - if(!can_destroy) +/obj/effect/immortality_talisman/Destroy(force) + if(!can_destroy && !force) return QDEL_HINT_LETMELIVE else - ..() + . = ..() //Shared Bag diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 642f86d9903..0bc8696500f 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -77,7 +77,7 @@ return //gets ID card object from special clothes slot or null. -/mob/living/carbon/human/proc/get_idcard() +/mob/living/carbon/human/get_idcard() if(wear_id) return wear_id.GetID() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index c93310b4d22..f37da30e127 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -54,17 +54,6 @@ ..() desc += " This drone appears to have a complex holoprojector built on its 'head'." -/mob/living/simple_animal/drone/snowflake/bardrone - name = "Bardrone" - desc = "A barkeeping drone, an indestructible robot built to tend bars." - seeStatic = FALSE - laws = "1. Serve drinks.\n\ - 2. Talk to patrons.\n\ - 3. Don't get messed up in their affairs." - languages = ALL - status_flags = GODMODE // Please don't punch the barkeeper - unique_name = FALSE // disables the (123) number suffix - /obj/item/drone_shell/syndrone name = "syndrone shell" desc = "A shell of a syndrone, a modified maintenance drone designed to infiltrate and annihilate." diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index b361d62b00d..8dd1a9a63e0 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -170,4 +170,3 @@ var/atom/movable/M = target M.clean_blood() visible_message("[src] polishes \the [target].") - diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index 1b84f433d99..6e5d69f172c 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -43,6 +43,11 @@ qdel(internal) . = ..() +/mob/living/simple_animal/hostile/megafauna/dragon/adjustHealth(amount) + if(swooping) + return 0 + return ..() + /mob/living/simple_animal/hostile/megafauna/dragon/AttackingTarget() if(swooping) return @@ -53,8 +58,7 @@ if(L.stat == DEAD) usr.visible_message( "[src] devours [L]!", - "You feast on [L], restoring \ - your health!") + "You feast on [L], restoring your health!") adjustBruteLoss(-L.maxHealth) L.gib() @@ -163,6 +167,7 @@ swoop_target = target stop_automated_movement = TRUE swooping = 1 + density = 0 icon_state = "swoop" visible_message("[src] swoops up high!") if(prob(50)) @@ -180,7 +185,7 @@ tturf = get_turf(swoop_target) else tturf = get_turf(src) - src.loc = tturf + forceMove(tturf) new/obj/effect/overlay/temp/dragon_swoop(tturf) animate(src, pixel_x = 0, pixel_z = 0, time = 10) sleep(10) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 96f29de3696..f9ff4a3762d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -12,7 +12,7 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = INFINITY - layer = 6 //Looks weird with them slipping under mineral walls and cameras and shit otherwise + layer = MOB_LAYER + 0.5 //Looks weird with them slipping under mineral walls and cameras and shit otherwise /mob/living/simple_animal/hostile/megafauna/death(gibbed) if(health > 0) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 597a1660f70..75d8731296e 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -558,3 +558,6 @@ var/atom/A = client.eye if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. return + +/mob/living/simple_animal/get_idcard() + return access_card diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 543a564c788..676a97d7035 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -940,3 +940,6 @@ var/next_mob_id = 0 /mob/proc/is_literate() return 0 + +/mob/proc/get_idcard() + return diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index fb1553ba799..c3708e32a05 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -272,7 +272,6 @@ It's fairly easy to fix if dealing with single letters but not so much with comp return M return 0 - /mob/proc/abiotic(full_body = 0) if(l_hand && !l_hand.flags&ABSTRACT || r_hand && !r_hand.flags&ABSTRACT) return 1 diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 654614f7574..ba4def1b629 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -32,7 +32,7 @@ icon = 'icons/obj/lighting.dmi' icon_state = "tube-construct-stage1" anchored = 1 - layer = 5 + layer = MOB_LAYER + 0.25 var/stage = 1 var/fixture_type = "tube" var/sheets_refunded = 2 @@ -131,7 +131,7 @@ icon_state = "tube1" desc = "A lighting fixture." anchored = 1 - layer = 5 // They were appearing under mobs which is a little weird - Ostaf + layer = MOB_LAYER + 0.25 use_power = 2 idle_power_usage = 2 active_power_usage = 20 diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 3a8b5f4ea57..627efa66d73 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -5,6 +5,7 @@ desc = "A heavy duty industrial laser.\nAlt-click to rotate it clockwise." icon = 'icons/obj/singularity.dmi' icon_state = "emitter" + var/icon_state_on = "emitter_+a" anchored = 0 density = 1 req_access = list(access_engine_equip) @@ -94,9 +95,9 @@ /obj/machinery/power/emitter/update_icon() if (active && powernet && avail(active_power_usage)) - icon_state = "emitter_+a" + icon_state = icon_state_on else - icon_state = "emitter" + icon_state = initial(icon_state) /obj/machinery/power/emitter/attack_hand(mob/user) diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 9d1f29ce38b..84ea5944c5a 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -215,9 +215,9 @@ /obj/item/ammo_casing/shotgun/dart/New() ..() - flags |= NOREACT flags |= OPENCONTAINER create_reagents(30) + reagents.set_reacting(FALSE) /obj/item/ammo_casing/shotgun/dart/attackby() return diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index c1dce29e70f..7c68c9db0c6 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -170,8 +170,8 @@ /obj/item/projectile/bullet/dart/New() ..() - flags |= NOREACT create_reagents(50) + reagents.set_reacting(FALSE) /obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = 0, hit_zone) if(iscarbon(target)) @@ -188,7 +188,7 @@ "You were protected against the [name]!") ..(target, blocked, hit_zone) - flags &= ~NOREACT + reagents.set_reacting(TRUE) reagents.handle_reactions() return 1 diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index d1af9041bc8..c27f060df24 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -17,10 +17,14 @@ var/const/INJECT = 5 //injection var/last_tick = 1 var/addiction_tick = 1 var/list/datum/reagent/addiction_list = new/list() + var/flags /datum/reagents/New(maximum=100) maximum_volume = maximum - SSobj.processing |= src + + if(!(flags & REAGENT_NOREACT)) + SSobj.processing |= src + //I dislike having these here but map-objects are initialised before world/New() is called. >_> if(!chemical_reagents_list) //Chemical Reagents - Initialises all /datum/reagent into a list indexed by reagent id @@ -56,7 +60,7 @@ var/const/INJECT = 5 //injection /datum/reagents/Destroy() . = ..() - SSobj.processing.Remove(src) + SSobj.processing -= src for(var/reagent in reagent_list) var/datum/reagent/R = reagent qdel(R) @@ -292,12 +296,23 @@ var/const/INJECT = 5 //injection update_total() /datum/reagents/process() - if(my_atom && (my_atom.flags & NOREACT)) + if(flags & REAGENT_NOREACT) + SSobj.processing -= src return + for(var/reagent in reagent_list) var/datum/reagent/R = reagent R.on_tick() - return + +/datum/reagents/proc/set_reacting(react = TRUE) + if(react) + // Order is important, process() can remove from processing if + // the flag is present + flags &= ~(REAGENT_NOREACT) + SSobj.processing |= src + else + SSobj.processing -= src + flags |= REAGENT_NOREACT /datum/reagents/proc/conditional_update_move(atom/A, Running = 0) for(var/reagent in reagent_list) @@ -312,7 +327,8 @@ var/const/INJECT = 5 //injection update_total() /datum/reagents/proc/handle_reactions() - if(my_atom.flags & NOREACT) return //Yup, no reactions here. No siree. + if(flags & REAGENT_NOREACT) + return //Yup, no reactions here. No siree. var/reaction_occured = 0 do diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 934c55d3100..2ce699a197e 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -174,17 +174,24 @@ /obj/item/weapon/reagent_containers/glass/beaker/noreact name = "cryostasis beaker" - desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units." + desc = "A cryostasis beaker that allows for chemical storage without \ + reactions. Can hold up to 50 units." icon_state = "beakernoreact" materials = list(MAT_METAL=3000) volume = 50 amount_per_transfer_from_this = 10 - flags = OPENCONTAINER | NOREACT origin_tech = "materials=2;engineering=3;plasmatech=3" + flags = OPENCONTAINER + +/obj/item/weapon/reagent_containers/glass/beaker/noreact/New() + ..() + reagents.set_reacting(FALSE) /obj/item/weapon/reagent_containers/glass/beaker/bluespace name = "bluespace beaker" - desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units." + desc = "A bluespace beaker, powered by experimental bluespace technology \ + and Element Cuban combined with the Compound Pete. Can hold up to \ + 300 units." icon_state = "beakerbluespace" materials = list(MAT_GLASS=3000) volume = 300 diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 5e7333aa0de..d332034b137 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -267,9 +267,12 @@ name = "cryo syringe" desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units." volume = 20 - flags = NOREACT origin_tech = "materials=3;engineering=3" +/obj/item/weapon/reagent_containers/syringe/noreact/New() + . = ..() + reagents.set_reacting(FALSE) + /obj/item/weapon/reagent_containers/syringe/piercing name = "piercing syringe" desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units." diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 622e3c38a31..19802dda3c1 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -30,8 +30,11 @@ /obj/structure/lavaland_door/singularity_pull() return 0 -/obj/structure/lavaland_door/Destroy() - return QDEL_HINT_LETMELIVE +/obj/structure/lavaland_door/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE /obj/machinery/lavaland_controller name = "weather control machine" @@ -50,8 +53,11 @@ LAVA.weather_start_up() ongoing_weather = null -/obj/machinery/lavaland_controller/Destroy() - return QDEL_HINT_LETMELIVE +/obj/machinery/lavaland_controller/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE //lavaland_surface_seed_vault.dmm //Seed Vault diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index acbcbb82fbe..26b754d31f5 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -1,3 +1,8 @@ +#define TIME_LEFT (SSshuttle.emergency.timeLeft()) +#define ENGINES_START_TIME 10 +#define ENGINES_STARTED (TIME_LEFT <= ENGINES_START_TIME) +#define IS_DOCKED (SSshuttle.emergency.mode == SHUTTLE_DOCKED) + /obj/machinery/computer/emergency_shuttle name = "emergency shuttle console" desc = "For shuttle control." @@ -6,61 +11,165 @@ var/auth_need = 3 var/list/authorized = list() +/obj/machinery/computer/emergency_shuttle/attackby(obj/item/I, mob/user,params) + if(istype(I, /obj/item/weapon/card/id)) + say("Please equip your ID card into your ID slot to authenticate.") + . = ..() -/obj/machinery/computer/emergency_shuttle/attackby(obj/item/I, mob/user, params) - var/obj/item/weapon/card/id/ID = I.GetID() - if(ID) - if(stat & (BROKEN|NOPOWER)) - return - if(SSshuttle.emergency.mode != SHUTTLE_DOCKED) - return - if(SSshuttle.emergency.timeLeft() < 11) - return - if(!(access_heads in ID.access)) //doesn't have this access - user << "The access level of [ID.registered_name]\'s card is not high enough. " - return +/obj/machinery/computer/emergency_shuttle/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = human_adjacent_state) - var/choice = alert(user, text("Would you like to (un)authorize a shortened launch time? [] authorization\s are still needed. Use abort to cancel all authorizations.", src.auth_need - src.authorized.len), "Shuttle Launch", "Authorize", "Repeal", "Abort") - if(SSshuttle.emergency.mode != SHUTTLE_DOCKED || user.get_active_hand() != ID) - return + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "emergency_shuttle_console", name, + 400, 400, master_ui, state) + ui.open() - var/seconds = SSshuttle.emergency.timeLeft() - if(seconds <= 10) - return +/obj/machinery/computer/emergency_shuttle/ui_data() + var/list/data = list() - switch(choice) - if("Authorize") - if(!authorized.Find(ID.registered_name)) - authorized += ID.registered_name - if(auth_need - authorized.len > 0) - message_admins("[key_name_admin(user.client)](?) (FLW) has authorized early shuttle launch ",0,1) - log_game("[key_name(user)] has authorized early shuttle launch in ([x],[y],[z])") - minor_announce("[auth_need - authorized.len] more authorization(s) needed until shuttle is launched early",null,1) - else - message_admins("[key_name_admin(user.client)](?) (FLW) has launched the emergency shuttle [seconds] seconds before launch.",0,1) - log_game("[key_name(user)] has launched the emergency shuttle in ([x],[y],[z]) [seconds] seconds before launch.") - minor_announce("The emergency shuttle will launch in 10 seconds",null,1) - SSshuttle.emergency.setTimer(100) + data["timer_str"] = SSshuttle.emergency.getTimerStr() + data["engines_started"] = ENGINES_STARTED + data["authorizations_remaining"] = max((auth_need - authorized.len), 0) + var/list/A = list() + for(var/i in authorized) + var/obj/item/weapon/card/id/ID = i + var/name = ID.registered_name + var/job = ID.assignment - if("Repeal") - if(authorized.Remove(ID.registered_name)) - minor_announce("[auth_need - authorized.len] authorizations needed until shuttle is launched early") + if(emagged) + name = Gibberish(name, 0) + job = Gibberish(job, 0) + A += list(list("name" = name, "job" = job)) + data["authorizations"] = A - if("Abort") - if(authorized.len) - minor_announce("All authorizations to launch the shuttle early have been revoked.") - authorized.Cut() - else - return ..() + data["enabled"] = (IS_DOCKED && !ENGINES_STARTED) + data["emagged"] = emagged + return data + +/obj/machinery/computer/emergency_shuttle/ui_act(action, params, datum/tgui/ui) + if(..()) + return + if(ENGINES_STARTED) // past the point of no return + return + if(!IS_DOCKED) // shuttle computer only has uses when onstation + return + + var/mob/user = usr + . = FALSE + + var/obj/item/weapon/card/id/ID = user.get_idcard() + + if(!ID) + user << "You don't have an ID." + return + + if(!(access_heads in ID.access)) + user << "The access level of \ + your card is not high enough." + return + + var/old_len = authorized.len + + switch(action) + if("authorize") + . = authorize(user) + + if("repeal") + authorized -= ID + + if("abort") + if(authorized.len) + // Abort. The action for when heads are fighting over whether + // to launch early. + authorized.Cut() + . = TRUE + + if((old_len != authorized.len) && !ENGINES_STARTED) + var/alert = (authorized.len > old_len) + if(authorized.len) + minor_announce("[auth_need - authorized.len] authorizations \ + needed until shuttle is launched early", null, alert) + else + minor_announce("All authorizations to launch the shuttle \ + early have been revoked.") + +/obj/machinery/computer/emergency_shuttle/proc/authorize(mob/user, source) + var/obj/item/weapon/card/id/ID = user.get_idcard() + + if(ID in authorized) + return FALSE + for(var/i in authorized) + var/obj/item/weapon/card/id/other = i + if(other.registered_name == ID.registered_name) + return FALSE // No using IDs with the same name + + authorized += ID + + message_admins("[key_name_admin(user.client)] \ + (?) \ + (FLW) \ + has authorized early shuttle launch", 0, 1) + log_game("[key_name(user)] has authorized early shuttle launch in \ + ([x],[y],[z])") + // Now check if we're on our way + . = TRUE + process() + +/obj/machinery/computer/emergency_shuttle/process() + // Launch check is in process in case auth_need changes for some reason + // probably external. + . = FALSE + if(ENGINES_STARTED || (!IS_DOCKED)) + return . + + // Check to see if we've reached criteria for early launch + if((authorized.len >= auth_need) || emagged) + // shuttle timers use 1/10th seconds internally + SSshuttle.emergency.setTimer(ENGINES_START_TIME * 10) + var/system_error = emagged ? "SYSTEM ERROR:" : null + minor_announce("The emergency shuttle will launch in \ + [ENGINES_START_TIME] seconds", system_error, alert=TRUE) + . = TRUE /obj/machinery/computer/emergency_shuttle/emag_act(mob/user) - if(!emagged && SSshuttle.emergency.mode == SHUTTLE_DOCKED) - var/time = SSshuttle.emergency.timeLeft() - message_admins("[key_name_admin(user.client)](?) (FLW) has emagged the emergency shuttle [time] seconds before launch.",0,1) - log_game("[key_name(user)] has emagged the emergency shuttle in ([x],[y],[z]) [time] seconds before launch.") - minor_announce("The emergency shuttle will launch in 10 seconds", "SYSTEM ERROR:",null,1) - SSshuttle.emergency.setTimer(100) - emagged = 1 + // How did you even get on the shuttle before it go to the station? + if(!IS_DOCKED) + return + + var/time = TIME_LEFT + message_admins("[key_name_admin(user.client)] \ + (?) \ + (FLW) \ + has emagged the emergency shuttle [time] seconds before launch.", 0, 1) + log_game("[key_name(user)] has emagged the emergency shuttle in \ + ([x],[y],[z]) [time] seconds before launch.") + emagged = TRUE + var/datum/species/S = new + for(var/i in 1 to 10) + // the shuttle system doesn't know who these people are, but they + // must be important, surely + var/obj/item/weapon/card/id/ID = new(src) + var/datum/job/J = pick(SSjob.occupations) + ID.registered_name = S.random_name(pick(MALE, FEMALE)) + ID.assignment = J.title + + authorized += ID + + if(ENGINES_STARTED) + // Give them a message anyway + user << "The shuttle is already \ + about to launch!" + else + process() + +/obj/machinery/computer/emergency_shuttle/Destroy() + // Our fake IDs that the emag generated are just there for colour + // They're not supposed to be accessible + + for(var/obj/item/weapon/card/id/ID in src) + qdel(ID) + + . = ..() /obj/docking_port/mobile/emergency name = "emergency shuttle" @@ -74,16 +183,16 @@ roundstart_move = "emergency_away" var/sound_played = 0 //If the launch sound has been sent to all players on the shuttle itself -/obj/docking_port/mobile/emergency/New() - ..() - // The last created emergency shuttle will always be the one - // that we use. +/obj/docking_port/mobile/emergency/register() + . = ..() SSshuttle.emergency = src -/obj/docking_port/mobile/emergency/Destroy() - if(src.i_know_what_im_doing) +/obj/docking_port/mobile/emergency/Destroy(force) + if(force) // This'll make the shuttle subsystem use the backup shuttle. - SSshuttle.emergencyDeregister() + if(src == SSshuttle.emergency) + // If we're the selected emergency shuttle + SSshuttle.emergencyDeregister() . = ..() @@ -342,12 +451,16 @@ // We want to be a valid emergency shuttle // but not be the main one, keep whatever's set // valid. + // backup shuttle ignores `timid` because THERE SHOULD BE NO TOUCHING IT var/current_emergency = SSshuttle.emergency ..() SSshuttle.emergency = current_emergency SSshuttle.backup_shuttle = src - #undef UNLAUNCHED #undef LAUNCHED #undef EARLY_LAUNCHED +#undef TIMELEFT +#undef ENGINES_START_TIME +#undef ENGINES_STARTED +#undef IS_DOCKED diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 55913ab432f..53a5b13cb3b 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -6,8 +6,250 @@ I took the one less traveled by,\n\ And that has made all the difference." - icon = 'icons/obj/machines/dominator.dmi' - icon_state = "dominator-blue" + icon = 'icons/obj/machines/shuttle_manipulator.dmi' + icon_state = "holograph_on" + + // UI state variables + var/datum/map_template/shuttle/selected + + var/obj/docking_port/mobile/existing_shuttle + + var/obj/docking_port/mobile/preview_shuttle + var/datum/map_template/shuttle/preview_template + +/obj/machinery/shuttle_manipulator/New() + . = ..() + update_icon() + +/obj/machinery/shuttle_manipulator/update_icon() + overlays.Cut() + var/image/hologram_projection = image(icon, "hologram_on") + hologram_projection.pixel_y = 22 + var/image/hologram_ship = image(icon, "hologram_whiteship") + hologram_ship.pixel_y = 27 + overlays += hologram_projection + overlays += hologram_ship /obj/machinery/shuttle_manipulator/process() return + +/obj/machinery/shuttle_manipulator/ui_interact(mob/user, ui_key = "main", \ + datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, \ + datum/ui_state/state = admin_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "shuttle_manipulator", name, 800, 600, \ + master_ui, state) + ui.open() + +/obj/machinery/shuttle_manipulator/ui_data(mob/user) + var/list/data = list() + data["tabs"] = list("Status", "Templates", "Modification") + + // Templates panel + data["templates"] = list() + var/list/templates = data["templates"] + data["templates_tabs"] = list() + data["selected"] = list() + + for(var/shuttle_id in shuttle_templates) + var/datum/map_template/shuttle/S = shuttle_templates[shuttle_id] + + if(!templates[S.port_id]) + data["templates_tabs"] += S.port_id + templates[S.port_id] = list( + "port_id" = S.port_id, + "templates" = list()) + + var/list/L = list() + L["name"] = S.name + L["shuttle_id"] = S.shuttle_id + L["port_id"] = S.port_id + L["description"] = S.description + L["admin_notes"] = S.admin_notes + + if(selected == S) + data["selected"] = L + + templates[S.port_id]["templates"] += list(L) + + data["templates_tabs"] = sortList(data["templates_tabs"]) + + data["existing_shuttle"] = null + + // Status panel + data["shuttles"] = list() + for(var/i in SSshuttle.mobile) + var/obj/docking_port/mobile/M = i + var/list/L = list() + L["name"] = M.name + L["id"] = M.id + L["timer"] = M.timer + L["timeleft"] = M.getTimerStr() + L["mode"] = capitalize(M.mode) + L["status"] = M.getStatusText() + if(M == existing_shuttle) + data["existing_shuttle"] = L + + data["shuttles"] += list(L) + + return data + +/obj/machinery/shuttle_manipulator/ui_act(action, params) + if(..()) + return + + var/mob/user = usr + + // Preload some common parameters + var/shuttle_id = params["shuttle_id"] + var/datum/map_template/shuttle/S = shuttle_templates[shuttle_id] + + switch(action) + if("select_template") + if(S) + existing_shuttle = SSshuttle.getShuttle(S.port_id) + selected = S + . = TRUE + if("jump_to") + if(params["type"] == "mobile") + . = TRUE + for(var/i in SSshuttle.mobile) + var/obj/docking_port/mobile/M = i + if(M.id == params["id"]) + user.forceMove(get_turf(M)) + break + + if("preview") + if(S) + . = TRUE + unload_preview() + load_template(S) + if(preview_shuttle) + preview_template = S + user.forceMove(get_turf(preview_shuttle)) + if("load") + if(existing_shuttle == SSshuttle.backup_shuttle) + // TODO make the load button disabled + WARNING("The shuttle that the selected shuttle will replace \ + is the backup shuttle. Backup shuttle is required to be \ + intact for round sanity.") + else if(S) + . = TRUE + // If successful, returns the mobile docking port + var/mdp = action_load(S) + if(mdp) + user.forceMove(get_turf(mdp)) + + update_icon() + +/obj/machinery/shuttle_manipulator/proc/action_load( + datum/map_template/shuttle/loading_template) + // Check for an existing preview + if(preview_shuttle && (loading_template != preview_template)) + preview_shuttle.jumpToNullSpace() + preview_shuttle = null + preview_template = null + + if(!preview_shuttle) + load_template(loading_template) + preview_template = loading_template + + // get the existing shuttle information, if any + var/timer = 0 + var/mode = SHUTTLE_IDLE + var/obj/docking_port/stationary/D + + if(existing_shuttle) + timer = existing_shuttle.timer + mode = existing_shuttle.mode + D = existing_shuttle.get_docked() + else + D = preview_shuttle.findRoundstartDock() + + if(!D) + var/m = "No dock found for preview shuttle, aborting." + WARNING(m) + throw EXCEPTION(m) + + var/result = preview_shuttle.canDock(D) + // truthy value means that it cannot dock for some reason + // but we can ignore the someone else docked error because we'll + // be moving into their place shortly + if(result && (result != SHUTTLE_SOMEONE_ELSE_DOCKED)) + var/m = "Unsuccessful dock of [preview_shuttle] ([result])." + WARNING(m) + return + + existing_shuttle.jumpToNullSpace() + + preview_shuttle.dock(D) + . = preview_shuttle + + // Shuttle state involves a mode and a timer based on world.time, so + // plugging the existing shuttles old values in works fine. + preview_shuttle.timer = timer + preview_shuttle.mode = mode + + preview_shuttle.register() + + // TODO indicate to the user that success happened, rather than just + // blanking the modification tab + preview_shuttle = null + preview_template = null + existing_shuttle = null + selected = null + + return preview_shuttle + +/obj/machinery/shuttle_manipulator/proc/load_template( + datum/map_template/shuttle/S) + // load shuttle template, centred at shuttle import landmark, + var/turf/landmark_turf = get_turf(locate("landmark*Shuttle Import")) + S.load(landmark_turf, centered = TRUE) + + var/affected = S.get_affected_turfs(landmark_turf, centered=TRUE) + + var/found = 0 + // Search the turfs for docking ports + // - We need to find the mobile docking port because that is the heart of + // the shuttle. + // - We need to check that no additional ports have slipped in from the + // template, because that causes unintended behaviour. + for(var/T in affected) + for(var/obj/docking_port/P in T) + if(istype(P, /obj/docking_port/mobile)) + var/obj/docking_port/mobile/M = P + found++ + if(found > 1) + qdel(P, force=TRUE) + world.log << "Map warning: Shuttle Template [S.mappath] \ + has multiple mobile docking ports." + else if(!M.timid) + // The shuttle template we loaded isn't "timid" which means + // it's already registered with the shuttles subsystem. + // This is a bad thing. + var/m = "Template [S] is non-timid! Unloading." + WARNING(m) + M.jumpToNullSpace() + return + else + preview_shuttle = P + if(istype(P, /obj/docking_port/stationary)) + world.log << "Map warning: Shuttle Template [S.mappath] has a \ + stationary docking port." + if(!found) + var/msg = "load_template(): Shuttle Template [S.mappath] has no \ + mobile docking port. Aborting import." + for(var/T in affected) + var/turf/T0 = T + T0.empty() + + message_admins(msg) + WARNING(msg) + +/obj/machinery/shuttle_manipulator/proc/unload_preview() + if(preview_shuttle) + preview_shuttle.jumpToNullSpace() + preview_shuttle = null diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index b0c3f08652d..1d1e3006f45 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -18,18 +18,16 @@ var/dwidth = 0 //position relative to covered area, perpendicular to dir var/dheight = 0 //position relative to covered area, parallel to dir - var/i_know_what_im_doing = 0 - //these objects are indestructable -/obj/docking_port/Destroy() +/obj/docking_port/Destroy(force) // unless you assert that you know what you're doing. Horrible things // may result. - if(!i_know_what_im_doing) - return QDEL_HINT_LETMELIVE + if(force) + ..() + . = QDEL_HINT_HARDDEL_NOW else - // If not removed immediately, it can interfere with the docking - // detection code, which is annoying and inconvinient. - return QDEL_HINT_HARDDEL_NOW + return QDEL_HINT_LETMELIVE + /obj/docking_port/singularity_pull() return /obj/docking_port/singularity_act() @@ -187,12 +185,20 @@ var/launch_status = NOLAUNCH + // A timid shuttle will not register itself with the shuttle subsystem + // All shuttle templates are timid + var/timid = FALSE + /obj/docking_port/mobile/New() ..() + if(!timid) + register() + +/obj/docking_port/mobile/proc/register() SSshuttle.mobile += src -/obj/docking_port/mobile/Destroy() - if(i_know_what_im_doing) +/obj/docking_port/mobile/Destroy(force) + if(force) SSshuttle.mobile -= src . = ..() @@ -222,29 +228,35 @@ //this is to check if this shuttle can physically dock at dock S /obj/docking_port/mobile/proc/canDock(obj/docking_port/stationary/S) if(!istype(S)) - return 1 + return SHUTTLE_NOT_A_DOCKING_PORT + if(istype(S, /obj/docking_port/stationary/transit)) - return 0 - //check dock is big enough to contain us + return FALSE + if(dwidth > S.dwidth) - return 2 + return SHUTTLE_DWIDTH_TOO_LARGE + if(width-dwidth > S.width-S.dwidth) - return 3 + return SHUTTLE_WIDTH_TOO_LARGE + if(dheight > S.dheight) - return 4 + return SHUTTLE_DHEIGHT_TOO_LARGE + if(height-dheight > S.height-S.dheight) - return 5 + return SHUTTLE_HEIGHT_TOO_LARGE + //check the dock isn't occupied var/currently_docked = S.get_docked() if(currently_docked) // by someone other than us if(currently_docked != src) - return 6 + return SHUTTLE_SOMEONE_ELSE_DOCKED else // This isn't an error, per se, but we can't let the shuttle code // attempt to move us where we currently are, it will get weird. return SHUTTLE_ALREADY_DOCKED - return 0 //0 means we can dock + + return FALSE //call the shuttle to destination S /obj/docking_port/mobile/proc/request(obj/docking_port/stationary/S) @@ -254,13 +266,10 @@ // Triggering shuttle movement code in place is weird return else if(status) - . = status - spawn(0) - var/msg = "request(): shuttle [src] cannot dock at [S], \ - error: [status]" - message_admins(msg) - throw EXCEPTION(msg) - return status //we can't dock at S + var/msg = "request(): shuttle [src] cannot dock at [S], \ + error: [status]" + message_admins(msg) + throw EXCEPTION(msg) switch(mode) if(SHUTTLE_CALL) @@ -330,6 +339,8 @@ var/obj/docking_port/stationary/S0 = get_docked() var/turf_type = /turf/open/space var/area_type = /area/space + // If the shuttle is docked to a stationary port, restore its normal + // "empty" area and turf if(S0) if(S0.turf_type) turf_type = S0.turf_type @@ -346,25 +357,13 @@ for(var/turf/T0 in L0) A0.contents += T0 - for(var/i=1, i<=L0.len, ++i) - var/turf/T0 = L0[i] + for(var/i in L0) + var/turf/T0 =i if(!T0) continue + T0.empty(turf_type) - for(var/atom/AM in T0.GetAllContents()) - if(istype(AM, /mob/dead)) - continue - qdel(AM) - - T0.ChangeTurf(turf_type) - - T0.redraw_lighting() - SSair.remove_from_active(T0) - T0.CalculateAdjacentTurfs() - SSair.add_to_active(T0,1) - - src.i_know_what_im_doing = TRUE - qdel(src) + qdel(src, force=TRUE) //this is the main proc. It instantly moves our mobile port to stationary port S1 //it handles all the generic behaviour, such as sanity checks, closing doors on the shuttle, stunning mobs, etc @@ -372,8 +371,8 @@ // Crashing this ship with NO SURVIVORS if(!force) var/status = canDock(S1) - if(status == 7) - return SHUTTLE_ALREADY_DOCKED + if(status == SHUTTLE_ALREADY_DOCKED) + return status else if(status) spawn(0) var/msg = "dock(): shuttle [src] cannot dock at [S1], \ @@ -552,15 +551,25 @@ /obj/docking_port/mobile/proc/roadkill(list/L, dir, x, y) for(var/turf/T in L) for(var/atom/movable/AM in T) - if(ismob(AM)) + if(isliving(AM)) if(ishuman(AM)) var/mob/living/M = AM + M.visible_message("[M] is hit by \ + a bluespace ripple and thrown clear!", + "You feel an immense \ + crushing pressure as the space around you ripples.\ + ") + M.Paralyse(10) M.apply_damage(60, BRUTE, "chest") M.apply_damage(60, BRUTE, "head") M.anchored = 0 else var/mob/M = AM + M.visible_message("[M] is hit by \ + a bluespace ripple and is torn into pieces!", + "You are torn into pieces by \ + bluespace churn.") M.gib() continue diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm new file mode 100644 index 00000000000..9112554fcfd --- /dev/null +++ b/code/modules/shuttle/special.dm @@ -0,0 +1,197 @@ +// Special objects for shuttle templates go here if nowhere else + +// Wabbajack statue, a sleeping frog statue that shoots bolts of change if +// living carbons are put on its altar/tables + +/obj/machinery/power/emitter/energycannon/magical + name = "wabbajack statue" + desc = "Who am I? What is my purpose in life? What do I mean by who am I?" + projectile_type = /obj/item/projectile/magic/change + icon = 'icons/obj/machines/magic_emitter.dmi' + icon_state = "wabbajack_statue" + icon_state_on = "wabbajack_statue_on" + var/list/active_tables = list() + active = FALSE + +/obj/machinery/power/emitter/energycannon/magical/New() + . = ..() + if(prob(50)) + desc = "Oh no, not again." + update_icon() + +/obj/machinery/power/emitter/energycannon/magical/update_icon() + if(active) + icon_state = icon_state_on + else + icon_state = initial(icon_state) + +/obj/machinery/power/emitter/energycannon/magical/process() + . = ..() + var/changed = FALSE + if(active_tables.len >= 2) + if(!active) + visible_message("\ + [src] opens its eyes.") + changed = TRUE + active = TRUE + else + if(active) + visible_message("\ + [src] closes its eyes.") + changed = TRUE + active = FALSE + + if(changed) + update_icon() + +/obj/machinery/power/emitter/energycannon/magical/attack_hand(mob/user) + return + +/obj/machinery/power/emitter/energycannon/magical/attackby(obj/item/W, mob/user, params) + return + +/obj/machinery/power/emitter/energycannon/magical/ex_act(severity) + return + +/obj/machinery/power/emitter/energycannon/magical/emag_act(mob/user) + return + +/obj/structure/table/abductor/wabbajack + name = "wabbajack altar" + health = 1000 + verb_say = "chants" + var/obj/machinery/power/emitter/energycannon/magical/our_statue + var/list/mob/living/sleepers = list() + var/never_spoken = TRUE + flags = NODECONSTRUCT + +/obj/structure/table/abductor/wabbajack/New() + . = ..() + SSobj.processing += src + +/obj/structure/table/abductor/wabbajack/Destroy() + SSobj.processing -= src + . = ..() + +/obj/structure/table/abductor/wabbajack/process() + var/area = orange(4, src) + if(!our_statue) + for(var/obj/machinery/power/emitter/energycannon/magical/M in area) + our_statue = M + break + + var/turf/T = get_turf(src) + var/list/found = list() + for(var/mob/living/carbon/C in T) + if(C.stat != DEAD) + found += C + + // New sleepers + for(var/i in found - sleepers) + var/mob/living/L = i + L.color = "#800080" + L.visible_message("A strange purple glow \ + wraps itself around [L] as they suddenly fall unconcious.", + "[desc]") + + + // Existing sleepers + for(var/i in found) + var/mob/living/L = i + L.SetSleeping(10) + + // Missing sleepers + for(var/i in sleepers - found) + var/mob/living/L = i + L.color = initial(L.color) + L.visible_message("The glow from [L] fades \ + away.") + + sleepers = found + + if(sleepers.len) + our_statue.active_tables |= src + if(never_spoken || prob(5)) + say(desc) + never_spoken = FALSE + else + our_statue.active_tables &= src + +/obj/structure/table/abductor/wabbajack/left + desc = "You sleep so it may wake." + +/obj/structure/table/abductor/wabbajack/right + desc = "It wakes so you may sleep." + +// Bar staff, GODMODE mobs that just want to make sure people have drinks +// and a good time. + +/mob/living/simple_animal/drone/snowflake/bardrone + name = "Bardrone" + desc = "A barkeeping drone, an indestructible robot built to tend bars." + seeStatic = FALSE + laws = "1. Serve drinks.\n\ + 2. Talk to patrons.\n\ + 3. Don't get messed up in their affairs." + languages = ALL + status_flags = GODMODE // Please don't punch the barkeeper + unique_name = FALSE // disables the (123) number suffix + +/mob/living/simple_animal/drone/snowflake/bardrone/New() + . = ..() + access_card.access |= access_cent_bar + +/mob/living/simple_animal/hostile/alien/maid/barmaid + gold_core_spawnable = 0 + name = "Barmaid" + desc = "A barmaid, a maiden found in a bar." + pass_flags = PASSTABLE + status_flags = GODMODE + languages = ALL + unique_name = FALSE + AIStatus = AI_OFF + stop_automated_movement = TRUE + +/mob/living/simple_animal/hostile/alien/maid/barmaid/New() + . = ..() + access_card = new /obj/item/weapon/card/id(src) + var/datum/job/captain/C = new /datum/job/captain + access_card.access = C.get_access() + access_card.access |= access_cent_bar + access_card.flags |= NODROP + +/mob/living/simple_animal/hostile/alien/maid/barmaid/Destroy() + qdel(access_card) + . = ..() + +// Bar table, a wooden table that kicks you in a direction if you're not +// barstaff (defined as someone who was a roundstart bartender or someone +// with CENTCOM_BARSTAFF) + +/obj/structure/table/wood/bar + burn_state = LAVA_PROOF + flags = NODECONSTRUCT + health = 1000 + var/boot_dir = 1 + +/obj/structure/table/wood/bar/Crossed(atom/movable/AM) + if(isliving(AM) && !is_barstaff(AM)) + // No climbing on the bar please + var/mob/living/M = AM + var/throwtarget = get_edge_target_turf(src, boot_dir) + M.Weaken(2) + M.throw_at_fast(throwtarget, 5, 1,src) + M << "No climbing on the bar please." + else + . = ..() + +/obj/structure/table/wood/bar/proc/is_barstaff(mob/living/user) + . = FALSE + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.mind && H.mind.assigned_role == "Bartender") + return TRUE + + var/obj/item/weapon/card/id/ID = user.get_idcard() + if(ID && (access_cent_bar in ID.access)) + return TRUE diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 2bb0a1d1c35..8aed478964e 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -39,8 +39,8 @@ var/contraband = FALSE var/emagged = FALSE -/obj/docking_port/mobile/supply/New() - ..() +/obj/docking_port/mobile/supply/register() + . = ..() SSshuttle.supply = src /obj/docking_port/mobile/supply/canMove() diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 6c758a542d3..3c45a182304 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -35,7 +35,8 @@ playsound(T, 'sound/misc/splort.ogg', 50, 1, -1) for(var/obj/item/I in src) if(I == brain) - user.visible_message("[user] saws [src] open and pulls out a brain!", "You saw [src] open and pull out a brain.") + if(user) + user.visible_message("[user] saws [src] open and pulls out a brain!", "You saw [src] open and pull out a brain.") if(brainmob) brainmob.container = null brainmob.loc = brain @@ -159,3 +160,7 @@ if(standing.len) return standing + +/obj/item/bodypart/head/burn() + drop_organs() + ..() \ No newline at end of file diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm index 6244f000bcf..ee21dfd1206 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -16,14 +16,22 @@ **/ /datum/proc/ui_status(mob/user, datum/ui_state/state) var/src_object = ui_host() + . = UI_CLOSE + if(!state) + return - if(istype(user, /mob/dead/observer)) // Special-case ghosts. + if(istype(user, /mob/dead/observer)) + // If they turn on ghost AI control, admins can always interact. if(IsAdminGhost(user)) - return UI_INTERACTIVE // If they turn it on, admins can interact. + . = max(., UI_INTERACTIVE) + + // Regular ghosts can always at least view if in range. if(get_dist(src_object, src) < user.client.view) - return UI_UPDATE // Regular ghosts can only view. - return UI_CLOSE // To keep too many UIs from being opened. - return state.can_use_topic(src_object, user) // Check if the state allows interaction. + . = max(., UI_UPDATE) + + // Check if the state allows interaction + var/result = state.can_use_topic(src_object, user) + . = max(., result) /** * private diff --git a/code/modules/tgui/states/human_adjacent.dm b/code/modules/tgui/states/human_adjacent.dm new file mode 100644 index 00000000000..feedd457020 --- /dev/null +++ b/code/modules/tgui/states/human_adjacent.dm @@ -0,0 +1,17 @@ + + /** + * tgui state: human_adjacent_state + * + * In addition to default checks, only allows interaction for a + * human adjacent user. + **/ + +/var/global/datum/ui_state/human_adjacent_state/human_adjacent_state = new() + +/datum/ui_state/human_adjacent_state/can_use_topic(src_object, mob/user) + . = user.default_can_use_topic(src_object) + + var/dist = get_dist(src_object, user) + if((dist > 1) || (!ishuman(user))) + // Can't be used unless adjacent and human, even with TK + . = min(., UI_UPDATE) diff --git a/config/game_options.txt b/config/game_options.txt index eea6aaa7b11..696eb46c1f8 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -312,7 +312,8 @@ ROUNDSTART_RACES plasmaman ASSISTANT_CAP -1 ## Starlight for exterior walls and breaches. Uncomment for starlight! -STARLIGHT +## This is disabled by default to make testing quicker, should be enabled on production servers or testing servers messing with lighting +#STARLIGHT ## Uncomment to bring back old grey suit assistants instead of the now default rainbow colored assistants. #GREY_ASSISTANTS diff --git a/html/changelog.html b/html/changelog.html index 9a22fc9aeff..80dbdee171e 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,28 @@ -->
+

26 May 2016

+

Xhuis updated:

+
    +
  • Purge all untruths and honor Ratvar.
  • +
+

coiax updated:

+
    +
  • Fixes bug where bolt of change to the host would kill an attached guardian.
  • +
  • Fixes bug where bolt of change to laughter demon would not release its friends.
  • +
  • Fixes bug where bolt of change to morphling would not release its contents.
  • +
  • Fixes bug where bolt of change transforming someone into a drone would not give them hacked laws and vision.
  • +
  • Blobbernauts created by a staff of change are now "independent" and will not decay if seperated from a blob or missing a factory.
  • +
  • Independent blobbernauts added to gold slime core spawn pool.
  • +
  • Medical scanners now inform the user if the dead subject is within the (currently) 120 second defib window.
  • +
  • Ghosts now have the "Restore Character Name" verb, which will set their ghost appearance and dead chat name to their character preferences.
  • +
  • Mob spawners now give any generated names to the mind of the spawned mob, meaning ghosts will have the name they had in life.
  • +
  • Fixes interaction with envy's knife and lavaland spawns.
  • +
  • Fixes a bug where swarmers teleporting humans would incorrectly display a visible message about restraints breaking.
  • +
  • Emagging the emergency shuttle computer with less than ten seconds until launch no longer gives additional time.
  • +
  • The emergency shuttle computer now reads the ID in your ID slot, rather than your hand.
  • +
+

24 May 2016

Joan updated:

    @@ -529,52 +551,6 @@
    • Adds a preference option, allowing players to toggle whether recipes with no matching components should be hidden.
    - -

    28 April 2016

    -

    Bawhoppen updated:

    -
      -
    • Sandbags are no longer tablecrafted. Now you just put in sand (or ash) by hand to make them.
    • -
    • Miners and Engis now get boxes of empty sandbags in their lockers. Miners also get a few premade aswell.
    • -
    • You can now break sandstone down into normal sand.
    • -
    -

    Joan updated:

    -
      -
    • Attacking a blob with an analyzer will tell you what its chemical does, its health, and a small fact about the blob analyzed.
    • -
    • NERFS:
    • -
    • Zombifying Feelers does less toxin damage.
    • -
    • Adaptive Nexuses does slightly less brute damage.
    • -
    • Replicating Foam does slightly less brute damage.
    • -
    • Blob Sorium does slightly less brute damage.
    • -
    • Blob Dark Matter does slightly less brute damage.
    • -
    • Cyrogenic Liquid injects slightly less frost oil and ice and does slightly less stamina damage.
    • -
    • Pressurized Slime does less brute, oxygen, and stamina damage, and extinguishes objects and people on turfs it wets.
    • -
    • Blob core strong blobs no longer give points when removed.
    • -
    • PROBABLY BUFFS:
    • -
    • Flammable Goo now does slightly more burn damage and applies more firestacks, but applies fire to blob tiles that don't share its chemical.
    • -
    • Energized Fibers does slightly more burn damage, slightly less stamina damage, and now takes damage from EMPs.
    • -
    • BUFFS:
    • -
    • Boiling Oil does slightly more burn damage and applies more firestacks.
    • -
    • Reactive Gelatin does slightly more damage on average.
    • -
    • Penetrating Spines now also ignores bio resistance in addition to armor.
    • -
    • Hallucinogenic Nectar causes more hallucinations.
    • -
    • Normal strong blobs now refund 4 points when removed, from 2.
    • -
    • Charger holoparasites now play a sound when hitting a target, as well as shaking the target's camera.
    • -
    -

    PKPenguin321 updated:

    -
      -
    • The warden's locker now contains krav maga gloves.
    • -
    -

    TechnoAlchemisto updated:

    -
      -
    • You can now craft skull helmets from bones.
    • -
    • Syndicate bombs are now harder to detect
    • -
    - -

    27 April 2016

    -

    TechnoAlchemisto updated:

    -
      -
    • Miners can now select explorer belts from the mining vendor using their vouchers, or mining points.
    • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 11ca7bebea3..a6eed57c74c 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -5149,3 +5149,29 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscdel: You can no longer scribe the Summon Nar-Sie rune under non-valid conditions. Kiazusho: - rscadd: Added three new advanced syringes to R&D +2016-05-26: + Xhuis: + - rscadd: Purge all untruths and honor Ratvar. + coiax: + - bugfix: Fixes bug where bolt of change to the host would kill an attached guardian. + - bugfix: Fixes bug where bolt of change to laughter demon would not release its + friends. + - bugfix: Fixes bug where bolt of change to morphling would not release its contents. + - bugfix: Fixes bug where bolt of change transforming someone into a drone would + not give them hacked laws and vision. + - bugfix: Blobbernauts created by a staff of change are now "independent" and will + not decay if seperated from a blob or missing a factory. + - rscadd: Independent blobbernauts added to gold slime core spawn pool. + - rscadd: Medical scanners now inform the user if the dead subject is within the + (currently) 120 second defib window. + - rscadd: Ghosts now have the "Restore Character Name" verb, which will set their + ghost appearance and dead chat name to their character preferences. + - bugfix: Mob spawners now give any generated names to the mind of the spawned mob, + meaning ghosts will have the name they had in life. + - bugfix: Fixes interaction with envy's knife and lavaland spawns. + - bugfix: Fixes a bug where swarmers teleporting humans would incorrectly display + a visible message about restraints breaking. + - rscdel: Emagging the emergency shuttle computer with less than ten seconds until + launch no longer gives additional time. + - rscadd: The emergency shuttle computer now reads the ID in your ID slot, rather + than your hand. diff --git a/html/changelogs/AutoChangeLog-pr-16441.yml b/html/changelogs/AutoChangeLog-pr-16441.yml deleted file mode 100644 index 54eaa1ec569..00000000000 --- a/html/changelogs/AutoChangeLog-pr-16441.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Xhuis -delete-after: True -changes: - - rscadd: "Purge all untruths and honor Ratvar." diff --git a/html/changelogs/AutoChangeLog-pr-17881.yml b/html/changelogs/AutoChangeLog-pr-17881.yml deleted file mode 100644 index 423828cbef1..00000000000 --- a/html/changelogs/AutoChangeLog-pr-17881.yml +++ /dev/null @@ -1,16 +0,0 @@ -author: coiax -delete-after: True -changes: - - bugfix: "Fixes bug where bolt of change to the host would kill an attached -guardian." - - bugfix: "Fixes bug where bolt of change to laughter demon would not release -its friends." - - bugfix: "Fixes bug where bolt of change to morphling would not release its -contents." - - bugfix: "Fixes bug where bolt of change transforming someone into a drone -would not give them hacked laws and vision." - - bugfix: "Blobbernauts created by a staff of change are now \"independent\" and -will not decay if seperated from a blob or missing a factory." - - rscadd: "Independent blobbernauts added to gold slime core spawn pool." - - rscadd: "Medical scanners now inform the user if the dead subject is -within the (currently) 120 second defib window." diff --git a/html/changelogs/AutoChangeLog-pr-17890.yml b/html/changelogs/AutoChangeLog-pr-17890.yml deleted file mode 100644 index 0681230702f..00000000000 --- a/html/changelogs/AutoChangeLog-pr-17890.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: coiax -delete-after: True -changes: - - rscadd: "Ghosts now have the \"Restore Character Name\" verb, which will set -their ghost appearance and dead chat name to their character preferences." - - bugfix: "Mob spawners now give any generated names to the mind of the -spawned mob, meaning ghosts will have the name they had in life." - - bugfix: "Fixes interaction with envy's knife and lavaland spawns." diff --git a/icons/obj/machines/magic_emitter.dmi b/icons/obj/machines/magic_emitter.dmi new file mode 100644 index 00000000000..1c85aa70712 Binary files /dev/null and b/icons/obj/machines/magic_emitter.dmi differ diff --git a/icons/obj/machines/shuttle_manipulator.dmi b/icons/obj/machines/shuttle_manipulator.dmi new file mode 100644 index 00000000000..ad91b1677b1 Binary files /dev/null and b/icons/obj/machines/shuttle_manipulator.dmi differ diff --git a/sound/hallucinations/im_here1.ogg b/sound/hallucinations/im_here1.ogg index b3a7142365e..7a671739b89 100644 Binary files a/sound/hallucinations/im_here1.ogg and b/sound/hallucinations/im_here1.ogg differ diff --git a/sound/hallucinations/im_here2.ogg b/sound/hallucinations/im_here2.ogg index bd841bcdb14..1e289d53f87 100644 Binary files a/sound/hallucinations/im_here2.ogg and b/sound/hallucinations/im_here2.ogg differ diff --git a/sound/hallucinations/turn_around1.ogg b/sound/hallucinations/turn_around1.ogg index 7a83755a93f..ce54f1944e4 100644 Binary files a/sound/hallucinations/turn_around1.ogg and b/sound/hallucinations/turn_around1.ogg differ diff --git a/sound/hallucinations/turn_around2.ogg b/sound/hallucinations/turn_around2.ogg index f4328458dd9..2c3c49466d5 100644 Binary files a/sound/hallucinations/turn_around2.ogg and b/sound/hallucinations/turn_around2.ogg differ diff --git a/sound/misc/compiler-failure.ogg b/sound/misc/compiler-failure.ogg new file mode 100755 index 00000000000..682e333bcb4 Binary files /dev/null and b/sound/misc/compiler-failure.ogg differ diff --git a/sound/misc/compiler-stage1.ogg b/sound/misc/compiler-stage1.ogg new file mode 100755 index 00000000000..997268b2f5b Binary files /dev/null and b/sound/misc/compiler-stage1.ogg differ diff --git a/sound/misc/compiler-stage2.ogg b/sound/misc/compiler-stage2.ogg new file mode 100755 index 00000000000..66e8e523485 Binary files /dev/null and b/sound/misc/compiler-stage2.ogg differ diff --git a/sound/misc/server-ready.ogg b/sound/misc/server-ready.ogg new file mode 100755 index 00000000000..216533b6f32 Binary files /dev/null and b/sound/misc/server-ready.ogg differ diff --git a/tgstation.dme b/tgstation.dme index dd4828bf331..6f81556dafa 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -44,6 +44,7 @@ #include "code\__DEFINES\role_preferences.dm" #include "code\__DEFINES\say.dm" #include "code\__DEFINES\sight.dm" +#include "code\__DEFINES\shuttles.dm" #include "code\__DEFINES\stat.dm" #include "code\__DEFINES\tablecrafting.dm" #include "code\__DEFINES\tgui.dm" @@ -858,7 +859,6 @@ #include "code\modules\admin\verbs\pray.dm" #include "code\modules\admin\verbs\randomverbs.dm" #include "code\modules\admin\verbs\reestablish_db_connection.dm" -#include "code\modules\admin\verbs\shuttles.dm" #include "code\modules\admin\verbs\tripAI.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" @@ -964,9 +964,9 @@ #include "code\modules\cargo\exports\weapons.dm" #include "code\modules\chatter\chatter.dm" #include "code\modules\client\asset_cache.dm" +#include "code\modules\client\client_colour.dm" #include "code\modules\client\client_defines.dm" #include "code\modules\client\client_procs.dm" -#include "code\modules\client\client_colour.dm" #include "code\modules\client\message.dm" #include "code\modules\client\preferences.dm" #include "code\modules\client\preferences_savefile.dm" @@ -1674,6 +1674,7 @@ #include "code\modules\shuttle\ferry.dm" #include "code\modules\shuttle\manipulator.dm" #include "code\modules\shuttle\shuttle.dm" +#include "code\modules\shuttle\special.dm" #include "code\modules\shuttle\supply.dm" #include "code\modules\shuttle\syndicate.dm" #include "code\modules\shuttle\white_ship.dm" @@ -1761,6 +1762,7 @@ #include "code\modules\tgui\states\deep_inventory.dm" #include "code\modules\tgui\states\default.dm" #include "code\modules\tgui\states\hands.dm" +#include "code\modules\tgui\states\human_adjacent.dm" #include "code\modules\tgui\states\inventory.dm" #include "code\modules\tgui\states\notcontained.dm" #include "code\modules\tgui\states\physical.dm" diff --git a/tgui/assets/tgui.css b/tgui/assets/tgui.css index 325fe771db0..1db67cd4b49 100644 --- a/tgui/assets/tgui.css +++ b/tgui/assets/tgui.css @@ -1 +1 @@ -@charset "utf-8";body,html{box-sizing:border-box;height:100%;margin:0}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff;background-color:#2a2a2a;background-image:linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgNDI1IDIwMCIgb3BhY2l0eT0iLjMzIj4NCiAgPHBhdGggZD0ibSAxNzguMDAzOTksMC4wMzg2OSAtNzEuMjAzOTMsMCBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTYuNzYxMzQsNi4wMjU1NSBsIDAsMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM0LDYuMDI1NTQgbCA1My4xMDcyLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xMDEuNTQ0MDE4IDcyLjIxNjI4LDEwNC42OTkzOTggYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDUuNzYwMTUsMi44NzAxNiBsIDczLjU1NDg3LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xODcuODcxNDcgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM1LC02LjAyNTU1IGwgLTU0LjcxNjQ0LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTMzLDYuMDI1NTUgbCAwLDEwMi42MTkzNSBMIDE4My43NjQxMywyLjkwODg2IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNS43NjAxNCwtMi44NzAxNyB6IiAvPg0KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPg0KICA8cGF0aCBkPSJtIDQyMC4xNTUzNSwxNzcuODkxMTkgYSAxMy40MTIwMzgsMTIuNTAxODQyIDAgMCAxIC04LjYzMjk1LDIyLjA2OTUxIGwgLTY2LjExODMyLDAgYSA1LjM2NDgxNTIsNS4wMDA3MzcgMCAwIDEgLTUuMzY0ODIsLTUuMDAwNzQgbCAwLC03OS44NzkzMSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}body.nanotrasen .normal{color:#40628a}body.nanotrasen .good{color:#537d29}body.nanotrasen .average{color:#be6209}body.nanotrasen .bad{color:#b00e0e}body.nanotrasen .highlight{color:#8ba5c4}body.nanotrasen main{display:block;margin-top:32px;padding:2px 6px 0}body.nanotrasen hr{height:2px;background-color:#40628a;border:none}body.nanotrasen .hidden{display:none}body.nanotrasen .bar .barText,body.nanotrasen span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.nanotrasen .bold{font-weight:700}body.nanotrasen .italic{font-style:italic}body.nanotrasen [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.nanotrasen div[data-tooltip],body.nanotrasen span[data-tooltip]{position:relative}body.nanotrasen div[data-tooltip]:after,body.nanotrasen span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.nanotrasen div[data-tooltip]:hover:after,body.nanotrasen span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.nanotrasen div[data-tooltip].tooltip-top:after,body.nanotrasen span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen div[data-tooltip].tooltip-top:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after{top:100%;left:50%}body.nanotrasen div[data-tooltip].tooltip-bottom:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-left:after,body.nanotrasen span[data-tooltip].tooltip-left:after{top:50%;right:100%;-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-left:hover:after,body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-left:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:after{-webkit-transform:translateX(-8px) translateY(-50%);-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-right:after{top:50%;left:100%}body.nanotrasen div[data-tooltip].tooltip-right:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:hover:after{-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}body.nanotrasen .bar .barText{position:absolute;top:0;right:3px}body.nanotrasen .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}body.nanotrasen .bar .barFill.good{background-color:#537d29}body.nanotrasen .bar .barFill.average{background-color:#be6209}body.nanotrasen .bar .barFill.bad{background-color:#b00e0e}body.nanotrasen span.button{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.nanotrasen span.button .fa{padding-right:2px}body.nanotrasen span.button.normal{transition:background-color .5s;background-color:#40628a}body.nanotrasen span.button.normal.active:focus,body.nanotrasen span.button.normal.active:hover{transition:background-color .25s;background-color:#4f78aa;outline:0}body.nanotrasen span.button.disabled{transition:background-color .5s;background-color:#999}body.nanotrasen span.button.disabled.active:focus,body.nanotrasen span.button.disabled.active:hover{transition:background-color .25s;background-color:#a8a8a8;outline:0}body.nanotrasen span.button.selected{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.selected.active:focus,body.nanotrasen span.button.selected.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.caution{transition:background-color .5s;background-color:#9a9d00}body.nanotrasen span.button.caution.active:focus,body.nanotrasen span.button.caution.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.nanotrasen span.button.danger{transition:background-color .5s;background-color:#9d0808}body.nanotrasen span.button.danger.active:focus,body.nanotrasen span.button.danger.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.nanotrasen span.button.gridable{width:125px;margin:2px 0}body.nanotrasen span.button+span:not(.button),body.nanotrasen span:not(.button)+span.button{margin-left:5px}body.nanotrasen div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}body.nanotrasen div.display header,body.nanotrasen div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #40628a}body.nanotrasen div.display header .buttonRight,body.nanotrasen div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.nanotrasen div.display article,body.nanotrasen div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.nanotrasen input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#000;background-color:#fff;border:1px solid #272727}body.nanotrasen input::-webkit-input-placeholder{color:#999}body.nanotrasen input::-moz-placeholder{color:#999}body.nanotrasen input:-ms-input-placeholder{color:#999}body.nanotrasen input::placeholder{color:#999}body.nanotrasen input::-ms-clear{display:none}body.nanotrasen svg.linegraph{overflow:hidden}body.nanotrasen div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px)}body.nanotrasen div.notice .label{color:#000}body.nanotrasen div.notice .content:only-of-type{padding:0}body.nanotrasen div.notice hr{background-color:#272727}body.nanotrasen div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-webkit-transform:rotate(1turn);-ms-transform:rotate(1turn);transform:rotate(1turn)}body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.nanotrasen section{display:table-row;width:100%}body.nanotrasen section:not(:first-child){padding-top:4px}body.nanotrasen section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.nanotrasen section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}body.nanotrasen section .content:not(:last-child){padding-right:16px}body.nanotrasen section .line{width:100%}body.nanotrasen div.subdisplay{width:100%;margin:0}body.nanotrasen header.titlebar .close,body.nanotrasen header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#8ba5c4}body.nanotrasen header.titlebar .close:hover,body.nanotrasen header.titlebar .minimize:hover{color:#9cb2cd}body.nanotrasen header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.nanotrasen header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.nanotrasen header.titlebar .title{position:absolute;top:6px;left:46px;color:#8ba5c4;font-size:16px;white-space:nowrap}body.nanotrasen header.titlebar .minimize{position:absolute;top:6px;right:46px}body.nanotrasen header.titlebar .close{position:absolute;top:4px;right:12px}body.syndicate{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgMjAwIDI4OS43NDIiIG9wYWNpdHk9Ii4zMyI+DQogIDxwYXRoIGQ9Im0gOTMuNTM3Njc3LDAgYyAtMTguMTEzMTI1LDAgLTM0LjIyMDEzMywzLjExMTY0IC00OC4zMjM0ODQsOS4zMzQzNyAtMTMuOTY1MDkyLDYuMjIxNjcgLTI0LjYxMjQ0MiwxNS4wNzExNCAtMzEuOTQwNjUxLDI2LjU0NzEgLTcuMTg5OTM5OCwxMS4zMzc4OSAtMTAuMzAxMjI2NiwyNC43NDkxMSAtMTAuMzAxMjI2Niw0MC4yMzQ3OCAwLDEwLjY0NjYyIDIuNzI1MDAyNiwyMC40NjQ2NSA4LjE3NTExMTYsMjkuNDUyNTggNS42MTUyNzcsOC45ODY4NiAxNC4wMzgyNzcsMTcuMzUyMDQgMjUuMjY4ODIxLDI1LjA5NDM2IDExLjIzMDU0NCw3LjYwNTMxIDI2LjUwNzQyMSwxNS40MTgzNSA0NS44MzA1MTQsMjMuNDM3ODIgMTkuOTgzNzQ4LDguMjk1NTcgMzQuODQ4ODQ4LDE1LjU1NDcxIDQ0LjU5Mjk5OCwyMS43NzYzOCA5Ljc0NDE0LDYuMjIyNzMgMTYuNzYxNywxMi44NTg1IDIxLjA1NTcyLDE5LjkwOTUxIDQuMjk0MDQsNy4wNTIwOCA2LjQ0MTkzLDE1Ljc2NDA4IDYuNDQxOTMsMjYuMTM0NTkgMCwxNi4xNzcwMiAtNS4yMDE5NiwyOC40ODIyMiAtMTUuNjA2NzMsMzYuOTE2ODIgLTEwLjIzOTYsOC40MzQ3IC0yNS4wMjIwMywxMi42NTIzIC00NC4zNDUxNjksMTIuNjUyMyAtMTQuMDM4MTcxLDAgLTI1LjUxNTI0NywtMS42NTk0IC0zNC40MzM2MTgsLTQuOTc3NyAtOC45MTgzNywtMy40NTY2IC0xNi4xODU1NzIsLTguNzExMyAtMjEuODAwODM5LC0xNS43NjMzIC01LjYxNTI3NywtNy4wNTIxIC0xMC4wNzQ3OTUsLTE2LjY2MDg4IC0xMy4zNzc4OTksLTI4LjgyODEyIGwgLTI0Ljc3MzE2MjYyOTM5NDUsMCAwLDU2LjgyNjMyIEMgMzMuODU2NzY5LDI4Ni4wNzYwMSA2My43NDkwNCwyODkuNzQyMDEgODkuNjc4MzgzLDI4OS43NDIwMSBjIDE2LjAyMDAyNywwIDMwLjcxOTc4NywtMS4zODI3IDQ0LjA5NzMzNywtNC4xNDc5IDEzLjU0MjcyLC0yLjkwNDMgMjUuMTA0MSwtNy40Njc2IDM0LjY4MzA5LC0xMy42ODkzIDkuNzQ0MTMsLTYuMzU5NyAxNy4zNDA0MiwtMTQuNTE5NSAyMi43OTA1MiwtMjQuNDc0OCA1LjQ1MDEsLTEwLjA5MzMyIDguMTc1MTEsLTIyLjM5OTU5IDguMTc1MTEsLTM2LjkxNjgyIDAsLTEyLjk5NzY0IC0zLjMwMjEsLTI0LjMzNTM5IC05LjkwODI5LC0zNC4wMTQ2IC02LjQ0MTA1LC05LjgxNzI1IC0xNS41MjU0NSwtMTguNTI3MDcgLTI3LjI1MTQ2LC0yNi4xMzEzMyAtMTEuNTYwODUsLTcuNjA0MjcgLTI3LjkxMDgzLC0xNS44MzE0MiAtNDkuMDUwNjYsLTI0LjY4MDIyIC0xNy41MDY0NCwtNy4xOTAxMiAtMzAuNzE5NjY4LC0xMy42ODk0OCAtMzkuNjM4MDM4LC0xOS40OTcwMSAtOC45MTgzNzEsLTUuODA3NTIgLTE4LjYwNzQ3NCwtMTIuNDM0MDkgLTI0LjA5NjUyNCwtMTguODc0MTcgLTUuNDI2MDQzLC02LjM2NjE2IC05LjY1ODgyNiwtMTUuMDcwMDMgLTkuNjU4ODI2LC0yNC44ODcyOSAwLC05LjI2NDAxIDIuMDc1NDE0LC0xNy4yMTM0NSA2LjIyMzQ1NCwtMjMuODUwMzMgMTEuMDk4Mjk4LC0xNC4zOTc0OCA0MS4yODY2MzgsLTEuNzk1MDcgNDUuMDc1NjA5LDI0LjM0NzYyIDQuODM5MzkyLDYuNzc0OTEgOC44NDkzNSwxNi4yNDcyOSAxMi4wMjk1MTUsMjguNDE1NiBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNC40NzgyNSwtNS45MjQ0OCAtOS45NTQ4OCwtMTAuNjMyMjIgLTE1LjkwODM3LC0xNC4zNzQxMSAxLjY0MDU1LDAuNDc5MDUgMy4xOTAzOSwxLjAyMzc2IDQuNjM4NjUsMS42NDAyNCA2LjQ5ODYxLDIuNjI2MDcgMTIuMTY3OTMsNy4zMjc0NyAxNy4wMDczLDE0LjEwMzQ1IDQuODM5MzksNi43NzQ5MSA4Ljg0OTM1LDE2LjI0NTY3IDEyLjAyOTUyLDI4LjQxMzk3IDAsMCA4LjQ4MTI4LC0wLjEyODk0IDguNDg5NzgsLTAuMDAyIDAuNDE3NzYsNi40MTQ5NCAtMS43NTMzOSw5LjQ1Mjg2IC00LjEyMzQyLDEyLjU2MTA0IC0yLjQxNzQsMy4xNjk3OCAtNS4xNDQ4Niw2Ljc4OTczIC00LjAwMjc4LDEzLjAwMjkgMS41MDc4Niw4LjIwMzE4IDEwLjE4MzU0LDEwLjU5NjQyIDE0LjYyMTk0LDkuMzExNTQgLTMuMzE4NDIsLTAuNDk5MTEgLTUuMzE4NTUsLTEuNzQ5NDggLTUuMzE4NTUsLTEuNzQ5NDggMCwwIDEuODc2NDYsMC45OTg2OCA1LjY1MTE3LC0xLjM1OTgxIC0zLjI3Njk1LDAuOTU1NzEgLTEwLjcwNTI5LC0wLjc5NzM4IC0xMS44MDEyNSwtNi43NjMxMyAtMC45NTc1MiwtNS4yMDg2MSAwLjk0NjU0LC03LjI5NTE0IDMuNDAxMTMsLTEwLjUxNDgyIDIuNDU0NjIsLTMuMjE5NjggNS4yODQyNiwtNi45NTgzMSA0LjY4NDMsLTE0LjQ4ODI0IGwgMC4wMDMsMC4wMDIgOC45MjY3NiwwIDAsLTU1Ljk5OTY3IGMgLTE1LjA3MTI1LC0zLjg3MTY4IC0yNy42NTMxNCwtNi4zNjA0MiAtMzcuNzQ2NzEsLTcuNDY1ODYgLTkuOTU1MzEsLTEuMTA3NTUgLTIwLjE4ODIzLC0xLjY1OTgxIC0zMC42OTY2MTMsLTEuNjU5ODEgeiBtIDcwLjMyMTYwMywxNy4zMDg5MyAwLjIzODA1LDQwLjMwNDkgYyAxLjMxODA4LDEuMjI2NjYgMi40Mzk2NSwyLjI3ODE1IDMuMzQwODEsMy4xMDYwMiA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNCwxNi4yNDU2NiAxMi4wMjk1MSwyOC40MTM5NyBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNi42NzczMSwtNC41OTM4MSAtMTkuODM2NDMsLTEwLjQ3MzA5IC0zNi4xNDA3MSwtMTUuODI1MjIgeiBtIC0yOC4xMjA0OSw1LjYwNTUxIDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzcsLTYuNDY2OTcgLTEzLjg0Njc4LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDUsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gMTUuMjIxOTUsMjQuMDA4NDggOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzOCwtNi40NjY5NyAtMTMuODQ2NzksLTkuNzE3MjYgLTguNTY0NzksLTE3LjcxNjU1IHogbSAyMi43OTcwNCwwIGMgMi43NzE1LDcuOTk5MjkgMS43ODc0MSwxMS4yNDk1OCAtNC40OTM1NCwxNy43MTY1NSBsIDQuNDkzNTQsLTE3LjcxNjU1IHogbSAtOTkuMTEzODQsMi4yMDc2NCA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM4MiwtNi40NjY5NyAtMTMuODQ2NzgyLC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk1NDIsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#750000 0,#340404);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff750000',endColorstr='#ff340404',GradientType=0)}body.syndicate .normal{color:#40628a}body.syndicate .good{color:#73e573}body.syndicate .average{color:#be6209}body.syndicate .bad{color:#b00e0e}body.syndicate .highlight{color:#000}body.syndicate main{display:block;margin-top:32px;padding:2px 6px 0}body.syndicate hr{height:2px;background-color:#272727;border:none}body.syndicate .hidden{display:none}body.syndicate .bar .barText,body.syndicate span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.syndicate .bold{font-weight:700}body.syndicate .italic{font-style:italic}body.syndicate [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.syndicate div[data-tooltip],body.syndicate span[data-tooltip]{position:relative}body.syndicate div[data-tooltip]:after,body.syndicate span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.syndicate div[data-tooltip]:hover:after,body.syndicate span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.syndicate div[data-tooltip].tooltip-top:after,body.syndicate span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate div[data-tooltip].tooltip-top:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-bottom:after{top:100%;left:50%}body.syndicate div[data-tooltip].tooltip-bottom:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-left:after,body.syndicate span[data-tooltip].tooltip-left:after{top:50%;right:100%;-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-left:hover:after,body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-left:hover:after,body.syndicate span[data-tooltip].tooltip-right:after{-webkit-transform:translateX(-8px) translateY(-50%);-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-right:after{top:50%;left:100%}body.syndicate div[data-tooltip].tooltip-right:hover:after,body.syndicate span[data-tooltip].tooltip-right:hover:after{-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #000;background:#272727}body.syndicate .bar .barText{position:absolute;top:0;right:3px}body.syndicate .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#000}body.syndicate .bar .barFill.good{background-color:#73e573}body.syndicate .bar .barFill.average{background-color:#be6209}body.syndicate .bar .barFill.bad{background-color:#b00e0e}body.syndicate span.button{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.syndicate span.button .fa{padding-right:2px}body.syndicate span.button.normal{transition:background-color .5s;background-color:#397439}body.syndicate span.button.normal.active:focus,body.syndicate span.button.normal.active:hover{transition:background-color .25s;background-color:#4a964a;outline:0}body.syndicate span.button.disabled{transition:background-color .5s;background-color:#363636}body.syndicate span.button.disabled.active:focus,body.syndicate span.button.disabled.active:hover{transition:background-color .25s;background-color:#545454;outline:0}body.syndicate span.button.selected{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.selected.active:focus,body.syndicate span.button.selected.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.caution{transition:background-color .5s;background-color:#be6209}body.syndicate span.button.caution.active:focus,body.syndicate span.button.caution.active:hover{transition:background-color .25s;background-color:#eb790b;outline:0}body.syndicate span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.syndicate span.button.danger.active:focus,body.syndicate span.button.danger.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.syndicate span.button.gridable{width:125px;margin:2px 0}body.syndicate span.button+span:not(.button),body.syndicate span:not(.button)+span.button{margin-left:5px}body.syndicate div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000);background-color:rgba(0,0,0,.5);box-shadow:inset 0 0 5px rgba(0,0,0,.75)}body.syndicate div.display header,body.syndicate div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #272727}body.syndicate div.display header .buttonRight,body.syndicate div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.syndicate div.display article,body.syndicate div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.syndicate input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#fff;background-color:#9d0808;border:1px solid #272727}body.syndicate input::-webkit-input-placeholder{color:#999}body.syndicate input::-moz-placeholder{color:#999}body.syndicate input:-ms-input-placeholder{color:#999}body.syndicate input::placeholder{color:#999}body.syndicate input::-ms-clear{display:none}body.syndicate svg.linegraph{overflow:hidden}body.syndicate div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#750000;background-image:repeating-linear-gradient(-45deg,#750000,#750000 10px,#910101 0,#910101 20px)}body.syndicate div.notice .label{color:#000}body.syndicate div.notice .content:only-of-type{padding:0}body.syndicate div.notice hr{background-color:#272727}body.syndicate div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-webkit-transform:rotate(1turn);-ms-transform:rotate(1turn);transform:rotate(1turn)}body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.syndicate section{display:table-row;width:100%}body.syndicate section:not(:first-child){padding-top:4px}body.syndicate section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.syndicate section .label{width:1%;padding-right:32px;white-space:nowrap;color:#fff}body.syndicate section .content:not(:last-child){padding-right:16px}body.syndicate section .line{width:100%}body.syndicate div.subdisplay{width:100%;margin:0}body.syndicate header.titlebar .close,body.syndicate header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#e74242}body.syndicate header.titlebar .close:hover,body.syndicate header.titlebar .minimize:hover{color:#eb5e5e}body.syndicate header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.syndicate header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.syndicate header.titlebar .title{position:absolute;top:6px;left:46px;color:#e74242;font-size:16px;white-space:nowrap}body.syndicate header.titlebar .minimize{position:absolute;top:6px;right:46px}body.syndicate header.titlebar .close{position:absolute;top:4px;right:12px}.no-icons header.titlebar .statusicon{font-size:20px}.no-icons header.titlebar .statusicon:after{content:"O"}.no-icons header.titlebar .minimize{top:-2px;font-size:20px}.no-icons header.titlebar .minimize:after{content:"—"}.no-icons header.titlebar .close{font-size:20px}.no-icons header.titlebar .close:after{content:"X"} \ No newline at end of file +@charset "utf-8";body,html{box-sizing:border-box;height:100%;margin:0}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff;background-color:#2a2a2a;background-image:linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCA0MjUgMjAwIiBvcGFjaXR5PSIuMzMiPgogIDxwYXRoIGQ9Im0gMTc4LjAwMzk5LDAuMDM4NjkgLTcxLjIwMzkzLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM0LDYuMDI1NTUgbCAwLDE4Ny44NzE0NyBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgNi43NjEzNCw2LjAyNTU0IGwgNTMuMTA3MiwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTAxLjU0NDAxOCA3Mi4yMTYyOCwxMDQuNjk5Mzk4IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA1Ljc2MDE1LDIuODcwMTYgbCA3My41NTQ4NywwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzNSwtNi4wMjU1NSBsIC01NC43MTY0NCwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzMyw2LjAyNTU1IGwgMCwxMDIuNjE5MzUgTCAxODMuNzY0MTMsMi45MDg4NiBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTUuNzYwMTQsLTIuODcwMTcgeiIgLz4KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPgogIDxwYXRoIGQ9Im0gNDIwLjE1NTM1LDE3Ny44OTExOSBhIDEzLjQxMjAzOCwxMi41MDE4NDIgMCAwIDEgLTguNjMyOTUsMjIuMDY5NTEgbCAtNjYuMTE4MzIsMCBhIDUuMzY0ODE1Miw1LjAwMDczNyAwIDAgMSAtNS4zNjQ4MiwtNS4wMDA3NCBsIDAsLTc5Ljg3OTMxIHoiIC8+Cjwvc3ZnPgo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPgo=") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}body.nanotrasen .normal{color:#40628a}body.nanotrasen .good{color:#537d29}body.nanotrasen .average{color:#be6209}body.nanotrasen .bad{color:#b00e0e}body.nanotrasen .highlight{color:#8ba5c4}body.nanotrasen main{display:block;margin-top:32px;padding:2px 6px 0}body.nanotrasen hr{height:2px;background-color:#40628a;border:none}body.nanotrasen .hidden{display:none}body.nanotrasen .bar .barText,body.nanotrasen span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.nanotrasen .bold{font-weight:700}body.nanotrasen .italic{font-style:italic}body.nanotrasen [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.nanotrasen div[data-tooltip],body.nanotrasen span[data-tooltip]{position:relative}body.nanotrasen div[data-tooltip]:after,body.nanotrasen span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.nanotrasen div[data-tooltip]:hover:after,body.nanotrasen span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.nanotrasen div[data-tooltip].tooltip-top:after,body.nanotrasen span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen div[data-tooltip].tooltip-top:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after{top:100%;left:50%}body.nanotrasen div[data-tooltip].tooltip-bottom:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-left:after,body.nanotrasen span[data-tooltip].tooltip-left:after{top:50%;right:100%;-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-left:hover:after,body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-left:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:after{-webkit-transform:translateX(-8px) translateY(-50%);-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-right:after{top:50%;left:100%}body.nanotrasen div[data-tooltip].tooltip-right:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:hover:after{-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}body.nanotrasen .bar .barText{position:absolute;top:0;right:3px}body.nanotrasen .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}body.nanotrasen .bar .barFill.good{background-color:#537d29}body.nanotrasen .bar .barFill.average{background-color:#be6209}body.nanotrasen .bar .barFill.bad{background-color:#b00e0e}body.nanotrasen span.button{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.nanotrasen span.button .fa{padding-right:2px}body.nanotrasen span.button.normal{transition:background-color .5s;background-color:#40628a}body.nanotrasen span.button.normal.active:focus,body.nanotrasen span.button.normal.active:hover{transition:background-color .25s;background-color:#4f78aa;outline:0}body.nanotrasen span.button.disabled{transition:background-color .5s;background-color:#999}body.nanotrasen span.button.disabled.active:focus,body.nanotrasen span.button.disabled.active:hover{transition:background-color .25s;background-color:#a8a8a8;outline:0}body.nanotrasen span.button.selected{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.selected.active:focus,body.nanotrasen span.button.selected.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.caution{transition:background-color .5s;background-color:#9a9d00}body.nanotrasen span.button.caution.active:focus,body.nanotrasen span.button.caution.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.nanotrasen span.button.danger{transition:background-color .5s;background-color:#9d0808}body.nanotrasen span.button.danger.active:focus,body.nanotrasen span.button.danger.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.nanotrasen span.button.gridable{width:125px;margin:2px 0}body.nanotrasen span.button+span:not(.button),body.nanotrasen span:not(.button)+span.button{margin-left:5px}body.nanotrasen div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}body.nanotrasen div.display header,body.nanotrasen div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #40628a}body.nanotrasen div.display header .buttonRight,body.nanotrasen div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.nanotrasen div.display article,body.nanotrasen div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.nanotrasen input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#000;background-color:#fff;border:1px solid #272727}body.nanotrasen input::-webkit-input-placeholder{color:#999}body.nanotrasen input::-moz-placeholder{color:#999}body.nanotrasen input:-ms-input-placeholder{color:#999}body.nanotrasen input::placeholder{color:#999}body.nanotrasen input::-ms-clear{display:none}body.nanotrasen svg.linegraph{overflow:hidden}body.nanotrasen div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px)}body.nanotrasen div.notice .label{color:#000}body.nanotrasen div.notice .content:only-of-type{padding:0}body.nanotrasen div.notice hr{background-color:#272727}body.nanotrasen div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-webkit-transform:rotate(1turn);-ms-transform:rotate(1turn);transform:rotate(1turn)}body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.nanotrasen section{display:table-row;width:100%}body.nanotrasen section:not(:first-child){padding-top:4px}body.nanotrasen section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.nanotrasen section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}body.nanotrasen section .content:not(:last-child){padding-right:16px}body.nanotrasen section .line{width:100%}body.nanotrasen div.subdisplay{width:100%;margin:0}body.nanotrasen header.titlebar .close,body.nanotrasen header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#8ba5c4}body.nanotrasen header.titlebar .close:hover,body.nanotrasen header.titlebar .minimize:hover{color:#9cb2cd}body.nanotrasen header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.nanotrasen header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.nanotrasen header.titlebar .title{position:absolute;top:6px;left:46px;color:#8ba5c4;font-size:16px;white-space:nowrap}body.nanotrasen header.titlebar .minimize{position:absolute;top:6px;right:46px}body.nanotrasen header.titlebar .close{position:absolute;top:4px;right:12px}body.syndicate{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCAyMDAgMjg5Ljc0MiIgb3BhY2l0eT0iLjMzIj4KICA8cGF0aCBkPSJtIDkzLjUzNzY3NywwIGMgLTE4LjExMzEyNSwwIC0zNC4yMjAxMzMsMy4xMTE2NCAtNDguMzIzNDg0LDkuMzM0MzcgLTEzLjk2NTA5Miw2LjIyMTY3IC0yNC42MTI0NDIsMTUuMDcxMTQgLTMxLjk0MDY1MSwyNi41NDcxIC03LjE4OTkzOTgsMTEuMzM3ODkgLTEwLjMwMTIyNjYsMjQuNzQ5MTEgLTEwLjMwMTIyNjYsNDAuMjM0NzggMCwxMC42NDY2MiAyLjcyNTAwMjYsMjAuNDY0NjUgOC4xNzUxMTE2LDI5LjQ1MjU4IDUuNjE1Mjc3LDguOTg2ODYgMTQuMDM4Mjc3LDE3LjM1MjA0IDI1LjI2ODgyMSwyNS4wOTQzNiAxMS4yMzA1NDQsNy42MDUzMSAyNi41MDc0MjEsMTUuNDE4MzUgNDUuODMwNTE0LDIzLjQzNzgyIDE5Ljk4Mzc0OCw4LjI5NTU3IDM0Ljg0ODg0OCwxNS41NTQ3MSA0NC41OTI5OTgsMjEuNzc2MzggOS43NDQxNCw2LjIyMjczIDE2Ljc2MTcsMTIuODU4NSAyMS4wNTU3MiwxOS45MDk1MSA0LjI5NDA0LDcuMDUyMDggNi40NDE5MywxNS43NjQwOCA2LjQ0MTkzLDI2LjEzNDU5IDAsMTYuMTc3MDIgLTUuMjAxOTYsMjguNDgyMjIgLTE1LjYwNjczLDM2LjkxNjgyIC0xMC4yMzk2LDguNDM0NyAtMjUuMDIyMDMsMTIuNjUyMyAtNDQuMzQ1MTY5LDEyLjY1MjMgLTE0LjAzODE3MSwwIC0yNS41MTUyNDcsLTEuNjU5NCAtMzQuNDMzNjE4LC00Ljk3NzcgLTguOTE4MzcsLTMuNDU2NiAtMTYuMTg1NTcyLC04LjcxMTMgLTIxLjgwMDgzOSwtMTUuNzYzMyAtNS42MTUyNzcsLTcuMDUyMSAtMTAuMDc0Nzk1LC0xNi42NjA4OCAtMTMuMzc3ODk5LC0yOC44MjgxMiBsIC0yNC43NzMxNjI2MjkzOTQ1LDAgMCw1Ni44MjYzMiBDIDMzLjg1Njc2OSwyODYuMDc2MDEgNjMuNzQ5MDQsMjg5Ljc0MjAxIDg5LjY3ODM4MywyODkuNzQyMDEgYyAxNi4wMjAwMjcsMCAzMC43MTk3ODcsLTEuMzgyNyA0NC4wOTczMzcsLTQuMTQ3OSAxMy41NDI3MiwtMi45MDQzIDI1LjEwNDEsLTcuNDY3NiAzNC42ODMwOSwtMTMuNjg5MyA5Ljc0NDEzLC02LjM1OTcgMTcuMzQwNDIsLTE0LjUxOTUgMjIuNzkwNTIsLTI0LjQ3NDggNS40NTAxLC0xMC4wOTMzMiA4LjE3NTExLC0yMi4zOTk1OSA4LjE3NTExLC0zNi45MTY4MiAwLC0xMi45OTc2NCAtMy4zMDIxLC0yNC4zMzUzOSAtOS45MDgyOSwtMzQuMDE0NiAtNi40NDEwNSwtOS44MTcyNSAtMTUuNTI1NDUsLTE4LjUyNzA3IC0yNy4yNTE0NiwtMjYuMTMxMzMgLTExLjU2MDg1LC03LjYwNDI3IC0yNy45MTA4MywtMTUuODMxNDIgLTQ5LjA1MDY2LC0yNC42ODAyMiAtMTcuNTA2NDQsLTcuMTkwMTIgLTMwLjcxOTY2OCwtMTMuNjg5NDggLTM5LjYzODAzOCwtMTkuNDk3MDEgLTguOTE4MzcxLC01LjgwNzUyIC0xOC42MDc0NzQsLTEyLjQzNDA5IC0yNC4wOTY1MjQsLTE4Ljg3NDE3IC01LjQyNjA0MywtNi4zNjYxNiAtOS42NTg4MjYsLTE1LjA3MDAzIC05LjY1ODgyNiwtMjQuODg3MjkgMCwtOS4yNjQwMSAyLjA3NTQxNCwtMTcuMjEzNDUgNi4yMjM0NTQsLTIzLjg1MDMzIDExLjA5ODI5OCwtMTQuMzk3NDggNDEuMjg2NjM4LC0xLjc5NTA3IDQ1LjA3NTYwOSwyNC4zNDc2MiA0LjgzOTM5Miw2Ljc3NDkxIDguODQ5MzUsMTYuMjQ3MjkgMTIuMDI5NTE1LDI4LjQxNTYgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTQuNDc4MjUsLTUuOTI0NDggLTkuOTU0ODgsLTEwLjYzMjIyIC0xNS45MDgzNywtMTQuMzc0MTEgMS42NDA1NSwwLjQ3OTA1IDMuMTkwMzksMS4wMjM3NiA0LjYzODY1LDEuNjQwMjQgNi40OTg2MSwyLjYyNjA3IDEyLjE2NzkzLDcuMzI3NDcgMTcuMDA3MywxNC4xMDM0NSA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNSwxNi4yNDU2NyAxMi4wMjk1MiwyOC40MTM5NyAwLDAgOC40ODEyOCwtMC4xMjg5NCA4LjQ4OTc4LC0wLjAwMiAwLjQxNzc2LDYuNDE0OTQgLTEuNzUzMzksOS40NTI4NiAtNC4xMjM0MiwxMi41NjEwNCAtMi40MTc0LDMuMTY5NzggLTUuMTQ0ODYsNi43ODk3MyAtNC4wMDI3OCwxMy4wMDI5IDEuNTA3ODYsOC4yMDMxOCAxMC4xODM1NCwxMC41OTY0MiAxNC42MjE5NCw5LjMxMTU0IC0zLjMxODQyLC0wLjQ5OTExIC01LjMxODU1LC0xLjc0OTQ4IC01LjMxODU1LC0xLjc0OTQ4IDAsMCAxLjg3NjQ2LDAuOTk4NjggNS42NTExNywtMS4zNTk4MSAtMy4yNzY5NSwwLjk1NTcxIC0xMC43MDUyOSwtMC43OTczOCAtMTEuODAxMjUsLTYuNzYzMTMgLTAuOTU3NTIsLTUuMjA4NjEgMC45NDY1NCwtNy4yOTUxNCAzLjQwMTEzLC0xMC41MTQ4MiAyLjQ1NDYyLC0zLjIxOTY4IDUuMjg0MjYsLTYuOTU4MzEgNC42ODQzLC0xNC40ODgyNCBsIDAuMDAzLDAuMDAyIDguOTI2NzYsMCAwLC01NS45OTk2NyBjIC0xNS4wNzEyNSwtMy44NzE2OCAtMjcuNjUzMTQsLTYuMzYwNDIgLTM3Ljc0NjcxLC03LjQ2NTg2IC05Ljk1NTMxLC0xLjEwNzU1IC0yMC4xODgyMywtMS42NTk4MSAtMzAuNjk2NjEzLC0xLjY1OTgxIHogbSA3MC4zMjE2MDMsMTcuMzA4OTMgMC4yMzgwNSw0MC4zMDQ5IGMgMS4zMTgwOCwxLjIyNjY2IDIuNDM5NjUsMi4yNzgxNSAzLjM0MDgxLDMuMTA2MDIgNC44MzkzOSw2Ljc3NDkxIDguODQ5MzQsMTYuMjQ1NjYgMTIuMDI5NTEsMjguNDEzOTcgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTYuNjc3MzEsLTQuNTkzODEgLTE5LjgzNjQzLC0xMC40NzMwOSAtMzYuMTQwNzEsLTE1LjgyNTIyIHogbSAtMjguMTIwNDksNS42MDU1MSA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM3LC02LjQ2Njk3IC0xMy44NDY3OCwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NzA1LDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiBtIDE1LjIyMTk1LDI0LjAwODQ4IDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzgsLTYuNDY2OTcgLTEzLjg0Njc5LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDQsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gLTk5LjExMzg0LDIuMjA3NjQgOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzODIsLTYuNDY2OTcgLTEzLjg0Njc4MiwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NTQyLDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiIgLz4KPC9zdmc+CjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPgo8IS0tIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC8gLS0+Cg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#750000 0,#340404);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff750000',endColorstr='#ff340404',GradientType=0)}body.syndicate .normal{color:#40628a}body.syndicate .good{color:#73e573}body.syndicate .average{color:#be6209}body.syndicate .bad{color:#b00e0e}body.syndicate .highlight{color:#000}body.syndicate main{display:block;margin-top:32px;padding:2px 6px 0}body.syndicate hr{height:2px;background-color:#272727;border:none}body.syndicate .hidden{display:none}body.syndicate .bar .barText,body.syndicate span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.syndicate .bold{font-weight:700}body.syndicate .italic{font-style:italic}body.syndicate [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.syndicate div[data-tooltip],body.syndicate span[data-tooltip]{position:relative}body.syndicate div[data-tooltip]:after,body.syndicate span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.syndicate div[data-tooltip]:hover:after,body.syndicate span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.syndicate div[data-tooltip].tooltip-top:after,body.syndicate span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate div[data-tooltip].tooltip-top:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-bottom:after{top:100%;left:50%}body.syndicate div[data-tooltip].tooltip-bottom:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-left:after,body.syndicate span[data-tooltip].tooltip-left:after{top:50%;right:100%;-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-left:hover:after,body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-left:hover:after,body.syndicate span[data-tooltip].tooltip-right:after{-webkit-transform:translateX(-8px) translateY(-50%);-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-right:after{top:50%;left:100%}body.syndicate div[data-tooltip].tooltip-right:hover:after,body.syndicate span[data-tooltip].tooltip-right:hover:after{-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #000;background:#272727}body.syndicate .bar .barText{position:absolute;top:0;right:3px}body.syndicate .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#000}body.syndicate .bar .barFill.good{background-color:#73e573}body.syndicate .bar .barFill.average{background-color:#be6209}body.syndicate .bar .barFill.bad{background-color:#b00e0e}body.syndicate span.button{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.syndicate span.button .fa{padding-right:2px}body.syndicate span.button.normal{transition:background-color .5s;background-color:#397439}body.syndicate span.button.normal.active:focus,body.syndicate span.button.normal.active:hover{transition:background-color .25s;background-color:#4a964a;outline:0}body.syndicate span.button.disabled{transition:background-color .5s;background-color:#363636}body.syndicate span.button.disabled.active:focus,body.syndicate span.button.disabled.active:hover{transition:background-color .25s;background-color:#545454;outline:0}body.syndicate span.button.selected{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.selected.active:focus,body.syndicate span.button.selected.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.caution{transition:background-color .5s;background-color:#be6209}body.syndicate span.button.caution.active:focus,body.syndicate span.button.caution.active:hover{transition:background-color .25s;background-color:#eb790b;outline:0}body.syndicate span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.syndicate span.button.danger.active:focus,body.syndicate span.button.danger.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.syndicate span.button.gridable{width:125px;margin:2px 0}body.syndicate span.button+span:not(.button),body.syndicate span:not(.button)+span.button{margin-left:5px}body.syndicate div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000);background-color:rgba(0,0,0,.5);box-shadow:inset 0 0 5px rgba(0,0,0,.75)}body.syndicate div.display header,body.syndicate div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #272727}body.syndicate div.display header .buttonRight,body.syndicate div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.syndicate div.display article,body.syndicate div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.syndicate input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#fff;background-color:#9d0808;border:1px solid #272727}body.syndicate input::-webkit-input-placeholder{color:#999}body.syndicate input::-moz-placeholder{color:#999}body.syndicate input:-ms-input-placeholder{color:#999}body.syndicate input::placeholder{color:#999}body.syndicate input::-ms-clear{display:none}body.syndicate svg.linegraph{overflow:hidden}body.syndicate div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#750000;background-image:repeating-linear-gradient(-45deg,#750000,#750000 10px,#910101 0,#910101 20px)}body.syndicate div.notice .label{color:#000}body.syndicate div.notice .content:only-of-type{padding:0}body.syndicate div.notice hr{background-color:#272727}body.syndicate div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-webkit-transform:rotate(1turn);-ms-transform:rotate(1turn);transform:rotate(1turn)}body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.syndicate section{display:table-row;width:100%}body.syndicate section:not(:first-child){padding-top:4px}body.syndicate section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.syndicate section .label{width:1%;padding-right:32px;white-space:nowrap;color:#fff}body.syndicate section .content:not(:last-child){padding-right:16px}body.syndicate section .line{width:100%}body.syndicate div.subdisplay{width:100%;margin:0}body.syndicate header.titlebar .close,body.syndicate header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#e74242}body.syndicate header.titlebar .close:hover,body.syndicate header.titlebar .minimize:hover{color:#eb5e5e}body.syndicate header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.syndicate header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.syndicate header.titlebar .title{position:absolute;top:6px;left:46px;color:#e74242;font-size:16px;white-space:nowrap}body.syndicate header.titlebar .minimize{position:absolute;top:6px;right:46px}body.syndicate header.titlebar .close{position:absolute;top:4px;right:12px}.no-icons header.titlebar .statusicon{font-size:20px}.no-icons header.titlebar .statusicon:after{content:"O"}.no-icons header.titlebar .minimize{top:-2px;font-size:20px}.no-icons header.titlebar .minimize:after{content:"—"}.no-icons header.titlebar .close{font-size:20px}.no-icons header.titlebar .close:after{content:"X"} \ No newline at end of file diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index 6c55fae1b3b..a57c8be6b5c 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -1,12 +1,12 @@ -require=function t(e,n,r){function i(o,s){if(!n[o]){if(!e[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(a)return a(o,!0);var c=Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[o]={exports:{}};e[o][0].call(l.exports,function(t){var n=e[o][1][t];return i(n?n:t)},l,l.exports,t,e,n,r)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;o2?c[2]:void 0,p=Math.min((void 0===l?o:i(l,o))-u,o-s),f=1;for(s>u&&u+p>s&&(f=-1,u+=p-1,s+=p-1);p-- >0;)u in n?n[s]=n[u]:delete n[s],s+=f,u+=f;return n}},{76:76,79:79,80:80}],6:[function(t,e,n){"use strict";var r=t(80),i=t(76),a=t(79);e.exports=[].fill||function(t){for(var e=r(this),n=a(e.length),o=arguments,s=o.length,u=i(s>1?o[1]:void 0,n),c=s>2?o[2]:void 0,l=void 0===c?n:i(c,n);l>u;)e[u++]=t;return e}},{76:76,79:79,80:80}],7:[function(t,e,n){var r=t(78),i=t(79),a=t(76);e.exports=function(t){return function(e,n,o){var s,u=r(e),c=i(u.length),l=a(o,c);if(t&&n!=n){for(;c>l;)if(s=u[l++],s!=s)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l;return!t&&-1}}},{76:76,78:78,79:79}],8:[function(t,e,n){var r=t(17),i=t(34),a=t(80),o=t(79),s=t(9);e.exports=function(t){var e=1==t,n=2==t,u=3==t,c=4==t,l=6==t,p=5==t||l;return function(f,d,h){for(var m,v,g=a(f),y=i(g),b=r(d,h,3),x=o(y.length),w=0,_=e?s(f,x):n?s(f,0):void 0;x>w;w++)if((p||w in y)&&(m=y[w],v=b(m,w,g),t))if(e)_[w]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return w;case 2:_.push(m)}else if(c)return!1;return l?-1:u||c?c:_}}},{17:17,34:34,79:79,80:80,9:9}],9:[function(t,e,n){var r=t(38),i=t(36),a=t(83)("species");e.exports=function(t,e){var n;return i(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)||(n=void 0),r(n)&&(n=n[a],null===n&&(n=void 0))),new(void 0===n?Array:n)(e)}},{36:36,38:38,83:83}],10:[function(t,e,n){var r=t(11),i=t(83)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[i])?n:a?r(e):"Object"==(o=r(e))&&"function"==typeof e.callee?"Arguments":o}},{11:11,83:83}],11:[function(t,e,n){var r={}.toString;e.exports=function(t){return r.call(t).slice(8,-1)}},{}],12:[function(t,e,n){"use strict";var r=t(46),i=t(31),a=t(60),o=t(17),s=t(69),u=t(18),c=t(27),l=t(42),p=t(44),f=t(82)("id"),d=t(30),h=t(38),m=t(65),v=t(19),g=Object.isExtensible||h,y=v?"_s":"size",b=0,x=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!d(t,f)){if(!g(t))return"F";if(!e)return"E";i(t,f,++b)}return"O"+t[f]},w=function(t,e){var n,r=x(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,i){var l=t(function(t,a){s(t,l,e),t._i=r.create(null),t._f=void 0,t._l=void 0,t[y]=0,void 0!=a&&c(a,n,t[i],t)});return a(l.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[y]=0},"delete":function(t){var e=this,n=w(e,t);if(n){var r=n.n,i=n.p;delete e._i[n.i],n.r=!0,i&&(i.n=r),r&&(r.p=i),e._f==n&&(e._f=r),e._l==n&&(e._l=i),e[y]--}return!!n},forEach:function(t){for(var e,n=o(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!w(this,t)}}),v&&r.setDesc(l.prototype,"size",{get:function(){return u(this[y])}}),l},def:function(t,e,n){var r,i,a=w(t,e);return a?a.v=n:(t._l=a={i:i=x(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=a),r&&(r.n=a),t[y]++,"F"!==i&&(t._i[i]=a)),t},getEntry:w,setStrong:function(t,e,n){l(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?p(0,n.k):"values"==e?p(0,n.v):p(0,[n.k,n.v]):(t._t=void 0,p(1))},n?"entries":"values",!n,!0),m(e)}}},{17:17,18:18,19:19,27:27,30:30,31:31,38:38,42:42,44:44,46:46,60:60,65:65,69:69,82:82}],13:[function(t,e,n){var r=t(27),i=t(10);e.exports=function(t){return function(){if(i(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return r(this,!1,e.push,e),e}}},{10:10,27:27}],14:[function(t,e,n){"use strict";var r=t(31),i=t(60),a=t(4),o=t(38),s=t(69),u=t(27),c=t(8),l=t(30),p=t(82)("weak"),f=Object.isExtensible||o,d=c(5),h=c(6),m=0,v=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},y=function(t,e){return d(t.a,function(t){return t[0]===e})};g.prototype={get:function(t){var e=y(this,t);return e?e[1]:void 0},has:function(t){return!!y(this,t)},set:function(t,e){var n=y(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,r){var a=t(function(t,i){s(t,a,e),t._i=m++,t._l=void 0,void 0!=i&&u(i,n,t[r],t)});return i(a.prototype,{"delete":function(t){return o(t)?f(t)?l(t,p)&&l(t[p],this._i)&&delete t[p][this._i]:v(this)["delete"](t):!1},has:function(t){return o(t)?f(t)?l(t,p)&&l(t[p],this._i):v(this).has(t):!1}}),a},def:function(t,e,n){return f(a(e))?(l(e,p)||r(e,p,{}),e[p][t._i]=n):v(t).set(e,n),t},frozenStore:v,WEAK:p}},{27:27,30:30,31:31,38:38,4:4,60:60,69:69,8:8,82:82}],15:[function(t,e,n){"use strict";var r=t(29),i=t(22),a=t(61),o=t(60),s=t(27),u=t(69),c=t(38),l=t(24),p=t(43),f=t(66);e.exports=function(t,e,n,d,h,m){var v=r[t],g=v,y=h?"set":"add",b=g&&g.prototype,x={},w=function(t){var e=b[t];a(b,t,"delete"==t?function(t){return m&&!c(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return m&&!c(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!c(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof g&&(m||b.forEach&&!l(function(){(new g).entries().next()}))){var _,k=new g,E=k[y](m?{}:-0,1)!=k,S=l(function(){k.has(1)}),O=p(function(t){new g(t)});O||(g=e(function(e,n){u(e,g,t);var r=new v;return void 0!=n&&s(n,h,r[y],r),r}),g.prototype=b,b.constructor=g),m||k.forEach(function(t,e){_=1/e===-(1/0)}),(S||_)&&(w("delete"),w("has"),h&&w("get")),(_||E)&&w(y),m&&b.clear&&delete b.clear}else g=d.getConstructor(e,t,h,y),o(g.prototype,n);return f(g,t),x[t]=g,i(i.G+i.W+i.F*(g!=v),x),m||d.setStrong(g,t,h),g}},{22:22,24:24,27:27,29:29,38:38,43:43,60:60,61:61,66:66,69:69}],16:[function(t,e,n){var r=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=r)},{}],17:[function(t,e,n){var r=t(2);e.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},{2:2}],18:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],19:[function(t,e,n){e.exports=!t(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{24:24}],20:[function(t,e,n){var r=t(38),i=t(29).document,a=r(i)&&r(i.createElement);e.exports=function(t){return a?i.createElement(t):{}}},{29:29,38:38}],21:[function(t,e,n){var r=t(46);e.exports=function(t){var e=r.getKeys(t),n=r.getSymbols;if(n)for(var i,a=n(t),o=r.isEnum,s=0;a.length>s;)o.call(t,i=a[s++])&&e.push(i);return e}},{46:46}],22:[function(t,e,n){var r=t(29),i=t(16),a=t(31),o=t(61),s=t(17),u="prototype",c=function(t,e,n){var l,p,f,d,h=t&c.F,m=t&c.G,v=t&c.S,g=t&c.P,y=t&c.B,b=m?r:v?r[e]||(r[e]={}):(r[e]||{})[u],x=m?i:i[e]||(i[e]={}),w=x[u]||(x[u]={});m&&(n=e);for(l in n)p=!h&&b&&l in b,f=(p?b:n)[l],d=y&&p?s(f,r):g&&"function"==typeof f?s(Function.call,f):f,b&&!p&&o(b,l,f),x[l]!=f&&a(x,l,d),g&&w[l]!=f&&(w[l]=f)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,e.exports=c},{16:16,17:17,29:29,31:31,61:61}],23:[function(t,e,n){var r=t(83)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(i){}}return!0}},{83:83}],24:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],25:[function(t,e,n){"use strict";var r=t(31),i=t(61),a=t(24),o=t(18),s=t(83);e.exports=function(t,e,n){var u=s(t),c=""[t];a(function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})&&(i(String.prototype,t,n(o,u,c)),r(RegExp.prototype,u,2==e?function(t,e){return c.call(t,this,e)}:function(t){return c.call(t,this)}))}},{18:18,24:24,31:31,61:61,83:83}],26:[function(t,e,n){"use strict";var r=t(4);e.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{4:4}],27:[function(t,e,n){var r=t(17),i=t(40),a=t(35),o=t(4),s=t(79),u=t(84);e.exports=function(t,e,n,c){var l,p,f,d=u(t),h=r(n,c,e?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(a(d))for(l=s(t.length);l>m;m++)e?h(o(p=t[m])[0],p[1]):h(t[m]);else for(f=d.call(t);!(p=f.next()).done;)i(f,h,p.value,e)}},{17:17,35:35,4:4,40:40,79:79,84:84}],28:[function(t,e,n){var r=t(78),i=t(46).getNames,a={}.toString,o="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return i(t)}catch(e){return o.slice()}};e.exports.get=function(t){return o&&"[object Window]"==a.call(t)?s(t):i(r(t))}},{46:46,78:78}],29:[function(t,e,n){var r=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},{}],30:[function(t,e,n){var r={}.hasOwnProperty;e.exports=function(t,e){return r.call(t,e)}},{}],31:[function(t,e,n){var r=t(46),i=t(59);e.exports=t(19)?function(t,e,n){return r.setDesc(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},{19:19,46:46,59:59}],32:[function(t,e,n){e.exports=t(29).document&&document.documentElement},{29:29}],33:[function(t,e,n){e.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],34:[function(t,e,n){var r=t(11);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},{11:11}],35:[function(t,e,n){var r=t(45),i=t(83)("iterator"),a=Array.prototype;e.exports=function(t){return void 0!==t&&(r.Array===t||a[i]===t)}},{45:45,83:83}],36:[function(t,e,n){var r=t(11);e.exports=Array.isArray||function(t){return"Array"==r(t)}},{11:11}],37:[function(t,e,n){var r=t(38),i=Math.floor;e.exports=function(t){return!r(t)&&isFinite(t)&&i(t)===t}},{38:38}],38:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],39:[function(t,e,n){var r=t(38),i=t(11),a=t(83)("match");e.exports=function(t){var e;return r(t)&&(void 0!==(e=t[a])?!!e:"RegExp"==i(t))}},{11:11,38:38,83:83}],40:[function(t,e,n){var r=t(4);e.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(a){var o=t["return"];throw void 0!==o&&r(o.call(t)),a}}},{4:4}],41:[function(t,e,n){"use strict";var r=t(46),i=t(59),a=t(66),o={};t(31)(o,t(83)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=r.create(o,{next:i(1,n)}),a(t,e+" Iterator")}},{31:31,46:46,59:59,66:66,83:83}],42:[function(t,e,n){"use strict";var r=t(48),i=t(22),a=t(61),o=t(31),s=t(30),u=t(45),c=t(41),l=t(66),p=t(46).getProto,f=t(83)("iterator"),d=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",v="values",g=function(){return this};e.exports=function(t,e,n,y,b,x,w){c(n,e,y);var _,k,E=function(t){if(!d&&t in A)return A[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",O=b==v,C=!1,A=t.prototype,P=A[f]||A[h]||b&&A[b],T=P||E(b);if(P){var j=p(T.call(new t));l(j,S,!0),!r&&s(A,h)&&o(j,f,g),O&&P.name!==v&&(C=!0,T=function(){return P.call(this)})}if(r&&!w||!d&&!C&&A[f]||o(A,f,T),u[e]=T,u[S]=g,b)if(_={values:O?T:E(v),keys:x?T:E(m),entries:O?E("entries"):T},w)for(k in _)k in A||a(A,k,_[k]);else i(i.P+i.F*(d||C),e,_);return _}},{22:22,30:30,31:31,41:41,45:45,46:46,48:48,61:61,66:66,83:83}],43:[function(t,e,n){var r=t(83)("iterator"),i=!1;try{var a=[7][r]();a["return"]=function(){i=!0},Array.from(a,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var a=[7],o=a[r]();o.next=function(){n=!0},a[r]=function(){return o},t(a)}catch(s){}return n}},{83:83}],44:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],45:[function(t,e,n){e.exports={}},{}],46:[function(t,e,n){var r=Object;e.exports={create:r.create,getProto:r.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:r.getOwnPropertyDescriptor,setDesc:r.defineProperty,setDescs:r.defineProperties,getKeys:r.keys,getNames:r.getOwnPropertyNames,getSymbols:r.getOwnPropertySymbols,each:[].forEach}},{}],47:[function(t,e,n){var r=t(46),i=t(78);e.exports=function(t,e){for(var n,a=i(t),o=r.getKeys(a),s=o.length,u=0;s>u;)if(a[n=o[u++]]===e)return n}},{46:46,78:78}],48:[function(t,e,n){e.exports=!1},{}],49:[function(t,e,n){e.exports=Math.expm1||function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}},{}],50:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],51:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],52:[function(t,e,n){var r,i,a,o=t(29),s=t(75).set,u=o.MutationObserver||o.WebKitMutationObserver,c=o.process,l=o.Promise,p="process"==t(11)(c),f=function(){var t,e,n;for(p&&(t=c.domain)&&(c.domain=null,t.exit());r;)e=r.domain,n=r.fn,e&&e.enter(),n(),e&&e.exit(),r=r.next;i=void 0,t&&t.enter()};if(p)a=function(){c.nextTick(f)};else if(u){var d=1,h=document.createTextNode("");new u(f).observe(h,{characterData:!0}),a=function(){h.data=d=-d}}else a=l&&l.resolve?function(){l.resolve().then(f)}:function(){s.call(o,f)};e.exports=function(t){var e={fn:t,next:void 0,domain:p&&c.domain};i&&(i.next=e),r||(r=e,a()),i=e}},{11:11,29:29,75:75}],53:[function(t,e,n){var r=t(46),i=t(80),a=t(34);e.exports=t(24)(function(){var t=Object.assign,e={},n={},r=Symbol(),i="abcdefghijklmnopqrst";return e[r]=7,i.split("").forEach(function(t){n[t]=t}),7!=t({},e)[r]||Object.keys(t({},n)).join("")!=i})?function(t,e){for(var n=i(t),o=arguments,s=o.length,u=1,c=r.getKeys,l=r.getSymbols,p=r.isEnum;s>u;)for(var f,d=a(o[u++]),h=l?c(d).concat(l(d)):c(d),m=h.length,v=0;m>v;)p.call(d,f=h[v++])&&(n[f]=d[f]);return n}:Object.assign},{24:24,34:34,46:46,80:80}],54:[function(t,e,n){var r=t(22),i=t(16),a=t(24);e.exports=function(t,e){var n=(i.Object||{})[t]||Object[t],o={};o[t]=e(n),r(r.S+r.F*a(function(){n(1)}),"Object",o)}},{16:16,22:22,24:24}],55:[function(t,e,n){var r=t(46),i=t(78),a=r.isEnum;e.exports=function(t){return function(e){for(var n,o=i(e),s=r.getKeys(o),u=s.length,c=0,l=[];u>c;)a.call(o,n=s[c++])&&l.push(t?[n,o[n]]:o[n]);return l}}},{46:46,78:78}],56:[function(t,e,n){var r=t(46),i=t(4),a=t(29).Reflect;e.exports=a&&a.ownKeys||function(t){var e=r.getNames(i(t)),n=r.getSymbols;return n?e.concat(n(t)):e}},{29:29,4:4,46:46}],57:[function(t,e,n){"use strict";var r=t(58),i=t(33),a=t(2);e.exports=function(){for(var t=a(this),e=arguments.length,n=Array(e),o=0,s=r._,u=!1;e>o;)(n[o]=arguments[o++])===s&&(u=!0);return function(){var r,a=this,o=arguments,c=o.length,l=0,p=0;if(!u&&!c)return i(t,n,a);if(r=n.slice(),u)for(;e>l;l++)r[l]===s&&(r[l]=o[p++]);for(;c>p;)r.push(o[p++]);return i(t,r,a)}}},{2:2,33:33,58:58}],58:[function(t,e,n){e.exports=t(29)},{29:29}],59:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],60:[function(t,e,n){var r=t(61);e.exports=function(t,e){for(var n in e)r(t,n,e[n]);return t}},{61:61}],61:[function(t,e,n){var r=t(29),i=t(31),a=t(82)("src"),o="toString",s=Function[o],u=(""+s).split(o);t(16).inspectSource=function(t){return s.call(t)},(e.exports=function(t,e,n,o){"function"==typeof n&&(n.hasOwnProperty(a)||i(n,a,t[e]?""+t[e]:u.join(e+"")),n.hasOwnProperty("name")||i(n,"name",e)),t===r?t[e]=n:(o||delete t[e],i(t,e,n))})(Function.prototype,o,function(){return"function"==typeof this&&this[a]||s.call(this)})},{16:16,29:29,31:31,82:82}],62:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],63:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],64:[function(t,e,n){var r=t(46).getDesc,i=t(38),a=t(4),o=function(t,e){if(a(t),!i(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,i){try{i=t(17)(Function.call,r(Object.prototype,"__proto__").set,2),i(e,[]),n=!(e instanceof Array)}catch(a){n=!0}return function(t,e){return o(t,e),n?t.__proto__=e:i(t,e),t}}({},!1):void 0),check:o}},{17:17,38:38,4:4,46:46}],65:[function(t,e,n){"use strict";var r=t(29),i=t(46),a=t(19),o=t(83)("species");e.exports=function(t){var e=r[t];a&&e&&!e[o]&&i.setDesc(e,o,{configurable:!0,get:function(){return this}})}},{19:19,29:29,46:46,83:83}],66:[function(t,e,n){var r=t(46).setDesc,i=t(30),a=t(83)("toStringTag");e.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,a)&&r(t,a,{configurable:!0,value:e})}},{30:30,46:46,83:83}],67:[function(t,e,n){var r=t(29),i="__core-js_shared__",a=r[i]||(r[i]={});e.exports=function(t){return a[t]||(a[t]={})}},{29:29}],68:[function(t,e,n){var r=t(4),i=t(2),a=t(83)("species");e.exports=function(t,e){var n,o=r(t).constructor;return void 0===o||void 0==(n=r(o)[a])?e:i(n)}},{2:2,4:4,83:83}],69:[function(t,e,n){e.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(n+": use the 'new' operator!");return t}},{}],70:[function(t,e,n){var r=t(77),i=t(18);e.exports=function(t){return function(e,n){var a,o,s=i(e)+"",u=r(n),c=s.length;return 0>u||u>=c?t?"":void 0:(a=s.charCodeAt(u),55296>a||a>56319||u+1===c||(o=s.charCodeAt(u+1))<56320||o>57343?t?s.charAt(u):a:t?s.slice(u,u+2):(a-55296<<10)+(o-56320)+65536)}}},{18:18,77:77}],71:[function(t,e,n){var r=t(39),i=t(18);e.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return i(t)+""}},{18:18,39:39}],72:[function(t,e,n){var r=t(79),i=t(73),a=t(18);e.exports=function(t,e,n,o){var s=a(t)+"",u=s.length,c=void 0===n?" ":n+"",l=r(e);if(u>=l)return s;""==c&&(c=" ");var p=l-u,f=i.call(c,Math.ceil(p/c.length));return f.length>p&&(f=f.slice(0,p)),o?f+s:s+f}},{18:18,73:73,79:79}],73:[function(t,e,n){"use strict";var r=t(77),i=t(18);e.exports=function(t){var e=i(this)+"",n="",a=r(t);if(0>a||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(e+=e))1&a&&(n+=e);return n}},{18:18,77:77}],74:[function(t,e,n){var r=t(22),i=t(18),a=t(24),o=" \n\x0B\f\r   ᠎              \u2028\u2029\ufeff",s="["+o+"]",u="​…",c=RegExp("^"+s+s+"*"),l=RegExp(s+s+"*$"),p=function(t,e){var n={};n[t]=e(f),r(r.P+r.F*a(function(){return!!o[t]()||u[t]()!=u}),"String",n)},f=p.trim=function(t,e){return t=i(t)+"",1&e&&(t=t.replace(c,"")),2&e&&(t=t.replace(l,"")),t};e.exports=p},{18:18,22:22,24:24}],75:[function(t,e,n){var r,i,a,o=t(17),s=t(33),u=t(32),c=t(20),l=t(29),p=l.process,f=l.setImmediate,d=l.clearImmediate,h=l.MessageChannel,m=0,v={},g="onreadystatechange",y=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},b=function(t){y.call(t.data)};f&&d||(f=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},d=function(t){delete v[t]},"process"==t(11)(p)?r=function(t){p.nextTick(o(y,t,1))}:h?(i=new h,a=i.port2,i.port1.onmessage=b,r=o(a.postMessage,a,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",b,!1)):r=g in c("script")?function(t){u.appendChild(c("script"))[g]=function(){u.removeChild(this),y.call(t)}}:function(t){setTimeout(o(y,t,1),0)}),e.exports={set:f,clear:d}},{11:11,17:17,20:20,29:29,32:32,33:33}],76:[function(t,e,n){var r=t(77),i=Math.max,a=Math.min;e.exports=function(t,e){return t=r(t),0>t?i(t+e,0):a(t,e)}},{77:77}],77:[function(t,e,n){var r=Math.ceil,i=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?i:r)(t)}},{}],78:[function(t,e,n){var r=t(34),i=t(18);e.exports=function(t){return r(i(t))}},{18:18,34:34}],79:[function(t,e,n){var r=t(77),i=Math.min;e.exports=function(t){return t>0?i(r(t),9007199254740991):0}},{77:77}],80:[function(t,e,n){var r=t(18);e.exports=function(t){return Object(r(t))}},{18:18}],81:[function(t,e,n){var r=t(38);e.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},{38:38}],82:[function(t,e,n){var r=0,i=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+i).toString(36))}},{}],83:[function(t,e,n){var r=t(67)("wks"),i=t(82),a=t(29).Symbol;e.exports=function(t){return r[t]||(r[t]=a&&a[t]||(a||i)("Symbol."+t))}},{29:29,67:67,82:82}],84:[function(t,e,n){var r=t(10),i=t(83)("iterator"),a=t(45);e.exports=t(16).getIteratorMethod=function(t){return void 0!=t?t[i]||t["@@iterator"]||a[r(t)]:void 0}},{10:10,16:16,45:45,83:83}],85:[function(t,e,n){"use strict";var r,i=t(46),a=t(22),o=t(19),s=t(59),u=t(32),c=t(20),l=t(30),p=t(11),f=t(33),d=t(24),h=t(4),m=t(2),v=t(38),g=t(80),y=t(78),b=t(77),x=t(76),w=t(79),_=t(34),k=t(82)("__proto__"),E=t(8),S=t(7)(!1),O=Object.prototype,C=Array.prototype,A=C.slice,P=C.join,T=i.setDesc,j=i.getDesc,M=i.setDescs,L={};o||(r=!d(function(){return 7!=T(c("div"),"a",{get:function(){return 7}}).a}),i.setDesc=function(t,e,n){if(r)try{return T(t,e,n)}catch(i){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(h(t)[e]=n.value),t},i.getDesc=function(t,e){if(r)try{return j(t,e)}catch(n){}return l(t,e)?s(!O.propertyIsEnumerable.call(t,e),t[e]):void 0},i.setDescs=M=function(t,e){h(t);for(var n,r=i.getKeys(e),a=r.length,o=0;a>o;)i.setDesc(t,n=r[o++],e[n]);return t}),a(a.S+a.F*!o,"Object",{getOwnPropertyDescriptor:i.getDesc,defineProperty:i.setDesc,defineProperties:M});var F="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),N=F.concat("length","prototype"),R=F.length,D=function(){var t,e=c("iframe"),n=R,r=">";for(e.style.display="none",u.appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("