From 568d1fed141ae645be1140ffdcb7f8333416c254 Mon Sep 17 00:00:00 2001 From: Casey Date: Wed, 5 Jul 2023 18:28:09 -0400 Subject: [PATCH] Adds new Debris Field POI: Phoron Tanker! --- code/game/objects/items/poi_items.dm | 133 +- maps/expedition_vr/space/_debrisfield.dm | 105 ++ .../pois_vr/debris_field/_templates.dm | 12 + .../debris_field/debrisfield_things.dm | 123 ++ .../debris_field/ship_tanker_betrayed.dmm | 1267 +++++++++++++++++ 5 files changed, 1639 insertions(+), 1 deletion(-) create mode 100644 maps/submaps/pois_vr/debris_field/ship_tanker_betrayed.dmm diff --git a/code/game/objects/items/poi_items.dm b/code/game/objects/items/poi_items.dm index 2c05f0cfca..cabbbcafcd 100644 --- a/code/game/objects/items/poi_items.dm +++ b/code/game/objects/items/poi_items.dm @@ -111,4 +111,135 @@ icon_state = "yellow-1" catalogue_data = list(/datum/category_item/catalogue/information/objects/growthcanister) anchored = FALSE - density = TRUE \ No newline at end of file +<<<<<<< HEAD + density = TRUE +======= + density = TRUE + + +/obj/item/poi/broken_drone_circuit + name = "Central Processing Strata" //Ideally we spawn this as loot for robotic enemies + desc = "The pinnacle of artifical intelligence which can be achieved using classical computer science. \n \ + This one seems somewhat damaged. Perhaps a trained roboticist could extract its memories?" + catalogue_data = list(/datum/category_item/catalogue/technology/drone/drones) + icon = 'icons/obj/module.dmi' + icon_state = "mainboard" + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_DATA = 4) + var/drone_name = "" //Randomly picked unless pre-defined. Used by tool examines + var/examine_multitool = "TEST_multi - CONTACT DEV" //Read by attacking with multitool + var/examine_canalyzer = "TEST_canalyzer spoken - CONTACT DEV" //Read by attacking with cyborg analyzer. Define in New() if using vars + var/examine_canalyzer_printed = "" //If we want different formatting or more detals for printed. By default unused + var/wirecutted = FALSE + var/unscrewed = FALSE + var/unlocked = FALSE + var/fried = FALSE + var/has_paper = FALSE + + +/obj/item/poi/broken_drone_circuit/New() + drone_name = "[pick(list("ADA","DOS","GNU","MAC","WIN","NJS","SKS","DRD","IOS","CRM","IBM","TEX","LVM","BSD",))]-[rand(1000, 9999)]]" + var/new_canalyzer = "[drone_name] [examine_canalyzer]" //Only way I could think to dynamically insert drone name here + examine_canalyzer = new_canalyzer + +/obj/item/poi/broken_drone_circuit/attackby(obj/item/I as obj, mob/living/user as mob) + if(!istype(user)) + return FALSE + if(fried) + to_chat(user, span_warning("[src] is covered in black marks. You feel there's nothing more you can do...")) + return FALSE + + var/turf/message_turf = get_turf(user) //We use this to ensure everyone can see it! + if(istype(I, /obj/item/weapon/tool/screwdriver)) + unscrewed = !unscrewed + to_chat(user, "You screw the blackbox panel [unscrewed ? "off" : "on"]") + + if(istype(I, /obj/item/weapon/tool/wirecutters)) + wirecutted = !wirecutted + to_chat(user, "You [wirecutted ? "cut" : "mend"] the power wire to the blackbox") + + if(istype(I, /obj/item/weapon/paper) && unscrewed) + if(!has_paper) + to_chat(user, "You feed the debug printer some paper") + has_paper = TRUE + qdel(I) + else + to_chat(user, span_notice("[src] cannot hold more than 1 sheet of paper.")) + + if(istype(I, /obj/item/device/multitool)) + if(!unscrewed && !wirecutted) + to_chat(user, span_notice("You cannot access the debug interface with the panel screwed on!")) + else if(unscrewed && !wirecutted) + message_turf.audible_message(message = examine_multitool, + deaf_message = "[src] flashes red repeatedly", runemessage= "Beep! Beep!") + to_chat(user, span_warning("The components spark from the multitool's unregulated pulse. \ + Perhaps it'd been better to use more sophisticated tools...")) + fried = TRUE + message_turf.visible_message(message = "[src] FLASHES VIOLENTLY!", + blind_message = "ZAP!", runemessage = "CRACKLE!") + var/used_hand = user.get_organ(user.get_active_hand()) + user.electrocute_act(10,def_zone = used_hand) + else if(wirecutted) //The security circuit is accessible outside the special panel, so we don't care for screwdrivers + to_chat(user, span_notice("You modify the security settings.")) + unlocked = TRUE + + if(istype(I, /obj/item/device/robotanalyzer)) + if(!unscrewed) + to_chat(user, span_notice("You cannot access the debug interface with the panel screwed on!")) + else if(wirecutted) + to_chat(user, span_notice("You only receive garbled data. Perhaps you should reconnect the wires?")) + else if(!unlocked) + to_chat(user, span_danger("Security protocols seemingly engage, purging and bricking the circuit!\n \ + Perhaps, it would've been a good idea to disconnect some wires while pulsing the security circuit...")) + else + if(!has_paper) + message_turf.visible_message(message = "[src] displays, 'PAPER NOT BIN'", + blind_message = "you hear VERY ANGRY beeping.", runemessage = "BEEP BEEP!") + message_turf.audible_message(message = "[src] recites, \n '[examine_canalyzer]'", + deaf_message = "[src] flashes green!", runemessage= "Ping!") + else + message_turf.audible_message(message = "[src] rattles loudly as it prints", + deaf_message = "[src] flashes green!", runemessage= "RATTLE RATTLE") + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(src)) + P.name = "[drone_name] blackbox transcript" + P.info = "[examine_canalyzer_printed ? examine_canalyzer_printed : examine_canalyzer]" + has_paper = FALSE + + + return ..() + +/obj/item/poi/broken_drone_circuit/attack_self(mob/living/user as mob) + + + user.visible_message(message = "[user] is studiously examining [src]", self_message = "You take your time to analyze the circuit...") + var/message = "" + if(fried) + message += "Amidst the scorch mark, you barely make out [drone_name] stenciled on the board... \n" + to_chat(user, message) + return FALSE + else + message += "You see [drone_name] stenciled onto the board on close inspection! This looks like a secure drone intelligence strata. \n" + + + if(unlocked) + message += "The power logic to the blackbox is scorched. Whatever secrets lie in the blackbox are yours for taking! \n" + else if(wirecutted) + message += "The power wire to the blackbox has been cut. It's safe to pulse the circuit with power, the blackbox won't fry. \n" + + else if(!unscrewed && !wirecutted) + message += "The blackbox is intact, it seems to have a direct wire into the PSU. Strange... \n" + + else if(unscrewed && !wirecutted) + message += "Some manner of hardwired logic seems to connect the PSU into the databanks. There is no step-down circuit. \n \ + It looks like a single pulse will fry this system for good\n" + if(unscrewed && !has_paper) + message += "Looks like there's a printer without any paper in it." + + + if(do_after(user, delay = 5 SECONDS)) + to_chat(user, message) + + + + ..() +>>>>>>> b95be76e71... Merge pull request #15112 from Runa-Dacino/phorontanker diff --git a/maps/expedition_vr/space/_debrisfield.dm b/maps/expedition_vr/space/_debrisfield.dm index 1d6d95b427..a0d73637dc 100644 --- a/maps/expedition_vr/space/_debrisfield.dm +++ b/maps/expedition_vr/space/_debrisfield.dm @@ -96,6 +96,111 @@ name = "POI - Overrun Science Ship" requires_power = 0 +<<<<<<< HEAD +======= +/area/submap/debrisfield/phoron_tanker + name = "POI - Hijacked Phoron Tanker" + var/ic_name = "" + requires_power = 0 + has_gravity = FALSE + + +/area/submap/debrisfield/phoron_tanker/Initialize() + . = ..() + var/datum/lore/organization/O = loremaster.organizations[/datum/lore/organization/tsc/nanotrasen] + ic_name = pick(O.ship_names) + name = "NTV [ic_name]" + if(!tag) + tag = "POI_NT_TANKER_BOAT" //Can't define at compile time, this ensures the area has this if empty + if(apc) + apc.name = "[name] APC" + air_vent_names = list() + air_scrub_names = list() + air_vent_info = list() + air_scrub_info = list() + for(var/obj/machinery/alarm/AA in src) + AA.name = "[name] Air Alarm" + + +/area/submap/debrisfield/luxury_boat + secret_name = 0 + +/area/submap/debrisfield/luxury_boat/bridge + name = "Captain's Quarters" + +/area/submap/debrisfield/luxury_boat/crew + name = "Passenger Compartment" + +/area/submap/debrisfield/luxury_boat/engine + name = "Engineering" + +/area/submap/debrisfield/luxury_boat/cryo + name = "Emergency Cryopods" //Separated out based on comments on Pull Request + requires_power = 0 //Idea is to reinforce that this place SHOULD have its air retained. + +/datum/shuttle/autodock/overmap/luxury_boat + name = "Luxury Yacht" + warmup_time = 0 + current_location = "debris_field_yacht_start" + docking_controller_tag = "debris_yacht_docker" + shuttle_area = list(/area/submap/debrisfield/luxury_boat/engine, /area/submap/debrisfield/luxury_boat/cryo, /area/submap/debrisfield/luxury_boat/crew, /area/submap/debrisfield/luxury_boat/bridge) + fuel_consumption = 6 //wasteful decadent thing + defer_initialisation = TRUE + move_direction = WEST + +/obj/effect/shuttle_landmark/shuttle_initializer/luxury_boat + name = "Debris Field" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "debris_field_yacht_start" + shuttle_type = /datum/shuttle/autodock/overmap/luxury_boat + +/obj/effect/shuttle_landmark/shuttle_initializer/luxury_boat/Initialize() + var/obj/effect/overmap/visitable/O = get_overmap_sector(get_z(src)) //make this into general system some other time + LAZYINITLIST(O.initial_restricted_waypoints) + O.initial_restricted_waypoints["Luxury Yacht"] = list(landmark_tag) + . = ..() + +/obj/effect/overmap/visitable/ship/landable/luxury_boat + name = "TBD" + scanner_desc = "TBD" + vessel_mass = 20000 //10 000 is too low. It's incredibly speedy that way. This is supposed to be a crappy luxury yacht, not a racer! + vessel_size = SHIP_SIZE_SMALL + shuttle = "Luxury Yacht" + +/obj/effect/overmap/visitable/ship/landable/luxury_boat/Initialize() + . = ..() + var/datum/lore/organization/O = loremaster.organizations[/datum/lore/organization/gov/elysia] + var/newname = "ECS-T [pick(O.ship_names)]" + name = newname + scanner_desc = {"\[i\]Registration\[/i\]: [newname] +\[i\]Class\[/i\]: Private Pleasure Yacht +\[i\]Transponder\[/i\]: Transmitting (CIV), Weak Signal +\[b\]Notice\[/b\]: Reported missing."} + rename_areas(newname) + +/obj/effect/overmap/visitable/ship/landable/luxury_boat/proc/rename_areas(newname) + if(!SSshuttles.subsystem_initialized) + spawn(300) + rename_areas(newname) + return + var/datum/shuttle/S = SSshuttles.shuttles[shuttle] + for(var/area/A in S.shuttle_area) + A.name = "[newname] [initial(A.name)]" + if(A.apc) + A.apc.name = "[A.name] APC" + A.air_vent_names = list() + A.air_scrub_names = list() + A.air_vent_info = list() + A.air_scrub_info = list() + for(var/obj/machinery/alarm/AA in A) + AA.name = "[A.name] Air Alarm" + +/obj/machinery/computer/shuttle_control/explore/luxury_boat + shuttle_tag = "Luxury Yacht" + req_one_access = list() + +>>>>>>> b95be76e71... Merge pull request #15112 from Runa-Dacino/phorontanker /area/submap/debrisfield/old_sat name = "POI - Old Satellite" diff --git a/maps/submaps/pois_vr/debris_field/_templates.dm b/maps/submaps/pois_vr/debris_field/_templates.dm index 542bfd4e06..47b4e6898b 100644 --- a/maps/submaps/pois_vr/debris_field/_templates.dm +++ b/maps/submaps/pois_vr/debris_field/_templates.dm @@ -211,6 +211,11 @@ mappath = 'ship_sci_overrun.dmm' cost = 35 allow_duplicates = FALSE +/datum/map_template/debrisfield/phoron_tanker + name = "Betrayed Phoron Tanker" + mappath = 'ship_tanker_betrayed.dmm' + cost = 35 + allow_duplicates = FALSE /datum/map_template/debrisfield/oldshuttle name = "Old Expedition Shuttle" @@ -286,3 +291,10 @@ cost = 35 allow_duplicates = FALSE discard_prob = 25 + +/datum/map_template/debrisfield/phoron_tanker + name = "Betrayed Phoron Tanker" + mappath = 'ship_tanker_betrayed.dmm' + cost = 35 + allow_duplicates = FALSE + discard_prob = 25 diff --git a/maps/submaps/pois_vr/debris_field/debrisfield_things.dm b/maps/submaps/pois_vr/debris_field/debrisfield_things.dm index 7f795a25c1..f9b6bfee1a 100644 --- a/maps/submaps/pois_vr/debris_field/debrisfield_things.dm +++ b/maps/submaps/pois_vr/debris_field/debrisfield_things.dm @@ -206,3 +206,126 @@ hope nobody ever has to read this. has to find her.
\ if you do, im sorry.
\ i just hope whatever happens, she finds the mercy we werent equipped to give her.
\ The author's signature is smudged beyond recognition."} + +/mob/living/simple_mob/humanoid/merc/melee/drone/tanker_escort + name = "NED Sigma-Phi " + desc = "A rudimentary combat drone! You might recognize this as an automated gamma escort for semi-autonomous NanoTrasen vessels." + tt_desc = "Escort Gamma Drone" + tt_desc = null + health = 75 + maxHealth = 75 + ai_holder_type = /datum/ai_holder/simple_mob/merc/tanker_escort + say_list_type = /datum/say_list/merc/drone/tanker_escort + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone/tanker + loot_list = list(/obj/item/poi/broken_drone_circuit/phoron_tanker = 100, /obj/item/weapon/material/knife/tacknife = 100) + 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 + + +/mob/living/simple_mob/humanoid/merc/melee/sword/drone/tanker_escort + name = "NED Sigma-Delta " + desc = "A rudimentary combat drone! You might recognize this as an automated gamma escort for semi-autonomous NanoTrasen vessels." + tt_desc = "Escort Gamma Drone" + health = 35 // Glass cannon + maxHealth = 75 + tt_desc = null + ai_holder_type = /datum/ai_holder/simple_mob/merc/tanker_escort + say_list_type = /datum/say_list/merc/drone/tanker_escort + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone/tanker + loot_list = list(/obj/item/poi/broken_drone_circuit/phoron_tanker = 100, + /obj/item/weapon/shield/energy = 100, /obj/item/weapon/melee/energy/sword/color = 20) + 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 + +/mob/living/simple_mob/humanoid/merc/ranged/smg/drone/tanker_escort + name = "NED Rho-Phi" + desc = "A rudimentary combat drone! You might recognize this as an automated gamma escort for semi-autonomous NanoTrasen vessels." + tt_desc = "Escort Gamma Drone" + health = 100 //Max health stays same, but our guy got hit with a mateba a few times.. + ai_holder_type = /datum/ai_holder/simple_mob/merc/ranged/tanker_escort + say_list_type = /datum/say_list/merc/drone/tanker_escort + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone/tanker + loot_list = list(/obj/item/poi/broken_drone_circuit/phoron_tanker = 100, /obj/item/weapon/gun/projectile/automatic/c20r = 100) + 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 + +/obj/effect/landmark/mobcorpse/syndicatesoldier/drone/tanker + corpsesynthbrand = "NanoTrasen" + corpseidjob = "Tanker Security" + +/obj/effect/landmark/mobcorpse/syndicatesoldier/drone/tanker/generateCorpseName() + var/letter = "NED" + var/number = rand(0,999) + return "[letter]-[number] Guard Drone" + +/datum/ai_holder/simple_mob/merc/tanker_escort + threaten = FALSE //We're jumping from shadows! + +/datum/ai_holder/simple_mob/merc/ranged/tanker_escort + threaten_delay = 3 SECONDS //Bugged escort drones, we give a warning, take aim... FIRE! + +/datum/say_list/merc/drone/tanker_escort + speak = list( "Attempt Do-dock... Do-dock... Err-", + "Re-resc . . . Rescind. Rescind Tanker!", + "Evaluate Asteroid", + "Report Al-Al-Al-Al...", + "Find Fax!" + ) + say_threaten = list("INTRU-INT-INT") + say_escalate = list("Janitorial Engaged!", "Shoot to-ta-te stun!") + +/obj/item/poi/broken_drone_circuit/phoron_tanker + origin_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_DATA = 4, TECH_COMBAT = 6) + var/static/area/submap/debrisfield/phoron_tanker/tanker //Doing this to save some perf + examine_multitool = "ERR- ERR- KZZZHT \n \ + designation: kzth! \n assignment: CRACKLE \n \ + ZRRRRRRRRRRRRR \n \ + goal: RETURN HOME status: Successful \n \ + goal: PRO-PRO" + +/obj/item/poi/broken_drone_circuit/phoron_tanker/New() + drone_name = "NED-[pick(list("ADA","DOS","GNU","MAC","WIN","NJS","SKS","DRD","IOS","CRM","IBM","TEX","LVM","BSD",))]-[rand(1000, 9999)]]" + tanker = locate("POI_NT_TANKER_BOAT") //actual .dmm area has this + var/tankername = "Unknown Ship" + if(tanker) + tankername = tanker.ic_name + + examine_canalyzer = "UNIT DESIGNATION: [drone_name] \n UNIT ASSIGNMENT: [tankername] \n \ + TASKING: Accompany & Protect STATUS: INTERRUPTED \n \ + TASKING: HIJACK DETECTED STATUS: RESOLVED \n \ + TASKING: RETURN HOME STATUS: SUCCESSFULLY RETURNED TO NSB ADEGAPHIA \n \ + TASKING: WAIT HANDOFF AUTHORITY STATUS: ACTIVE" + examine_canalyzer_printed = "UNIT DESIGNATION: [drone_name]
UNIT ASSIGNMENT: [tankername]
\ + TASKING: Accompany & Protect STATUS: INTERRUPTED
\ + EVENT: POWER SURGE DETECTED
STATUS: 069 082 082 079 082
\ + DIAG: SENSORS
STATUS: 070 065 073 076
\ + EVENT: POWER SURGE DETECTED
STATUS: RESE7 COMPLEvE
\ + DIAG: SENSORS
STATUS: PPAAS
\ + TASKING: HIJACK DETECTED
STATUS: RESsOLV3D
\ + EVENT: DISCHARGE STATUS: CONfIVED
\ + DIAG: PLATING STATUS: DENtED
\ + TASKING: RETURN HOME
STATUS: S8CCeSSFULLY RETURnED tO NSB AD3GAPhIA
\ + EVENT IMPACT
STATUS: NOTE HArD DOCkING
\ + TASKING: WAIT HANDOFF AUTHORITY STATUS: 4CTIVE
\ + EVENT: TRESPAS STATUS: 3Limited" diff --git a/maps/submaps/pois_vr/debris_field/ship_tanker_betrayed.dmm b/maps/submaps/pois_vr/debris_field/ship_tanker_betrayed.dmm new file mode 100644 index 0000000000..2ccd2629ab --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/ship_tanker_betrayed.dmm @@ -0,0 +1,1267 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ah" = ( +/obj/item/stack/rods, +/obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"al" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"ar" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"aE" = ( +/obj/effect/map_effect/perma_light, +/turf/space, +/area/space) +"aF" = ( +/mob/living/simple_mob/humanoid/merc/melee/sword/drone/tanker_escort, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"ck" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/phoron_tanker) +"cM" = ( +/obj/item/stack/cable_coil, +/turf/space, +/area/space) +"dD" = ( +/obj/machinery/door/airlock/external, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"dU" = ( +/turf/simulated/wall/rplastitanium, +/area/submap/debrisfield/phoron_tanker) +"eo" = ( +/obj/structure/table/wooden_reinforced, +/obj/machinery/microwave/advanced, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"ey" = ( +/obj/item/ammo_casing/a95, +/obj/effect/decal/cleanable/blood/gibs/robot/limb, +/obj/effect/decal/cleanable/blood/oil, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"eV" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"ff" = ( +/obj/structure/lattice, +/obj/item/broken_device, +/obj/machinery/embedded_controller/radio/simple_docking_controller{ + pixel_x = 1; + pixel_y = 20 + }, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"fU" = ( +/mob/living/simple_mob/humanoid/merc/ranged/smg/drone/tanker_escort, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"gn" = ( +/obj/effect/map_effect/perma_light, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"gz" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"ht" = ( +/obj/item/stack/cable_coil, +/mob/living/simple_mob/humanoid/merc/melee/drone/tanker_escort, +/turf/simulated/mineral/floor/ignore_mapgen/cave{ + name = "asteroid"; + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"hx" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"ik" = ( +/obj/structure/meteorite, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"iD" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 10 + }, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"jx" = ( +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"jT" = ( +/obj/structure/curtain/black, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"ko" = ( +/obj/structure/lattice, +/obj/item/pipe, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"kq" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/robot_parts/head, +/obj/effect/decal/cleanable/blood/gibs/robot, +/obj/effect/decal/cleanable/blood/oil, +/obj/item/weapon/broken_gun/laserrifle, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"ky" = ( +/obj/item/stack/material/steel, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"kI" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"li" = ( +/obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"mm" = ( +/obj/item/stack/material/wood, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"mG" = ( +/obj/machinery/atmospherics/pipe/tank/phoron/full{ + dir = 4 + }, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"mP" = ( +/obj/item/weapon/card/id/event/altcard/centcom, +/obj/structure/closet/wardrobe/captain, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"ng" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 8 + }, +/obj/item/pipe, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"nn" = ( +/obj/item/ammo_casing/a95, +/obj/machinery/light/floortube/flicker, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"nJ" = ( +/obj/structure/lattice, +/obj/item/stack/material/steel, +/turf/space, +/area/space) +"ou" = ( +/turf/simulated/mineral/floor/ignore_mapgen/cave{ + name = "asteroid"; + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"ox" = ( +/obj/machinery/door/window{ + dir = 8 + }, +/obj/item/ammo_casing/a95, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"pc" = ( +/mob/living/simple_mob/humanoid/merc/melee/drone/tanker_escort, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/phoron_tanker) +"pk" = ( +/obj/machinery/door/window, +/obj/item/ammo_casing/a95, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"po" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/structure/curtain/open/shower, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"py" = ( +/turf/simulated/wall/durasteel, +/area/submap/debrisfield/phoron_tanker) +"qv" = ( +/obj/structure/window/reinforced, +/obj/structure/curtain/black, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"ro" = ( +/obj/machinery/light/small/emergency/flicker{ + dir = 8 + }, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"rt" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"sU" = ( +/obj/item/broken_device, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"sY" = ( +/obj/item/weapon/reagent_containers/food/snacks/meat, +/turf/simulated/mineral/floor/ignore_mapgen/cave{ + name = "asteroid"; + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"ta" = ( +/obj/structure/meteorite, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"tg" = ( +/obj/structure/window/reinforced, +/obj/structure/curtain/black, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"tw" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"uo" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/portables_connector, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"uF" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/simulated/mineral/floor/ignore_mapgen/cave{ + name = "asteroid"; + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"uL" = ( +/obj/tether_away_spawner/debrisfield/carp, +/turf/template_noop, +/area/space) +"uO" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8 + }, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"vs" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/phoron_tanker) +"vL" = ( +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/phoron_tanker) +"xo" = ( +/obj/structure/lattice, +/obj/item/stack/tile/floor/eris/steel, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"xx" = ( +/obj/structure/lattice, +/obj/item/pipe, +/obj/machinery/atmospherics/portables_connector, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"xF" = ( +/obj/machinery/door/airlock/external, +/turf/space, +/area/space) +"xX" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 10 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/phoron_tanker) +"yp" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/ian, +/obj/structure/closet/walllocker_double/emergency_engi/south, +/obj/machinery/light/flicker{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"yH" = ( +/obj/item/stack/rods, +/turf/space, +/area/space) +"zf" = ( +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"zi" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4 + }, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"zZ" = ( +/obj/structure/curtain/black, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"Ad" = ( +/obj/item/ammo_casing/a95, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"AV" = ( +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"AY" = ( +/obj/machinery/embedded_controller/radio/simple_docking_controller, +/turf/space, +/area/space) +"BU" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"CI" = ( +/obj/structure/lattice, +/obj/structure/meteorite, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"CW" = ( +/turf/space, +/area/space) +"DI" = ( +/obj/structure/table/wooden_reinforced, +/obj/machinery/light/flicker{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"Ea" = ( +/obj/structure/meteorite, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"Ev" = ( +/obj/item/stack/tile/floor/eris/steel, +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8 + }, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"Ex" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/phoron_tanker) +"Fb" = ( +/obj/structure/lattice, +/obj/structure/meteorite, +/obj/effect/map_effect/perma_light, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"Fi" = ( +/obj/machinery/power/apc/critical{ + dir = 1; + pixel_y = 24 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"Fl" = ( +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"Fv" = ( +/obj/structure/lattice, +/obj/item/stack/material/steel, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"Fz" = ( +/turf/simulated/mineral/ignore_mapgen{ + name = "asteroid" + }, +/area/submap/debrisfield/phoron_tanker) +"FD" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/phoron_tanker) +"FY" = ( +/obj/structure/shuttle/engine/propulsion, +/obj/item/stack/cable_coil, +/obj/item/pipe, +/turf/space, +/area/space) +"Gq" = ( +/obj/machinery/light/small/emergency/flicker{ + dir = 4 + }, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"Hk" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small/emergency/flicker, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"HV" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"HY" = ( +/obj/item/stack/rods, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"IF" = ( +/obj/item/stack/rods, +/turf/simulated/mineral/ignore_mapgen{ + name = "asteroid" + }, +/area/submap/debrisfield/phoron_tanker) +"JD" = ( +/obj/effect/map_effect/perma_light, +/turf/simulated/mineral/floor/ignore_mapgen/cave{ + name = "asteroid"; + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"JG" = ( +/obj/machinery/computer/shuttle, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"JM" = ( +/obj/item/stack/material/steel, +/turf/simulated/mineral/ignore_mapgen{ + name = "asteroid" + }, +/area/submap/debrisfield/phoron_tanker) +"KR" = ( +/obj/machinery/alarm{ + pixel_x = 1; + pixel_y = 24 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"Lr" = ( +/obj/structure/bed/chair/bay/comfy/captain, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/weapon/gun/projectile/revolver/mateba, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"LM" = ( +/obj/structure/table/wooden_reinforced, +/obj/item/modular_computer/laptop/preset/custom_loadout/elite, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"Oe" = ( +/obj/structure/lattice, +/obj/item/broken_device, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"Ok" = ( +/obj/structure/bed/chair/office/dark, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"Pi" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"QA" = ( +/obj/item/clothing/head/beret/centcom/captain, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"QC" = ( +/obj/item/stack/material/steel, +/turf/space, +/area/space) +"RX" = ( +/turf/template_noop, +/area/space) +"Sb" = ( +/obj/structure/meteorite, +/obj/machinery/light/small/emergency/flicker, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/phoron_tanker) +"SI" = ( +/obj/machinery/light/flicker{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"Tk" = ( +/obj/machinery/computer/ship/navigation, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"Tm" = ( +/obj/item/stack/tile/floor/eris/steel, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"TG" = ( +/obj/machinery/computer/ship/helm, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"TJ" = ( +/obj/machinery/door/window, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"TL" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/simulated/mineral/floor/ignore_mapgen/cave{ + name = "asteroid"; + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"Uh" = ( +/obj/machinery/atmospherics/pipe/tank/phoron/full{ + dir = 8 + }, +/turf/simulated/floor/plating/external{ + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"Vl" = ( +/obj/effect/map_effect/perma_light, +/turf/simulated/wall/rplastitanium, +/area/submap/debrisfield/phoron_tanker) +"Vr" = ( +/obj/item/broken_device, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"VD" = ( +/obj/structure/lattice, +/turf/space, +/area/submap/debrisfield/phoron_tanker) +"VW" = ( +/obj/structure/meteorite, +/turf/space, +/area/space) +"VY" = ( +/obj/structure/window/reinforced, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"XW" = ( +/obj/item/stack/material/steel, +/turf/simulated/mineral/floor/ignore_mapgen/cave{ + name = "asteroid"; + nitrogen = 0; + oxygen = 0; + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"Yp" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/space/cracked_asteroid{ + temperature = 2.7 + }, +/area/submap/debrisfield/phoron_tanker) +"YI" = ( +/obj/structure/window/reinforced, +/obj/machinery/light/floortube/flicker, +/turf/simulated/floor/tiled/techfloor, +/area/submap/debrisfield/phoron_tanker) +"Zk" = ( +/obj/structure/curtain/black, +/turf/simulated/wall, +/area/submap/debrisfield/phoron_tanker) +"Zv" = ( +/obj/item/stack/cable_coil, +/turf/template_noop, +/area/space) +"ZQ" = ( +/turf/space, +/area/submap/debrisfield/phoron_tanker) + +(1,1,1) = {" +uL +RX +RX +RX +RX +RX +RX +RX +RX +RX +RX +RX +RX +RX +FY +CW +RX +RX +RX +"} +(2,1,1) = {" +VD +ng +CW +CW +CW +CW +CW +CW +CW +CW +CW +CW +CW +CW +CW +CW +RX +RX +RX +"} +(3,1,1) = {" +VD +VD +al +uO +uO +uO +uO +uO +uO +uO +uO +uO +uO +VD +aE +CW +RX +RX +RX +"} +(4,1,1) = {" +QC +cM +Uh +Uh +Uh +Uh +Uh +Uh +Uh +Uh +Uh +Uh +Uh +VD +nJ +yH +RX +RX +RX +"} +(5,1,1) = {" +CW +VD +dU +dU +dU +dU +dU +dU +dU +dU +dU +dU +dU +ZQ +CW +CW +CW +yH +CW +"} +(6,1,1) = {" +Oe +VD +ro +VD +Fl +Fl +Fl +ro +Fl +Fl +ZQ +Fl +Fl +VD +VD +VD +CW +CW +AY +"} +(7,1,1) = {" +VD +Fb +VD +sU +Fl +Fl +Fl +Fl +CI +Fl +Fl +Fl +VD +VD +rt +VD +gn +Fz +Fz +"} +(8,1,1) = {" +VD +VD +Fl +Fl +Fl +sU +VD +Fl +ik +Fl +Fl +Fl +Gq +VD +VD +VD +Yp +Yp +Fz +"} +(9,1,1) = {" +VD +Oe +dU +dU +dU +dU +dU +dU +dU +dU +dU +CW +dU +ZQ +Tm +Fz +TL +ou +Fz +"} +(10,1,1) = {" +RX +QC +mG +mG +mG +mG +mG +ik +mG +mG +mG +VW +mG +Fz +Fz +Fz +ou +Fz +Fz +"} +(11,1,1) = {" +Zv +CW +iD +zi +zi +zi +zi +zi +zi +zi +zi +CW +zi +Fz +ht +ou +ou +Fz +CW +"} +(12,1,1) = {" +RX +CW +CW +CW +CW +CW +CW +CW +CW +CW +CW +CW +CW +Fz +Fz +Fz +zf +Fz +CW +"} +(13,1,1) = {" +RX +CW +ta +Fz +Fz +dU +dU +dU +VD +VD +VD +dU +dU +dU +CW +CW +gn +cM +CW +"} +(14,1,1) = {" +RX +zf +JD +ah +Fz +ck +ck +ck +ck +VD +ck +ck +Ex +dU +CW +QC +VW +VW +xF +"} +(15,1,1) = {" +ZQ +HY +sY +mm +Fz +py +py +py +py +py +py +py +xX +tw +HV +VW +yH +CW +CW +"} +(16,1,1) = {" +ZQ +li +mm +Fz +Fz +DI +eo +tg +zZ +Pi +po +py +vL +dU +Fz +Fz +gn +Fz +yH +"} +(17,1,1) = {" +Ea +Fz +Fz +Fz +BU +jx +Ok +tg +zZ +jx +Hk +py +aF +dU +Fz +Yp +zf +Fz +CW +"} +(18,1,1) = {" +Fz +Fz +FD +py +kI +TJ +kI +qv +zZ +jT +zZ +py +Sb +dU +Fz +TL +ou +Fz +CW +"} +(19,1,1) = {" +VD +VD +CI +py +Tk +QA +eV +jx +ar +ox +kq +py +xo +VD +Vr +TL +ou +Fz +Fz +"} +(20,1,1) = {" +VD +VD +Fv +py +TG +Lr +AV +AV +Ad +ey +nn +dD +Oe +Vr +hx +uF +XW +ou +Fz +"} +(21,1,1) = {" +VD +CI +VD +py +JG +AV +jx +eV +kI +kI +pk +py +ff +VD +zf +ou +ou +ou +Fz +"} +(22,1,1) = {" +RX +dU +FD +py +KR +AV +jx +YI +Zk +zZ +zZ +py +Fl +dU +Fz +ou +ou +Fz +Fz +"} +(23,1,1) = {" +RX +dU +FD +py +Fi +AV +jx +VY +Zk +LM +gz +py +pc +dU +Fz +Fz +Fz +Fz +CW +"} +(24,1,1) = {" +RX +dU +FD +py +fU +SI +jx +VY +Zk +mP +yp +py +vL +dU +zf +RX +RX +RX +RX +"} +(25,1,1) = {" +RX +dU +FD +py +py +py +py +py +py +py +py +py +vs +Fl +zf +RX +RX +RX +RX +"} +(26,1,1) = {" +RX +dU +xX +ck +ck +ck +tw +Ev +ck +ck +ck +vL +VD +CI +ky +RX +RX +RX +RX +"} +(27,1,1) = {" +RX +Vl +dU +dU +dU +dU +dU +VD +dU +dU +dU +dU +VD +HY +ky +RX +RX +RX +RX +"} +(28,1,1) = {" +uL +RX +RX +RX +VD +ko +xx +VD +VD +VD +ko +uo +IF +JM +dU +RX +RX +RX +RX +"}