From b3b4f4b9c6fdf591d4baf56c97891cd6c727e951 Mon Sep 17 00:00:00 2001 From: Batrachophreno Date: Sun, 5 Oct 2025 16:13:06 -0400 Subject: [PATCH] INDRA, general nuclear fusion update (#21285) Fixes https://github.com/Aurorastation/Aurora.3/issues/18951 Fixes https://github.com/Aurorastation/Aurora.3/issues/19447 Fixes https://github.com/Aurorastation/Aurora.3/issues/20283 Fixes https://github.com/Aurorastation/Aurora.3/issues/21395 Overhauls a wide variety of INDRA behaviors and related gas/material properties. changes: - balance: "Fusion reaction modifications. Higher radiation and temperature output, comparable power output." - balance: "Increased rad resistance modifier of Borosilicate Windows from 1 -> 4 and (closed) Blast Doors from 1 -> 6." - balance: "INDRA Field Strength minima/maxima changed from 1-100 -> 20-120. Power costs increased significantly." - balance: "INDRA instability increase per tick now limited, similar to Supermatter (prevents sudden instability spike from instantly nuking it)." - balance: "APC cell charge rate increased 10x." - balance: "Rebalanced contents of INDRA hard storage compartment." - balance: "SMES coils capacities halved, throughputs doubled." - balance: "SMES unit maximum coil capacity increased from 6 -> 8." - balance: "TEG maximum power output increased from 500000 -> 2500000." - balance: "Power wasted from exceeding TEG maximum power output decreased from 50% to 33%." - balance: "Portable generators of all types have had their power generation capacity doubled." - rscadd: "New 'Fusion Codex' app added for all crew with ACCESS_ENGINE that details all available nuclear fusion chains." - rscadd: "Boron added as a singleton/reagent. Poisonous to vaurca, still usable in nuclear fusion as fuel assembly rods." - rscadd: "INDRA Field Strength now scales plasma temperature entropy, power output from temperature multiplier, and instability increase per tick." - refactor: "'Boron' gas renamed to 'Helium-3'. Boron is not a gas. Deal with it." - refactor: "'Steam' gas renamed to 'Water Vapor'." - code_imp: "Descriptions added to gas singletons for future use." - qol: "Minor remap of INDRA control room for usability." - qol: "Standardized gas canister naming conventions." - qol: "INDRA and APC TGUI interfaces now use use kW, MW abbreviations for high wattages." - bugfix: "INDRA Kinetic Harvester no longer rapidly deselects materials for harvest when too many are being generated at once." - bugfix: "INDRA EM Field effect no longer considers the camera within its reactor chamber a destabilizing influence." - bugfix: "INDRA reactor core now produces radiation as intended." - bugfix: "Deuterium and Tritium canisters no longer contain 50% standard hydrogen (inheritance issue)." --------- Signed-off-by: Batrachophreno Co-authored-by: Matt Atlas Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com> --- aurorastation.dme | 1 + code/__DEFINES/atmos.dm | 8 +- code/__DEFINES/machinery.dm | 2 + code/__DEFINES/materials.dm | 3 +- code/__DEFINES/mining.dm | 2 +- .../subsystems/initialization/codex.dm | 106 +- code/defines/gases.dm | 90 +- code/game/machinery/atmo_control.dm | 26 +- code/game/machinery/atmoalter/canister.dm | 121 +- code/game/machinery/atmoalter/scrubber.dm | 2 +- code/game/machinery/bluespace_drive.dm | 45 +- code/game/machinery/doors/blast_door.dm | 1 + code/game/machinery/machinery.dm | 16 +- .../machinery/telecomms/telecommunications.dm | 2 +- code/game/objects/items/weapons/manuals.dm | 128 +- .../game/objects/items/weapons/power_cells.dm | 22 +- code/game/objects/random/tech.dm | 4 +- code/game/objects/structures/window.dm | 4 + .../components/omni_devices/_omni_extras.dm | 10 +- .../components/omni_devices/filter.dm | 14 +- .../components/unary/vent_scrubber.dm | 16 +- code/modules/cargo/exports/materials.dm | 2 +- code/modules/cargo/items/atmos.dm | 14 +- code/modules/custom_ka/cells.dm | 2 +- .../integrated_electronics/subtypes/input.dm | 54 +- code/modules/materials/material_sheets.dm | 11 + code/modules/materials/materials.dm | 9 + .../mob/living/silicon/robot/items/gripper.dm | 3 +- .../file_system/programs/app_presets_.dm | 1 + .../programs/engineering/fusion_codex.dm | 26 + code/modules/overmap/exoplanets/exoplanet.dm | 2 +- code/modules/power/apc.dm | 12 +- .../power/fusion/consoles/_consoles.dm | 6 +- .../power/fusion/consoles/core_control.dm | 12 +- .../power/fusion/consoles/gyrotron_control.dm | 4 +- code/modules/power/fusion/core/_core.dm | 26 +- code/modules/power/fusion/core/core_field.dm | 410 +- .../fusion/fuel_assembly/fuel_assembly.dm | 6 + code/modules/power/fusion/fusion_reactions.dm | 342 +- .../modules/power/fusion/kinetic_harvester.dm | 7 +- code/modules/power/generator.dm | 6 +- code/modules/power/portgen.dm | 8 +- code/modules/power/power.dm | 21 + code/modules/power/rtg.dm | 4 +- code/modules/power/sensors/powernet_sensor.dm | 41 +- .../particle_accelerator/particle.dm | 4 +- code/modules/power/smes.dm | 74 +- code/modules/power/smes_construction.dm | 119 +- .../Chemistry-Reagents-Dispenser.dm | 17 + code/modules/shieldgen/shield_capacitor.dm | 2 +- code/modules/xgm/xgm_gas_data.dm | 17 +- html/changelogs/bat-indraupdate.yml | 36 + icons/obj/atmos.dmi | Bin 31148 -> 32821 bytes icons/obj/library.dmi | Bin 70051 -> 70042 bytes .../away_site/hivebot_hub/hivebot_hub.dmm | 50 +- .../tirakqi_smuggler/tirakqi_smuggler.dmm | 5 +- .../biesel/abandoned_warehouse_2.dmm | 2 +- .../areas/horizon_areas_engineering.dm | 6 +- maps/sccv_horizon/sccv_horizon.dmm | 5047 +++++++++-------- .../submaps/ops_warehouse_small_storage.dmm | 40 +- tgui/packages/tgui/interfaces/Apc.tsx | 12 +- tgui/packages/tgui/interfaces/FusionCodex.tsx | 137 + .../tgui/interfaces/FusionCoreControl.tsx | 185 +- .../tgui/interfaces/FusionGyrotronControl.tsx | 8 +- .../tgui/interfaces/FusionInjectorControl.tsx | 2 +- tgui/public/tgui.bundle.js | 2 +- 66 files changed, 4375 insertions(+), 3042 deletions(-) create mode 100644 code/modules/modular_computers/file_system/programs/engineering/fusion_codex.dm create mode 100644 html/changelogs/bat-indraupdate.yml create mode 100644 tgui/packages/tgui/interfaces/FusionCodex.tsx diff --git a/aurorastation.dme b/aurorastation.dme index 7637a5ccc7a..5201d8961ba 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -2975,6 +2975,7 @@ #include "code\modules\modular_computers\file_system\programs\command\teleporter.dm" #include "code\modules\modular_computers\file_system\programs\engineering\_engineering.dm" #include "code\modules\modular_computers\file_system\programs\engineering\atmoscontrol.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\fusion_codex.dm" #include "code\modules\modular_computers\file_system\programs\engineering\lightingcontrol.dm" #include "code\modules\modular_computers\file_system\programs\engineering\powermonitor.dm" #include "code\modules\modular_computers\file_system\programs\engineering\rcon.dm" diff --git a/code/__DEFINES/atmos.dm b/code/__DEFINES/atmos.dm index a95de10357c..2e37835ad17 100644 --- a/code/__DEFINES/atmos.dm +++ b/code/__DEFINES/atmos.dm @@ -77,9 +77,13 @@ #define LIQUIDFUEL_AMOUNT_TO_MOL 0.45 //mol/volume unit // XGM gas flags. +/// Used by combustion reactions. #define XGM_GAS_FUEL 1 +/// Used by combustion reactions. #define XGM_GAS_OXIDIZER 2 +/// Attaches itself to certain objects/atoms. #define XGM_GAS_CONTAMINANT 4 +/// Used by nuclear fusion reactions. #define XGM_GAS_FUSION_FUEL 8 #define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) // Tank starts leaking. @@ -118,13 +122,13 @@ #define GAS_PHORON "phoron" #define GAS_HYDROGEN "hydrogen" #define GAS_ALIEN "aliether" -#define GAS_STEAM "water" +#define GAS_WATERVAPOR "water_vapor" #define GAS_SULFUR "sulfur_dioxide" #define GAS_CHLORINE "chlorine" #define GAS_HELIUM "helium" +#define GAS_HELIUMFUEL "helium-3" #define GAS_DEUTERIUM "deuterium" #define GAS_TRITIUM "tritium" -#define GAS_BORON "boron" #define GAS_HEAT "heat" //Not a real gas, used for visual effects #define GAS_COLD "cold" //Not a real gas, used for visual effects diff --git a/code/__DEFINES/machinery.dm b/code/__DEFINES/machinery.dm index ab24920d62f..dae9b61f55c 100644 --- a/code/__DEFINES/machinery.dm +++ b/code/__DEFINES/machinery.dm @@ -24,6 +24,8 @@ #define POWER_USE_ACTIVE 2 // Bitflags for machine stat variable. +// These definitions are copypasted in the dmdocs in 'code/game/machinery.dm' so they can be easily referenced by checking the 'stat' variable. +// SO THAT MEANS IF YOU UPDATE THEM HERE, UPDATE THEM THERE FOR VISIBILITY! #define BROKEN 0x1 #define NOPOWER 0x2 #define POWEROFF 0x4 // TBD. diff --git a/code/__DEFINES/materials.dm b/code/__DEFINES/materials.dm index cbcf58270d8..68d6d99bd46 100644 --- a/code/__DEFINES/materials.dm +++ b/code/__DEFINES/materials.dm @@ -27,7 +27,7 @@ #define MATERIAL_DIONA "biomass" #define MATERIAL_VAURCA "alien biomass" #define MATERIAL_TRITIUM "tritium" -#define MATERIAL_HYDROGEN_METALLIC "mhydrogen" +#define MATERIAL_HYDROGEN_METALLIC "metallic hydrogen" #define MATERIAL_ELEVATOR "elevatorium" #define MATERIAL_SHUTTLE "shuttle" #define MATERIAL_SHUTTLE_SKRELL "skrell" @@ -38,6 +38,7 @@ #define MATERIAL_SUPERMATTER "supermatter" #define MATERIAL_ALUMINIUM "aluminium" #define MATERIAL_LEAD "lead" +#define MATERIAL_BORON "boron" // Leathers and related. #define MATERIAL_RESIN "resin" diff --git a/code/__DEFINES/mining.dm b/code/__DEFINES/mining.dm index 3edb4a932db..18dc61c67a9 100644 --- a/code/__DEFINES/mining.dm +++ b/code/__DEFINES/mining.dm @@ -7,6 +7,6 @@ #define ORE_GOLD "gold" #define ORE_DIAMOND "diamond" #define ORE_PLATINUM "platinum" -#define ORE_HYDROGEN "mhydrogen" +#define ORE_HYDROGEN "metallic hydrogen" #define ORE_BAUXITE "aluminium" #define ORE_GALENA "lead" diff --git a/code/controllers/subsystems/initialization/codex.dm b/code/controllers/subsystems/initialization/codex.dm index e1043efb0c5..ab014562b0b 100644 --- a/code/controllers/subsystems/initialization/codex.dm +++ b/code/controllers/subsystems/initialization/codex.dm @@ -4,13 +4,17 @@ SUBSYSTEM_DEF(codex) flags = SS_NO_FIRE init_order = INIT_ORDER_CODEX - /// List of cooking recipes, their result and ingredients. + /// List of cooking recipes and associated data. var/list/cooking_codex_data = list() + /// List of chemistry/reagent reactions and associated data. var/list/chemistry_codex_data = list() var/list/chemistry_codex_ignored_reaction_path = list(/datum/chemical_reaction/slime) var/list/chemistry_codex_ignored_result_path = list(/singleton/reagent/drink, /singleton/reagent/alcohol) + /// List of fusion reactions and associated data. + var/list/fusion_codex_data = list() + /datum/controller/subsystem/codex/Initialize() //We don't build the codex in fastboot, it's slow and kind of pointless for tests if(GLOB.config.fastboot) @@ -19,19 +23,20 @@ SUBSYSTEM_DEF(codex) else generate_cooking_codex() generate_chemistry_codex() - log_subsystem_codex("SScodex: [length(cooking_codex_data)] cooking recipes; [length(chemistry_codex_data)] chemistry recipes.") + generate_fusion_codex() + log_subsystem_codex("SScodex: [length(cooking_codex_data)] cooking recipes; [length(chemistry_codex_data)] chemistry recipes; [length(fusion_codex_data)] fusion recipes;") return SS_INIT_SUCCESS /datum/controller/subsystem/codex/proc/generate_cooking_codex() var/list/available_recipes = GET_SINGLETON_SUBTYPE_MAP(/singleton/recipe) - for (var/recipe_path in available_recipes) - var/singleton/recipe/recipe = GET_SINGLETON(recipe_path) - var/list/recipe_data = list() + for (var/reaction_path in available_recipes) + var/singleton/recipe/recipe = GET_SINGLETON(reaction_path) + var/list/cookingRecipeData = list() // result var/obj/item/recipe_result = recipe.result - recipe_data["result"] = initial(recipe_result.name) + cookingRecipeData["result"] = initial(recipe_result.name) // result image var/icon/result_icon = icon( @@ -39,42 +44,42 @@ SUBSYSTEM_DEF(codex) icon_state=initial(recipe_result.icon_state), frame=1, ) - recipe_data["result_image"] = icon2base64(result_icon) + cookingRecipeData["result_image"] = icon2base64(result_icon) // ingredients - recipe_data["ingredients"] = list() + cookingRecipeData["ingredients"] = list() // ingredients, items if(recipe.items) for(var/ingredient_path in recipe.items) var/obj/item/ingredient = ingredient_path - recipe_data["ingredients"] += initial(ingredient.name) + cookingRecipeData["ingredients"] += initial(ingredient.name) // ingredients, fruits if(recipe.fruit) for(var/fruit_name in recipe.fruit) var/count = recipe.fruit[fruit_name] - recipe_data["ingredients"] += "[count]x [fruit_name]" + cookingRecipeData["ingredients"] += "[count]x [fruit_name]" // ingredients, reagents if(recipe.reagents) for(var/reagent_path in recipe.reagents) var/count = recipe.reagents[reagent_path] var/singleton/reagent/reagent = GET_SINGLETON(reagent_path) - recipe_data["ingredients"] += "[count]u [reagent.name]" + cookingRecipeData["ingredients"] += "[count]u [reagent.name]" // coating if(recipe.coating) var/singleton/reagent/reagent = GET_SINGLETON(recipe.coating) - recipe_data["ingredients"] += "[reagent.name] coating" + cookingRecipeData["ingredients"] += "[reagent.name] coating" // kitchen appliance if(recipe.appliance) - recipe_data["appliances"] = recipe.get_appliance_names() + cookingRecipeData["appliances"] = recipe.get_appliance_names() // fin - recipe_data["ingredients"] = english_list(recipe_data["ingredients"]) - cooking_codex_data += list(recipe_data) + cookingRecipeData["ingredients"] = english_list(cookingRecipeData["ingredients"]) + cooking_codex_data += list(cookingRecipeData) /datum/controller/subsystem/codex/proc/generate_chemistry_codex() chemistry_codex_data = list() @@ -87,40 +92,89 @@ SUBSYSTEM_DEF(codex) if(chemistry_codex_ignored_result_path && is_path_in_list(CR.result, chemistry_codex_ignored_result_path)) continue var/singleton/reagent/R = GET_SINGLETON(CR.result) - var/reactionData = list(id = CR.id) - reactionData["result"] = list( + var/chemistryReactionData = list(id = CR.id) + chemistryReactionData["result"] = list( name = R.name, description = R.description, amount = CR.result_amount ) - reactionData["reagents"] = list() + chemistryReactionData["reagents"] = list() for(var/reagent in CR.required_reagents) var/singleton/reagent/required_reagent = reagent - reactionData["reagents"] += list(list( + chemistryReactionData["reagents"] += list(list( name = initial(required_reagent.name), amount = CR.required_reagents[reagent] )) - reactionData["catalysts"] = list() + chemistryReactionData["catalysts"] = list() for(var/reagent_path in CR.catalysts) var/singleton/reagent/required_reagent = reagent_path - reactionData["catalysts"] += list(list( + chemistryReactionData["catalysts"] += list(list( name = initial(required_reagent.name), amount = CR.catalysts[reagent_path] )) - reactionData["inhibitors"] = list() + chemistryReactionData["inhibitors"] = list() for(var/reagent_path in CR.inhibitors) var/singleton/reagent/required_reagent = reagent_path var/inhibitor_amount = CR.inhibitors[reagent_path] ? CR.inhibitors[reagent_path] : "Any" - reactionData["inhibitors"] += list(list( + chemistryReactionData["inhibitors"] += list(list( name = initial(required_reagent.name), amount = inhibitor_amount )) - reactionData["temp_min"] = CR.required_temperature_min + chemistryReactionData["temp_min"] = CR.required_temperature_min - reactionData["temp_max"] = CR.required_temperature_max + chemistryReactionData["temp_max"] = CR.required_temperature_max - chemistry_codex_data += list(reactionData) + chemistry_codex_data += list(chemistryReactionData) + +/// Generate a list of all fusion reaction fusion_reactions, then populate the codex from that list. +/datum/controller/subsystem/codex/proc/generate_fusion_codex() + fusion_codex_data = list() + var/list/available_fusion_reactions = GET_SINGLETON_SUBTYPE_MAP(/singleton/fusion_reaction) + for (var/reaction_path in available_fusion_reactions) + var/singleton/fusion_reaction/fusion_reaction = GET_SINGLETON(reaction_path) + var/list/fusionReactionData = list() + + var/reaction_name = fusion_reaction.name + if(!reaction_name) + reaction_name = capitalize_first_letters(fusion_reaction.p_react) + "-" + capitalize_first_letters(fusion_reaction.s_react) + + fusionReactionData["name"] = reaction_name + + fusionReactionData["reactants"] = list() + + if(fusion_reaction.p_react == fusion_reaction.s_react) + fusionReactionData["reactants"] += list(list( + name = capitalize_first_letters(fusion_reaction.p_react), + amount = 2 + )) + + else + fusionReactionData["reactants"] += list(list( + name = capitalize_first_letters(fusion_reaction.p_react), + amount = 1 + )) + fusionReactionData["reactants"] += list(list( + name = capitalize_first_letters(fusion_reaction.s_react), + amount = 1 + )) + + fusionReactionData["minimum_temp"] += fusion_reaction.minimum_energy_level + + fusionReactionData["energy_consumption"] += fusion_reaction.energy_consumption + fusionReactionData["energy_production"] += fusion_reaction.energy_production + + fusionReactionData["radiation"] += fusion_reaction.radiation + fusionReactionData["instability"] += fusion_reaction.instability + + fusionReactionData["products"] = list() + for(var/product in fusion_reaction.products) + fusionReactionData["products"] += list(list( + name = capitalize_first_letters(product), + amount = fusion_reaction.products[product] + )) + + fusion_codex_data += list(fusionReactionData) diff --git a/code/defines/gases.dm b/code/defines/gases.dm index 3d62ffca155..2bb324645b8 100644 --- a/code/defines/gases.dm +++ b/code/defines/gases.dm @@ -1,6 +1,7 @@ /singleton/xgm_gas/oxygen id = GAS_OXYGEN name = "Oxygen" + desc = "The gas most life forms need to be able to survive. The most famous oxidizer." specific_heat = 20 // J/(mol*K) molar_mass = 0.032 // kg/mol @@ -9,19 +10,21 @@ /singleton/xgm_gas/nitrogen id = GAS_NITROGEN name = "Nitrogen" + desc = "A very common, largely inert gas commonly used as a buffer gas to pad artificial atmospheres to habitable pressures." specific_heat = 20 // J/(mol*K) molar_mass = 0.028 // kg/mol /singleton/xgm_gas/carbon_dioxide id = GAS_CO2 name = "Carbon Dioxide" + desc = "What the fuck is carbon dioxide?" specific_heat = 30 // J/(mol*K) molar_mass = 0.044 // kg/mol /singleton/xgm_gas/phoron id = GAS_PHORON name = "Phoron" - + desc = "A highly toxic, highly flammable, and extremely rare substance with curious, nigh-miraculous properties. More precious and more deadly than even time." //Note that this has a significant impact on TTV yield. //Because it is so high, any leftover phoron soaks up a lot of heat and drops the yield pressure. specific_heat = 200 // J/(mol*K) @@ -39,6 +42,7 @@ /singleton/xgm_gas/hydrogen id = GAS_HYDROGEN name = "Hydrogen" + desc = "A highly flammable gas. Starstuff. 75% of the universe is made of this." specific_heat = 100 molar_mass = 0.002 flags = XGM_GAS_FUEL|XGM_GAS_FUSION_FUEL @@ -46,6 +50,7 @@ /singleton/xgm_gas/sleeping_agent id = GAS_N2O name = "Nitrous Oxide" + desc = "Causes drowsiness, euphoria, and eventually unconsciousness." specific_heat = 40 // J/(mol*K) molar_mass = 0.044 // kg/mol. N2O tile_overlay = "sleeping_agent" @@ -55,22 +60,67 @@ /singleton/xgm_gas/hydrogen/deuterium id = GAS_DEUTERIUM name = "Deuterium" + desc = "A stable isotope of hydrogen. That extra neutron is damned handy for low-temperature fusion reactions." specific_heat = 80 molar_mass = 0.004 /singleton/xgm_gas/hydrogen/tritium id = GAS_TRITIUM name = "Tritium" + desc = "An unstable (radioactive), short-lived isotope of hydrogen. Supremely useful as a fuel source for nuclear fusion. Don't breathe this." molar_mass = 0.006 specific_heat = 60 /singleton/xgm_gas/helium id = GAS_HELIUM name = "Helium" + desc = "An inert gas that makes your voice squeaky. This is Helium-4, the commonplace stuff. Its lightweight cousin, Helium-3, is ten-thousand times rarer." specific_heat = 80 // J/(mol*K) molar_mass = 0.004 // kg/mol flags = XGM_GAS_FUSION_FUEL +/singleton/xgm_gas/heliumfuel + id = GAS_HELIUMFUEL + name = "Helium-3" + desc = "Helium-3 is a stable helium isotope valued for its use in fusion power; it fuses without dangerous neutron radiation and at much lower temperatures. Insanely valuable." + specific_heat = 80 // J/(mol*K) + molar_mass = 0.003 // kg/mol + flags = XGM_GAS_FUSION_FUEL + +/singleton/xgm_gas/vapor + id = GAS_WATERVAPOR + name = "Water Vapor" + desc = "Water, in gas form. Slippery when it condenses on the floor. Hurts a LOT if its hot steam." + tile_overlay = "generic" + overlay_limit = 0.5 + specific_heat = 30 // J/(mol*K) + molar_mass = 0.020 // kg/mol + +/singleton/xgm_gas/sulfurdioxide + id = GAS_SULFUR + name = "Sulfur Dioxide" + desc = "Volcano breath. Also the smell of burnt matches. Venus' atmosphere is full of this stuff." + specific_heat = 30 // J/(mol*K) + molar_mass = 0.044 // kg/mol + +/singleton/xgm_gas/chlorine + id = GAS_CHLORINE + name = "Chlorine" + desc = "Fucks up your lungs AND your eyes AND your skin. Maybe try to avoid it." + tile_color = "#c5f72d" + tile_overlay = "chlorine" + overlay_limit = 0.5 + specific_heat = 5 // J/(mol*K) + molar_mass = 0.017 // kg/mol + flags = XGM_GAS_CONTAMINANT + +/singleton/xgm_gas/nitrogendioxide + id = GAS_NO2 + name = "Nitrogen Dioxide" + desc = "A byproduct of a dozen and more critical chemical industrial processes. Pollution." + specific_heat = 33 // J/(mol*K) + molar_mass = 0.046 // kg/mol + /singleton/xgm_gas/alium id = GAS_ALIEN name = "Aliether" @@ -90,41 +140,3 @@ if(prob(50)) tile_color = RANDOM_RGB overlay_limit = 0.5 - -/singleton/xgm_gas/vapor - id = GAS_STEAM - name = "Steam" - tile_overlay = "generic" - overlay_limit = 0.5 - specific_heat = 30 // J/(mol*K) - molar_mass = 0.020 // kg/mol - -/singleton/xgm_gas/sulfurdioxide - id = GAS_SULFUR - name = "Sulfur Dioxide" - - specific_heat = 30 // J/(mol*K) - molar_mass = 0.044 // kg/mol - -/singleton/xgm_gas/chlorine - id = GAS_CHLORINE - name = "Chlorine" - tile_color = "#c5f72d" - tile_overlay = "chlorine" - overlay_limit = 0.5 - specific_heat = 5 // J/(mol*K) - molar_mass = 0.017 // kg/mol - flags = XGM_GAS_CONTAMINANT - -/singleton/xgm_gas/boron - id = GAS_BORON - name = "Boron" - specific_heat = 11 - molar_mass = 0.011 - flags = XGM_GAS_FUSION_FUEL - -/singleton/xgm_gas/nitrogendioxide - id = GAS_NO2 - name = "Nitrogen Dioxide" - specific_heat = 33 // J/(mol*K) - molar_mass = 0.046 // kg/mol diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index 2d8656e00fb..c7426ccc243 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -7,11 +7,11 @@ #define SIGNAL_HELIUM 64 #define SIGNAL_DEUTERIUM 128 #define SIGNAL_TRITIUM 256 -#define SIGNAL_BORON 512 +#define SIGNAL_HELIUMFUEL 512 #define SIGNAL_SULFUR_DIOXIDE 1024 #define SIGNAL_NITROGEN_DIOXIDE 2048 #define SIGNAL_CHLORINE 4096 -#define SIGNAL_STEAM 8192 +#define SIGNAL_WATERVAPOR 8192 /obj/machinery/air_sensor name = "gas sensor" @@ -39,11 +39,11 @@ // 64 for helium concentration // 128 for deuterium concentration // 256 for tritium concentration - // 512 for boron concentration + // 512 for helium-3 concentration // 1024 for sulfur dioxide concentration // 2048 for nitrogen dioxide concentration // 4096 for chlorine concentration - // 8192 for steam concentration + // 8192 for water vapor concentration var/datum/radio_frequency/radio_connection @@ -85,16 +85,16 @@ signal.data[GAS_DEUTERIUM] = round(100*air_sample.gas[GAS_DEUTERIUM]/total_moles,0.1) if(output&SIGNAL_TRITIUM) signal.data[GAS_TRITIUM] = round(100*air_sample.gas[GAS_TRITIUM]/total_moles,0.1) - if(output&SIGNAL_BORON) - signal.data[GAS_BORON] = round(100*air_sample.gas[GAS_BORON]/total_moles,0.1) + if(output&SIGNAL_HELIUMFUEL) + signal.data[GAS_HELIUMFUEL] = round(100*air_sample.gas[GAS_HELIUMFUEL]/total_moles,0.1) if(output&SIGNAL_SULFUR_DIOXIDE) signal.data[GAS_SULFUR] = round(100*air_sample.gas[GAS_SULFUR]/total_moles,0.1) if(output&SIGNAL_NITROGEN_DIOXIDE) signal.data[GAS_NO2] = round(100*air_sample.gas[GAS_NO2]/total_moles,0.1) if(output&SIGNAL_CHLORINE) signal.data[GAS_CHLORINE] = round(100*air_sample.gas[GAS_CHLORINE]/total_moles,0.1) - if(output&SIGNAL_STEAM) - signal.data[GAS_STEAM] = round(100*air_sample.gas[GAS_STEAM]/total_moles,0.1) + if(output&SIGNAL_WATERVAPOR) + signal.data[GAS_WATERVAPOR] = round(100*air_sample.gas[GAS_WATERVAPOR]/total_moles,0.1) else signal.data[GAS_OXYGEN] = 0 signal.data[GAS_PHORON] = 0 @@ -105,11 +105,11 @@ signal.data[GAS_HELIUM] = 0 signal.data[GAS_DEUTERIUM] = 0 signal.data[GAS_TRITIUM] = 0 - signal.data[GAS_BORON] = 0 + signal.data[GAS_HELIUMFUEL] = 0 signal.data[GAS_SULFUR] = 0 signal.data[GAS_NO2] = 0 signal.data[GAS_CHLORINE] = 0 - signal.data[GAS_STEAM]= 0 + signal.data[GAS_WATERVAPOR]= 0 signal.data["sigtype"]="status" radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) @@ -157,7 +157,7 @@ var/list/sdata = sensor_information[id_tag] var/list/sensor_data = list("id_tag" = id_tag, "name" = long_name) sensor_data["datapoints"] = list() - for(var/datapoint in list("pressure", "temperature", GAS_OXYGEN, GAS_NITROGEN, GAS_CO2, GAS_PHORON, GAS_HYDROGEN, GAS_N2O, GAS_HELIUM, GAS_DEUTERIUM, GAS_TRITIUM, GAS_BORON, GAS_SULFUR, GAS_NO2, GAS_CHLORINE, GAS_STEAM)) + for(var/datapoint in list("pressure", "temperature", GAS_OXYGEN, GAS_NITROGEN, GAS_CO2, GAS_PHORON, GAS_HYDROGEN, GAS_N2O, GAS_HELIUM, GAS_DEUTERIUM, GAS_TRITIUM, GAS_HELIUMFUEL, GAS_SULFUR, GAS_NO2, GAS_CHLORINE, GAS_WATERVAPOR)) var/unit if(datapoint == "pressure") unit = "kPa" @@ -551,8 +551,8 @@ #undef SIGNAL_HELIUM #undef SIGNAL_DEUTERIUM #undef SIGNAL_TRITIUM -#undef SIGNAL_BORON +#undef SIGNAL_HELIUMFUEL #undef SIGNAL_SULFUR_DIOXIDE #undef SIGNAL_NITROGEN_DIOXIDE #undef SIGNAL_CHLORINE -#undef SIGNAL_STEAM +#undef SIGNAL_WATERVAPOR diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 3ded489fa4c..dc06bd597ca 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -38,7 +38,7 @@ return -1 /obj/machinery/portable_atmospherics/canister/sleeping_agent - name = "Canister: \[N2O\]" + name = "\improper Nitrous Oxide \[N2O\]" icon_state = "redws" canister_color = "redws" can_label = 0 @@ -47,15 +47,15 @@ air_contents.adjust_gas(GAS_N2O, MolesForPressure()) /obj/machinery/portable_atmospherics/canister/nitrogen - name = "Canister: \[N2\]" + name = "\improper Nitrogen \[N2\]" icon_state = "red" canister_color = "red" can_label = 0 /obj/machinery/portable_atmospherics/canister/nitrogen/prechilled - name = "Canister: \[N2 (Cooling)\]" + name = "\improper Nitrogen (Liquid) \[N2 (Cryo)\]" /obj/machinery/portable_atmospherics/canister/oxygen - name = "Canister: \[O2\]" + name = "\improper Oxygen \[O2\]" icon_state = "blue" canister_color = "blue" can_label = 0 @@ -64,14 +64,14 @@ src.air_contents.adjust_gas(GAS_OXYGEN, MolesForPressure()) /obj/machinery/portable_atmospherics/canister/oxygen/prechilled - name = "Canister: \[O2 (Cryo)\]" + name = "\improper Oxygen (Liquid) \[O2 (Cryo)\]" /obj/machinery/portable_atmospherics/canister/oxygen/prechilled/Initialize() . = ..() src.air_contents.temperature = 80 /obj/machinery/portable_atmospherics/canister/phoron - name = "Canister \[Phoron\]" + name = "\improper Phoron \[Phoron\]" icon_state = "orange" canister_color = "orange" can_label = 0 @@ -80,7 +80,7 @@ src.air_contents.adjust_gas(GAS_PHORON, MolesForPressure()) /obj/machinery/portable_atmospherics/canister/phoron_scarce // replacing on-station canisters with this for scarcity - full-capacity canisters are staying to avoid mapping errors in future - name = "Canister \[Phoron\]" + name = "\improper Phoron \[Phoron\]" icon_state = "orange" canister_color = "orange" can_label = 0 @@ -89,13 +89,13 @@ src.air_contents.adjust_gas(GAS_PHORON, MolesForPressure()/2) // half of the default value /obj/machinery/portable_atmospherics/canister/carbon_dioxide - name = "Canister \[CO2\]" + name = "\improper Carbon Dioxide \[CO2\]" icon_state = "black" canister_color = "black" can_label = 0 /obj/machinery/portable_atmospherics/canister/hydrogen - name = "Canister \[H\]" + name = "\improper Hydrogen \[H\]" icon_state = "purple" canister_color = "purple" can_label = 0 @@ -103,26 +103,26 @@ . = ..() air_contents.adjust_gas(GAS_HYDROGEN, MolesForPressure()) -/obj/machinery/portable_atmospherics/canister/hydrogen/deuterium - name = "Canister \[2H\]" +/obj/machinery/portable_atmospherics/canister/deuterium + name = "\improper Deuterium \[2H\]" icon_state = "teal" canister_color = "teal" can_label = 0 -/obj/machinery/portable_atmospherics/canister/hydrogen/deuterium/Initialize() +/obj/machinery/portable_atmospherics/canister/deuterium/Initialize() . = ..() air_contents.adjust_gas(GAS_DEUTERIUM, MolesForPressure()) -/obj/machinery/portable_atmospherics/canister/hydrogen/tritium - name = "Canister \[3H\]" +/obj/machinery/portable_atmospherics/canister/tritium + name = "\improper Tritium \[3H\]" icon_state = "pink" canister_color = "pink" can_label = 0 -/obj/machinery/portable_atmospherics/canister/hydrogen/tritium/Initialize() +/obj/machinery/portable_atmospherics/canister/tritium/Initialize() . = ..() air_contents.adjust_gas(GAS_TRITIUM, MolesForPressure()) /obj/machinery/portable_atmospherics/canister/helium - name = "\improper Canister \[He\]" + name = "\improper Helium \[He\]" icon_state = "green" canister_color = "green" can_label = 0 @@ -130,20 +130,29 @@ . = ..() air_contents.adjust_gas(GAS_HELIUM, MolesForPressure()) -/obj/machinery/portable_atmospherics/canister/boron - name = "\improper Boron \[B\]" - icon_state = "lightblue" - canister_color = "lightblue" +/obj/machinery/portable_atmospherics/canister/heliumfuel + name = "\improper Helium-3 \[3He\]" + icon_state = "helium3" + canister_color = "helium3" can_label = 0 -/obj/machinery/portable_atmospherics/canister/boron/Initialize() +/obj/machinery/portable_atmospherics/canister/heliumfuel/Initialize() . = ..() - air_contents.adjust_gas(GAS_BORON, MolesForPressure()) + air_contents.adjust_gas(GAS_HELIUMFUEL, MolesForPressure()) /obj/machinery/portable_atmospherics/canister/chlorine name = "\improper Chlorine \[Cl2\]" icon_state = "darkyellow" canister_color = "darkyellow" can_label = 0 + +/// Keeping the chlorine canister with the skull on it seems fun for antags. +/obj/machinery/portable_atmospherics/canister/chlorine/antag + name = "\improper Chlorine \[Cl2\]" + icon_state = "poisonous" + canister_color = "poisonous" + desc = "A canister of Chlorine, with a warning label for poisonous gases." + can_label = 0 + /obj/machinery/portable_atmospherics/canister/chlorine/Initialize() . = ..() air_contents.adjust_gas(GAS_CHLORINE, MolesForPressure()) @@ -166,17 +175,17 @@ . = ..() air_contents.adjust_gas(GAS_NO2, MolesForPressure()) -/obj/machinery/portable_atmospherics/canister/steam - name = "\improper Steam \[H2O\]" +/obj/machinery/portable_atmospherics/canister/watervapor + name = "\improper Water Vapor \[H2O\]" icon_state = "whitebrs" canister_color = "whitebrs" can_label = 0 -/obj/machinery/portable_atmospherics/canister/steam/Initialize() +/obj/machinery/portable_atmospherics/canister/watervapor/Initialize() . = ..() - air_contents.adjust_gas(GAS_STEAM, MolesForPressure()) + air_contents.adjust_gas(GAS_WATERVAPOR, MolesForPressure()) /obj/machinery/portable_atmospherics/canister/air - name = "Canister \[Air\]" + name = "\improper Air \[Air\]" icon_state = "grey" canister_color = "grey" can_label = 0 @@ -188,63 +197,68 @@ start_pressure = 0 can_label = 1 /obj/machinery/portable_atmospherics/canister/empty/air - name = "Canister: \[Air\]" + name = "\improper Air \[Air\]" icon_state = "grey" canister_color = "grey" /obj/machinery/portable_atmospherics/canister/empty/oxygen - name = "Canister: \[O2\]" + name = "\improper Oxygen \[O2\]" icon_state = "blue" canister_color = "blue" /obj/machinery/portable_atmospherics/canister/empty/phoron - name = "Canister \[Phoron\]" + name = "\improper Phoron \[Phoron\]" icon_state = "orange" canister_color = "orange" /obj/machinery/portable_atmospherics/canister/empty/nitrogen - name = "Canister \[N2\]" + name = "\improper Nitrogen \[N2\]" icon_state = "red" canister_color = "red" /obj/machinery/portable_atmospherics/canister/empty/carbon_dioxide - name = "Canister \[CO2\]" + name = "\improper Carbon Dioxide \[CO2\]" icon_state = "black" canister_color = "black" /obj/machinery/portable_atmospherics/canister/empty/sleeping_agent - name = "Canister \[N2O\]" + name = "\improper Nitrous Oxide \[N2O\]" icon_state = "redws" canister_color = "redws" /obj/machinery/portable_atmospherics/canister/empty/hydrogen - name = "Canister \[H\]" + name = "\improper Hydrogen \[H\]" icon_state = "purple" canister_color = "purple" /obj/machinery/portable_atmospherics/canister/empty/hydrogen/deuterium - name = "Canister \[2H\]" + name = "\improper Deuterium \[2H\]" icon_state = "teal" canister_color = "teal" /obj/machinery/portable_atmospherics/canister/empty/hydrogen/tritium - name = "Canister \[3H\]" + name = "\improper Tritium \[3H\]" icon_state = "pink" canister_color = "pink" /obj/machinery/portable_atmospherics/canister/empty/helium - name = "Canister \[He\]" + name = "\improper Helium \[He\]" icon_state = "green" canister_color = "green" -/obj/machinery/portable_atmospherics/canister/empty/boron - name = "Canister \[B\]" - icon_state = "lightblue" - canister_color = "lightblue" +/obj/machinery/portable_atmospherics/canister/empty/heliumfuel + name = "\improper Helium-3 \[3He\]" + icon_state = "helium3" + canister_color = "helium3" /obj/machinery/portable_atmospherics/canister/empty/sulfur_dioxide - name = "Canister \[SO2\]" + name = "\improper Sulfur Dioxide \[SO2\]" icon_state = "lightgreen" canister_color = "lightgreen" /obj/machinery/portable_atmospherics/canister/empty/nitrogen_dioxide - name = "Canister \[NO2\]" + name = "\improper Nitrogen Dioxide \[NO2\]" icon_state = "brown" canister_color = "brown" /obj/machinery/portable_atmospherics/canister/empty/chlorine - name = "Canister \[Cl2\]" + name = "\improper Chlorine \[Cl2\]" icon_state = "darkyellow" canister_color = "darkyellow" -/obj/machinery/portable_atmospherics/canister/empty/steam - name = "Canister \[H2O\]" +/obj/machinery/portable_atmospherics/canister/empty/watervapor + name = "\improper Water Vapor \[H2O\]" + icon_state = "whitebrs" + canister_color = "whitebrs" + +/obj/machinery/portable_atmospherics/canister/deuttrit + name = "\improper Fusion Reactor Cold Ignition Mix \[2H-3H\]" icon_state = "whitebrs" canister_color = "whitebrs" @@ -549,11 +563,11 @@ update_flag "\[Deuterium\]" = "teal", "\[Tritium\]" = "pink", "\[Helium\]" = "green", - "\[Boron\]" = "lightblue", + "\[Helium-3\]" = "helium3", "\[Sulfur Dioxide\]" = "lightgreen", "\[Nitrogen Dioxide\]" = "brown", "\[Chlorine\]" = "darkyellow", - "\[Steam\]" = "whitebrs", + "\[Water Vapor\]" = "whitebrs", "\[CAUTION\]" = "yellow" ) var/label = tgui_input_list(usr, "Choose canister label.", "Gas Canister", colors) @@ -612,10 +626,7 @@ update_flag . = ..() src.air_contents.temperature = 303.15 -/// Keeping the chlorine canister with the skull on it seems fun for antags. -/obj/machinery/portable_atmospherics/canister/chlorine/antag - name = "Canister: \[Cl2\]" - icon_state = "poisonous" - canister_color = "poisonous" - desc = "A canister of Chlorine, with a warning label for poisonous gasses." - can_label = 0 +/obj/machinery/portable_atmospherics/canister/deuttrit/Initialize() + . = ..() + src.air_contents.adjust_gas(GAS_DEUTERIUM, MolesForPressure()) + src.air_contents.adjust_gas(GAS_TRITIUM, MolesForPressure()/3) diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm index b8816d2c787..692b1080330 100644 --- a/code/game/machinery/atmoalter/scrubber.dm +++ b/code/game/machinery/atmoalter/scrubber.dm @@ -17,7 +17,7 @@ var/minrate = 0 var/maxrate = PRESSURE_ONE_THOUSAND - var/list/scrubbing_gas = list(GAS_PHORON, GAS_CO2, GAS_N2O, GAS_HYDROGEN, GAS_HELIUM, GAS_DEUTERIUM, GAS_TRITIUM, GAS_BORON, GAS_SULFUR, GAS_NO2, GAS_CHLORINE, GAS_STEAM) + var/list/scrubbing_gas = list(GAS_PHORON, GAS_CO2, GAS_N2O, GAS_HYDROGEN, GAS_HELIUM, GAS_DEUTERIUM, GAS_TRITIUM, GAS_HELIUMFUEL, GAS_SULFUR, GAS_NO2, GAS_CHLORINE, GAS_WATERVAPOR) /obj/machinery/portable_atmospherics/powered/scrubber/mechanics_hints(mob/user, distance, is_adjacent) . += ..() diff --git a/code/game/machinery/bluespace_drive.dm b/code/game/machinery/bluespace_drive.dm index 45ca4a9e052..026493f660a 100644 --- a/code/game/machinery/bluespace_drive.dm +++ b/code/game/machinery/bluespace_drive.dm @@ -21,16 +21,16 @@ density = TRUE // opacity = TRUE - ///The atmospherics interface used to give gasses to the drive + /// The atmospherics interface used to give gasses to the drive var/obj/machinery/atmospherics/portables_connector/atmos_interface - ///The interface used to give fuel (phoron) to the drive + /// The interface used to give fuel (phoron) to the drive var/obj/machinery/atmospherics/portables_connector/fuel_interface - ///The internal gas that the drive uses, fed by the `atmos_interface` + /// The internal gas that the drive uses, fed by the `atmos_interface` var/datum/gas_mixture/internal_gas = new() - ///The fuel gas that the drive uses, fed by the `fuel_interface` + /// The fuel gas that the drive uses, fed by the `fuel_interface` var/datum/gas_mixture/fuel_gas = new() /** @@ -45,20 +45,17 @@ var/static/list/gas_mole_to_power_factor = list( GAS_PHORON = 1, - /* Common gasses */ - GAS_HYDROGEN = 0.7, - GAS_OXYGEN = 0.9, - GAS_NITROGEN = 0.3, GAS_CO2 = 0.24, - GAS_N2O = 0.5, - - /* Uncommon gasses, if you work out to get them, you deserve better power */ + GAS_NITROGEN = 0.3, + GAS_N2O = 0.32, + GAS_HELIUM = 0.4, + GAS_HYDROGEN = 0.8, + GAS_OXYGEN = 0.85, GAS_SULFUR = 1.2, - GAS_CHLORINE = 1, - GAS_HELIUM = 1.6, - GAS_DEUTERIUM = 1.67, - GAS_TRITIUM = 1.68, - GAS_BORON = 1.69 + GAS_CHLORINE = 2.75, + GAS_DEUTERIUM = 3, + GAS_TRITIUM = 4, + GAS_HELIUMFUEL = 6 ) /** @@ -68,28 +65,28 @@ */ var/static/minimum_phoron_moles_per_jump = 1000 //About half of a full canister - ///The power given to the drive, due to gasses + /// The power given to the drive, due to gases var/power_from_gas - ///The rotation we'll be using to jump + /// The rotation we'll be using to jump var/rotation = 0 - ///The angle we'll be using to jump + /// The angle we'll be using to jump var/angle = 60 - ///If the drive is energized + /// If the drive is energized var/energized = FALSE - ///The looping sound that plays when the drive is energized + /// The looping sound that plays when the drive is energized var/datum/looping_sound/bluespace_drive/energized_looping_sound - ///The timer id for the initiate jump sequence + /// The timer id for the initiate jump sequence var/initiate_jump_timer_id - ///The singularity that this drive made + /// The singularity that this drive made var/obj/singularity/bluespace_drive/our_singularity - ///Our bluespace jump event + /// Our bluespace jump event var/datum/event/bluespace_jump/bluespace_jump_event diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm index 606aa53ed27..d99e5d2cbd8 100644 --- a/code/game/machinery/doors/blast_door.dm +++ b/code/game/machinery/doors/blast_door.dm @@ -18,6 +18,7 @@ closed_layer = ABOVE_DOOR_LAYER explosion_resistance = 25 pass_flags_self = PASSDOORS + rad_resistance_modifier = 6 /// Most blast doors are infrequently toggled and sometimes used with regular doors anyways. /// Turning this off prevents awkward zone geometry in places like medbay lobby, for example. diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index df21a1aeca1..7330f37b507 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -88,8 +88,20 @@ Class Procs: init_flags = INIT_MACHINERY_PROCESS_SELF pass_flags_self = PASSMACHINE | LETPASSCLICKS - /// Controlled by a bitflag, differentiates between a few different possible states including the machine being broken or unpowered. - /// See code/__defines/machinery.dm for the possible states. + /** + * 'stat' = 'state'. Controlled by a bitflag, differentiates between a few different possible states including the machine being broken or unpowered. + * These definitions are copypasted from 'code/__DEFINES/machinery.dm' so they can be easily referenced in code. + * SO THAT MEANS IF THEY'VE BEEN UPDATED THERE, MAKE SURE THEY'RE UPDATED HERE! + * + * #define BROKEN 0x1 + * #define NOPOWER 0x2 + * #define POWEROFF 0x4 // TBD. + * #define MAINT 0x8 // Under maintenance. + * #define EMPED 0x10 // Temporary broken by EMP pulse. + * + * #define INOPERABLE(machine) (machine.stat & (BROKEN|NOPOWER|MAINT|EMPED)) + * #define OPERABLE(machine) !INOPERABLE(machine) + */ var/stat = 0 /// Is this machine emagged? var/emagged = 0 diff --git a/code/game/machinery/telecomms/telecommunications.dm b/code/game/machinery/telecomms/telecommunications.dm index 37c9357fb6c..19006b1d349 100644 --- a/code/game/machinery/telecomms/telecommunications.dm +++ b/code/game/machinery/telecomms/telecommunications.dm @@ -21,7 +21,7 @@ density = TRUE anchored = TRUE idle_power_usage = 600 // WATTS - active_power_usage = 2 KILO WATTS + active_power_usage = 15 KILO WATTS /// List of machines this machine is linked to var/list/links = list() diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 4ddfb0a8c39..d8fd0cb0c32 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -86,11 +86,11 @@ /obj/item/book/manual/supermatter_engine - name = "Supermatter Engine Operating Manual" + name = "Supermatter Reactor Operating Manual" icon_state = "bookSupermatter" item_state = "book1" author = "Engineering Encyclopedia" - title = "Supermatter Engine Operating Manual" + title = "Supermatter Reactor Operating Manual" /obj/item/book/manual/supermatter_engine/Initialize() . = ..() @@ -106,17 +106,17 @@ -

OPERATING MANUAL FOR MK 1 PROTOTYPE THERMOELECTRIC SUPERMATTER ENGINE 'TOMBOLA'

+

OPERATING MANUAL FOR MK 1 PROTOTYPE THERMOELECTRIC SUPERMATTER REACTOR 'TOMBOLA'


OPERATING PRINCIPLES


-
  • The supermatter crystal serves as the fundamental power source of the engine. Upon being charged, it begins to emit large amounts of heat and radiation, as well and oxygen and phoron gas. As oxygen accelerates the reaction, and phoron carries the risk of fire, these must be filtered out.
  • +
  • The supermatter crystal serves as the fundamental power source of the reactor. Upon being charged, it begins to emit large amounts of heat and radiation, as well and oxygen and phoron gas. As oxygen accelerates the reaction, and phoron carries the risk of fire, these must be filtered out.

  • Air in the reactor chamber housing the supermatter is circulated through the reactor loop, which passes through the filters and thermoelectric generators. The thermoelectric generators transfer heat from the reactor loop to the colder radiator loop, thereby generating power. Additional power is generated from internal turbines in the circulators.

  • Air in the radiator loop is circulated through the radiator bank, located in space. This rapidly cools the air, preserving the temperature differential needed for power generation.

  • -
  • The MK 1 Prototype Thermoelectric Supermatter Engine is designed to operate at reactor temperatures of 3000K to 4000K and generate up to 1MW of power. Beyond 1MW, the thermoelectric generators will begin to lose power through electrical discharge, reducing efficiency, but additional power generation remains feasible.
  • +
  • The MK 1 Prototype Thermoelectric Supermatter Reactor is designed to operate at reactor temperatures of 3000K to 4000K and generate up to 5MW of power. Beyond 5MW, the thermoelectric generators will begin to lose power through electrical discharge, reducing efficiency, but additional power generation remains feasible.

  • The crystal structure of the supermatter will begin to liquefy if its temperature exceeds 5000K. This eventually results in a massive release of light, heat and radiation, disintegration of both the supermatter crystal and most of the surrounding area, and as as-of-yet poorly documented psychological effects on all animals within a 2km radius. Appropriate action should be taken to stabilize or eject the supermatter before such occurs.

  • @@ -128,26 +128,26 @@

    STARTUP PROCEDURE

      -
    1. Don radiation hood, radiation suit and meson goggles, without these PPE, you will become irradiated.
    2. +
    3. Don radiation hood, radiation suit and safety goggles, without these PPE, you will become irradiated.
    4. Fill the hot loop's (northernmost) port with ONE canister of phoron.
    5. Fill the cold loop's (southernmost) port with TWO canisters of phoron.
    6. -
    7. Ensure that ALL pumps and filters in the engine and waste room are on and operating at maximum power.
    8. +
    9. Ensure that ALL pumps and filters in the reactor and waste room are on and operating at maximum power.
    10. Ensure the both the emergency coolant valves (located to the west and east of the TEGs) are NOT active.
    11. Set the two waste loop filters to filter PHORON.
    12. -
    13. Set all three of the northernmost coolers to ON keep their temperature setting at its default of 293k.
    14. -
    15. Fire twenty-one to twenty-five pulses from the emitter at supermatter crystal. Reactor blast doors MUST be open for this procedure.
    16. -
    17. Set the SMES in the adjacent room (not the one in the engine bay) to NO input and MAXIMUM output until the power is drained completely.
    18. +
    19. Set all three of the northernmost coolers to ON keep their temperature setting at its default of 273 K.
    20. +
    21. Fire forty to sixty pulses from the emitter at supermatter crystal. Reactor blast doors MUST be open for this procedure.
    22. +
    23. Set the SMES in the adjacent room (not the one in the reactor bay) to NO input and MAXIMUM output until the power is drained completely.
    24. Go to hard storage and retrieve two coils, Transmission and Capacitance.
    25. Open the SMES unit's maintenance panel with your screwdriver and insert both coils, close panel once finished.
    26. -
    27. Set input to maximum, and output to 1400000 (1.4 MW).
    28. +
    29. Set input to maximum, and output to 5900000 (5.9 MW).

    OPERATION AND MAINTENANCE

      -
    1. Ensure that radiation protection and meson goggles are worn at ALL times while working in the engine room.
    2. +
    3. Ensure that radiation protection and safety goggles are worn at ALL times while working in the reactor room.
    4. Ensure that reactor and radiator loops are undamaged and unobstructed.
    5. Ensure that phoron and oxygen gas exhaust from filters is properly contained or disposed. Do not allow exhaust pressure to exceed 4500 kPa.
    6. -
    7. Ensure that engine room Area Power Controller (APC) and engine Superconducting Magnetic Energy Storage unit (SMES) are properly charged.
    8. +
    9. Ensure that reactor room Area Power Controller (APC) and reactor Superconducting Magnetic Energy Storage unit (SMES) are properly charged.
    10. Ensure that reactor temperature does not exceed 5000K. In event of reactor temperature exceeding 5000K, see EMERGENCY COOLING PROCEDURE.
    11. In event of imminent and/or unavoidable delamination, see EJECTION PROCEDURE.
    @@ -156,14 +156,14 @@
    1. Open Emergency Cooling Valve 1 and Emergency Cooling Valve 2.
    2. When reactor temperature returns to safe operating levels, close Emergency Cooling Valve 1 and Emergency Cooling Valve 2.
    3. -
    4. Add additional phoron canister to the COLD LOOP.
    5. -
    6. If reactor temperature does not return to safe operating levels, see EJECTION PROCEDURE.
    7. +
    8. If reactor temperature does not return to safe operating levels, add emergency liquid nitrogen canisters to the hot AND cold loops.
    9. +
    10. If reactor temperature still does not return to safe operating levels, see EJECTION PROCEDURE.

    EJECTION PROCEDURE

      -
    1. Press Engine Ventilatory Control button to open engine core vent to space.
    2. -
    3. Press Emergency Core Eject button to eject supermatter crystal. NOTE: Attempting crystal ejection while engine core vent is closed will result in ejection failure.
    4. +
    5. Press Reactor Ventilatory Control button to open reactor core vent to space.
    6. +
    7. Press Emergency Core Eject button to eject supermatter crystal. NOTE: Attempting crystal ejection while reactor core vent is closed will result in ejection failure.
    8. In event of ejection failure, evacuate the area immediately, inform medical and prepare anti-radiation medicine.
    9. Start work on repairing telecommunications and setting up an alternate method of power generation (Solars, Tesla).
    @@ -187,11 +187,11 @@
  • Q: I accidentally put way too many emitter shots into the crystal! What do I do!?

  • -
  • A: The supermatter will heat up more, so all you do is place more coolant (likely phoron) into the cold loop. Once the situation settles, check if you're producing too little power, and emitter it some more.
  • +
  • A: The supermatter will heat up more, so all you do is place more coolant (likely hydrogen or phoron) into the cold loop. Once the situation settles, check if you're producing too little power, and emitter it some more.

  • Q: Are other gasses safe to use in the loops?

  • -
  • A: Mostly, yes. More skilled engineers will likely teach you new methods of using other gasses. Our recommendation is to use phoron if you're unsure. The best idea is to ask your co-workers for help, especially if they set up the engine.
  • +
  • A: Mostly, yes. More skilled engineers will likely teach you new methods of using other gasses. Our recommendation is to use phoron if you're unsure. The best idea is to ask your co-workers for help, especially if they set up the reactor.

  • Q: What do the emergency valves actually do?

  • @@ -199,11 +199,99 @@
  • Q: An engineer walked into the room with no PPE, why did they do that?

  • -
  • A: If the supermatter engine hasn't been started yet, it will not output radiation. Our recommendation is to be safe instead of sorry, however. If the engine has started, call medical and security, they may be attempting to do an emergency fix, or they are mentally unwell. Remember that non-organics do not suffer from radiation poisoning.
  • +
  • A: If the supermatter reactor hasn't been started yet, it will not output radiation. Our recommendation is to be safe instead of sorry, however. If the reactor has started, call medical and security, they may be attempting to do an emergency fix, or they are mentally unwell. Remember that non-organics do not suffer from radiation poisoning.

  • "} +/obj/item/book/manual/fusion_reactor + name = "INDRA Fusion Reactor Operating Manual" + icon_state = "bookFusionReactor" + item_state = "book1" + author = "Engineering Encyclopedia" + title = "INDRA Fusion Reactor Operating Manual" + +/obj/item/book/manual/fusion_reactor/Initialize() + . = ..() + dat = {" + + + + +

    OPERATING MANUAL FOR INDRA MK VIII FUSION REACTOR

    +
    +

    OPERATING PRINCIPLES

    +
    + The INDRA Mk VIII fusion reactor is the secondary source of power for the SCCV Horizon, intended to be operated with primary power already available. Reactants are introduced to the reactor core via gas connection and/or solid fuel injection and contained within a toroidal magnetic field, generated by a central Tokamak. High-energy pulses are fired at this magnetic bottle using a Gyrotron to ignite the fusion mix, and the reactor machinery converts the resultant thermal energy to electricity. +
    + Interactions between different types of particles have unique properties. For example, the easiest initial fusion reaction, Deuterium-Tritium, requires very low temperatures to achieve, but is very ‘dirty,’ producing large amounts of radiation and internal instability in the core. The Fusion Codex, available Engineering terminals or PDA, is an exhaustive list of all reactions that can be sustained by the INDRA Mk VIII. +
    + The Gyrotron, in addition to providing energy, also serves to moderate and stabilize the core field. All fusion reactions induce some amount of core instability, and the Gyrotron must be fired continuously in order to keep instability at a minimum. Any object placed within the plasma torus will cause significant instability, as can running it at large sizes with volatile reaction chains active. +
    + In the event that instability reaches 100%, the reactor core will violently rupture, causing several cascading negative effects. The collapse of the magnetic field will result in the uncontrolled release of the superheated plasma, followed by a massive explosion due to the thermal shock. Additionally, widespread EMP effects will be encountered, scalar with plasma temperatures at the time of rupture. +
    + Because the Gyrotron requires a very high power outlay, and the Gyrotron is required to maintain core stability, it is strongly recommended to only run the INDRA when the primary power source is already online. If no external power is available, a portable generator can be employed temporarily to provide an initial boost to begin fusion. +
    + The INDRA Mk VIII Fusion Reactor is designed to operate at reactor temperatures up to ten million K, and generate up to 12MW of power. +
    +

    HARDWARE CONFIGURATION

    + In the event that any machinery comprising the INDRA Mk VIII Fusion Reactor is rendered inoperable, circuit boards for each part can be fabricated and installed in new machine frames alongside requisite components (detailed with each board). On construction, these replacement parts can then be linked to the primary reactor network using a multitool. +

    STARTUP PROCEDURE

    +
      +
    1. Set the SMES in the adjacent room (not the one in the reactor bay) to NO input and MAXIMUM output.
    2. +
    3. Don radiation suit and radiation hood whenever entering the reactor bay. When the reactor is running, without PPE, you will become irradiated.
    4. +
    5. Retrieve canister labeled ‘Fusion Reactor Cold Ignition Mix (2H-3H)’ from reactor bay storage, and wrench it onto one of the available gas connectors.
    6. +
    7. Enable the gas connector's pump at 10 kPa output pressure.
    8. +
    9. Go to the Reactor Control Room.
    10. +
    11. On the Core Control Console, set Field Strength to 40, then hit Initiate Fusion.
    12. +
    13. On the Gyrotron Control Console, set Gyrotron Strength to 25 and Fire Delay to 3, then hit Activate.
    14. +
    15. Go to hard storage and retrieve two Transmission coils.
    16. +
    17. Ensure that the SMES is fully discharged. +
    18. If the SMES unit is fully discharged, open the unit's maintenance panel with your screwdriver and insert both coils; close panel once finished.
    19. +
    20. Set input to maximum, and output to 5900000 (5.9 MW).
    21. +
    +
    +

    OPERATION AND MAINTENANCE

    +
      +
    1. Ensure that radiation protection are worn at ALL times while working in the reactor bay.
    2. +
    3. Ensure that the gyrotron has a stable supply of power; keeping the Containment Grid breaker open is recommended at all times.
    4. +
    5. Ensure that fuel supply remains available throughout the entirety of the shift.
    6. +
    7. Ensure that reactor bay Area Power Controller (APC) and reactor Superconducting Magnetic Energy Storage unit (SMES) are properly charged.
    8. +
    9. Ensure that reactor instability does not exceed 50%. In event of reactor instability exceeding 50%, see EMERGENCY STABILIZATION PROCEDURE.
    10. +
    11. In event of imminent and/or unavoidable rupture, see DISASTER CONTROL PROCEDURE.
    12. +
    +
    +

    EMERGENCY STABILIZATION PROCEDURE

    +
      +
    1. Reduce core Field Strength to 20.
    2. +
    3. Cut all fuel sources; disable both gas pumps and fuel injectors.
    4. +
    5. Hit the INDRA Core Vent buttons, located on either side of the aft wall of the reactor bay.
    6. +
    7. Ensure Gyrotron has sufficient power and is firing regularly.
    8. +
    9. Increase Gyrotron power and/or reduce Gyrotron fire delay.
    10. +
    +
    +

    DISASTER CONTROL PROCEDURE

    +
    + Ensure that you have performed all steps in EMERGENCY STABILIZATION PROCEDURE. In the event that the reactor is rapidly approaching 100% instability in spite of all preventative measures, a rupture event is highly likely. In this event: +
      +
    1. Evacuate the reactor bay, control room, and any adjoining compartments immediately.
    2. +
    3. Alert command frequencies, and/or sound general call to move away from all compartments near or adjoining the reactor bay.
    4. +
    5. Brace for release of superheated plasma, explosion and immediate explosive decompression, and powerful EMP (which may encompass much of the ship, dependent on temperature at time of rupture event.
    6. +
    7. Ensure immediate integrity of affected area, assist with evacuation of any wounded crew, etc.
    8. +
    9. Ensure power remains available for the rest of the ship; triage power allocation as appropriate.
    10. +
    11. Commence with repairs and reconstruction of reactor bay and any other damaged ship areas.
    12. +
    13. Report to your nearest Chief Engineer for evaluation.
    14. +
    + + "} + /obj/item/book/manual/wiki/engineering_hacking name = "Hacking" icon_state ="bookHacking" diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm index f70ed825858..af886d9f04b 100644 --- a/code/game/objects/items/weapons/power_cells.dm +++ b/code/game/objects/items/weapons/power_cells.dm @@ -13,7 +13,7 @@ w_class = WEIGHT_CLASS_NORMAL /// Note %age converted to actual charge in New() var/charge = 0 - var/maxcharge = 1000 + var/maxcharge = 2500 /// True if rigged to explode var/rigged = FALSE /// If not 100% reliable, it will build up faults. @@ -33,14 +33,14 @@ force = 0 throw_speed = 5 throw_range = 7 - maxcharge = 100 + maxcharge = 250 matter = list(MATERIAL_STEEL = 70, MATERIAL_GLASS = 5) /obj/item/cell/device/high name = "advanced power cell" desc = "A small, advanced power cell designed to power more energy demanding handheld devices." icon_state = "hdevice" - maxcharge = 250 + maxcharge = 500 matter = list(MATERIAL_STEEL = 150, MATERIAL_GLASS = 10) /obj/item/cell/device/variable/New(newloc, charge_amount) @@ -52,7 +52,7 @@ name = "old power cell" desc = "A cheap, old power cell. It's probably been in use for quite some time now." origin_tech = list(TECH_POWER = 0) - maxcharge = 500 + maxcharge = 1500 matter = list(DEFAULT_WALL_MATERIAL = 700, MATERIAL_GLASS = 40) /obj/item/cell/crap/empty/Initialize() @@ -79,14 +79,14 @@ /obj/item/cell/apc name = "heavy-duty power cell" origin_tech = list(TECH_POWER = 1) - maxcharge = 5000 + maxcharge = 15000 matter = list(DEFAULT_WALL_MATERIAL = 700, MATERIAL_GLASS = 50) /obj/item/cell/high name = "high-capacity power cell" origin_tech = list(TECH_POWER = 2) icon_state = "hcell" - maxcharge = 10000 + maxcharge = 30000 matter = list(DEFAULT_WALL_MATERIAL = 700, MATERIAL_GLASS = 60) /obj/item/cell/high/empty/Initialize() @@ -98,7 +98,7 @@ name = "super-capacity power cell" origin_tech = list(TECH_POWER = 5) icon_state = "scell" - maxcharge = 20000 + maxcharge = 60000 matter = list(DEFAULT_WALL_MATERIAL = 700, MATERIAL_GLASS = 70) /obj/item/cell/super/empty/Initialize() @@ -110,7 +110,7 @@ name = "hyper-capacity power cell" origin_tech = list(TECH_POWER = 6) icon_state = "hpcell" - maxcharge = 30000 + maxcharge = 90000 matter = list(DEFAULT_WALL_MATERIAL = 200, MATERIAL_GOLD = 50, MATERIAL_SILVER = 50, MATERIAL_GLASS = 40) /obj/item/cell/hyper/empty/Initialize() @@ -122,7 +122,7 @@ name = "infinite-capacity power cell!" icon_state = "icell" origin_tech = null - maxcharge = 30000 //determines how badly mobs get shocked + maxcharge = 180000 //determines how badly mobs get shocked matter = list(DEFAULT_WALL_MATERIAL = 700, MATERIAL_GLASS = 80) /obj/item/cell/infinite/check_charge() @@ -148,7 +148,7 @@ origin_tech = list(TECH_POWER = 2, TECH_BIO = 4) icon = 'icons/mob/npc/slimes.dmi' icon_state = "yellow slime extract" - maxcharge = 15000 + maxcharge = 45000 matter = null /// Slime cores recharges 10% every one minute. @@ -177,7 +177,7 @@ name = "miniature power cell" desc = "A small power cell intended for use with emergency lighting." /// Emergency lights use 0.2 W per tick, meaning ~10 minutes of emergency power from a cell - maxcharge = 120 + maxcharge = 500 w_class = WEIGHT_CLASS_TINY matter = list(MATERIAL_GLASS = 20) diff --git a/code/game/objects/random/tech.dm b/code/game/objects/random/tech.dm index 83734eaaa78..66e49a72b28 100644 --- a/code/game/objects/random/tech.dm +++ b/code/game/objects/random/tech.dm @@ -281,7 +281,7 @@ /obj/machinery/portable_atmospherics/canister/empty/oxygen = 1, /obj/machinery/portable_atmospherics/canister/empty/sleeping_agent = 1, // rare: - /obj/machinery/portable_atmospherics/canister/empty/boron = 0.1, + /obj/machinery/portable_atmospherics/canister/empty/heliumfuel = 0.1, /obj/machinery/portable_atmospherics/canister/empty/chlorine = 0.1, /obj/machinery/portable_atmospherics/canister/empty/helium = 0.1, /obj/machinery/portable_atmospherics/canister/empty/nitrogen_dioxide = 0.1, @@ -302,7 +302,7 @@ /obj/machinery/portable_atmospherics/canister/oxygen = 1, /obj/machinery/portable_atmospherics/canister/sleeping_agent = 1, // rare: - /obj/machinery/portable_atmospherics/canister/boron = 0.1, + /obj/machinery/portable_atmospherics/canister/heliumfuel = 0.1, /obj/machinery/portable_atmospherics/canister/chlorine = 0.1, /obj/machinery/portable_atmospherics/canister/helium = 0.1, /obj/machinery/portable_atmospherics/canister/nitrogen_dioxide = 0.1, diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 32ea921107f..3f40814e3ac 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -536,6 +536,8 @@ maximal_heat = T0C + 2000 damage_per_fire_tick = 1 // This should last for 80 fire ticks if the window is not damaged at all. The idea is that borosilicate windows have something like ablative layer that protects them for a while. maxhealth = 40 + /// Phoron-infused silicate + rad_resistance_modifier = 4 /obj/structure/window/borosilicate/reinforced name = "reinforced borosilicate glass pane" @@ -567,6 +569,7 @@ smoothing_flags = SMOOTH_TRUE can_be_unanchored = TRUE layer = FULL_WINDOW_LAYER + rad_resistance_modifier = 4 /obj/structure/window/shuttle/legion name = "reinforced cockpit window" @@ -900,6 +903,7 @@ maxhealth = 160 // Two reinforced borosilicate glass panes worth of health, since that's the minimum you need to break through to get to the other side. reinf = TRUE maximal_heat = T0C + 4000 + rad_resistance_modifier = 4 #undef FULL_REINFORCED_WINDOW_DAMAGE_FORCE #undef REINFORCED_WINDOW_DAMAGE_FORCE diff --git a/code/modules/atmospherics/components/omni_devices/_omni_extras.dm b/code/modules/atmospherics/components/omni_devices/_omni_extras.dm index 8afeeb6f032..2e8c0283939 100644 --- a/code/modules/atmospherics/components/omni_devices/_omni_extras.dm +++ b/code/modules/atmospherics/components/omni_devices/_omni_extras.dm @@ -14,11 +14,11 @@ #define ATM_2H 9 //Deuterium #define ATM_3H 10 //Tritium #define ATM_HE 11 //Helium -#define ATM_B 12 //Boron +#define ATM_3HE 12 //Helium-3 #define ATM_SO2 13 //Sulfur Dioxide #define ATM_NO2 14 //Nitrogen Dioxide #define ATM_CL2 15 //Chlorine -#define ATM_H2O 16 //Steam +#define ATM_H2O 16 //Water vapor //-------------------------------------------- // Omni port datum @@ -121,8 +121,8 @@ return GAS_TRITIUM if(ATM_HE) return GAS_HELIUM - if(ATM_B) - return GAS_BORON + if(ATM_3HE) + return GAS_HELIUMFUEL if(ATM_SO2) return GAS_SULFUR if(ATM_NO2) @@ -130,6 +130,6 @@ if(ATM_CL2) return GAS_CHLORINE if(ATM_H2O) - return GAS_STEAM + return GAS_WATERVAPOR else return null diff --git a/code/modules/atmospherics/components/omni_devices/filter.dm b/code/modules/atmospherics/components/omni_devices/filter.dm index c60f1ec0fb9..1b566d39637 100644 --- a/code/modules/atmospherics/components/omni_devices/filter.dm +++ b/code/modules/atmospherics/components/omni_devices/filter.dm @@ -166,8 +166,8 @@ return "Tritium" if(ATM_HE) return "Helium" - if(ATM_B) - return "Boron" + if(ATM_3HE) + return "Helium-3" if(ATM_SO2) return "Sulfur Dioxide" if(ATM_NO2) @@ -175,7 +175,7 @@ if(ATM_CL2) return "Chlorine" if(ATM_H2O) - return "Steam" + return "Water Vapor" else return null @@ -201,7 +201,7 @@ if("switch_mode") switch_mode(dir_flag(href_list["dir"]), mode_return_switch(href_list["mode"])) if("switch_filter") - var/new_filter = input(usr,"Select filter mode:","Change filter",href_list["mode"]) in list("None", "Oxygen", "Nitrogen", "Carbon Dioxide", "Phoron", "Nitrous Oxide", "Hydrogen", "Deuterium", "Tritium", "Helium", "Boron", "Sulfur Dioxide", "Nitrogen Dioxide", "Chlorine", "Steam") + var/new_filter = input(usr,"Select filter mode:","Change filter",href_list["mode"]) in list("None", "Oxygen", "Nitrogen", "Carbon Dioxide", "Phoron", "Nitrous Oxide", "Hydrogen", "Deuterium", "Tritium", "Helium", "Helium-3", "Sulfur Dioxide", "Nitrogen Dioxide", "Chlorine", "Water Vapor") switch_filter(dir_flag(href_list["dir"]), mode_return_switch(new_filter)) update_icon() @@ -228,15 +228,15 @@ return ATM_3H if("Helium") return ATM_HE - if("Boron") - return ATM_B + if("Helium-3") + return ATM_3HE if("Sulfur Dioxide") return ATM_SO2 if("Nitrogen Dioxide") return ATM_NO2 if("Chlorine") return ATM_CL2 - if("Steam") + if("Water Vapor") return ATM_H2O if("in") return ATM_INPUT diff --git a/code/modules/atmospherics/components/unary/vent_scrubber.dm b/code/modules/atmospherics/components/unary/vent_scrubber.dm index 72a93e413dc..1992f40adb2 100644 --- a/code/modules/atmospherics/components/unary/vent_scrubber.dm +++ b/code/modules/atmospherics/components/unary/vent_scrubber.dm @@ -163,11 +163,11 @@ "filter_2h" = (GAS_DEUTERIUM in scrubbing_gas), "filter_3h" = (GAS_TRITIUM in scrubbing_gas), "filter_he" = (GAS_HELIUM in scrubbing_gas), - "filter_b" = (GAS_BORON in scrubbing_gas), + "filter_b" = (GAS_HELIUMFUEL in scrubbing_gas), "filter_so2" = (GAS_SULFUR in scrubbing_gas), "filter_no2" = (GAS_NO2 in scrubbing_gas), "filter_cl" = (GAS_CHLORINE in scrubbing_gas), - "filter_h2o" = (GAS_STEAM in scrubbing_gas), + "filter_h2o" = (GAS_WATERVAPOR in scrubbing_gas), "sigtype" = "status" ) @@ -312,10 +312,10 @@ else if(signal.data["toggle_he_scrub"]) toggle += GAS_HELIUM - if(!isnull(signal.data["b_scrub"]) && text2num(signal.data["b_scrub"]) != (GAS_BORON in scrubbing_gas)) - toggle += GAS_BORON + if(!isnull(signal.data["b_scrub"]) && text2num(signal.data["b_scrub"]) != (GAS_HELIUMFUEL in scrubbing_gas)) + toggle += GAS_HELIUMFUEL else if(signal.data["toggle_b_scrub"]) - toggle += GAS_BORON + toggle += GAS_HELIUMFUEL if(!isnull(signal.data["so2_scrub"]) && text2num(signal.data["so2_scrub"]) != (GAS_SULFUR in scrubbing_gas)) toggle += GAS_SULFUR @@ -332,10 +332,10 @@ else if(signal.data["toggle_cl_scrub"]) toggle += GAS_CHLORINE - if(!isnull(signal.data["h2o_scrub"]) && text2num(signal.data["h2o_scrub"]) != (GAS_STEAM in scrubbing_gas)) - toggle += GAS_STEAM + if(!isnull(signal.data["h2o_scrub"]) && text2num(signal.data["h2o_scrub"]) != (GAS_WATERVAPOR in scrubbing_gas)) + toggle += GAS_WATERVAPOR else if(signal.data["toggle_h2o_scrub"]) - toggle += GAS_STEAM + toggle += GAS_WATERVAPOR scrubbing_gas ^= toggle diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index 69c622b0dd0..634e785bc0d 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -97,7 +97,7 @@ /datum/export/material/mhydrogen cost = 10 - material_id = "mhydrogen" + material_id = "metallic hydrogen" message = "metallic hydrogen sheets" /datum/export/material/aluminium diff --git a/code/modules/cargo/items/atmos.dm b/code/modules/cargo/items/atmos.dm index ae6dd022312..40a5b1725db 100644 --- a/code/modules/cargo/items/atmos.dm +++ b/code/modules/cargo/items/atmos.dm @@ -72,7 +72,7 @@ category = "atmos" name = "Canister (Air)" supplier = "hephaestus" - description = "Holds nitrogen-oxygen breatheable air. Has a built-in valve to allow for filling portable tanks." + description = "Holds a nitrogen-oxygen mixture of breathable air. Has a built-in valve to allow for filling portable tanks." price = 180 items = list( /obj/machinery/portable_atmospherics/canister/air @@ -82,14 +82,14 @@ groupable = FALSE spawn_amount = 1 -/singleton/cargo_item/canister_bo +/singleton/cargo_item/canister_3he category = "atmos" - name = "Canister (Boron)" + name = "Canister (Helium-3)" supplier = "hephaestus" - description = "Holds boron gas. Has a built-in valve to allow for filling portable tanks." - price = 380 + description = "Holds Helium-3 gas, a valuable fusion fuel. Has a built-in valve to allow for filling portable tanks." + price = 3800 items = list( - /obj/machinery/portable_atmospherics/canister/boron + /obj/machinery/portable_atmospherics/canister/heliumfuel ) access = ACCESS_ENGINE container_type = "box" @@ -100,7 +100,7 @@ category = "atmos" name = "Canister (CO2)" supplier = "hephaestus" - description = "Holds heavy CO2 gas. Has a built-in valve to allow for filling portable tanks." + description = "Holds heavy CO2 gas, whatever that is. Has a built-in valve to allow for filling portable tanks." price = 300 items = list( /obj/machinery/portable_atmospherics/canister/carbon_dioxide diff --git a/code/modules/custom_ka/cells.dm b/code/modules/custom_ka/cells.dm index 73ce5b7d33b..7d11c9e3731 100644 --- a/code/modules/custom_ka/cells.dm +++ b/code/modules/custom_ka/cells.dm @@ -292,5 +292,5 @@ origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 5,TECH_MAGNET = 4,TECH_POWER = 4) - type_to_take = "mhydrogen" + type_to_take = "metallic hydrogen" charge_per_sheet = 90 diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index fee57d813aa..5c2c0fb3aff 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -521,23 +521,23 @@ complexity = 9 inputs = list() outputs = list( - "pressure" = IC_PINTYPE_NUMBER, - "temperature" = IC_PINTYPE_NUMBER, - GAS_OXYGEN = IC_PINTYPE_NUMBER, - GAS_NITROGEN = IC_PINTYPE_NUMBER, - GAS_CO2 = IC_PINTYPE_NUMBER, - GAS_PHORON = IC_PINTYPE_NUMBER, - GAS_N2O = IC_PINTYPE_NUMBER, - GAS_HYDROGEN = IC_PINTYPE_NUMBER, - GAS_DEUTERIUM = IC_PINTYPE_NUMBER, - GAS_TRITIUM = IC_PINTYPE_NUMBER, - GAS_HELIUM = IC_PINTYPE_NUMBER, - GAS_BORON = IC_PINTYPE_NUMBER, - GAS_SULFUR = IC_PINTYPE_NUMBER, - GAS_NO2 = IC_PINTYPE_NUMBER, - GAS_CHLORINE = IC_PINTYPE_NUMBER, - GAS_STEAM = IC_PINTYPE_NUMBER, - "other" = IC_PINTYPE_NUMBER + "pressure" = IC_PINTYPE_NUMBER, + "temperature" = IC_PINTYPE_NUMBER, + GAS_OXYGEN = IC_PINTYPE_NUMBER, + GAS_NITROGEN = IC_PINTYPE_NUMBER, + GAS_CO2 = IC_PINTYPE_NUMBER, + GAS_PHORON = IC_PINTYPE_NUMBER, + GAS_N2O = IC_PINTYPE_NUMBER, + GAS_HYDROGEN = IC_PINTYPE_NUMBER, + GAS_DEUTERIUM = IC_PINTYPE_NUMBER, + GAS_TRITIUM = IC_PINTYPE_NUMBER, + GAS_HELIUM = IC_PINTYPE_NUMBER, + GAS_HELIUMFUE = IC_PINTYPE_NUMBER, + GAS_SULFUR = IC_PINTYPE_NUMBER, + GAS_NO2 = IC_PINTYPE_NUMBER, + GAS_CHLORINE = IC_PINTYPE_NUMBER, + GAS_WATERVAPOR = IC_PINTYPE_NUMBER, + "other" = IC_PINTYPE_NUMBER ) activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT) spawn_flags = IC_SPAWN_RESEARCH @@ -642,11 +642,11 @@ var/deuterium_level = environment.gas[GAS_DEUTERIUM]/total_moles var/tritium_level = environment.gas[GAS_TRITIUM]/total_moles var/helium_level = environment.gas[GAS_HELIUM]/total_moles - var/boron_level = environment.gas[GAS_BORON]/total_moles + var/helium3_level = environment.gas[GAS_HELIUMFUEL]/total_moles var/sulfurdioxide_level = environment.gas[GAS_SULFUR]/total_moles var/nitrogendioxide_level = environment.gas[GAS_NO2]/total_moles var/chlorine_level = environment.gas[GAS_CHLORINE]/total_moles - var/steam_level = environment.gas[GAS_STEAM]/total_moles + var/watervapor_level = environment.gas[GAS_WATERVAPOR]/total_moles var/unknown_level = 1-(o2_level+n2_level+co2_level+phoron_level) set_pin_data(IC_OUTPUT, 1, pressure) set_pin_data(IC_OUTPUT, 2, round(environment.temperature-T0C,0.1)) @@ -659,11 +659,11 @@ set_pin_data(IC_OUTPUT, 8, round(deuterium_level*100,0.01)) set_pin_data(IC_OUTPUT, 9, round(tritium_level*100,0.01)) set_pin_data(IC_OUTPUT, 10, round(helium_level*100,0.01)) - set_pin_data(IC_OUTPUT, 11, round(boron_level*100,0.01)) + set_pin_data(IC_OUTPUT, 11, round(helium3_level*100,0.01)) set_pin_data(IC_OUTPUT, 12, round(sulfurdioxide_level*100,0.01)) set_pin_data(IC_OUTPUT, 13, round(nitrogendioxide_level*100,0.01)) set_pin_data(IC_OUTPUT, 14, round(chlorine_level*100,0.01)) - set_pin_data(IC_OUTPUT, 15, round(steam_level*100,0.01)) + set_pin_data(IC_OUTPUT, 15, round(watervapor_level*100,0.01)) set_pin_data(IC_OUTPUT, 16, round(unknown_level, 0.01)) set_pin_data(IC_OUTPUT, 17, round(unknown_level, 0.01)) else @@ -812,9 +812,9 @@ gas_name = GAS_HELIUM gas_display_name = GAS_HELIUM -/obj/item/integrated_circuit/input/gas_sensor/boron_level - gas_name = GAS_BORON - gas_display_name = GAS_BORON +/obj/item/integrated_circuit/input/gas_sensor/helium3_level + gas_name = GAS_HELIUMFUEL + gas_display_name = GAS_HELIUMFUEL /obj/item/integrated_circuit/input/gas_sensor/sulfurdioxide_level gas_name = GAS_SULFUR @@ -828,9 +828,9 @@ gas_name = GAS_CHLORINE gas_display_name = GAS_CHLORINE -/obj/item/integrated_circuit/input/gas_sensor/steam_level - gas_name = GAS_STEAM - gas_display_name = GAS_STEAM +/obj/item/integrated_circuit/input/gas_sensor/watervapor_level + gas_name = GAS_WATERVAPOR + gas_display_name = GAS_WATERVAPOR /obj/item/integrated_circuit/input/turfpoint name = "tile pointer" diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index b3b86e77ad7..801dca6a16a 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -616,3 +616,14 @@ . = ..() amount = max_amount update_icon() + +// Fusion fuel. +/obj/item/stack/material/boron + name = "boron" + icon_state = "puck" + default_type = MATERIAL_BORON + +/obj/item/stack/material/boron/full/Initialize() + . = ..() + amount = max_amount + update_icon() diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 4b4996bd6c5..f1cbd3645b4 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -1222,3 +1222,12 @@ sheet_singular_name = "ingot" sheet_plural_name = "ingots" is_fusion_fuel = TRUE + +/material/boron + name = MATERIAL_BORON + stack_type = /obj/item/stack/material/boron + icon_colour = "#bbbbbb" + stack_origin_tech = list(TECH_MATERIAL = 3) + sheet_singular_name = "ingot" + sheet_plural_name = "ingots" + is_fusion_fuel = TRUE diff --git a/code/modules/mob/living/silicon/robot/items/gripper.dm b/code/modules/mob/living/silicon/robot/items/gripper.dm index ef7b8425d1d..b284c42db16 100644 --- a/code/modules/mob/living/silicon/robot/items/gripper.dm +++ b/code/modules/mob/living/silicon/robot/items/gripper.dm @@ -26,7 +26,8 @@ /obj/item/computer_hardware, /obj/item/pipe, /obj/item/smallDelivery, - /obj/item/gift + /obj/item/gift, + /obj/item/fuel_assembly ) var/list/cant_hold diff --git a/code/modules/modular_computers/file_system/programs/app_presets_.dm b/code/modules/modular_computers/file_system/programs/app_presets_.dm index 26f8c7586f4..63cac179b97 100644 --- a/code/modules/modular_computers/file_system/programs/app_presets_.dm +++ b/code/modules/modular_computers/file_system/programs/app_presets_.dm @@ -54,6 +54,7 @@ ABSTRACT_TYPE(/datum/modular_computer_app_presets) /datum/computer_file/program/rcon_console,\ /datum/computer_file/program/camera_monitor,\ /datum/computer_file/program/lighting_control,\ + /datum/computer_file/program/fusion_codex,\ ) #define COMPUTER_APP_PRESET_HORIZON_MEDICAL list(\ diff --git a/code/modules/modular_computers/file_system/programs/engineering/fusion_codex.dm b/code/modules/modular_computers/file_system/programs/engineering/fusion_codex.dm new file mode 100644 index 00000000000..f987b424c0c --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/engineering/fusion_codex.dm @@ -0,0 +1,26 @@ +/datum/computer_file/program/fusion_codex + filename = "fusioncodex" + filedesc = "Fusion Codex" + program_icon_state = "medcomp" + program_key_icon_state = "teal_key" + extended_desc = "Useful program to reference reaction chains for nuclear fusion reactors." + size = 14 + requires_access_to_run = PROGRAM_ACCESS_LIST_ONE + required_access_run = list(ACCESS_ENGINE) + required_access_download = list(ACCESS_ENGINE) + available_on_ntnet = TRUE + tgui_id = "FusionCodex" + +/datum/computer_file/program/fusion_codex/ui_data(mob/user) + var/list/data = list() + // Gather data for computer header + var/headerdata = get_header_data(data["_PC"]) + if(headerdata) + data["_PC"] = headerdata + . = data + + // Here goes listification + if(!data["reactions"]) + data["reactions"] = SScodex.fusion_codex_data + + return data diff --git a/code/modules/overmap/exoplanets/exoplanet.dm b/code/modules/overmap/exoplanets/exoplanet.dm index 127f1cfa22b..5adcd1b527c 100644 --- a/code/modules/overmap/exoplanets/exoplanet.dm +++ b/code/modules/overmap/exoplanets/exoplanet.dm @@ -443,7 +443,7 @@ newgases -= GAS_PHORON if(prob(50)) //alium gas should be slightly less common than mundane shit newgases -= GAS_ALIEN - newgases -= GAS_STEAM + newgases -= GAS_WATERVAPOR var/total_moles = MOLES_CELLSTANDARD * rand(80,120)/100 var/badflag = 0 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 81430cd710a..513abd87d3b 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -85,7 +85,7 @@ ABSTRACT_TYPE(/obj/machinery/power/apc) var/areastring = null var/obj/item/cell/cell /// Cap for how fast APC cells charge, as a percentage-per-tick (0.01 means cellcharge is capped to 1% per second) - var/chargelevel = 0.0005 + var/chargelevel = 0.005 var/cellused = 0 /// Initial cell charge % var/start_charge = 90 @@ -936,8 +936,8 @@ ABSTRACT_TYPE(/obj/machinery/power/apc) data["fail_time"] = failure_timer * 2 data["silicon_user"] = isAdmin || issilicon(user) data["is_AI_or_robot"] = isAI(user) || isrobot(user) - data["total_load"] = round(lastused_total) - data["total_charging"] = round(lastused_charging) + data["total_load"] = power_wattage_readable(lastused_total) + data["total_charging"] = power_wattage_readable(lastused_charging) data["is_operating"] = operating data["charge_mode"] = chargemode data["external_power"] = main_status @@ -947,9 +947,9 @@ ABSTRACT_TYPE(/obj/machinery/power/apc) data["emergency_mode"] = !emergency_lights data["time"] = time data["power_channels"] = list( - list("name" = "Equipment", "power_load" = lastused_equip, "status" = equipment), - list("name" = "Lighting", "power_load" = round(lastused_light), "status" = lighting), - list("name" = "Environment", "power_load" = round(lastused_environ), "status" = environ) + list("name" = "Equipment", "power_load" = power_wattage_readable(lastused_equip), "status" = equipment), + list("name" = "Lighting", "power_load" = power_wattage_readable(lastused_light), "status" = lighting), + list("name" = "Environment", "power_load" = power_wattage_readable(lastused_environ), "status" = environ) ) return data diff --git a/code/modules/power/fusion/consoles/_consoles.dm b/code/modules/power/fusion/consoles/_consoles.dm index e84b6be1c63..1685b903e21 100644 --- a/code/modules/power/fusion/consoles/_consoles.dm +++ b/code/modules/power/fusion/consoles/_consoles.dm @@ -3,8 +3,8 @@ icon_keyboard_emis = "yellow_key_mask" icon_screen = "solar" light_color = COLOR_ORANGE - idle_power_usage = 250 - active_power_usage = 500 + idle_power_usage = 2500 + active_power_usage = 10000 manufacturer = "hephaestus" var/ui_template var/initial_id_tag @@ -45,5 +45,5 @@ /obj/machinery/computer/fusion/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if (!ui) - ui = new(user, src, ui_template, name, 400, 500) + ui = new(user, src, ui_template, name) ui.open() diff --git a/code/modules/power/fusion/consoles/core_control.dm b/code/modules/power/fusion/consoles/core_control.dm index 9c2281e302a..04670bcc202 100644 --- a/code/modules/power/fusion/consoles/core_control.dm +++ b/code/modules/power/fusion/consoles/core_control.dm @@ -53,15 +53,25 @@ for(var/i = 1 to LAZYLEN(fusion_cores)) var/list/core = list() var/obj/machinery/power/fusion_core/C = fusion_cores[i] + var/power_available = C.avail() + var/power_usage = C.active_power_usage + var/power_generated = C.owned_field?.output_avg + core["id"] = "#[i]" core["ref"] = "[REF(C)]" core["field"] = !isnull(C.owned_field) core["power"] = "[C.field_strength / 10]" core["field_strength"] = C.field_strength + core["field_strength_max"] = C.field_strength_max + core["entropy_multiplier"] = C.owned_field ? round(C.owned_field.field_strength_entropy_multiplier, 0.01) : 1 + core["instability_multiplier"] = C.owned_field ? round(C.owned_field.field_strength_instability_multiplier, 0.01) : 1 + core["power_multiplier"] = C.owned_field ? round(C.owned_field.field_strength_power_multiplier, 0.01) : 1 core["size"] = C.owned_field ? C.owned_field.size : 0 core["instability"] = C.owned_field ? C.owned_field.percent_unstable * 100 : -1 //% core["temperature"] = C.owned_field ? C.owned_field.plasma_temperature + 295 : -1 //K - core["power_status"] = "[C.avail()]/[C.active_power_usage]" + core["power_available"] = "[power_wattage_readable(power_available)]" + core["power_usage"] = "[power_wattage_readable(power_usage)]" + core["power_generated"] = "[power_wattage_readable(power_generated)]" core["shutdown_safe"] = C.owned_field ? C.owned_field.is_shutdown_safe() : TRUE var/list/reactants = list() diff --git a/code/modules/power/fusion/consoles/gyrotron_control.dm b/code/modules/power/fusion/consoles/gyrotron_control.dm index 3d997133297..9bcd1b61c85 100644 --- a/code/modules/power/fusion/consoles/gyrotron_control.dm +++ b/code/modules/power/fusion/consoles/gyrotron_control.dm @@ -34,7 +34,7 @@ switch(action) if("modifypower") - G.mega_energy = clamp(params["modifypower"], 1, 50) + G.mega_energy = clamp(params["modifypower"], 1, 250) G.change_power_consumption(G.mega_energy * GYRO_POWER, POWER_USE_ACTIVE) return TRUE @@ -62,7 +62,7 @@ gyrotron["active"] = G.active gyrotron["firedelay"] = G.rate gyrotron["energy"] = G.mega_energy + gyrotron["power_status"] = power_wattage_readable(G.mega_energy * GYRO_POWER) gyrotrons += list(gyrotron) - data["gyro_power_constant"] = GYRO_POWER data["gyrotrons"] = gyrotrons return data diff --git a/code/modules/power/fusion/core/_core.dm b/code/modules/power/fusion/core/_core.dm index e5ee7cab865..dcca80f2633 100644 --- a/code/modules/power/fusion/core/_core.dm +++ b/code/modules/power/fusion/core/_core.dm @@ -9,13 +9,16 @@ layer = ABOVE_HUMAN_LAYER density = TRUE use_power = POWER_USE_IDLE - idle_power_usage = 50 + idle_power_usage = 10000 /// Gets multiplied by field strength - active_power_usage = 500 + active_power_usage = 50000 anchored = FALSE var/obj/effect/fusion_em_field/owned_field - var/field_strength = 1//0.01 + /// The currently configured Field Strength (1 = 100 Tesla). + var/field_strength = 1 + /// This is for the INDRA, allowing a maximum 5-radius field. Change this for larger/smaller reactors. + var/field_strength_max = 1.2 var/initial_id_tag /obj/machinery/power/fusion_core/mapped @@ -26,6 +29,13 @@ connect_to_network() AddComponent(/datum/component/local_network_member, initial_id_tag) +/obj/machinery/power/fusion_core/Destroy() + if(owned_field) + qdel(owned_field) + owned_field = null + set_light(0) + return ..() + /** * If there's no powernet or no owned field, shutdown() in those cases too. */ @@ -44,6 +54,7 @@ owned_field.ChangeFieldStrength(field_strength) icon_state = "core1" update_use_power(POWER_USE_ACTIVE) + set_light(3, 0.7, COLOR_PALE_BLUE_GRAY) . = 1 /** @@ -52,13 +63,16 @@ /obj/machinery/power/fusion_core/proc/Shutdown(force_rupture) if(owned_field) icon_state = "core0" - if(force_rupture || owned_field.plasma_temperature > 1000) + // Blow the whole fucking thing up. + if(force_rupture || owned_field.plasma_temperature > 720000) owned_field.Rupture() + // Just radiate all that temperature into the environment. Unless you're under 1000 K, its still a big 'fuck you,' but admittedly better than EMP/explosion. else owned_field.RadiateAll() qdel(owned_field) owned_field = null update_use_power(POWER_USE_IDLE) + set_light(0) /obj/machinery/power/fusion_core/proc/AddParticles(name, quantity = 1) if(owned_field) @@ -76,7 +90,7 @@ /obj/machinery/power/fusion_core/proc/set_strength(value) value = clamp(value, MIN_FIELD_STR, MAX_FIELD_STR) field_strength = value - change_power_consumption(5 * value, POWER_USE_ACTIVE) + change_power_consumption(1500 * (value ** 1.5), POWER_USE_ACTIVE) if(owned_field) owned_field.ChangeFieldStrength(value) @@ -115,7 +129,7 @@ return ..() /obj/machinery/power/fusion_core/proc/jumpstart(field_temperature) - field_strength = 501 // Generally a good size. + field_strength = 120 // Generally a good size. Startup() if(!owned_field) return FALSE diff --git a/code/modules/power/fusion/core/core_field.dm b/code/modules/power/fusion/core/core_field.dm index 3c460e99eef..ec27c75e017 100644 --- a/code/modules/power/fusion/core/core_field.dm +++ b/code/modules/power/fusion/core/core_field.dm @@ -1,24 +1,53 @@ -#define FUSION_ENERGY_PER_K 20 -#define FUSION_INSTABILITY_DIVISOR 50000 -#define FUSION_RUPTURE_THRESHOLD 10000 -#define FUSION_REACTANT_CAP 10000 -#define FUSION_WARNING_DELAY 20 +#define FUSION_INSTABILITY_DIVISOR 100000 +#define FUSION_RUPTURE_THRESHOLD 25000 +#define FUSION_REACTANT_CAP 10000 +#define FUSION_WARNING_DELAY 20 +#define FUSION_BLACKBODY_MULTIPLIER 28 +#define FUSION_INTEGRITY_RATE_LIMIT 0.11 +#define FUSION_TICK_MAX_TEMP_CHANGE 0.2 /obj/effect/fusion_em_field name = "electromagnetic field" desc = "A coruscating, barely visible field of energy. It is shaped like a slightly flattened torus." alpha = 30 - layer = 4 + layer = ABOVE_ABOVE_HUMAN_LAYER light_color = COLOR_RED mouse_opacity = MOUSE_OPACITY_ICON + /// Temporary pool for energy being added to the field from a Gyrotron. var/energy = 0 + /// Actual core field energy (temperature). var/plasma_temperature = 0 + /// Effective core field energy (temperature) as modified by field magnitude constriction or relaxation. + // var/plasma_temperature_effective + /// Current excess radiation from ongoing reactions. var/radiation = 0 - /// The currently configured Field Strength (0.01 = 1 Tesla). - var/field_strength = 0.01 + /// Radiation of the previous three ticks averaged out (if != 0). + var/radiation_avg = 0 + /// Archived radiation. Used for averaging out new SSradiation.radiate() source creation. + var/radiation_archive_1 = 0 + var/radiation_archive_2 = 0 + var/radiation_archive_3 = 0 + var/radiation_archive_4 = 0 + var/radiation_archive_5 = 0 + /** + * The currently configured Field Strength (0.2 = 20 Tesla). Capped by TGUI at 1.2 (120 Tesla). + * + * Field Strength scales plasma temperature entropy. With higher field strength, each tick will lose more temp and produce more radiation. + * Field Strength scales power output per temperature. With higher field strength, each degree Kelvin will produce more electricity. + * Field Strength scales instability increase. With higher field strength, more instability for a given reaction will be produced each tick. + */ + var/field_strength = 20 + /// Current field strength multiplier applied to entropy. + var/field_strength_entropy_multiplier = 1.0 + /// Current field strength multiplier applied to instability. + var/field_strength_instability_multiplier = 1.0 + /// Current field strength multiplier applied to power output. + var/field_strength_power_multiplier = 1.0 /// Radius of the EM field. Scales with Field Strength. var/size = 1 + + /// Instability generated on this current tick. var/tick_instability = 0 /// Ranges from 0-1. At or over 1, boom. var/percent_unstable = 0 @@ -33,7 +62,8 @@ /obj/effect, /obj/structure/cable, /obj/machinery/atmospherics, - /obj/machinery/air_sensor + /obj/machinery/air_sensor, + /obj/machinery/camera ) var/light_min_range = 2 @@ -58,27 +88,51 @@ var/emergency_alert = "DANGER: INDRA REACTOR MELTDOWN IMMINENT!" var/lastwarning = 0 + /// Power output this tick. We average this like we do radiation for player-presenting data. + var/power_output + /// Power of the previous five ticks averaged out (if != 0). + var/output_avg = 0 + /// Archived power. Used for averaging out the power dumped into the powernet for players to see. + var/output_archive_1 = 0 + var/output_archive_2 = 0 + var/output_archive_3 = 0 + var/output_archive_4 = 0 + var/output_archive_5 = 0 + + var/vfx_radius_actual + //var/vfx_radius_visual + var/pause_rupture = TRUE + + var/power_log_base = 1.4 + var/power_multiplier = 3 + var/power_power = 3.2 + + var/aaa_minimum_energy_level_multiplier = 1.0 + /obj/effect/fusion_em_field/proc/UpdateVisuals() //Take the particle system and edit it //size - var/radius = ((size-1) / 2) * WORLD_ICON_SIZE - - particles.position = generator("circle", radius - size, radius + size, NORMAL_RAND) + vfx_radius_actual = ((size-1) / 2) * WORLD_ICON_SIZE + /* + var/vfx_radius_next = ((size+1) / 2) * WORLD_ICON_SIZE + var/percent_to_next_size = round(((field_strength + (size * 50)) - (size * 50)) / (((size + 1) / 2) * 50),0.01) + var/radius_add = round(percent_to_next_size * WORLD_ICON_SIZE, 1) + vfx_radius_visual = min(max(vfx_radius_actual + radius_add, vfx_radius_actual), vfx_radius_next) + */ + particles.position = generator("circle", vfx_radius_actual - size, vfx_radius_actual, NORMAL_RAND) //Radiation affects drift - var/radiationfactor = clamp((radiation * 0.001), 0, 0.5) + var/radiationfactor = clamp((radiation_avg * 0.001), 0, 0.75) particles.drift = generator("circle", (0.2 + radiationfactor), NORMAL_RAND) - particles.spawning = last_reactants * 0.9 + Interpolate(0, 200, clamp(plasma_temperature / 70000, 0, 1)) - /obj/effect/fusion_em_field/New(loc, obj/machinery/power/fusion_core/new_owned_core) ..() filters = list(filter(type = "ripple", size = 4, "radius" = 1, "falloff" = 1) , filter(type="outline", size = 2, color = COLOR_RED) - , filter(type="bloom", size=3, offset = 0.5, alpha = 235)) + , filter(type="bloom", size = 3, offset = 0.5, alpha = 235)) set_light(light_min_power, light_min_range / 10, light_min_range) last_range = light_min_range @@ -127,49 +181,6 @@ addtimer(CALLBACK(src, PROC_REF(update_light_colors)), 10 SECONDS, TIMER_LOOP) radio = new /obj/item/device/radio{channels=list("Engineering")}(src) -/** - * Not blackbody radiation- with these colors, is some sort of space magic? - */ -/obj/effect/fusion_em_field/proc/update_light_colors() - var/use_range - var/use_power = 0 - var/temp_mod = ((plasma_temperature-5000)/20000) - use_range = light_min_range + Ceil((light_max_range-light_min_range)*temp_mod) - use_power = light_min_power + Ceil((light_max_power-light_min_power)*temp_mod) - switch (plasma_temperature) - if (-INFINITY to 1000) - light_color = COLOR_RED - alpha = 30 - if (1000 to 6000) - light_color = COLOR_ORANGE - alpha = 50 - if (6000 to 20000) - light_color = COLOR_YELLOW - alpha = 80 - if (20000 to 50000) - light_color = COLOR_GREEN - alpha = 120 - if (50000 to 70000) - light_color = COLOR_CYAN - alpha = 160 - if (70000 to 100000) - light_color = COLOR_BLUE - alpha = 200 - if (100000 to INFINITY) - light_color = COLOR_VIOLET - alpha = 230 - - if (last_range != use_range || last_power != use_power || color != light_color) - set_light(use_range / 6, use_power ? 6 : 0, light_color) - last_range = use_range - last_power = use_power - //Temperature based color - particles.gradient = list(0, COLOR_WHITE, 0.85, light_color) - UNLINT(var/dm_filter/outline = filters[2]) - UNLINT(outline.color = light_color) - UNLINT(var/dm_filter/bloom = filters[3]) - UNLINT(bloom.alpha = alpha) - /** * What are we doing every tick? A lot. * * Grab some gas from the env and convert it to reactants for the pool. @@ -203,14 +214,27 @@ // Let the particles inside the field react. React() + field_strength_power_multiplier = max((owned_core.field_strength ** 1.2) / 100, 1) // Dump power to our powernet. - owned_core.add_avail(FUSION_ENERGY_PER_K * plasma_temperature) + power_output = ((log(power_log_base, plasma_temperature) * power_multiplier) ** power_power) * field_strength_power_multiplier + output_archive_5 = output_archive_4 + output_archive_4 = output_archive_3 + output_archive_3 = output_archive_2 + output_archive_2 = output_archive_1 + output_archive_1 = power_output + output_avg = ((output_archive_1 + output_archive_2 + output_archive_3 + output_archive_4 + output_archive_5 ) / 5) + owned_core.add_avail(power_output) + // Roundstart update + if(field_strength < 20) + field_strength = 20 + field_strength_entropy_multiplier = clamp((owned_core.field_strength ** 1.075) / 40, 0.8, 2.0) // Energy decay (entropy tax). if(plasma_temperature >= 1) - var/lost = plasma_temperature*0.01 + var/lost = plasma_temperature * 0.0045 radiation += lost - plasma_temperature -= lost + var/temp_change = 0 - (lost * field_strength_entropy_multiplier) + adjust_temperature(temp_change, cause = "Containment Entropy") // Handle some reactants formatting. for(var/reactant in reactants) @@ -218,7 +242,7 @@ if(amount < 1) reactants.Remove(reactant) else if(amount >= FUSION_REACTANT_CAP) - var/radiate = rand(3 * amount / 4, amount / 4) + var/radiate = rand(amount / 16, 3 * amount / 16) reactants[reactant] -= radiate radiation += radiate @@ -229,8 +253,6 @@ warning() Radiate() - if(radiation) - SSradiation.radiate(src, round(radiation*0.001)) return 1 /** @@ -247,9 +269,12 @@ * document details later. */ /obj/effect/fusion_em_field/proc/check_instability() + field_strength_instability_multiplier = max((owned_core.field_strength ** 1.1)/20, 1) if(tick_instability > 0) percent_unstable_archive = percent_unstable - percent_unstable += (tick_instability*size)/FUSION_INSTABILITY_DIVISOR + // Apply any modifiers to instability imparted by current field strength, but only apply up to FUSION_INTEGRITY_RATE_LIMIT additional instability. + var/new_instability = min((tick_instability * field_strength_instability_multiplier)/FUSION_INSTABILITY_DIVISOR, FUSION_INTEGRITY_RATE_LIMIT) + percent_unstable += new_instability tick_instability = 0 UpdateVisuals() else @@ -259,14 +284,14 @@ if(percent_unstable > 1) percent_unstable = 1 if(percent_unstable > 0) - percent_unstable = max(0, percent_unstable-rand(0.01,0.03)) + percent_unstable = max(0, percent_unstable-rand(0.02,0.08)) UpdateVisuals() if(percent_unstable >= 1) owned_core.Shutdown(force_rupture=1) else if(percent_unstable > 0.5 && prob(percent_unstable*100)) - var/ripple_radius = (((size-1) / 2) * WORLD_ICON_SIZE) + WORLD_ICON_SIZE + var/ripple_radius = ((size-1) / 2) + WORLD_ICON_SIZE var/wave_size = 4 if(plasma_temperature < FUSION_RUPTURE_THRESHOLD) visible_message(SPAN_DANGER("\The [src] ripples uneasily, like a disturbed pond.")) @@ -291,7 +316,7 @@ rupture = prob(25) wave_size += 4 - if(rupture) + if(rupture && !pause_rupture) owned_core.Shutdown(force_rupture=1) else var/lost_plasma = (plasma_temperature*percent_unstable) @@ -299,7 +324,8 @@ if(flare) radiation += plasma_temperature/2 wave_size += 6 - plasma_temperature -= lost_plasma + var/temp_change = 0 - lost_plasma + adjust_temperature(temp_change, cause = "Instability Bleed-off") if(fuel_loss) for(var/particle in reactants) @@ -375,13 +401,17 @@ * EMP, rads, and a big fuckoff explosion. */ /obj/effect/fusion_em_field/proc/Rupture() - visible_message(SPAN_DANGER("\The [src] shudders like a dying animal before flaring to eye-searing brightness and rupturing!")) - set_light(1, 0.1, 15, 2, "#ccccff") - empulse(get_turf(src), Ceil(plasma_temperature/1000), Ceil(plasma_temperature/300)) - sleep(5) + if(pause_rupture) + return + visible_message(SPAN_DANGER("\The [src] convulses violently as gouts of plasma spill forth!")) + set_light(1, 0.1, "#ccccff", 15, 2) + empulse(get_turf(src), Ceil(plasma_temperature/1000000), Ceil(plasma_temperature/300000)) RadiateAll() - explosion(get_turf(owned_core), 8, 8) - return + addtimer(CALLBACK(src, PROC_REF(RuptureExplosion)), 45 SECONDS) + +/obj/effect/fusion_em_field/proc/RuptureExplosion() + visible_message(SPAN_DANGER("\The [src] shudders like a dying animal before flaring to eye-searing brightness and rupturing!")) + explosion(get_turf(owned_core), 6, 8) /** * Sets field strength in Tesla, and corresponding field size. @@ -389,17 +419,18 @@ */ /obj/effect/fusion_em_field/proc/ChangeFieldStrength(new_strength) var/calc_size = 1 - if(new_strength <= 50) + if(new_strength < 40) calc_size = 1 - else if(new_strength <= 200) + else if(new_strength < 80) calc_size = 3 - else if(new_strength <= 500) + // Right now the max value allowed by the interface is 120. Change this from 121->120 if we want to allow bigger reactors. + else if(new_strength < 121) calc_size = 5 - else if(new_strength <= 1000) + else if(new_strength < 160) calc_size = 7 - else if(new_strength <= 2000) + else if(new_strength < 200) calc_size = 9 - else if(new_strength <= 5000) + else if(new_strength < 240) calc_size = 11 else calc_size = 13 @@ -407,8 +438,17 @@ change_size(calc_size) /obj/effect/fusion_em_field/proc/AddEnergy(a_energy, a_plasma_temperature) - energy += a_energy + // Boost gyro effects at low temperatures for faster startup + if(plasma_temperature <= 75000) + a_energy = a_energy * 32 + else if(plasma_temperature <= 250000) + a_energy = a_energy * 8 + else if(plasma_temperature <= 1000000) + a_energy = a_energy * 2 + energy += a_energy / 2 + plasma_temperature += a_plasma_temperature + if(a_energy && percent_unstable > 0) percent_unstable = max(percent_unstable - (a_energy/10000), 0) while(energy >= 100) @@ -450,10 +490,10 @@ for(var/particle in reactants) radiation += reactants[particle] reactants.Remove(particle) - radiation += plasma_temperature/2 + radiation += plasma_temperature/8 plasma_temperature = 0 - SSradiation.radiate(src, round(radiation*0.001)) + SSradiation.radiate(src, radiation) Radiate() /** @@ -465,14 +505,8 @@ * * After that, it'll return the air it stole this tick, just heated up. * The max temperature is capped so it can't be used for TEGs or shit. - * - * I don't know why radiation is set to 0 after that, because it means - * that the INDRA is COMPLETELY radiation-free short of exploding it. - * - * Probably need to delete radiation = 0 after testing it doesn't generate - * unreasonable amounts of rads with current values. */ -/obj/effect/fusion_em_field/proc/Radiate() +/obj/effect/fusion_em_field/proc/Radiate(safe = TRUE) if(istype(loc, /turf)) for(var/atom/movable/AM in range(max(1,FLOOR(size/2, 1)), loc)) @@ -488,7 +522,7 @@ continue AM.visible_message(SPAN_DANGER("The field buckles visibly around \the [AM]!")) - tick_instability += rand(30,50) + tick_instability += rand(10,25) AM.emp_act(EMP_LIGHT) if(owned_core && owned_core.loc) @@ -496,6 +530,19 @@ // Putting an upper bound on it to stop it being used in a TEG. if(environment && environment.temperature < (T0C+1000)) environment.add_thermal_energy(plasma_temperature*20000) + + // Radiation levels can spike unpredictably based on how many reagents we're throwing out, which reactions ran this cycle, etc. + // And while we like some unpredictability, it gets a little excessive with the INDRA. Use these vars to balance out actual rad output. + radiation_archive_5 = radiation_archive_4 + radiation_archive_4 = radiation_archive_3 + radiation_archive_3 = radiation_archive_2 + radiation_archive_2 = radiation_archive_1 + radiation_archive_1 = radiation + + if(radiation >= 1000) + radiation_avg = ((radiation_archive_1 + radiation_archive_2 + radiation_archive_3 + radiation_archive_4 + radiation_archive_5 ) / 5) + SSradiation.radiate(src, radiation_avg * 0.01) + radiation = 0 /obj/effect/fusion_em_field/proc/change_size(newsize = 1) @@ -519,63 +566,66 @@ * * */ /obj/effect/fusion_em_field/proc/React() - // Loop through the reactants in random order + // Loop through the reactants in random order. var/list/react_pool = reactants.Copy() last_reactants = 0 - // Can't have any reactions if there aren't any reactants present + // Can't have any reactions if there aren't any reactants present. if(length(react_pool)) - //determine a random amount to actually react this cycle, and remove it from the standard pool - //this is a hack, and quite nonrealistic :( + // Determine a random amount to actually react this cycle, and remove it from the standard pool. + // This is a hack, and quite nonrealistic :( for(var/reactant in react_pool) react_pool[reactant] = rand(FLOOR(react_pool[reactant]/2, 1),react_pool[reactant]) reactants[reactant] -= react_pool[reactant] if(!react_pool[reactant]) react_pool -= reactant - //loop through all the reacting reagents, picking out random reactions for them + // Loop through all the reacting reagents, picking out random reactions for them. var/list/produced_reactants = new/list var/list/p_react_pool = react_pool.Copy() while(length(p_react_pool)) - //pick one of the unprocessed reacting reagents randomly + // Pick one of the unprocessed reacting reagents randomly. var/cur_p_react = pick(p_react_pool) p_react_pool.Remove(cur_p_react) - //grab all the possible reactants to have a reaction with + // Grab all the possible reactants to have a reaction with. var/list/possible_s_reacts = react_pool.Copy() - //if there is only one of a particular reactant, then it can not react with itself so remove it + // If there is only one of a particular reactant, then it can not react with itself so remove it. possible_s_reacts[cur_p_react] -= 1 if(possible_s_reacts[cur_p_react] < 1) possible_s_reacts.Remove(cur_p_react) - //loop through and work out all the possible reactions + // Loop through and work out all the possible reactions. var/list/possible_reactions for(var/cur_s_react in possible_s_reacts) if(possible_s_reacts[cur_s_react] < 1) continue var/singleton/fusion_reaction/cur_reaction = get_fusion_reaction(cur_p_react, cur_s_react) - if(cur_reaction && plasma_temperature >= cur_reaction.minimum_energy_level) + if(cur_reaction && plasma_temperature >= (cur_reaction.minimum_energy_level * aaa_minimum_energy_level_multiplier)&& possible_s_reacts[cur_p_react] >= cur_reaction.minimum_p_react) LAZYDISTINCTADD(possible_reactions, cur_reaction) - //if there are no possible reactions here, abandon this primary reactant and move on + // If there are no possible reactions here, abandon this primary reactant and move on. if(!LAZYLEN(possible_reactions)) continue - /// Sort based on reaction priority to avoid deut-deut eating all the deut before deut-trit can run etc. + // Sort based on reaction priority to avoid deut-deut eating all the deut before deut-trit can run etc. sortTim(possible_reactions, /proc/cmp_fusion_reaction_des) - //split up the reacting atoms between the possible reactions + // Split up the reacting atoms between the possible reactions. while(length(possible_reactions)) var/singleton/fusion_reaction/cur_reaction = possible_reactions[1] possible_reactions.Remove(cur_reaction) - //set the randmax to be the lower of the two involved reactants + // Set the randmax to be the lower of the two involved reactants. var/max_num_reactants = react_pool[cur_reaction.p_react] > react_pool[cur_reaction.s_react] ? \ react_pool[cur_reaction.s_react] : react_pool[cur_reaction.p_react] if(max_num_reactants < 1) continue - //make sure we have enough energy + // Make sure we have enough energy. + // First, if minimum_reaction_temperature not set, make it the same as minimum_energy_level. + if(!cur_reaction.minimum_reaction_temperature) + cur_reaction.minimum_reaction_temperature = (cur_reaction.minimum_energy_level * 0.8 * aaa_minimum_energy_level_multiplier) if(plasma_temperature < cur_reaction.minimum_reaction_temperature) continue @@ -584,17 +634,19 @@ if(max_num_reactants < 1) continue - //randomly determined amount to react - var/amount_reacting = rand(1, max_num_reactants) + // Randomly determined amount to react. Starts at up to 1/20th, scales to up to 2/3rd at 20x min temp + var/temp_over_min = plasma_temperature / (cur_reaction.minimum_energy_level * 20 * aaa_minimum_energy_level_multiplier) + var/max_react_percent = clamp(temp_over_min, (1/20), (2/3)) + var/amount_reacting = rand(1, (max_num_reactants * max_react_percent)) - //removing the reacting substances from the list of substances that are primed to react this cycle - //if there aren't enough of that substance (there should be) then modify the reactant amounts accordingly + // Removing the reacting substances from the list of substances that are primed to react this cycle. + // If there aren't enough of that substance (there should be) then modify the reactant amounts accordingly. if( react_pool[cur_reaction.p_react] - amount_reacting >= 0 ) react_pool[cur_reaction.p_react] -= amount_reacting else amount_reacting = react_pool[cur_reaction.p_react] react_pool[cur_reaction.p_react] = 0 - //same again for secondary reactant + // Same again for secondary reactant if(react_pool[cur_reaction.s_react] - amount_reacting >= 0 ) react_pool[cur_reaction.s_react] -= amount_reacting else @@ -602,9 +654,18 @@ amount_reacting = react_pool[cur_reaction.s_react] react_pool[cur_reaction.s_react] = 0 - plasma_temperature -= max_num_reactants * cur_reaction.energy_consumption // Remove the consumed energy. - plasma_temperature += max_num_reactants * cur_reaction.energy_production // Add any produced energy. - radiation += max_num_reactants * cur_reaction.radiation // Add any produced radiation. + // Attempt to run temperature changes in isolation to prevent weird drops + var/plasma_temperature_change + var/current_reaction_energy_production = cur_reaction.energy_production + if(cur_reaction.maximum_effective_temperature && plasma_temperature > cur_reaction.maximum_effective_temperature) + current_reaction_energy_production = current_reaction_energy_production * 0.4 + plasma_temperature_change -= max_num_reactants * cur_reaction.energy_consumption + plasma_temperature_change += max_num_reactants * current_reaction_energy_production + + adjust_temperature(plasma_temperature_change, cur_reaction.max_temp_change_rate, cur_reaction.name) + + // Add any produced radiation. + radiation += max_num_reactants * cur_reaction.radiation tick_instability += max_num_reactants * cur_reaction.instability last_reactants += amount_reacting @@ -658,6 +719,118 @@ /obj/effect/fusion_em_field/add_point_filter() return +/** + * Handles clamping temperature changes to the core field to prevent excessive second-by-second shifts. + * Lives in its own function to ensure consistent behavior across all potential core field temperature interactions. + * + * * var/temperature : The amount temperature is being changed by. Can be positive or negative. + * * var/max_percentage : Limiting value on how much temp can change per tick. Only overriden by specific fusion reactions. + * * var/cause : For debugging only. + */ +/obj/effect/fusion_em_field/proc/adjust_temperature(var/temp_change, var/max_percentage = FUSION_TICK_MAX_TEMP_CHANGE, var/cause) + var/adjusted_plasma_temperature_change = min(temp_change, temp_change * FUSION_TICK_MAX_TEMP_CHANGE) + plasma_temperature += adjusted_plasma_temperature_change + +/** + * Accurate(ish***) black-body radiation colors. Fuck you purple light; save it for a phoronics update! + */ +/obj/effect/fusion_em_field/proc/update_light_colors() + var/use_range + var/use_power = 0 + var/temp_mod = ((plasma_temperature-5000)/28000) + + // Using real values for black-body radiation means the fusion reactor will almost always zip to top temp color. + // This multiplier scales the below temperatures to better match intended range of temps in gameplay. + var/effective_plasma_temperature = plasma_temperature / FUSION_BLACKBODY_MULTIPLIER + + use_range = light_min_range + Ceil((light_max_range-light_min_range)*temp_mod) + use_power = light_min_power + Ceil((light_max_power-light_min_power)*temp_mod) + switch (effective_plasma_temperature) + if (-INFINITY to 1000) + light_color = "#ff5800" + alpha = 30 + if (1000 to 1400) + light_color = "#ff6500" + alpha = 40 + if (1400 to 1800) + light_color = "#ff7e00" + alpha = 50 + if (1800 to 2200) + light_color = "#ff932c" + alpha = 60 + if (2200 to 2600) + light_color = "#ffa54f" + alpha = 70 + if (2600 to 3000) + light_color = "#ffb46b" + alpha = 80 + if (3000 to 4000) + light_color = "#ffd1a3" + alpha = 90 + if (4000 to 5400) + light_color = "#ffebdc" + alpha = 100 + if (5400 to 6200) + light_color = "#fff5f5" + alpha = 110 + if (6200 to 7000) + light_color = "#f5f3ff" + alpha = 120 + if (7000 to 8000) + light_color = "#e3e9ff" + alpha = 130 + if (8000 to 9000) + light_color = "#d6e1ff" + alpha = 140 + if (9000 to 10000) + light_color = "#ccdbff" + alpha = 150 + if (1000 to 11000) + light_color = "#c4d7ff" + alpha = 160 + if (11000 to 12000) + light_color = "#bfd3ff" + alpha = 170 + if (12000 to 13000) + light_color = "#bad0ff" + alpha = 180 + if (13000 to 14000) + light_color = "#b6ceff" + alpha = 190 + if (14000 to 15000) + light_color = "#b3ccff" + alpha = 200 + if (15000 to 16000) + light_color = "#b0caff" + alpha = 210 + if (16000 to 17000) + light_color = "#aec8ff" + alpha = 220 + if (17000 to 18000) + light_color = "#acc7ff" + alpha = 230 + if (18000 to 20000) + light_color = "#a8c5ff" + alpha = 230 + if (20000 to 23000) + light_color = "#94c2ff" + alpha = 230 + if (23000 to INFINITY) + light_color = "#74a2ff" + alpha = 240 + + if (last_range != use_range || last_power != use_power || color != light_color) + set_light(use_range / 6, use_power ? 6 : 0, light_color) + last_range = use_range + last_power = use_power + //Temperature based color + + particles.gradient = list(0, COLOR_WHITE, 0.85, light_color) + UNLINT(var/dm_filter/outline = filters[2]) + UNLINT(outline.color = light_color) + UNLINT(var/dm_filter/bloom = filters[3]) + UNLINT(bloom.alpha = alpha) + /particles/fusion width = 500 height = 500 @@ -673,7 +846,10 @@ color = 0 drift = generator("circle", 0.2, NORMAL_RAND) -#undef FUSION_ENERGY_PER_K #undef FUSION_INSTABILITY_DIVISOR #undef FUSION_RUPTURE_THRESHOLD #undef FUSION_REACTANT_CAP +#undef FUSION_WARNING_DELAY +#undef FUSION_BLACKBODY_MULTIPLIER +#undef FUSION_INTEGRITY_RATE_LIMIT +#undef FUSION_TICK_MAX_TEMP_CHANGE diff --git a/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm b/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm index 246d9e70fe1..664e547370c 100644 --- a/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm +++ b/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm @@ -77,3 +77,9 @@ /obj/item/fuel_assembly/hydrogen/New(newloc) ..(newloc, MATERIAL_HYDROGEN_METALLIC) + +/obj/item/fuel_assembly/iron/New(newloc) + ..(newloc, MATERIAL_IRON) + +/obj/item/fuel_assembly/boron/New(newloc) + ..(newloc, MATERIAL_BORON) diff --git a/code/modules/power/fusion/fusion_reactions.dm b/code/modules/power/fusion/fusion_reactions.dm index 79249cf4dd7..9ef6d473e1e 100644 --- a/code/modules/power/fusion/fusion_reactions.dm +++ b/code/modules/power/fusion/fusion_reactions.dm @@ -1,16 +1,30 @@ GLOBAL_LIST(fusion_reactions) /singleton/fusion_reaction - var/p_react = "" // Primary reactant. - var/s_react = "" // Secondary reactant. - var/minimum_energy_level = 1 + /// Used in Fusion Codex. The name will default to "[p_react]-[s_react]" unless set. + var/name + /// Primary reactant. + var/p_react = "" + /// Minimum # of p required to react. + var/minimum_p_react = 0 + /// Secondary reactant. + var/s_react = "" + /// This is the minimum energy to initiate a given reaction. + var/minimum_energy_level = 250000 + /// This is the minimum energy to continue a given reaction, once started. Used for halting energy-consuming reactions. + /// When not set, it will default to (minimum_energy_level * 0.8) to avoid tanking plasma temp in a single tick. + var/minimum_reaction_temperature + /// Gameplay balancing. If set, this reaction will produce less power when above the given temperature level. + var/maximum_effective_temperature var/energy_consumption = 0 var/energy_production = 0 var/radiation = 0 var/instability = 0 var/list/products = list() - var/minimum_reaction_temperature = 100 + /// In what order will reactions be carried out? Default 100, less important reactions have priority reduced. var/priority = 100 + /// Cap on what % of current plasma temperature the reaction is allowed to increase or reduce in a single tick. Higher values for more volatile reactions. + var/max_temp_change_rate = 0.2 /singleton/fusion_reaction/proc/handle_reaction_special(obj/effect/fusion_em_field/holder) return 0 @@ -32,100 +46,267 @@ GLOBAL_LIST(fusion_reactions) if(secondary_reactions.Find(s_react)) return GLOB.fusion_reactions[p_react][s_react] -// Material fuels -// deuterium -// tritium -// phoron -// supermatter - -// Gaseous/reagent fuels -// hydrogen -// helium -// lithium -// boron - -// Basic power production reactions. -// This is not necessarily realistic, but it makes a basic failure more spectacular. -/singleton/fusion_reaction/hydrogen_hydrogen - p_react = GAS_HYDROGEN - s_react = GAS_HYDROGEN - energy_consumption = 1 - energy_production = 2 - products = list(GAS_HELIUM = 1) - priority = 10 - -/singleton/fusion_reaction/deuterium_deuterium - p_react = GAS_DEUTERIUM - s_react = GAS_DEUTERIUM - energy_consumption = 1 - energy_production = 2 - priority = 0 - -// Advanced production reactions (todo) -/singleton/fusion_reaction/deuterium_helium - p_react = GAS_DEUTERIUM - s_react = GAS_HELIUM - energy_consumption = 1 - energy_production = 5 - radiation = 2 - /singleton/fusion_reaction/deuterium_tritium p_react = GAS_DEUTERIUM s_react = GAS_TRITIUM energy_consumption = 1 - energy_production = 1 + energy_production = 32 products = list(GAS_HELIUM = 1) - instability = 0.5 - radiation = 3 + instability = 3.5 + // deut-trit bad!!! + radiation = 280 + minimum_energy_level = 500 + maximum_effective_temperature = 350000 + priority = 1 -/singleton/fusion_reaction/deuterium_lithium +/singleton/fusion_reaction/deuterium_deuterium + name = "Deuterium Burning" p_react = GAS_DEUTERIUM - s_react = "lithium" - energy_consumption = 2 - energy_production = 0 - radiation = 3 - products = list(GAS_TRITIUM= 1) - instability = 1 + s_react = GAS_DEUTERIUM + energy_consumption = 6 + energy_production = 24 + products = list(GAS_HELIUM = 1) + radiation = 8 + minimum_energy_level = 200000 + priority = 0 -// Unideal/material production reactions +/singleton/fusion_reaction/hydrogen_hydrogen + name = "Hydrogen Burning" + p_react = GAS_HYDROGEN + s_react = GAS_HYDROGEN + energy_consumption = 4 + energy_production = 19 + products = list(GAS_DEUTERIUM = 1) + radiation = 3 + minimum_energy_level = 400000 + priority = 1 + +/singleton/fusion_reaction/hydrogen_deuterium + p_react = GAS_HYDROGEN + s_react = GAS_DEUTERIUM + energy_consumption = 7 + energy_production = 12 + products = list(GAS_HELIUMFUEL = 1) + radiation = 16 + minimum_energy_level = 300000 + priority = 2 + +/singleton/fusion_reaction/hydrogen_helium3 + p_react = GAS_HYDROGEN + s_react = GAS_HELIUMFUEL + energy_consumption = 2 + energy_production = 12 + products = list(GAS_HYDROGEN = 2) + radiation = 32 + instability = 1.8 + minimum_energy_level = 450000 + priority = 10 + +/singleton/fusion_reaction/hydrogen_helium + p_react = GAS_HYDROGEN + s_react = GAS_HELIUM + energy_consumption = 6 + energy_production = 18 + products = list(GAS_DEUTERIUM = 1) + radiation = 48 + instability = 2.8 + minimum_energy_level = 200000 + priority = 9 + +/singleton/fusion_reaction/helium_helium + name = "Helium Burning" + p_react = GAS_HELIUM + s_react = GAS_HELIUM + energy_consumption = 3 + energy_production = 20 + products = list(GAS_DEUTERIUM = 2, GAS_HYDROGEN = 1) + radiation = 6 + instability = 0.75 + minimum_energy_level = 800000 + priority = 12 + +/singleton/fusion_reaction/helium3_helium + p_react = GAS_HELIUM + s_react = GAS_HELIUMFUEL + energy_consumption = 3 + energy_production = 18 + products = list("beryllium-7" = 1) + radiation = 6 + minimum_energy_level = 850000 + priority = 13 + +/singleton/fusion_reaction/beryllium7_decay + name = "Beryllium-7 Decay" + p_react = "beryllium-7" + s_react = "beryllium-7" + energy_consumption = 2 + energy_production = 7 + products = list("lithium" = 2) + radiation = 54 + instability = 2.25 + minimum_energy_level = 1000 + priority = 15 + +/singleton/fusion_reaction/lithium_hydrogen + p_react = "lithium" + s_react = GAS_HYDROGEN + energy_consumption = 3 + energy_production = 5 + products = list(GAS_DEUTERIUM = 1, GAS_HELIUM = 1) + radiation = 22 + instability = 0.35 + minimum_energy_level = 1480000 + priority = 16 + +/singleton/fusion_reaction/lithium_deuterium + p_react = "lithium" + minimum_p_react = 2000 + s_react = GAS_DEUTERIUM + energy_consumption = 1 + energy_production = 40 + radiation = 18 + instability = 2.8 + products = list(GAS_TRITIUM = 2) + minimum_energy_level = 2000000 + priority = 30 + +/singleton/fusion_reaction/beryllium7_hydrogen + p_react = GAS_HYDROGEN + s_react = "beryllium-7" + energy_consumption = 4 + energy_production = 12 + products = list("boron-8" = 1) + radiation = 3 + instability = 0.5 + minimum_energy_level = 1720000 + priority = 17 + +/singleton/fusion_reaction/boron8_decay + name = "Boron-8 Decay" + p_react = "boron-8" + s_react = "boron-8" + energy_consumption = 4 + energy_production = 6 + products = list("beryllium-8" = 2) + radiation = 64 + instability = 2.5 + minimum_energy_level = 1000 + priority = 18 + +/singleton/fusion_reaction/beryllium8_fission + name = "Beryllium-8 Fission Branch A" + p_react = "beryllium-8" + s_react = "beryllium-8" + energy_consumption = 14 + energy_production = 10 + products = list(GAS_HELIUM = 2) + radiation = 36 + instability = 5 + minimum_energy_level = 25000 + priority = 19 + +// This is just to delete lone beryllium-8 reactants that might get left over somehow +/singleton/fusion_reaction/beryllium8_hydrogen + name = "Beryllium-8 Fission Branch B" + p_react = "beryllium-8" + s_react = GAS_HYDROGEN + energy_consumption = 18 + energy_production = 10 + products = list(GAS_HELIUM = 2) + radiation = 72 + minimum_energy_level = 400000 + priority = 18 + +/singleton/fusion_reaction/helium3_helium3 + name = "Helium-3 Burning" + p_react = GAS_HELIUMFUEL + s_react = GAS_HELIUMFUEL + energy_consumption = 2 + energy_production = 96 + products = list(GAS_HELIUM = 1, GAS_HYDROGEN = 2) + radiation = 1 + minimum_energy_level = 3200000 + priority = 30 + +// bad!!! /singleton/fusion_reaction/oxygen_oxygen + name = "Oxygen Burning" p_react = GAS_OXYGEN s_react = GAS_OXYGEN energy_consumption = 10 energy_production = 0 - instability = 5 - radiation = 5 + instability = 8 + radiation = 250 products = list("silicon"= 1) -/singleton/fusion_reaction/iron_iron +// Iron poisoning +/singleton/fusion_reaction/iron_poison + name = "Iron Poisoning" p_react = "iron" s_react = "iron" - products = list("silver" = 10, "gold" = 10, "platinum" = 10) // Not realistic but w/e - energy_consumption = 10 + energy_consumption = 32 + energy_production = 0 + radiation = 48 + minimum_energy_level = 1000 + priority = 35 + +// Gold poisoning +/singleton/fusion_reaction/gold_poison + name = "Gold Poisoning" + p_react = "gold" + s_react = "gold" + energy_consumption = 48 energy_production = 0 instability = 2 - minimum_reaction_temperature = 10000 + minimum_energy_level = 1000 + radiation = 96 -/singleton/fusion_reaction/phoron_hydrogen - p_react = GAS_HYDROGEN - s_react = GAS_PHORON - energy_consumption = 10 +/singleton/fusion_reaction/iron_iron + name = "Iron Burning" + p_react = "iron" + s_react = "iron" + // Much of the gold is going to be consumed to poison the reactor. + products = list("silver" = 12, "gold" = 32, "platinum" = 12, "lead" = 12, ) // Not realistic but w/e + energy_consumption = 32 energy_production = 0 - instability = 5 - products = list("mhydrogen" = 1) - minimum_reaction_temperature = 8000 + instability = 0.5 + radiation = 49 + minimum_energy_level = 2800000 + priority = 40 + +/singleton/fusion_reaction/mhydrogen + name = "Metallic Hydrogen Stabilization" + p_react = "metallic hydrogen" + s_react = "metallic hydrogen" + energy_consumption = 0 + energy_production = 50 + instability = -8 + radiation = 10 + products = list("deuterium" = 1, "metallic hydrogen" = 1) + minimum_energy_level = 800000 + +/singleton/fusion_reaction/iron_phoron + name = "Phoron Shot" + p_react = "iron" + s_react = GAS_PHORON + energy_consumption = 64 + energy_production = 18 + radiation = 64 + instability = 6.5 + products = list("uranium" = 30, "borosilicate glass" = 80, "osmium" = 20) // Psuedoscience but here we are + minimum_energy_level = 4000000 + priority = 40 // VERY UNIDEAL REACTIONS. /singleton/fusion_reaction/phoron_supermatter p_react = "supermatter" s_react = GAS_PHORON energy_consumption = 0 - energy_production = 5 - radiation = 40 - instability = 20 + energy_production = 800 + radiation = 4000 + instability = 30 /singleton/fusion_reaction/phoron_supermatter/handle_reaction_special(obj/effect/fusion_em_field/holder) - wormhole_event(GetConnectedZlevels(holder)) var/turf/origin = get_turf(holder) @@ -153,26 +334,3 @@ GLOBAL_LIST(fusion_reactions) explosion(origin, 8) return 1 - - -// High end reactions. -/singleton/fusion_reaction/boron_hydrogen - p_react = GAS_BORON - s_react = GAS_HYDROGEN - minimum_energy_level = 15000 - energy_consumption = 3 - energy_production = 12 - radiation = 3 - instability = 2.5 - products = list(GAS_HELIUM = 1) - -// Any now we go even further beyond!!!! -/singleton/fusion_reaction/iron_phoron - p_react = "iron" - s_react = GAS_PHORON - minimum_energy_level = 100000 - energy_consumption = 10 - energy_production = 4 - radiation = 30 - instability = 5 - products = list("uranium" = 10, "lead" = 10, "borosilicate glass" = 10) // Psuedoscience but here we are diff --git a/code/modules/power/fusion/kinetic_harvester.dm b/code/modules/power/fusion/kinetic_harvester.dm index eb99d8eb4d0..28a0bf8bafb 100644 --- a/code/modules/power/fusion/kinetic_harvester.dm +++ b/code/modules/power/fusion/kinetic_harvester.dm @@ -69,7 +69,7 @@ for(var/mat in stored) var/material/material = SSmaterials.get_material_by_name(mat) if(material) - var/sheets = FLOOR(stored[mat]/(SHEET_MATERIAL_AMOUNT * 1.5), 1) + var/sheets = FLOOR(stored[mat]/(SHEET_MATERIAL_AMOUNT * 2), 1) data["materials"] += list(list("material" = mat, "rawamount" = stored[mat], "amount" = sheets, "harvest" = harvesting[mat])) return data @@ -87,7 +87,8 @@ harvesting -= mat else var/harvest = min(harvest_from.owned_field.reactants[mat], rand(100,200)) - harvest_from.owned_field.reactants[mat] -= harvest + // Leave a few counts of the reactant to avoid deactivating harvest mode + harvest_from.owned_field.reactants[mat] -= (harvest - rand(0,5)) if(harvest_from.owned_field.reactants[mat] <= 0) harvest_from.owned_field.reactants -= mat stored[mat] += harvest @@ -112,7 +113,7 @@ var/material/material = SSmaterials.get_material_by_name(mat) if(material) var/sheet_cost = (SHEET_MATERIAL_AMOUNT * 1.5) - var/sheets = FLOOR(stored[mat]/sheet_cost, 1) + var/sheets = min(FLOOR(stored[mat]/sheet_cost, 1), 50) if(sheets > 0) var/obj/item/stack/material/M = new material.stack_type(get_turf(src), sheets) M.update_icon() diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index de35aafe73c..d338f0a8d60 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -7,9 +7,9 @@ obj_flags = OBJ_FLAG_ROTATABLE use_power = POWER_USE_OFF - idle_power_usage = 100 //Watts, I hope. Just enough to do the computer and display things. + idle_power_usage = 1000 - var/max_power = 500000 + var/max_power = 2500000 var/thermal_efficiency = 0.65 var/obj/machinery/atmospherics/binary/circulator/circ1 @@ -146,7 +146,7 @@ //Exceeding maximum power leads to some power loss if(effective_gen > max_power && prob(5)) spark_system.queue() - stored_energy *= 0.5 + stored_energy *= 0.67 //Power last_circ1_gen = circ1.return_stored_energy() diff --git a/code/modules/power/portgen.dm b/code/modules/power/portgen.dm index 41b2c4f76dc..4674576f3cd 100644 --- a/code/modules/power/portgen.dm +++ b/code/modules/power/portgen.dm @@ -120,7 +120,7 @@ temperature_gain and max_temperature are set so that the max safe power level is 4. Setting to 5 or higher can only be done temporarily before the generator overheats. */ - power_gen = 25000 //Watts output per power_output level + power_gen = 50000 //Watts output per power_output level var/max_power_output = 5 //The maximum power setting without emagging. var/max_safe_output = 4 // For UI use, maximal output that won't cause overheat. var/time_per_sheet = 576 //fuel efficiency - how long 1 sheet lasts at power level 1 @@ -416,7 +416,7 @@ sheet_path = /obj/item/stack/material/uranium board_path = "/obj/item/circuitboard/portgen/advanced" - power_gen = 50000 // 200 kW = safe max, 250 kW = unsafe max. + power_gen = 100000 // 400 kW = safe max, 500 kW = unsafe max. max_temperature = 340 temperature_gain = 60 @@ -448,7 +448,7 @@ sheet_path = /obj/item/stack/material/tritium board_path = "/obj/item/circuitboard/portgen/super" - power_gen = 80000 // 400 kW = safe max, 640 kW = unsafe max + power_gen = 160000 // 800 kW = safe max, 960 kW = unsafe max max_power_output = 8 max_safe_output = 5 time_per_sheet = 576 @@ -462,7 +462,7 @@ /obj/machinery/power/portgen/basic/fusion name = "minature fusion reactor" desc = "The RT7-0, an industrial all-in-one nuclear fusion power plant created by Hephaestus. It uses tritium as a fuel source and relies on coolant to keep the reactor cool. Rated for 500 kW max safe output." - power_gen = 100000 + power_gen = 200000 icon_state = "reactor" base_icon = "reactor" portgen_lightcolour = "#458943" diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 8b7cc465235..1c5e7fc19ae 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -57,6 +57,27 @@ else return 0 +// Proc: power_wattage_readable() +// Parameters: 1 (amount - Power in Watts to be converted to W, kW or MW) +// Description: Helper proc that converts reading in Watts to kW or MW (returns string version of amount parameter) +/obj/machinery/proc/power_wattage_readable(var/amount = 0) + var/units = "" + // 10kW and less - Watts + if(amount < 10000) + units = "W" + // 10MW and less - KiloWatts + else if(amount < 10000000) + units = "kW" + amount = (round(amount/100) / 10) + // More than 10MW - MegaWatts + else + units = "MW" + amount = (round(amount/10000) / 100) + if (units == "W") + return "[amount] W" + else + return "[amount] [units]" + /obj/machinery/power/proc/disconnect_terminal() // machines without a terminal will just return, no harm no fowl. return diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 8ca18dcc68a..5a7ec10e658 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -15,7 +15,7 @@ buckle_lying = FALSE buckle_require_restraints = TRUE - var/power_gen = 1000 // Enough to power a single APC. 4000 output with T4 capacitor. + var/power_gen = 4000 // Enough to power a single APC. 16000 output with T4 capacitor. var/irradiate = TRUE // RTGs irradiate surroundings, but only when panel is open. @@ -70,7 +70,7 @@ /obj/machinery/power/rtg/advanced desc = "An advanced RTG capable of moderating isotope decay, increasing power output but reducing lifetime. It uses phoron-fueled radiation collectors to increase output even further." - power_gen = 1250 // 2500 on T1, 10000 on T4. + power_gen = 5000 // 10000 on T1, 20000 on T4. component_types = list( /obj/item/stack/cable_coil{amount = 5}, diff --git a/code/modules/power/sensors/powernet_sensor.dm b/code/modules/power/sensors/powernet_sensor.dm index 28804cb3817..916d4716f52 100644 --- a/code/modules/power/sensors/powernet_sensor.dm +++ b/code/modules/power/sensors/powernet_sensor.dm @@ -47,27 +47,6 @@ return 1 return 0 -// Proc: reading_to_text() -// Parameters: 1 (amount - Power in Watts to be converted to W, kW or MW) -// Description: Helper proc that converts reading in Watts to kW or MW (returns string version of amount parameter) -/obj/machinery/power/sensor/proc/reading_to_text(var/amount = 0) - var/units = "" - // 10kW and less - Watts - if(amount < 10000) - units = "W" - // 10MW and less - KiloWatts - else if(amount < 10000000) - units = "kW" - amount = (round(amount/100) / 10) - // More than 10MW - MegaWatts - else - units = "MW" - amount = (round(amount/10000) / 100) - if (units == "W") - return "[amount] W" - else - return "~[amount] [units]" //kW and MW are only approximate readings, therefore add "~" - // Proc: find_apcs() // Parameters: None // Description: Searches powernet for APCs and returns them in a list. @@ -119,13 +98,13 @@ out += "NO CELL" var/load = A.lastused_total // Load. total_apc_load += load - load = reading_to_text(load) + load = power_wattage_readable(load) out += "[load]" - out += "
    AREA_USAGE_TOTAL AVAILABLE: [reading_to_text(powernet.avail)]" - out += "
    APC LOAD: [reading_to_text(total_apc_load)]" - out += "
    OTHER LOAD: [reading_to_text(max(powernet.load - total_apc_load, 0))]" - out += "
    AREA_USAGE_TOTAL GRID LOAD: [reading_to_text(powernet.viewload)] ([round((powernet.load / powernet.avail) * 100)]%)" + out += "
    AREA_USAGE_TOTAL AVAILABLE: [power_wattage_readable(powernet.avail)]" + out += "
    APC LOAD: [power_wattage_readable(total_apc_load)]" + out += "
    OTHER LOAD: [power_wattage_readable(max(powernet.load - total_apc_load, 0))]" + out += "
    AREA_USAGE_TOTAL GRID LOAD: [power_wattage_readable(powernet.viewload)] ([round((powernet.load / powernet.avail) * 100)]%)" if(powernet.problem) out += "
    WARNING: Abnormal grid activity detected!" @@ -163,7 +142,7 @@ APC_entry["cell_charge"] = A.cell ? round(A.cell.percent()) : 0 APC_entry["cell_status"] = A.cell ? chg[A.charging+1] : 0 // Other info - APC_entry["total_load"] = reading_to_text(A.lastused_total) + APC_entry["total_load"] = power_wattage_readable(A.lastused_total) var/area_display_name = get_area_display_name(A.area) APC_entry["name"] = area_display_name // Add data into main list of APC data. @@ -171,10 +150,10 @@ // Add load of this APC to total APC load calculation total_apc_load += A.lastused_total data["apc_data"] = APC_data - data["total_avail"] = reading_to_text(max(powernet.avail, 0)) - data["total_used_apc"] = reading_to_text(max(total_apc_load, 0)) - data["total_used_other"] = reading_to_text(max(powernet.viewload - total_apc_load, 0)) - data["total_used_all"] = reading_to_text(max(powernet.viewload, 0)) + data["total_avail"] = power_wattage_readable(max(powernet.avail, 0)) + data["total_used_apc"] = power_wattage_readable(max(total_apc_load, 0)) + data["total_used_other"] = power_wattage_readable(max(powernet.viewload - total_apc_load, 0)) + data["total_used_all"] = power_wattage_readable(max(powernet.viewload, 0)) // Prevents runtimes when avail is 0 (division by zero) if(powernet.avail) data["load_percentage"] = round((powernet.viewload / powernet.avail) * 100) diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index e74844b84d4..8b5c149c123 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -52,14 +52,14 @@ else if(istype(A, /obj/machinery/power/fusion_core)) var/obj/machinery/power/fusion_core/collided_core = A if(particle_type && particle_type != "neutron") - if(collided_core.AddParticles(particle_type, 1 + additional_particles)) + if(collided_core.AddParticles(particle_type, 12 + additional_particles)) collided_core.owned_field.plasma_temperature += mega_energy collided_core.owned_field.energy += energy qdel(src) else if(istype(A, /obj/effect/fusion_particle_catcher)) var/obj/effect/fusion_particle_catcher/PC = A if(particle_type && particle_type != "neutron") - if(PC.parent.owned_core.AddParticles(particle_type, 1 + additional_particles)) + if(PC.parent.owned_core.AddParticles(particle_type, 12 + additional_particles)) PC.parent.plasma_temperature += mega_energy PC.parent.energy += energy qdel(src) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index fe36f72f0fd..c81314dc4c9 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -1,5 +1,14 @@ -// the SMES -// stores power +/** + * BUILDABLE SMES (Superconducting Magnetic Energy Storage) UNIT + * AKA PSUs- both 'SMES unit' and 'PSU' will be used interchangeably in documentation and in-game. + * + * PSUs are linked by the RCON System, allowing for remote management of all linked + * It also supports RCON System which allows you to operate it remotely, if properly set. + * + * This file contains the main code and definition information for SMES units. + * For instantiation of buildable SMES units (the ones you'll see 99% of the time), + * please refer to 'code/modules/power/smes_construction.dm' + */ #define SMESRATE 0.05 #define SMESMAXCHARGELEVEL 250000 @@ -28,30 +37,41 @@ clicksound = /singleton/sound_category/switch_sound var/health = 500 - var/busted = FALSE // this it to prevent the damage text from playing repeatedly - - var/capacity = 5e6 // maximum charge - var/charge = 1e6 // actual charge + /// this it to prevent the damage text from playing repeatedly + var/busted = FALSE + /// maximum charge + var/capacity = 5e6 + var/charge = 1e6 /// actual charge var/max_coils = 0 - var/input_attempt = 0 // 1 = attempting to charge, 0 = not attempting to charge - var/inputting = 0 // 1 = actually inputting, 0 = not inputting - var/input_level = 50000 // amount of power the SMES attempts to charge by - var/input_level_max = 200000 // cap on input_level - var/input_taken = 0 // amount that we received from powernet last tick + /// 1 = attempting to charge, 0 = not attempting to charge + var/input_attempt = 0 + /// 1 = actually inputting, 0 = not inputting + var/inputting = 0 + /// amount of power the SMES attempts to charge by + var/input_level = 250000 + /// cap on input_level + var/input_level_max = 2000000 + /// amount that we received from powernet last tick + var/input_taken = 0 - var/output_attempt = 0 // 1 = attempting to output, 0 = not attempting to output - var/outputting = 0 // 1 = actually outputting, 0 = not outputting - var/output_level = 50000 // amount of power the SMES attempts to output - var/output_level_max = 200000 // cap on output_level - var/output_used = 0 // amount of power actually outputted. may be less than output_level if the powernet returns excess power + /// 1 = attempting to output, 0 = not attempting to output + var/output_attempt = 0 + /// 1 = actually outputting, 0 = not outputting + var/outputting = 0 + /// amount of power the SMES attempts to output + var/output_level = 250000 + /// cap on output_level + var/output_level_max = 2000000 + /// amount of power actually outputted. may be less than output_level if the powernet returns excess power + var/output_used = 0 - //Holders for powerout event. - //var/last_output_attempt = 0 - //var/last_input_attempt = 0 - //var/last_charge = 0 + ///Holders for powerout event. + ///var/last_output_attempt = 0 + ///var/last_input_attempt = 0 + ///var/last_charge = 0 - //For icon overlay updates + ///For icon overlay updates var/last_disp var/last_chrg var/last_onln @@ -60,14 +80,18 @@ var/input_pulsed = 0 var/output_cut = 0 var/output_pulsed = 0 - var/is_critical = FALSE // Use by gridcheck event, if set to true we do not disable it - var/failure_timer = 0 // Set by gridcheck event, temporarily disables the SMES. + /// Use by gridcheck event, if set to true we do not disable it + var/is_critical = FALSE + /// Set by gridcheck event, temporarily disables the SMES. + var/failure_timer = 0 var/target_load = 0 var/open_hatch = 0 var/name_tag = null - var/building_terminal = 0 //Suggestions about how to avoid clickspam building several terminals accepted! + ///Suggestions about how to avoid clickspam building several terminals accepted! + var/building_terminal = 0 var/obj/machinery/power/terminal/terminal = null - var/should_be_mapped = 0 // If this is set to 0 it will send out warning on New() + /// If this is set to 0 it will send out warning on New() + var/should_be_mapped = 0 var/datum/effect_system/sparks/big_spark var/datum/effect_system/sparks/small_spark diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index f0631994876..596524c7d3a 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -1,22 +1,26 @@ -// BUILDABLE SMES(Superconducting Magnetic Energy Storage) UNIT -// -// Last Change 1.1.2015 by Atlantis - Happy New Year! -// -// This is subtype of SMES that should be normally used. It can be constructed, deconstructed and hacked. -// It also supports RCON System which allows you to operate it remotely, if properly set. +/** + * BUILDABLE SMES (Superconducting Magnetic Energy Storage) UNIT + * AKA PSUs- both 'SMES unit' and 'PSU' will be used interchangeably in documentation and in-game. + * + * PSUs are linked by the RCON System, allowing for remote management of all linked + * It also supports RCON System which allows you to operate it remotely, if properly set. + * + * This is subtype of SMES that should be normally used. It can be constructed, deconstructed and hacked. + */ -//MAGNETIC COILS - These things actually store and transmit power within the SMES. Different types have different +/// MAGNETIC COILS - These things actually store and transmit power within the SMES. Different types have different properties /obj/item/smes_coil name = "superconductive magnetic coil" desc = "Standard superconductive magnetic coil with balanced capacity and I/O rating." icon = 'icons/obj/stock_parts.dmi' icon_state = "smes_coil" - w_class = WEIGHT_CLASS_BULKY // It's LARGE (backpack size) - var/ChargeCapacity = 5000000 - var/IOCapacity = 250000 + /// It's LARGE (backpack sized) + w_class = WEIGHT_CLASS_BULKY + var/ChargeCapacity = 2500000 + var/IOCapacity = 500000 -/obj/item/smes_coil/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) - . = ..() +/obj/item/smes_coil/feedback_hints(mob/user, distance, is_adjacent) + . += ..() if(is_adjacent) . += "The label reads: Only certified professionals are allowed to handle and install this component." . += "Charge capacity: [ChargeCapacity/1000000] MJ." @@ -27,25 +31,24 @@ name = "basic superconductive magnetic coil" desc = "Cheaper model of the standard superconductive magnetic coil. Its capacity and I/O rating are considerably lower." icon_state = "smes_coil_weak" - ChargeCapacity = 1000000 - IOCapacity = 150000 + ChargeCapacity = 500000 + IOCapacity = 300000 // 1000% Charge Capacity, 20% I/O Capacity /obj/item/smes_coil/super_capacity name = "superconductive capacitance coil" desc = "Specialised version of the standard superconductive magnetic coil. It has significantly stronger containment field, allowing for immense power storage. However its I/O rating is much lower." icon_state = "smes_coil_capacitance" - ChargeCapacity = 50000000 - IOCapacity = 50000 + ChargeCapacity = 25000000 + IOCapacity = 100000 // 10% Charge Capacity, 400% I/O Capacity. Technically turns SMES into large super capacitor.Ideal for shields. /obj/item/smes_coil/super_io name = "superconductive transmission coil" desc = "Specialised version of the standard superconductive magnetic coil. While it's almost useless for power storage it can rapidly transfer power, making it useful in systems that require large throughput." icon_state = "smes_coil_transmission" - ChargeCapacity = 500000 - IOCapacity = 1000000 - + ChargeCapacity = 250000 + IOCapacity = 2000000 // SMES SUBTYPES - THESE ARE MAPPED IN AND CONTAIN DIFFERENT TYPES OF COILS @@ -66,63 +69,85 @@ /obj/machinery/power/smes/buildable/main_engine cur_coils = 4 input_attempt = TRUE - input_level = 500000 + input_level = 1000000 output_attempt = TRUE - output_level = 500000 + output_level = 1000000 charge =1.5e+7 -// For the substation SMES around the Horizon. +/// For the substation SMES around the Horizon. /obj/machinery/power/smes/buildable/substation - input_level = 150000 - output_level = 140000 + input_level = 250000 + output_level = 240000 + +// Telecomms substation. Based on shuttle settings; those boxes are power-hungry. +/obj/machinery/power/smes/buildable/telecomms/Initialize() + . = ..() + component_parts += new /obj/item/smes_coil/super_io(src) + input_attempt = TRUE + output_attempt = TRUE + input_level = 2000000 + output_level = 2000000 + charge = 5.55e+007 // The Horizon's shuttles want something with decent capacity to sustain themselves and enough transmission to meet their energy needs. /obj/machinery/power/smes/buildable/horizon_shuttle/Initialize() . = ..() component_parts += new /obj/item/smes_coil/super_io(src) component_parts += new /obj/item/smes_coil/super_capacity(src) - input_attempt = TRUE - output_attempt = TRUE - input_level = 1300000 - output_level = 1300000 - charge = 5.55e+007 - -/obj/machinery/power/smes/buildable/third_party_shuttle/Initialize() //Identical to the horizon_shuttle for now as we try to work out specifics - . = ..() - component_parts += new /obj/item/smes_coil/super_io(src) component_parts += new /obj/item/smes_coil/super_capacity(src) input_attempt = TRUE output_attempt = TRUE - input_level = 1300000 - output_level = 1300000 + input_level = 2700000 + output_level = 2700000 + charge = 5.55e+007 + +//Identical to the horizon_shuttle for now as we try to work out specifics +/obj/machinery/power/smes/buildable/third_party_shuttle/Initialize() + . = ..() + component_parts += new /obj/item/smes_coil/super_io(src) + component_parts += new /obj/item/smes_coil/super_capacity(src) + component_parts += new /obj/item/smes_coil/super_capacity(src) + input_attempt = TRUE + output_attempt = TRUE + input_level = 2700000 + output_level = 2700000 charge = 5.55e+007 /obj/machinery/power/smes/buildable/third_party_shuttle/empty/Initialize() . = ..() charge = 0 -/obj/machinery/power/smes/buildable/autosolars/Initialize() //for third parties that have their solars autostart, It's slightly upgraded for them +//for third parties that have their solars autostart, It's slightly upgraded for them +/obj/machinery/power/smes/buildable/autosolars/Initialize() . = ..() - component_parts += new /obj/item/smes_coil/super_capacity(src) component_parts += new /obj/item/smes_coil/super_io(src) + component_parts += new /obj/item/smes_coil/super_capacity(src) + component_parts += new /obj/item/smes_coil/super_capacity(src) input_attempt = TRUE output_attempt = TRUE - input_level = 1000000 - output_level = 1000000 + input_level = 2700000 + output_level = 2700000 charge = 3.02024e+006 // END SMES SUBTYPES // SMES itself /obj/machinery/power/smes/buildable - max_coils = 6 // 30M capacity, 1.5MW input/output when fully upgraded /w default coils - var/cur_coils = 1 // Current amount of installed coils - var/safeties_enabled = 1 // If 0 modifications can be done without discharging the SMES, at risk of critical failure. - var/failing = 0 // If 1 critical failure has occured and SMES explosion is imminent. + /// 20 MJ capacity, 8 MW input/output when fully upgraded /w default coils + max_coils = 8 + /// Current amount of installed coils + var/cur_coils = 1 + /// If 0 modifications can be done without discharging the SMES, at risk of critical failure. + var/safeties_enabled = 1 + /// If 1 critical failure has occured and SMES explosion is imminent. + var/failing = 0 var/datum/wires/smes/wires - var/grounding = 1 // Cut to quickly discharge, at cost of "minor" electrical issues in output powernet. - var/RCon = 1 // Cut to disable AI and remote control. - var/RCon_tag = "NO_TAG" // RCON tag, change to show it on SMES Remote control console. + /// Cut to quickly discharge, at cost of "minor" electrical issues in output powernet. + var/grounding = 1 + /// Cut to disable AI and remote control. + var/RCon = 1 + /// RCON tag, change to show it on SMES Remote control console. + var/RCon_tag = "NO_TAG" charge = 0 should_be_mapped = 1 component_types = list( @@ -348,8 +373,6 @@ // Not sure if this is necessary, but just in case the SMES *somehow* survived.. qdel(src) - - // Proc: apcs_overload() // Parameters: 3 (failure_chance - chance to actually break the APC, overload_chance - Chance of breaking lights, reboot_chance - Chance of temporarily disabling the APC) // Description: Damages output powernet by power surge. Destroys few APCs and lights, depending on parameters. diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm index db40428533c..6d6e7e1cfec 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm @@ -78,6 +78,23 @@ to_chat(M, SPAN_WARNING(pick("Your skin burns!", "The chemical is melting your skin!", "Wash it off, wash it off!"))) remove_self(REAGENT_VOLUME(holder, type), holder) +/singleton/reagent/boron + name = "Boron" + description = "A dark, silvery metalloid with a small handful of industrial applications." + reagent_state = SOLID + color = "#888888" + taste_description = "metal" + taste_mult = 1.1 + fallback_specific_heat = 0.811 + value = 0.02 + +/** + * Boron has very little affect on mammals, but is moderately toxic to arthopods and commonly used in insecticides. Hi Vaurca. + */ +/singleton/reagent/boron/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder) + if (alien == IS_VAURCA) + M.adjustToxLoss(2 * removed) + /singleton/reagent/carbon name = "Carbon" description = "A chemical element, the building block of life." diff --git a/code/modules/shieldgen/shield_capacitor.dm b/code/modules/shieldgen/shield_capacitor.dm index ec6a0d6112a..cfba64f8f38 100644 --- a/code/modules/shieldgen/shield_capacitor.dm +++ b/code/modules/shieldgen/shield_capacitor.dm @@ -138,4 +138,4 @@ ..() /obj/machinery/shield_capacitor/multiz - max_charge_rate = 1250000 //1250 kW + max_charge_rate = 1250000 diff --git a/code/modules/xgm/xgm_gas_data.dm b/code/modules/xgm/xgm_gas_data.dm index eb650b4ae61..9ba6c0d8632 100644 --- a/code/modules/xgm/xgm_gas_data.dm +++ b/code/modules/xgm/xgm_gas_data.dm @@ -1,26 +1,27 @@ var/global/datum/xgm_gas_data/gas_data /datum/xgm_gas_data - //Simple list of all the gas IDs. + /// Simple list of all the gas IDs. var/list/gases = list() - //The friendly, human-readable name for the gas. + /// The friendly, human-readable name for the gas. var/list/name = list() - //Specific heat of the gas. Used for calculating heat capacity. + /// Specific heat of the gas. Used for calculating heat capacity. var/list/specific_heat = list() - //Molar mass of the gas. Used for calculating specific entropy. + /// Molar mass of the gas. Used for calculating specific entropy. var/list/molar_mass = list() - //Tile overlays. /obj/gas_overlay, created from references to 'icons/effects/tile_effects.dmi' + /// Tile overlays. /obj/gas_overlay, created from references to 'icons/effects/tile_effects.dmi' var/list/tile_overlay = list() - //Optional color for tile overlay + /// Optional color for tile overlay var/list/tile_overlay_color = list() - //Overlay limits. There must be at least this many moles for the overlay to appear. + /// Overlay limits. There must be at least this many moles for the overlay to appear. var/list/overlay_limit = list() - //Flags. + /// Flags. var/list/flags = list() /singleton/xgm_gas var/id = "" var/name = "Unnamed Gas" + var/desc var/specific_heat = 20 // J/(mol*K) var/molar_mass = 0.032 // kg/mol diff --git a/html/changelogs/bat-indraupdate.yml b/html/changelogs/bat-indraupdate.yml new file mode 100644 index 00000000000..3aef39f9629 --- /dev/null +++ b/html/changelogs/bat-indraupdate.yml @@ -0,0 +1,36 @@ +# Your name. +author: Batrachophrenoboocosmomachia + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - balance: "Fusion reaction modifications. Higher radiation and temperature output, comparable power output." + - balance: "Increased rad resistance modifier of Borosilicate Windows from 1 -> 4 and (closed) Blast Doors from 1 -> 6." + - balance: "INDRA Field Strength minima/maxima changed from 1-100 -> 20-120. Power costs increased significantly." + - balance: "INDRA instability increase per tick now limited, similar to Supermatter (prevents sudden instability spike from instantly nuking it)." + - balance: "APC cell charge rate increased 10x." + - balance: "Rebalanced contents of INDRA hard storage compartment." + - balance: "SMES coils capacities halved, throughputs doubled." + - balance: "SMES unit maximum coil capacity increased from 6 -> 8." + - balance: "TEG maximum power output increased from 500000 -> 2500000." + - balance: "Power wasted from exceeding TEG maximum power output decreased from 50% to 33%." + - balance: "Portable generators of all types have had their power generation capacity doubled." + - rscadd: "New 'Fusion Codex' app added for all crew with ACCESS_ENGINE that details all available nuclear fusion chains." + - rscadd: "Boron added as a singleton/reagent. Poisonous to vaurca, still usable in nuclear fusion as fuel assembly rods." + - rscadd: "INDRA Field Strength now scales plasma temperature entropy, power output from temperature multiplier, and instability increase per tick." + - refactor: "'Boron' gas renamed to 'Helium-3'. Boron is not a gas. Deal with it." + - refactor: "'Steam' gas renamed to 'Water Vapor'." + - code_imp: "Descriptions added to gas singletons for future use." + - qol: "Minor remap of INDRA control room for usability." + - qol: "Standardized gas canister naming conventions." + - qol: "INDRA and APC TGUI interfaces now use use kW, MW abbreviations for high wattages." + - bugfix: "INDRA Kinetic Harvester no longer rapidly deselects materials for harvest when too many are being generated at once." + - bugfix: "INDRA EM Field effect no longer considers the camera within its reactor chamber a destabilizing influence." + - bugfix: "INDRA reactor core now produces radiation as intended." + - bugfix: "Deuterium and Tritium canisters no longer contain 50% standard hydrogen (inheritance issue)." diff --git a/icons/obj/atmos.dmi b/icons/obj/atmos.dmi index 9de6eb7bbba81d18d9448e6ded9d16f3bc3110d6..2c32bb0d9905963aa7b15656dfbf51424a8a63d2 100644 GIT binary patch delta 13400 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 N^-2C?g{WcR{{iSe$pQcX delta 11714 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 H)%X4{O?Q1# literal 70051 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 diff --git a/maps/away/away_site/hivebot_hub/hivebot_hub.dmm b/maps/away/away_site/hivebot_hub/hivebot_hub.dmm index 78896f2c050..d4ffdb29a44 100644 --- a/maps/away/away_site/hivebot_hub/hivebot_hub.dmm +++ b/maps/away/away_site/hivebot_hub/hivebot_hub.dmm @@ -658,16 +658,6 @@ /obj/structure/girder, /turf/simulated/floor/airless, /area/hivebothub/dorm1) -"dK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cart/storage/janitorialcart{ - dir = 4 - }, -/turf/simulated/floor/airless, -/area/hivebothub/atmos) "dY" = ( /obj/effect/landmark/entry_point/east{ name = "east, secure storage" @@ -839,6 +829,16 @@ }, /turf/simulated/floor/tiled/dark/airless, /area/hivebothub/portdocks) +"eU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cart/storage/janitorialcart{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/hivebothub/atmos) "eX" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -3958,6 +3958,12 @@ }, /turf/simulated/floor/tiled/dark/full/airless, /area/hivebothub/portdocks) +"AA" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/tritium, +/turf/simulated/floor/tiled/dark/full/airless, +/area/hivebothub/secure) "AF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -6663,12 +6669,6 @@ }, /turf/simulated/floor/carpet, /area/hivebothub/dorm2) -"SI" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister/hydrogen/tritium, -/turf/simulated/floor/tiled/dark/full/airless, -/area/hivebothub/secure) "SY" = ( /obj/item/ore/glass{ pixel_y = 7; @@ -6951,12 +6951,6 @@ /obj/structure/cable/yellow, /turf/simulated/floor/airless, /area/hivebothub/portdocks) -"UY" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister/hydrogen/deuterium, -/turf/simulated/floor/tiled/dark/full/airless, -/area/hivebothub/secure) "Va" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/effect/decal/cleanable/dirt, @@ -7552,6 +7546,12 @@ /obj/effect/map_effect/map_helper/ruler_tiles_3, /turf/space/dynamic, /area/hivebothub/exterior) +"Zi" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/deuterium, +/turf/simulated/floor/tiled/dark/full/airless, +/area/hivebothub/secure) "Zj" = ( /obj/effect/map_effect/window_spawner/full/reinforced/grille, /obj/effect/landmark/entry_point/west{ @@ -38373,7 +38373,7 @@ NV aK FS mH -dK +eU Zf aK aK @@ -41468,8 +41468,8 @@ KX jR UL lT -UY -SI +Zi +AA UL UL UL diff --git a/maps/away/ships/tirakqi_smuggler/tirakqi_smuggler.dmm b/maps/away/ships/tirakqi_smuggler/tirakqi_smuggler.dmm index f79829c34ed..e3bd78a5a3d 100644 --- a/maps/away/ships/tirakqi_smuggler/tirakqi_smuggler.dmm +++ b/maps/away/ships/tirakqi_smuggler/tirakqi_smuggler.dmm @@ -357,10 +357,7 @@ /turf/simulated/floor/shuttle/skrell/blue, /area/ship/tirakqi_smuggler/starboard_hall) "cr" = ( -/obj/machinery/power/smes/buildable/main_engine{ - input_level = 1000000; - output_level = 1000000 - }, +/obj/machinery/power/smes/buildable/main_engine, /obj/structure/cable{ icon_state = "0-8" }, diff --git a/maps/random_ruins/exoplanets/biesel/abandoned_warehouse_2.dmm b/maps/random_ruins/exoplanets/biesel/abandoned_warehouse_2.dmm index c19f634cfa6..d96556f3aa0 100644 --- a/maps/random_ruins/exoplanets/biesel/abandoned_warehouse_2.dmm +++ b/maps/random_ruins/exoplanets/biesel/abandoned_warehouse_2.dmm @@ -188,7 +188,7 @@ "GK" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/random/dirt_75, -/obj/machinery/portable_atmospherics/canister/empty/boron, +/obj/machinery/portable_atmospherics/canister/empty/heliumfuel, /turf/simulated/floor/exoplanet/concrete, /area/template_noop) "GS" = ( diff --git a/maps/sccv_horizon/areas/horizon_areas_engineering.dm b/maps/sccv_horizon/areas/horizon_areas_engineering.dm index f530077d434..071d990d166 100644 --- a/maps/sccv_horizon/areas/horizon_areas_engineering.dm +++ b/maps/sccv_horizon/areas/horizon_areas_engineering.dm @@ -187,12 +187,12 @@ /area/horizon/engineering/reactor/indra/mainchamber name = "INDRA Reactor Chamber" ambience = AMBIENCE_SINGULARITY - area_blurb = "The product of over four-hundred years' iteration and refinement: the INDRA Mk.II Tokamak Fusion bottle and its vast supporting machineries dominate the entire compartment" + area_blurb = "The product of over four-hundred years' iteration and refinement: the INDRA Mk.II Tokamak fusion bottle and its vast supporting machineries dominate the entire compartment" /area/horizon/engineering/reactor/indra/smes name = "INDRA Reactor SMES" icon_state = "engine_smes" - area_blurb = "A quiet hum suffuses this compartment from grid balancing hardware and power banks fitted beneath the floor." + area_blurb = "A quiet hum suffuses this compartment from grid-balancing hardware and power banks fitted beneath the floor." /area/horizon/engineering/reactor/indra/monitoring name = "INDRA Reactor Monitoring" @@ -202,7 +202,7 @@ /area/horizon/engineering/reactor/indra/office name = "INDRA Reactor Office" - area_blurb = "A dingy, forgotten compartment a year or three away from looking about as well-kept as the Maints'." + area_blurb = "A dingy, forgotten compartment a year or three away from looking about as well-kept as the maints." // The engineering stairwell /area/horizon/stairwell/engineering/* are defined in './horizon_areas_crew.dm'. Bat put them there originally because they felt that made sense. If you don't, migrate them here I guess, everything's cool. diff --git a/maps/sccv_horizon/sccv_horizon.dmm b/maps/sccv_horizon/sccv_horizon.dmm index 198c5e2a87f..c14c2daac97 100644 --- a/maps/sccv_horizon/sccv_horizon.dmm +++ b/maps/sccv_horizon/sccv_horizon.dmm @@ -259,19 +259,6 @@ /obj/structure/grille, /turf/simulated/floor/plating, /area/horizon/engineering/atmos/propulsion) -"abz" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) "abC" = ( /obj/item/device/healthanalyzer, /obj/effect/floor_decal/corner/mauve/diagonal, @@ -651,6 +638,16 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/cargo_compartment) +"adW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/effect/floor_decal/spline/plain/corner/black, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "adY" = ( /obj/structure/cable{ icon_state = "4-8" @@ -771,6 +768,19 @@ /obj/effect/floor_decal/industrial/hatch/operations, /turf/simulated/floor/tiled/dark/full, /area/supply/dock) +"aeo" = ( +/obj/effect/floor_decal/corner_wide/yellow{ + dir = 6 + }, +/obj/machinery/button/remote/blast_door{ + dir = 4; + id = "r-ust_north"; + name = "INDRA Reactor Storage Shutters"; + pixel_x = 24; + pixel_y = 7 + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/mainchamber) "aes" = ( /obj/item/tank/oxygen, /obj/item/clothing/shoes/magboots, @@ -1998,18 +2008,6 @@ }, /turf/simulated/floor/wood, /area/horizon/security/meeting_room) -"alB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/floor_decal/spline/plain/corner{ - dir = 1 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "alH" = ( /obj/machinery/light{ dir = 4 @@ -2891,17 +2889,6 @@ }, /turf/unsimulated/floor, /area/centcom/distress_prep) -"arO" = ( -/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, -/obj/machinery/door/blast/regular/open{ - id = "r_ust_core_blast"; - name = "INDRA Reactor Blast Doors" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "arR" = ( /obj/structure/railing/mapped, /obj/structure/platform/ledge{ @@ -3318,6 +3305,15 @@ /obj/structure/lattice/catwalk/indoor/grate/dark, /turf/simulated/floor/plating, /area/horizon/engineering/atmos/propulsion) +"auh" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/mainchamber) "aui" = ( /obj/effect/floor_decal/corner{ dir = 5 @@ -3575,6 +3571,14 @@ /obj/structure/table/reinforced/steel, /turf/unsimulated/floor/plating, /area/centcom/specops) +"avA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/wing/starboard) "avC" = ( /obj/effect/floor_decal/industrial/warning{ dir = 8 @@ -4002,6 +4006,20 @@ }, /turf/simulated/floor/tiled, /area/horizon/crew/chargebay) +"ayM" = ( +/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, +/obj/structure/railing/mapped{ + icon_state = "railing0-0"; + rad_resistance_modifier = 6 + }, +/obj/machinery/door/blast/regular/open{ + dir = 4; + id = "r-ust_monitoring_blast"; + name = "INDRA Monitoring Blast Doors"; + rad_resistance_modifier = 24 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "ayS" = ( /obj/machinery/atmospherics/pipe/simple/visible/universal{ dir = 4 @@ -4516,18 +4534,6 @@ }, /turf/simulated/floor/tiled/dark, /area/shuttle/mercenary) -"aDr" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/sign/directions/prop{ - pixel_y = -22 - }, -/obj/effect/floor_decal/spline/plain/yellow{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "aDC" = ( /obj/structure/disposalpipe/up, /obj/effect/floor_decal/industrial/warning/cee{ @@ -4605,14 +4611,6 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/medical/surgery) -"aEh" = ( -/obj/structure/table/standard, -/obj/item/device/flashlight/lamp/off{ - pixel_x = -5; - pixel_y = 5 - }, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/office) "aEz" = ( /obj/effect/floor_decal/corner/dark_green{ dir = 1 @@ -4669,12 +4667,6 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/dark/full, /area/horizon/rnd/lab) -"aFc" = ( -/obj/structure/bed/stool/chair/office/light{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/office) "aFi" = ( /obj/machinery/disposal/small/east{ pixel_x = -6 @@ -4715,6 +4707,15 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/engineering/break_room) +"aFB" = ( +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/floor_decal/corner/yellow/full{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/storage_eva) "aFJ" = ( /obj/effect/floor_decal/corner/brown{ dir = 5 @@ -5989,6 +5990,12 @@ }, /turf/simulated/floor/wood, /area/horizon/command/heads/rd) +"aOj" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "aOl" = ( /obj/structure/bed/stool/chair/office/bridge{ dir = 4 @@ -6359,6 +6366,18 @@ }, /turf/simulated/floor, /area/horizon/command/bridge/bridge_crew) +"aRg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/floor_decal/spline/plain/corner/black{ + dir = 4 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "aRj" = ( /turf/simulated/wall/r_wall, /area/horizon/command/heads/xo) @@ -7395,17 +7414,21 @@ icon_state = "white" }, /area/centcom/holding) -"aYU" = ( -/obj/structure/table/reinforced/steel, -/obj/item/folder/yellow{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/machinery/light{ - dir = 1 +"aYV" = ( +/obj/item/circuitboard/smes, +/obj/item/circuitboard/smes, +/obj/item/smes_coil, +/obj/item/smes_coil, +/obj/item/smes_coil/super_capacity, +/obj/item/smes_coil/super_capacity, +/obj/item/smes_coil/super_io, +/obj/item/smes_coil/super_io, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/closet/crate/elec{ + name = "SMES supplies crate" }, /turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) +/area/horizon/engineering/storage_hard) "aZd" = ( /obj/machinery/atmospherics/pipe/simple/visible/green{ dir = 4 @@ -7627,6 +7650,14 @@ /obj/machinery/light, /turf/simulated/floor/plating, /area/horizon/engineering/reactor/supermatter/mainchamber) +"baX" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/machinery/alarm/east, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard/far) "bbh" = ( /obj/effect/map_effect/door_helper/unres{ dir = 1 @@ -7899,21 +7930,6 @@ /obj/structure/closet/crate, /turf/simulated/floor/tiled/dark/full, /area/horizon/operations/commissary) -"bda" = ( -/obj/effect/floor_decal/corner/black/full{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/obj/machinery/power/apc/east, -/obj/structure/cable/green{ - icon_state = "0-2" - }, -/turf/simulated/floor/tiled, -/area/horizon/operations/machinist) "bdb" = ( /obj/effect/floor_decal/corner_wide/blue{ dir = 5 @@ -8152,6 +8168,18 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/white, /area/horizon/rnd/xenobiology/hazardous) +"bfm" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 9 + }, +/obj/machinery/light, +/obj/structure/closet/crate/rad, +/obj/item/stack/material/deuterium/full, +/obj/item/stack/material/tritium{ + amount = 20 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/mainchamber) "bfn" = ( /obj/structure/cable/green{ icon_state = "0-2" @@ -9666,6 +9694,16 @@ /obj/effect/floor_decal/corner/dark_blue/full, /turf/simulated/floor/tiled, /area/horizon/security/brig) +"boZ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/dark, +/area/horizon/engineering/aft_airlock) "bpd" = ( /obj/effect/floor_decal/corner/dark_green/full{ dir = 8 @@ -9751,22 +9789,6 @@ /obj/structure/window/shuttle/scc_space_ship, /turf/simulated/floor/plating, /area/horizon/shuttle/escape_pod/pod4) -"bpX" = ( -/obj/structure/cable/green{ - icon_state = "2-4" - }, -/obj/effect/floor_decal/corner/yellow{ - dir = 5 - }, -/obj/effect/floor_decal/corner/yellow{ - dir = 5 - }, -/obj/machinery/alarm/north, -/obj/structure/cable/green{ - icon_state = "2-8" - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "bqe" = ( /obj/effect/map_effect/window_spawner/full/reinforced/grille/firedoor, /obj/structure/cable/green{ @@ -9833,6 +9855,15 @@ }, /turf/simulated/floor/tiled, /area/horizon/service/hydroponics/lower) +"bqw" = ( +/obj/machinery/light, +/obj/structure/sign/radiation{ + pixel_y = -32 + }, +/obj/effect/floor_decal/spline/plain/black, +/obj/structure/reagent_dispensers/water_cooler, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "bqz" = ( /obj/machinery/papershredder, /turf/unsimulated/floor{ @@ -10277,6 +10308,12 @@ /obj/machinery/portable_atmospherics/canister/empty, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/auxatmos) +"btm" = ( +/obj/effect/floor_decal/spline/plain/black{ + dir = 1 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "btn" = ( /obj/effect/floor_decal/corner_wide/green{ dir = 9 @@ -10332,15 +10369,6 @@ }, /turf/simulated/floor/plating, /area/horizon/command/heads/captain) -"btM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "btO" = ( /turf/simulated/floor/holofloor/beach/sand{ dir = 1; @@ -11572,12 +11600,6 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/security/forensic_laboratory) -"bCW" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/lattice/catwalk/indoor/grate, -/turf/simulated/floor/plating, -/area/horizon/hallway/primary/deck_2/central) "bDa" = ( /turf/unsimulated/floor/wood, /area/antag/burglar) @@ -12041,6 +12063,12 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled, /area/horizon/security/investigations_hallway) +"bHB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/mainchamber) "bHC" = ( /obj/structure/bed/stool/chair/office/light{ dir = 8 @@ -12177,12 +12205,6 @@ }, /turf/simulated/floor/reinforced/n20, /area/horizon/engineering/atmos/air) -"bIE" = ( -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "bIG" = ( /obj/structure/disposaloutlet{ dir = 4 @@ -12863,6 +12885,12 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/tiled, /area/horizon/engineering/atmos/storage) +"bOg" = ( +/obj/machinery/porta_turret, +/obj/effect/floor_decal/industrial/warning/full, +/obj/machinery/alarm/cold/west, +/turf/simulated/floor/tiled/dark/cooled, +/area/horizon/ai/upload) "bOj" = ( /obj/structure/cable/green{ icon_state = "1-8" @@ -13092,6 +13120,17 @@ }, /turf/unsimulated/floor/plating, /area/shuttle/specops) +"bPF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "bPH" = ( /obj/effect/floor_decal/corner/green{ dir = 5 @@ -13523,17 +13562,6 @@ }, /turf/unsimulated/floor, /area/centcom/evac) -"bTq" = ( -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9 - }, -/obj/machinery/firealarm/south, -/obj/effect/floor_decal/corner/yellow/full, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "bTv" = ( /obj/structure/shuttle_part/scc_space_ship{ icon_state = "d3-6" @@ -14354,6 +14382,18 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/security/checkpoint) +"bZY" = ( +/obj/effect/floor_decal/corner_wide/yellow{ + dir = 6 + }, +/obj/structure/sign/radiation{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/mainchamber) "cac" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 6 @@ -14806,6 +14846,13 @@ /obj/structure/lattice/catwalk/indoor, /turf/simulated/floor/plating, /area/horizon/engineering/atmos/air) +"cdH" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/full, +/area/horizon/engineering/reactor/indra/office) "cdO" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 9 @@ -15696,6 +15743,18 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/maintenance/deck_2/wing/starboard/near) +"cjY" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/sign/nosmoking_1{ + pixel_y = 32 + }, +/obj/machinery/camera/network/reactor{ + c_tag = "Engineering - INDRA Room 2" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "ckd" = ( /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 4 @@ -15772,15 +15831,6 @@ /obj/structure/lattice, /turf/simulated/open/airless, /area/horizon/exterior) -"ckq" = ( -/obj/effect/floor_decal/corner_wide/yellow{ - dir = 6 - }, -/obj/structure/cable/orange{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/mainchamber) "ckr" = ( /obj/structure/bed/stool/chair/sofa/corner/concave/brown, /obj/machinery/light{ @@ -16670,6 +16720,14 @@ /obj/machinery/alarm/east, /turf/simulated/floor/tiled/dark, /area/horizon/engineering/atmos/propulsion/starboard) +"crA" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "crB" = ( /obj/structure/table/standard{ no_cargo = 1 @@ -17693,6 +17751,16 @@ /obj/machinery/alarm/east, /turf/simulated/floor/wood, /area/horizon/crew/lounge) +"cxF" = ( +/obj/machinery/computer/general_air_control/large_tank_control/terminal{ + input_tag = "fusion_injector_air"; + name = "INDRA Chamber Monitor"; + sensors = list("fusion_sensor"="INDRA Chamber"); + dir = 4 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "cxH" = ( /obj/effect/floor_decal/spline/plain{ dir = 8 @@ -17997,22 +18065,6 @@ "czE" = ( /turf/simulated/wall/r_wall, /area/horizon/command/bridge/bridge_crew) -"czG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "czI" = ( /obj/machinery/light{ dir = 4 @@ -18554,13 +18606,6 @@ }, /turf/simulated/floor/carpet, /area/shuttle/skipjack) -"cDd" = ( -/obj/effect/floor_decal/spline/plain{ - dir = 6 - }, -/obj/structure/reagent_dispensers/water_cooler, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "cDe" = ( /obj/structure/bed/stool/padded/brown{ dir = 4 @@ -18720,6 +18765,18 @@ "cEg" = ( /turf/simulated/floor/wood, /area/horizon/service/dining_hall) +"cEh" = ( +/obj/effect/floor_decal/corner_wide/yellow{ + dir = 6 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable/orange{ + icon_state = "1-8" + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/mainchamber) "cEt" = ( /obj/effect/floor_decal/corner_wide/yellow/full{ dir = 4 @@ -19509,12 +19566,6 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/starboard/far) -"cJR" = ( -/obj/machinery/camera/network/reactor{ - c_tag = "Engineering - INDRA Room 3" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "cJV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -20070,6 +20121,19 @@ }, /turf/simulated/floor/holofloor/wood, /area/horizon/holodeck/source_theatre) +"cOK" = ( +/obj/structure/table/rack, +/obj/machinery/light/small/emergency{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/maintenance/deck_2/aft) +"cOO" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "cOY" = ( /obj/structure/table/wood, /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -22129,19 +22193,6 @@ /obj/structure/flora/bush, /turf/simulated/floor/exoplanet/snow, /area/centcom/shared_dream) -"ddl" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 5 - }, -/obj/machinery/power/portgen/basic{ - anchored = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/light/spot, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/mainchamber) "ddm" = ( /obj/structure/cable{ icon_state = "4-8" @@ -22366,23 +22417,6 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/starboard) -"deX" = ( -/obj/structure/cable/yellow, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/smes/buildable{ - RCon_tag = "INDRA - Grid"; - charge = 10000000; - cur_coils = 4; - input_attempt = 1; - input_level = 500000; - output_attempt = 1; - output_level = 500000 - }, -/obj/structure/lattice/catwalk/indoor, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/smes) "deZ" = ( /obj/structure/table/reinforced/glass, /obj/effect/floor_decal/spline/fancy/wood{ @@ -22550,6 +22584,13 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/service/kitchen) +"dfM" = ( +/obj/structure/engineer_maintenance/electric/wall, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "dfN" = ( /obj/machinery/floodlight, /obj/effect/floor_decal/industrial/warning, @@ -23046,6 +23087,19 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/rnd/chemistry) +"diR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/wing/starboard) "diU" = ( /obj/structure/table/reinforced/wood, /obj/structure/window/reinforced/crescent{ @@ -24314,6 +24368,11 @@ /obj/structure/railing/mapped, /turf/simulated/open, /area/horizon/operations/office) +"dqW" = ( +/obj/effect/floor_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/maintenance/deck_2/aft) "dqX" = ( /obj/structure/table/reinforced/steel, /obj/structure/window/reinforced/crescent, @@ -25082,6 +25141,10 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/rnd/xenoarch/storage) +"dwz" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "dwA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -26491,6 +26554,16 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/maintenance/deck_2/wing/port) +"dGd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard/far) "dGi" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 10 @@ -26597,24 +26670,6 @@ }, /turf/simulated/floor/reinforced, /area/horizon/rnd/xenobiology) -"dGU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "dGV" = ( /obj/effect/landmark/entry_point/aft{ name = "aft engines, starboard 2" @@ -27035,6 +27090,17 @@ }, /turf/simulated/floor/wood, /area/horizon/command/heads/om) +"dJC" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/table/rack, +/obj/structure/closet/crate/rad, +/obj/item/stack/material/uranium{ + amount = 10 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/mainchamber) "dJF" = ( /obj/effect/floor_decal/corner/paleblue{ dir = 5 @@ -27474,6 +27540,13 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/medical/icu) +"dNt" = ( +/obj/machinery/atmospherics/binary/pump{ + dir = 1; + target_pressure = 10 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "dNx" = ( /turf/simulated/floor/holofloor/grass, /area/horizon/holodeck/source_picnicarea) @@ -27621,17 +27694,22 @@ }, /turf/simulated/floor/lino, /area/merchant_station) +"dOx" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/floor_decal/spline/plain/black{ + dir = 5 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "dOy" = ( /obj/effect/decal/cleanable/liquid_fuel, /turf/simulated/floor/carpet/rubber, /area/horizon/maintenance/deck_1/workshop) -"dOz" = ( -/obj/structure/table/steel, -/obj/random/tool{ - pixel_y = -4 - }, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/office) "dOB" = ( /obj/machinery/computer/telecomms/traffic, /turf/simulated/floor/tiled/dark/full, @@ -27810,6 +27888,10 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/wood, /area/horizon/command/heads/captain) +"dPK" = ( +/obj/machinery/portable_atmospherics/canister/chlorine, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/office) "dPM" = ( /obj/effect/floor_decal/industrial/warning{ dir = 10 @@ -28063,22 +28145,6 @@ icon_state = "seashallow" }, /area/centcom/shared_dream) -"dRG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/orange{ - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk/indoor/grate, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/mainchamber) "dRI" = ( /obj/machinery/light{ dir = 4 @@ -28156,6 +28222,12 @@ }, /turf/simulated/floor/reinforced/hydrogen, /area/horizon/engineering/atmos) +"dSi" = ( +/obj/structure/cable/orange{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "dSk" = ( /obj/structure/cable/green{ icon_state = "1-8" @@ -28708,6 +28780,11 @@ /obj/effect/map_effect/window_spawner/full/reinforced/indestructible, /turf/unsimulated/floor/plating, /area/antag/burglar) +"dXd" = ( +/obj/effect/floor_decal/corner_wide/yellow/full, +/obj/structure/closet/crate/rad, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/office) "dXi" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -28873,6 +28950,14 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/hangar/operations) +"dYs" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/random/junk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard/far) "dYC" = ( /obj/machinery/conveyor{ dir = 1; @@ -29129,24 +29214,6 @@ /obj/effect/floor_decal/industrial/warning/full, /turf/simulated/floor/tiled/dark/full, /area/horizon/ai/upload_foyer) -"dZZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/floor_decal/spline/plain{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - icon_state = "pipe-c" - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "eai" = ( /turf/simulated/wall, /area/horizon/medical/ward/isolation) @@ -29457,6 +29524,15 @@ }, /turf/simulated/floor/tiled/dark, /area/shuttle/skipjack) +"ebX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "ecg" = ( /turf/simulated/wall/r_wall, /area/horizon/hallway/primary/deck_2/central) @@ -30854,6 +30930,20 @@ /obj/item/stack/packageWrap, /turf/simulated/floor/tiled, /area/horizon/operations/warehouse) +"elE" = ( +/obj/structure/table/wood, +/obj/effect/floor_decal/corner/dark_green{ + dir = 5 + }, +/obj/random/pottedplant_small{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/hallway/fore) "elG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable/green{ @@ -30947,14 +31037,6 @@ /obj/structure/table/standard, /turf/unsimulated/floor, /area/centcom/legion) -"emu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/floor_decal/spline/plain/yellow{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "emv" = ( /obj/effect/map_effect/window_spawner/full/reinforced/firedoor, /turf/simulated/floor/tiled/dark/full, @@ -31628,6 +31710,15 @@ /obj/structure/lattice/catwalk/indoor/grate, /turf/simulated/floor/plating, /area/horizon/hallway/primary/deck_2/fore) +"eri" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "erq" = ( /obj/structure/foamedmetal, /obj/structure/shuttle_part/scc_space_ship{ @@ -31845,6 +31936,18 @@ "etv" = ( /turf/simulated/floor/tiled, /area/horizon/hangar/intrepid) +"etx" = ( +/obj/machinery/disposal/small/east, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/floor_decal/spline/plain/black{ + dir = 10 + }, +/obj/machinery/power/apc/super/critical/south, +/obj/structure/cable, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "etO" = ( /obj/structure/bed/stool/chair/holochair, /turf/simulated/floor/holofloor/carpet, @@ -32391,15 +32494,6 @@ /obj/structure/lattice/catwalk/indoor, /turf/simulated/floor/plating, /area/horizon/shuttle/mining) -"exP" = ( -/obj/effect/floor_decal/corner_wide/yellow{ - dir = 9 - }, -/obj/structure/cable/orange{ - icon_state = "1-4" - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/mainchamber) "exT" = ( /obj/effect/floor_decal/corner/brown{ dir = 6 @@ -32584,12 +32678,6 @@ temperature = 278.15 }, /area/horizon/medical/morgue) -"ezg" = ( -/obj/structure/lattice/catwalk/indoor/grate/damaged{ - color = "#4c535b" - }, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_2/wing/starboard/far) "ezj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -32670,19 +32758,6 @@ "eAa" = ( /turf/simulated/wall, /area/horizon/stairwell/starboard/deck_3) -"eAb" = ( -/obj/structure/closet/crate, -/obj/item/circuitboard/smes, -/obj/item/circuitboard/smes, -/obj/item/smes_coil, -/obj/item/smes_coil, -/obj/item/smes_coil/super_capacity, -/obj/item/smes_coil/super_capacity, -/obj/item/smes_coil/super_io, -/obj/item/smes_coil/super_io, -/obj/effect/floor_decal/industrial/outline/yellow, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/storage_hard) "eAj" = ( /obj/machinery/firealarm/east, /obj/effect/floor_decal/corner/dark_green/full{ @@ -33118,13 +33193,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/wall/r_wall, /area/horizon/security/brig) -"eDz" = ( -/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced/firedoor, -/obj/structure/cable/orange{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "eDB" = ( /obj/machinery/alarm/east, /obj/machinery/papershredder, @@ -33830,6 +33898,13 @@ /obj/structure/lattice/catwalk, /turf/simulated/floor/airless, /area/horizon/exterior) +"eIi" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard) "eIj" = ( /obj/structure/lattice/catwalk/indoor/grate/dark, /obj/structure/railing/mapped{ @@ -34185,16 +34260,6 @@ /obj/effect/map_effect/door_helper/unres, /turf/simulated/floor/tiled/full, /area/horizon/storage/eva) -"eMh" = ( -/obj/effect/floor_decal/spline/plain{ - dir = 10 - }, -/obj/machinery/disposal/small/east, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "eMo" = ( /obj/structure/railing/mapped{ dir = 4 @@ -35076,6 +35141,20 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/service/hydroponics/lower) +"eSQ" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/warning, +/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, +/obj/machinery/door/blast/regular/open{ + id = "r_ust_core_blast"; + name = "INDRA Reactor Blast Doors"; + rad_resistance_modifier = 12 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "eST" = ( /obj/effect/floor_decal/corner/full{ dir = 8 @@ -35467,17 +35546,6 @@ /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/port/far) -"eVK" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 5 - }, -/obj/structure/cable/green{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "eVL" = ( /obj/structure/cable{ icon_state = "1-2" @@ -36665,6 +36733,13 @@ temperature = 278 }, /area/horizon/ai/chamber) +"feV" = ( +/obj/machinery/camera/network/reactor{ + c_tag = "Engineering - INDRA Reactor Office" + }, +/obj/machinery/portable_atmospherics/canister/chlorine, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/office) "ffb" = ( /obj/structure/morgue{ dir = 2; @@ -36673,17 +36748,6 @@ /obj/effect/floor_decal/industrial/outline/grey, /turf/simulated/floor/tiled/dark, /area/horizon/security/evidence_storage) -"ffd" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/lattice/catwalk/indoor/grate/dark, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/simulated/floor, -/area/horizon/maintenance/deck_3/aft/port/far) "ffl" = ( /obj/machinery/disposal/small/south, /obj/structure/disposalpipe/trunk, @@ -36709,6 +36773,18 @@ icon_state = "2,2" }, /area/shuttle/syndicate_elite) +"ffn" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/floor_decal/spline/plain/corner/black{ + dir = 1 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "ffo" = ( /obj/structure/flora/bush/grove, /obj/effect/floor_decal/spline/plain{ @@ -37620,6 +37696,13 @@ }, /turf/simulated/floor/tiled, /area/horizon/hallway/primary/deck_3/central) +"flZ" = ( +/obj/effect/floor_decal/industrial/warning/corner, +/obj/structure/sign/radiation{ + pixel_y = 32 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "fmd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -38046,6 +38129,16 @@ }, /turf/simulated/floor/tiled, /area/horizon/medical/paramedic) +"fpm" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 6 + }, +/obj/structure/railing/mapped{ + dir = 4 + }, +/obj/structure/railing/mapped, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "fpn" = ( /obj/structure/shuttle_part/ert{ icon_state = "3,0"; @@ -38194,6 +38287,14 @@ }, /turf/simulated/floor/plating, /area/horizon/service/bar) +"fqg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard) "fqk" = ( /obj/effect/floor_decal/spline/plain{ dir = 8 @@ -38576,14 +38677,6 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/starboard/near) -"fsE" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 9 - }, -/obj/machinery/fusion_fuel_compressor, -/obj/machinery/light/spot, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/mainchamber) "fsF" = ( /obj/effect/floor_decal/corner/white{ dir = 5 @@ -39143,6 +39236,13 @@ }, /turf/simulated/floor/wood, /area/horizon/command/heads/om) +"fxN" = ( +/obj/machinery/computer/fusion/gyrotron/terminal{ + initial_id_tag = "horizon_fusion" + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "fxO" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 6 @@ -39283,6 +39383,16 @@ }, /turf/simulated/floor/plating, /area/horizon/command/heads/captain) +"fzg" = ( +/obj/structure/sign/radiation{ + pixel_x = 32 + }, +/obj/structure/closet/walllocker/medical/firstaid{ + pixel_y = 32 + }, +/obj/structure/lattice/catwalk/indoor, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/smes) "fzj" = ( /obj/effect/floor_decal/industrial/warning{ dir = 1 @@ -39793,21 +39903,6 @@ }, /turf/unsimulated/floor, /area/centcom/legion) -"fCI" = ( -/obj/structure/lattice/catwalk/indoor/grate/dark, -/obj/effect/decal/cleanable/cobweb, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_1/wing/starboard) -"fCJ" = ( -/obj/machinery/power/apc/north, -/obj/structure/cable/green{ - icon_state = "0-8" - }, -/obj/effect/floor_decal/corner/yellow/full{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "fCO" = ( /obj/effect/landmark/entry_point/fore{ name = "fore, main hangar" @@ -39885,24 +39980,6 @@ /obj/item/device/radio/intercom/north, /turf/simulated/floor/tiled, /area/horizon/security/checkpoint2) -"fDq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "fDv" = ( /obj/structure/cable{ icon_state = "4-8" @@ -40171,14 +40248,6 @@ }, /turf/simulated/floor/tiled/full, /area/horizon/engineering/reactor/supermatter/waste) -"fFB" = ( -/obj/machinery/firealarm/south, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/floor_decal/spline/plain, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "fFD" = ( /obj/machinery/door/firedoor, /obj/structure/table/stone/marble, @@ -40260,6 +40329,27 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled/dark/full, /area/horizon/stairwell/bridge/deck_2) +"fGf" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/wing/starboard) "fGg" = ( /obj/effect/floor_decal/industrial/warning{ dir = 8 @@ -40436,14 +40526,6 @@ /obj/machinery/alarm/shuttle/intrepid/south, /turf/simulated/floor/tiled/white, /area/horizon/shuttle/intrepid/buffet) -"fHT" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/standard, -/obj/structure/lattice/catwalk/indoor/grate/dark, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/smes) "fHU" = ( /obj/structure/cable{ icon_state = "1-2" @@ -40567,6 +40649,12 @@ "fJc" = ( /turf/simulated/floor/shuttle/tan, /area/centcom/bar) +"fJe" = ( +/obj/random/junk, +/obj/effect/floor_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/maintenance/deck_2/aft) "fJj" = ( /obj/structure/flora/grass/jungle, /obj/effect/floor_decal/spline/plain/corner{ @@ -40794,6 +40882,23 @@ /obj/random/dirt_75, /turf/simulated/floor/tiled/dark, /area/horizon/maintenance/deck_2/wing/port/nacelle) +"fKE" = ( +/obj/machinery/camera/network/command{ + c_tag = "AI Core - Foyer"; + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/turretid/stun{ + check_synth = 1; + name = "\improper AI Chamber Turret Control Console"; + pixel_y = 1; + pixel_x = -31; + dir = 4 + }, +/turf/simulated/floor/tiled/dark/cooled, +/area/horizon/ai/chamber) "fKK" = ( /obj/machinery/power/radial_floodlight, /obj/effect/floor_decal/industrial/outline/yellow, @@ -41369,6 +41474,13 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled, /area/horizon/engineering/storage_eva) +"fOt" = ( +/obj/structure/table/rack, +/obj/random/loot, +/obj/random/loot, +/obj/random/contraband, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/maintenance/deck_2/aft) "fOx" = ( /obj/structure/flora/ausbushes/ywflowers, /obj/effect/floor_decal/spline/fancy/wood/cee, @@ -41685,6 +41797,15 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/medical/icu) +"fQJ" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "fQO" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -42918,16 +43039,6 @@ "fYO" = ( /turf/simulated/floor/tiled, /area/horizon/rnd/xenobiology/xenoflora) -"fYR" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/structure/lattice/catwalk/indoor/grate, -/turf/simulated/floor/plating, -/area/horizon/hallway/primary/deck_2/central) "fYU" = ( /turf/simulated/floor/wood, /area/horizon/command/bridge/meeting_room) @@ -43824,18 +43935,13 @@ /obj/machinery/portable_atmospherics/canister/nitrogen/prechilled, /turf/simulated/floor/plating, /area/horizon/engineering/reactor/supermatter/mainchamber) -"gfB" = ( -/obj/structure/railing/mapped, -/obj/effect/floor_decal/industrial/outline/emergency_closet, -/obj/structure/closet/emcloset{ - anchored = 1; - canbemoved = 1 +"gfz" = ( +/obj/machinery/alarm/north, +/obj/effect/floor_decal/corner/yellow/full{ + dir = 1 }, -/obj/machinery/light/spot{ - dir = 4 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/mainchamber) +/turf/simulated/floor/tiled/dark, +/area/horizon/engineering/aft_airlock) "gfC" = ( /obj/random/vendor{ scan_id = 0 @@ -44038,6 +44144,23 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/port) +"ghv" = ( +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) +"ghD" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/machinery/light/small/emergency, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/wing/starboard) "ghI" = ( /turf/unsimulated/wall/fakepdoor{ dir = 1; @@ -44133,19 +44256,32 @@ "gip" = ( /turf/simulated/wall/r_wall, /area/horizon/operations/secure_ammunition_storage) -"git" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +"giw" = ( +/obj/structure/table/reinforced/steel, +/obj/machinery/button/remote/blast_door{ + dir = 1; + id = "r_ust_core_blast"; + name = "INDRA Reactor Core Blast Doors"; + pixel_x = -6; + pixel_y = 7 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 +/obj/machinery/button/remote/blast_door{ + dir = 1; + id = "r-ust_monitoring_blast"; + name = "INDRA Reactor Monitoring Blast Doors"; + pixel_x = 6; + pixel_y = 7 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 +/obj/item/device/binoculars{ + pixel_x = -3; + pixel_y = -3 }, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) +/obj/item/device/binoculars{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "giC" = ( /obj/effect/floor_decal/corner/red{ dir = 6 @@ -44585,6 +44721,19 @@ }, /turf/simulated/wall/shuttle/scc_space_ship/cardinal, /area/horizon/command/bridge/controlroom) +"glp" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/lattice/catwalk/indoor/grate, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/hallway/primary/deck_2/central) "glr" = ( /obj/effect/floor_decal/corner/dark_green{ dir = 10 @@ -44671,6 +44820,13 @@ }, /turf/simulated/floor/marble/dark, /area/horizon/command/bridge/minibar) +"glL" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-0"; + rad_resistance_modifier = 6 + }, +/turf/simulated/wall/r_wall, +/area/horizon/engineering/reactor/indra/monitoring) "glR" = ( /obj/structure/disposalpipe/segment, /obj/effect/floor_decal/corner/brown{ @@ -45181,6 +45337,24 @@ /obj/effect/floor_decal/corner_wide/yellow/full, /turf/simulated/floor/tiled, /area/horizon/engineering/lobby) +"gqs" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + icon_state = "pipe-c" + }, +/obj/effect/floor_decal/spline/plain/black{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "gqt" = ( /obj/effect/floor_decal/corner/lime/diagonal{ dir = 8 @@ -45333,6 +45507,24 @@ /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/tiled, /area/horizon/hangar/auxiliary) +"grg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "grk" = ( /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/glass/bucket{ @@ -45357,16 +45549,6 @@ }, /turf/simulated/floor/wood/yew, /area/centcom/shared_dream) -"grq" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/light, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/mainchamber) "grt" = ( /obj/machinery/chem_master/condimaster{ pixel_y = 1 @@ -45426,22 +45608,6 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark/full, /area/horizon/operations/machinist) -"grA" = ( -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/obj/structure/cable/green{ - icon_state = "2-4" - }, -/obj/effect/floor_decal/corner/dark_blue/full{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/dark, -/area/horizon/ai/upload) "grD" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 9 @@ -46270,6 +46436,23 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/main/port) +"gyb" = ( +/obj/machinery/door/firedoor, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/wing/starboard) "gyd" = ( /obj/effect/floor_decal/corner/red{ dir = 8 @@ -46361,11 +46544,6 @@ /obj/machinery/light/small/emergency, /turf/simulated/open, /area/horizon/maintenance/deck_2/wing/starboard) -"gyN" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/portable_atmospherics/canister/helium, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "gyR" = ( /obj/effect/floor_decal/corner/white{ dir = 5 @@ -46432,13 +46610,6 @@ "gzv" = ( /turf/simulated/wall/shuttle/scc_space_ship/cardinal, /area/horizon/service/hydroponics/hazard) -"gzw" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/grille, -/turf/simulated/floor/reinforced/airless, -/area/horizon/exterior) "gzy" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip, @@ -46597,12 +46768,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/security/lobby) -"gAG" = ( -/obj/machinery/camera/network/reactor{ - c_tag = "Engineering - INDRA Reactor Office" - }, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/office) "gAJ" = ( /turf/simulated/wall/r_wall, /area/horizon/operations/break_room) @@ -47820,6 +47985,19 @@ }, /turf/simulated/floor/tiled, /area/horizon/hangar/auxiliary) +"gJr" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/lattice/catwalk/indoor/grate, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/hallway/primary/deck_2/central) "gJE" = ( /obj/structure/table/reinforced/wood, /obj/machinery/chemical_dispenser/coffeemaster/full{ @@ -47836,6 +48014,25 @@ }, /turf/simulated/floor/plating, /area/horizon/operations/mining_main/refinery) +"gJL" = ( +/obj/effect/floor_decal/corner/yellow{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/machinery/power/apc/south, +/obj/structure/cable/green{ + icon_state = "0-8" + }, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/dark, +/area/horizon/engineering/aft_airlock) "gJM" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 6 @@ -48071,6 +48268,10 @@ /obj/machinery/alarm/south, /turf/simulated/floor/tiled/dark, /area/horizon/engineering/atmos/propulsion) +"gLd" = ( +/obj/structure/foamedmetal, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/aft) "gLk" = ( /obj/structure/shuttle_part/ccia{ icon_state = "11,4" @@ -48199,6 +48400,10 @@ }, /turf/simulated/floor/tiled, /area/horizon/engineering/hallway/interior) +"gMf" = ( +/obj/machinery/portable_atmospherics/canister/sulfur_dioxide, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/office) "gMg" = ( /obj/structure/window/shuttle/unique/tcfl{ icon_state = "16,4" @@ -48279,12 +48484,6 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/full, /area/horizon/hallway/primary/deck_2/central) -"gMG" = ( -/obj/machinery/computer/fusion/fuel_control/terminal{ - initial_id_tag = "horizon_fusion" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) "gML" = ( /obj/effect/floor_decal/corner_wide/paleblue/diagonal{ dir = 8 @@ -48398,13 +48597,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/rnd/xenoarch/isolation_b) -"gNr" = ( -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/structure/grille, -/turf/simulated/floor/reinforced/airless, -/area/horizon/exterior) "gNx" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -48580,12 +48772,6 @@ /obj/structure/lattice/catwalk/indoor/grate/dark, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/service/port) -"gON" = ( -/obj/structure/lattice/catwalk/indoor/grate/damaged{ - color = "#4c535b" - }, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_2/wing/starboard) "gOQ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -50699,6 +50885,15 @@ icon_state = "desert" }, /area/centcom/shared_dream) +"hdq" = ( +/obj/structure/bed/stool/chair/office/dark{ + dir = 1 + }, +/obj/effect/floor_decal/spline/plain/black{ + dir = 1 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "hdG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/purple, /turf/simulated/wall/shuttle/scc_space_ship/cardinal, @@ -51022,15 +51217,6 @@ /obj/effect/floor_decal/corner_wide/dark_green/diagonal, /turf/simulated/floor/tiled/dark, /area/shuttle/skipjack) -"hgg" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/lattice/catwalk/indoor/grate, -/obj/structure/cable/green{ - icon_state = "2-4" - }, -/turf/simulated/floor/plating, -/area/horizon/hallway/primary/deck_2/central) "hgr" = ( /obj/random/junk, /obj/machinery/light/small{ @@ -51277,14 +51463,6 @@ "hig" = ( /turf/simulated/wall/shuttle/scc_space_ship/cardinal, /area/horizon/hallway/primary/deck_3/starboard/docks) -"hii" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/lattice/catwalk/indoor/grate/dark, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_2/wing/starboard/far) "hio" = ( /obj/machinery/atmospherics/unary/vent_pump/siphon/on/atmos{ id_tag = "o2_out" @@ -51417,6 +51595,13 @@ /obj/machinery/atmospherics/portables_connector/scrubber, /turf/simulated/floor/tiled/dark/full, /area/horizon/hangar/airstation) +"hjn" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard) "hjo" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical{ @@ -51434,11 +51619,6 @@ }, /turf/simulated/floor/tiled/full, /area/horizon/medical/icu) -"hjw" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) "hjE" = ( /obj/structure/closet/gimmick{ name = "emergency response team wardrobe" @@ -51922,6 +52102,13 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/main/port) +"hmP" = ( +/obj/effect/floor_decal/corner/dark_green{ + dir = 10 + }, +/obj/machinery/newscaster/south, +/turf/simulated/floor/tiled, +/area/horizon/engineering/hallway/fore) "hmR" = ( /obj/machinery/light/small/emergency{ brightness_range = 4; @@ -52170,6 +52357,17 @@ icon_state = "wood" }, /area/centcom/legion/hangar5) +"hoq" = ( +/obj/effect/floor_decal/spline/plain/black, +/obj/structure/bed/stool/chair/office/dark{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/sign/radiation{ + pixel_y = -32 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "hoE" = ( /obj/effect/floor_decal/industrial/warning{ dir = 10 @@ -54292,6 +54490,16 @@ }, /turf/unsimulated/floor/plating, /area/shuttle/specops) +"hDy" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/floor_decal/spline/plain/black, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "hDB" = ( /obj/structure/railing/mapped{ dir = 8 @@ -55812,22 +56020,26 @@ "hNy" = ( /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/research) -"hNB" = ( -/obj/effect/floor_decal/industrial/hatch/red, -/obj/structure/railing/mapped{ - dir = 4 - }, -/obj/structure/railing/mapped{ - dir = 8 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/mainchamber) "hNH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, /turf/simulated/floor/tiled/dark, /area/horizon/security/evidence_storage) +"hNI" = ( +/obj/structure/closet/crate, +/obj/structure/railing/mapped{ + dir = 4 + }, +/obj/random/loot, +/obj/effect/decal/cleanable/cobweb2{ + icon_state = "cobweb1" + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-0" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/operations/starboard) "hNL" = ( /obj/effect/floor_decal/corner_wide/yellow/full, /turf/simulated/floor/tiled, @@ -55848,6 +56060,20 @@ }, /turf/unsimulated/floor, /area/centcom/bar) +"hOg" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "hOh" = ( /obj/effect/floor_decal/corner/dark_blue/full{ dir = 1 @@ -57787,6 +58013,15 @@ }, /turf/simulated/floor/carpet, /area/horizon/repoffice/consular_one) +"idD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/lattice/catwalk/indoor/grate, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/horizon/hallway/primary/deck_2/central) "idJ" = ( /obj/effect/floor_decal/industrial/warning, /obj/machinery/light/small/emergency{ @@ -57801,16 +58036,6 @@ /obj/item/device/flashlight/lantern, /turf/simulated/floor/holofloor/wood, /area/horizon/holodeck/source_sauna) -"idO" = ( -/obj/machinery/camera/network/reactor{ - c_tag = "Engineering - INDRA Room 1"; - dir = 4 - }, -/obj/effect/floor_decal/corner_wide/yellow{ - dir = 9 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/mainchamber) "iea" = ( /obj/effect/floor_decal/corner_wide/yellow/full{ dir = 1 @@ -58161,6 +58386,10 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/wing/port/far) +"igE" = ( +/obj/effect/floor_decal/industrial/warning, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/maintenance/deck_2/aft) "igI" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -58176,15 +58405,6 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/bluespace_drive) -"iha" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/binary/pump{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "ihd" = ( /obj/structure/flora/ausbushes/palebush, /obj/effect/overlay/palmtree_r, @@ -58262,17 +58482,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/engineering/hallway/interior) -"ihy" = ( -/obj/machinery/camera/network/reactor{ - c_tag = "Engineering - INDRA Monitoring Room"; - dir = 1 - }, -/obj/effect/floor_decal/spline/plain, -/obj/structure/sign/nosmoking_1{ - pixel_y = -24 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "ihA" = ( /obj/structure/lattice/catwalk/indoor/grate/dark, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -58423,15 +58632,6 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled, /area/horizon/operations/lobby) -"iiS" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 9 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/office) "ijh" = ( /obj/machinery/light/spot{ dir = 8; @@ -59205,13 +59405,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/stairwell/starboard/deck_2) -"inB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 1 - }, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_2/wing/starboard) "inC" = ( /obj/structure/railing/mapped{ dir = 4 @@ -59282,6 +59475,13 @@ /obj/machinery/floodlight, /turf/simulated/floor/tiled/dark/full, /area/shuttle/skipjack) +"ioh" = ( +/obj/structure/railing/mapped{ + dir = 8 + }, +/obj/structure/railing/mapped, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "ioj" = ( /obj/structure/disposalpipe/segment{ icon_state = "pipe-c" @@ -60067,16 +60267,6 @@ dir = 10 }, /area/centcom/legion/hangar5) -"itu" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 6 - }, -/obj/structure/table/standard, -/obj/random/tool{ - pixel_y = 5 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/office) "itv" = ( /obj/structure/shuttle_part/scc/scout{ icon_state = "1,9" @@ -63002,6 +63192,29 @@ /obj/machinery/light/small, /turf/simulated/floor/tiled/white, /area/horizon/security/washroom) +"iQJ" = ( +/obj/machinery/door/blast/regular/open{ + id = "r_ust_core_blast"; + name = "INDRA Reactor Blast Doors" + }, +/obj/machinery/door/blast/regular/open{ + id = "r_ust_core_blast"; + name = "INDRA Reactor Blast Doors"; + rad_resistance_modifier = 12 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + locked = 1; + name = "INDRA Reactor Core Access"; + req_one_access = list(11,24); + rad_resistance_modifier = 2; + dir = 4 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "iQU" = ( /obj/structure/lattice, /obj/structure/ladder{ @@ -63049,6 +63262,19 @@ icon_state = "white" }, /area/tdome/tdomeadmin) +"iRd" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/wing/starboard) "iRg" = ( /obj/structure/table/reinforced/wood, /obj/structure/cable/green{ @@ -63122,6 +63348,21 @@ }, /turf/simulated/floor/reinforced/airless, /area/horizon/engineering/atmos/turbine) +"iRI" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/operations/starboard) +"iRU" = ( +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "iRV" = ( /obj/structure/bed/stool/chair/sofa/right/brown, /obj/effect/floor_decal/spline/fancy/wood{ @@ -63565,12 +63806,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled/dark, /area/horizon/maintenance/deck_2/wing/starboard/near) -"iVl" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/lattice/catwalk/indoor/grate, -/turf/simulated/floor/plating, -/area/horizon/hallway/primary/deck_2/central) "iVr" = ( /obj/structure/cable{ icon_state = "1-2" @@ -64539,6 +64774,13 @@ icon_state = "dark_preview" }, /area/centcom/holding) +"jbR" = ( +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "jbS" = ( /obj/effect/shuttle_landmark/horizon/exterior/deck_1/starboard, /turf/template_noop, @@ -64717,6 +64959,13 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/tiled/full, /area/horizon/stairwell/engineering/deck_2) +"jcW" = ( +/obj/machinery/computer/fusion/fuel_control/terminal{ + initial_id_tag = "horizon_fusion" + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "jda" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -64764,16 +65013,6 @@ }, /turf/simulated/floor/plating, /area/horizon/engineering/bluespace_drive) -"jdL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/lattice/catwalk/indoor/grate, -/turf/simulated/floor/plating, -/area/horizon/hallway/primary/deck_2/central) "jdO" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 5 @@ -65507,6 +65746,15 @@ /obj/structure/platform/ledge, /turf/simulated/open, /area/horizon/medical/hallway/upper) +"jji" = ( +/obj/structure/railing/mapped, +/obj/effect/floor_decal/industrial/outline/emergency_closet, +/obj/structure/closet/emcloset{ + anchored = 1; + canbemoved = 1 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/mainchamber) "jjj" = ( /obj/structure/shuttle_part/scc_space_ship{ icon_state = "d2-3" @@ -66193,16 +66441,6 @@ }, /turf/simulated/floor/tiled/full, /area/horizon/hallway/primary/deck_2/fore) -"jnQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/lattice/catwalk/indoor/grate/dark, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_1/wing/starboard) "jnR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -66959,19 +67197,6 @@ /obj/item/stack/cable_coil/random, /turf/simulated/floor/carpet/rubber, /area/horizon/maintenance/deck_1/workshop) -"juw" = ( -/obj/structure/railing/mapped{ - density = 0; - icon_state = "railing0-0" - }, -/obj/machinery/firealarm/east, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/atmospherics/portables_connector{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/empty, -/turf/simulated/floor/plating, -/area/horizon/engineering/storage/lower) "juA" = ( /obj/effect/floor_decal/corner/dark_green{ dir = 5 @@ -67494,19 +67719,6 @@ /obj/machinery/firealarm/west, /turf/simulated/floor/tiled, /area/horizon/engineering/hallway/aft) -"jxD" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 6 - }, -/obj/effect/floor_decal/industrial/outline/red, -/obj/machinery/atmospherics/unary/outlet_injector{ - frequency = 1441; - id = "fusion_injector_air"; - injecting = 1; - use_power = 1 - }, -/turf/simulated/floor/reinforced/airless, -/area/horizon/engineering/reactor/indra/mainchamber) "jxG" = ( /obj/machinery/door/blast/regular{ id = "iso_b_purge"; @@ -67670,6 +67882,13 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/command/bridge/aibunker) +"jyO" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "jyR" = ( /obj/effect/floor_decal/spline/fancy/wood/corner{ dir = 8 @@ -67889,6 +68108,15 @@ "jAE" = ( /turf/simulated/floor/tiled/full, /area/horizon/hallway/primary/deck_3/starboard) +"jAG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/lattice/catwalk/indoor/grate, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/horizon/hallway/primary/deck_2/central) "jAJ" = ( /obj/item/device/radio/intercom/east, /obj/structure/disposalpipe/trunk{ @@ -68684,16 +68912,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/rnd/lab) -"jFV" = ( -/obj/machinery/power/apc/low/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/floor_decal/spline/plain/yellow{ - dir = 9 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "jFW" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -68737,6 +68955,21 @@ }, /turf/simulated/open/airless, /area/template_noop) +"jGv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "jGw" = ( /obj/machinery/button/remote/blast_door{ id = "crescent_checkpoint_access"; @@ -68844,6 +69077,13 @@ }, /turf/simulated/wall/shuttle/scc_space_ship/cardinal, /area/horizon/command/bridge/controlroom) +"jHk" = ( +/obj/structure/cable/orange{ + icon_state = "4-8" + }, +/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced/firedoor, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "jHq" = ( /obj/effect/map_effect/window_spawner/full/reinforced/firedoor, /obj/machinery/door/blast/shutters/open{ @@ -69311,20 +69551,6 @@ /obj/structure/bed/stool/chair/office/bridge/pilot, /turf/simulated/floor/carpet/rubber, /area/horizon/command/bridge/controlroom) -"jKH" = ( -/obj/structure/table/standard, -/obj/item/folder/yellow{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/device/hand_labeler{ - pixel_y = -5 - }, -/obj/effect/floor_decal/corner/yellow{ - dir = 6 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/office) "jKJ" = ( /obj/structure/grille, /obj/machinery/door/firedoor, @@ -71245,21 +71471,6 @@ }, /turf/unsimulated/floor/plating, /area/shuttle/transport1) -"jYP" = ( -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/obj/effect/floor_decal/corner/yellow{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "jYR" = ( /obj/effect/landmark{ name = "Revenant" @@ -72028,15 +72239,6 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/storage_hard) -"kdV" = ( -/obj/effect/floor_decal/spline/plain{ - dir = 1 - }, -/obj/structure/bed/stool/chair/office/dark{ - dir = 1 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "kek" = ( /obj/machinery/door/airlock/centcom{ dir = 1; @@ -72645,18 +72847,6 @@ }, /turf/simulated/floor, /area/horizon/maintenance/deck_3/aft/holodeck) -"kiG" = ( -/obj/structure/cable/orange{ - icon_state = "4-8" - }, -/obj/machinery/camera/network/reactor{ - c_tag = "Engineering - INDRA SMES Room 2" - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "kiI" = ( /obj/structure/cable{ icon_state = "4-8" @@ -72826,6 +73016,16 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/rnd/xenoarch/hallway/hangar) +"kjN" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 9 + }, +/obj/structure/lattice, +/obj/structure/sign/radiation{ + pixel_y = -32 + }, +/turf/simulated/open/airless, +/area/horizon/exterior) "kjU" = ( /obj/effect/decal/cleanable/dirt, /mob/living/heavy_vehicle/premade/light/legion, @@ -73025,24 +73225,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled/white, /area/horizon/rnd/conference) -"klD" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/lattice/catwalk/indoor/grate/dark, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_1/wing/starboard) "klK" = ( /obj/structure/bed/stool/chair/padded/brown{ dir = 8 @@ -73799,6 +73981,13 @@ dir = 4 }, /area/horizon/hangar/auxiliary) +"krb" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 9 + }, +/obj/item/hullbeacon/red, +/turf/simulated/floor/reinforced/airless, +/area/horizon/exterior) "krc" = ( /obj/structure/railing/mapped{ dir = 8 @@ -73926,6 +74115,20 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/unsimulated/floor, /area/centcom/spawning) +"ksb" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/floor_decal/corner/dark_blue/full, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/dark/cooled, +/area/horizon/ai/upload) "ksh" = ( /obj/machinery/atmospherics/pipe/simple/visible/purple, /obj/effect/floor_decal/corner/dark_blue{ @@ -74117,18 +74320,6 @@ icon_state = "white" }, /area/tdome/tdomeobserve) -"ktd" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) "ktl" = ( /obj/structure/sink{ dir = 4; @@ -74568,6 +74759,22 @@ }, /turf/simulated/floor/wood, /area/merchant_station) +"kwB" = ( +/obj/machinery/light, +/obj/structure/cable/green{ + icon_state = "0-8" + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/power/smes/buildable/telecomms{ + RCon_tag = "Substation - Deck 3 Telecommunications"; + input_attempt = 1; + input_level = 2500000; + output_attempt = 1; + output_level = 2400000; + charge = 5000000 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/tcommsat/entrance) "kwH" = ( /obj/machinery/keycard_auth{ dir = 4; @@ -74662,6 +74869,30 @@ /obj/effect/floor_decal/industrial/outline/operations, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/atmos/propulsion) +"kwZ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/turf/simulated/floor, +/area/horizon/maintenance/deck_3/aft/port/far) +"kxc" = ( +/obj/structure/bed/stool/chair/padded/black, +/obj/effect/floor_decal/spline/plain{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Chief Engineer" + }, +/turf/simulated/floor/tiled/dark, +/area/horizon/engineering/break_room) "kxd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -75377,14 +75608,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/security/investigations_hallway) -"kBp" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/closet/crate, -/obj/item/stack/material/graphite/full, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/mainchamber) "kBs" = ( /obj/machinery/light{ dir = 4 @@ -76048,6 +76271,20 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/security/checkpoint) +"kGf" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "kGh" = ( /obj/effect/floor_decal/corner/black{ dir = 6 @@ -76553,14 +76790,6 @@ }, /turf/unsimulated/floor, /area/centcom/specops) -"kJO" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/light/small/emergency{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/helium, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "kJP" = ( /obj/effect/floor_decal/industrial/arrow/red{ dir = 8 @@ -76578,9 +76807,6 @@ /obj/effect/floor_decal/industrial/outline/firefighting_closet, /turf/simulated/floor/tiled, /area/horizon/hallway/primary/deck_3/starboard) -"kKc" = ( -/turf/simulated/wall, -/area/horizon/engineering/break_room) "kKd" = ( /obj/effect/floor_decal/corner_wide/orange{ dir = 10 @@ -76782,6 +77008,18 @@ }, /turf/simulated/floor/lino, /area/horizon/service/cafeteria) +"kLR" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "kMa" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -77157,13 +77395,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/command/bridge/upperdeck) -"kPt" = ( -/obj/structure/table/rack, -/obj/random/loot, -/obj/random/loot, -/obj/random/loot, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_2/aft) "kPv" = ( /obj/structure/lattice/catwalk/indoor/grate/dark, /obj/structure/cable, @@ -77895,6 +78126,17 @@ /obj/effect/decal/cleanable/dirt, /turf/unsimulated/floor, /area/antag/raider) +"kUZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/random/junk, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/aft) "kVd" = ( /turf/simulated/floor/holofloor/wood, /area/horizon/holodeck/source_chapel) @@ -78191,14 +78433,6 @@ temperature = 278.15 }, /area/horizon/medical/morgue) -"kWK" = ( -/obj/machinery/light/small/emergency{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/lattice/catwalk/indoor/grate/dark, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_2/wing/starboard/far) "kWN" = ( /obj/effect/landmark/entry_point/starboard{ name = "starboard, ballast fore" @@ -78285,6 +78519,12 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/wing/starboard/far) +"kXR" = ( +/obj/structure/cable/orange{ + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "kYg" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 @@ -78391,6 +78631,18 @@ }, /turf/simulated/floor/wood, /area/horizon/command/heads/xo) +"kYM" = ( +/obj/effect/floor_decal/spline/plain/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "kYP" = ( /obj/structure/table/standard, /obj/item/paper_scanner{ @@ -78707,6 +78959,16 @@ }, /turf/unsimulated/floor, /area/centcom/spawning) +"laM" = ( +/obj/effect/floor_decal/corner/dark_blue/full{ + dir = 4 + }, +/obj/machinery/power/apc/critical/south, +/obj/structure/cable/green{ + icon_state = "0-8" + }, +/turf/simulated/floor/tiled/dark/cooled, +/area/horizon/ai/upload) "laQ" = ( /obj/effect/floor_decal/industrial/hatch/yellow, /obj/machinery/door/blast/odin/open{ @@ -78850,6 +79112,11 @@ /obj/machinery/firealarm/south, /turf/simulated/floor/tiled/white, /area/horizon/crew/washroom/deck_2) +"lbW" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/portable_atmospherics/canister/heliumfuel, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "lcf" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 @@ -80183,15 +80450,12 @@ }, /turf/simulated/floor/tiled, /area/horizon/hallway/primary/deck_2/fore) -"lld" = ( -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) +"llm" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/table/standard, +/obj/item/device/geiger, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/smes) "llo" = ( /obj/machinery/door/airlock/glass{ dir = 1; @@ -80858,6 +81122,21 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/medical/main_storage) +"lpL" = ( +/obj/machinery/alarm/west, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/closet/radiation, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/effect/floor_decal/industrial/warning{ + dir = 9 + }, +/obj/structure/sign/radiation{ + pixel_y = 32 + }, +/turf/simulated/floor/tiled/full, +/area/horizon/engineering/reactor/supermatter/airlock) "lqb" = ( /obj/structure/flora/stump/log, /obj/effect/floor_decal/spline/plain{ @@ -81285,11 +81564,6 @@ icon_state = "dark_preview" }, /area/centcom/holding) -"lsG" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/portable_atmospherics/canister/boron, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "lsM" = ( /obj/effect/floor_decal/corner/red/diagonal, /obj/effect/floor_decal/spline/fancy, @@ -81956,6 +82230,16 @@ }, /turf/simulated/floor/plating, /area/horizon/hallway/primary/deck_3/port/docks) +"lxn" = ( +/obj/effect/floor_decal/corner_wide/yellow{ + dir = 9 + }, +/obj/machinery/camera/network/reactor{ + c_tag = "Engineering - INDRA Room 1"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/mainchamber) "lxu" = ( /obj/effect/floor_decal/industrial/warning, /obj/machinery/atmospherics/binary/pump{ @@ -82784,15 +83068,6 @@ /obj/structure/lattice/catwalk/indoor/grate/dark, /turf/unsimulated/floor/plating, /area/centcom/holding) -"lCY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "lDb" = ( /obj/machinery/door/window/westleft{ name = "Auxillary Cryogenics" @@ -83063,6 +83338,14 @@ /obj/effect/floor_decal/spline/fancy/wood/cee, /turf/simulated/floor/holofloor/wood, /area/horizon/holodeck/source_theatre) +"lED" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/light/small/emergency{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/hydrogen, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "lEE" = ( /turf/simulated/floor/lino/diamond, /area/horizon/service/library) @@ -83426,12 +83709,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/ai/upload) -"lHA" = ( -/obj/machinery/camera/network/reactor{ - c_tag = "Engineering - INDRA Room 2" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "lHC" = ( /turf/simulated/floor/holofloor/beach/sand{ icon_state = "desert2" @@ -83870,25 +84147,6 @@ /obj/item/device/flashlight/lamp/stage, /turf/simulated/floor/holofloor/wood, /area/horizon/holodeck/source_theatre) -"lJZ" = ( -/obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = -6; - pixel_y = 5 - }, -/obj/structure/table/steel, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/power/apc/north, -/obj/structure/cable/green{ - icon_state = "0-2" - }, -/turf/simulated/floor/tiled, -/area/horizon/medical/gen_treatment) "lKd" = ( /obj/structure/table/rack/holorack, /obj/effect/floor_decal/spline/fancy/wood/cee{ @@ -84366,6 +84624,15 @@ }, /turf/simulated/floor/tiled, /area/horizon/crew/fitness/gym) +"lNo" = ( +/obj/effect/floor_decal/corner_wide/yellow{ + dir = 6 + }, +/obj/structure/cable/orange{ + icon_state = "2-4" + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/mainchamber) "lNs" = ( /obj/structure/table/rack, /obj/random/melee, @@ -84438,14 +84705,6 @@ /obj/structure/lattice/catwalk/indoor, /turf/unsimulated/floor, /area/centcom/checkpoint/fore) -"lOm" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/portable_atmospherics/canister/hydrogen, -/obj/machinery/light/small/emergency{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "lOo" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/unary/vent_pump/on, @@ -84624,20 +84883,22 @@ /obj/structure/platform_stairs/full/east_west_cap, /turf/simulated/floor/tiled/dark, /area/horizon/command/bridge/controlroom) +"lPE" = ( +/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, +/obj/machinery/door/blast/regular/open{ + id = "r_ust_core_blast"; + name = "INDRA Reactor Blast Doors"; + rad_resistance_modifier = 12 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "lPN" = ( /obj/machinery/telecomms/allinone, /turf/simulated/floor/plating, /area/shuttle/skipjack) -"lPX" = ( -/obj/effect/floor_decal/industrial/warning/corner, -/obj/structure/sign/radiation{ - pixel_y = 32 - }, -/obj/machinery/light/spot{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "lPZ" = ( /obj/machinery/vending/coffee/free{ pixel_x = -1 @@ -85015,11 +85276,6 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/rnd/xenobiology/xenoflora) -"lTD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) "lTG" = ( /obj/effect/decal/fake_object{ density = 1; @@ -85178,15 +85434,6 @@ }, /turf/simulated/wall/shuttle/scc_space_ship/cardinal, /area/horizon/engineering/atmos/propulsion/starboard) -"lUB" = ( -/obj/effect/floor_decal/corner/dark_blue/full{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/ai/upload) "lUD" = ( /obj/effect/floor_decal/corner/dark_green{ dir = 6 @@ -85359,6 +85606,13 @@ }, /turf/simulated/floor/carpet, /area/horizon/repoffice/representative_two) +"lWk" = ( +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "lWm" = ( /obj/machinery/light, /obj/effect/floor_decal/corner_wide/green{ @@ -86016,17 +86270,6 @@ }, /turf/unsimulated/floor/dark_monotile, /area/antag/actor) -"mbl" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/lattice/catwalk/indoor/grate/dark, -/obj/machinery/power/apc/low/north, -/obj/structure/cable/green{ - icon_state = "0-2" - }, -/turf/simulated/floor/plating, -/area/horizon/hangar/airstation) "mbo" = ( /obj/effect/floor_decal/corner_wide/dark_green{ dir = 10 @@ -86170,6 +86413,29 @@ /obj/machinery/alarm/shuttle/intrepid/east, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/port_storage) +"mcv" = ( +/obj/machinery/camera/network/reactor{ + c_tag = "Engineering - INDRA SMES Room 2" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/cable/orange{ + icon_state = "0-8" + }, +/obj/machinery/power/smes/buildable{ + RCon_tag = "INDRA - Containment"; + charge = 2000000; + input_attempt = 1; + input_level = 150000; + input_level_max = 350000; + is_critical = 1; + output_attempt = 1; + output_level = 150000; + output_level_max = 350000 + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/mainchamber) "mcA" = ( /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 10 @@ -86258,6 +86524,19 @@ "mdy" = ( /turf/simulated/floor/tiled/dark, /area/horizon/rnd/test_range) +"mdB" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 5 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/light, +/obj/machinery/power/portgen/basic/advanced{ + anchored = 1 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/mainchamber) "mdD" = ( /obj/effect/floor_decal/spline/plain/cee{ dir = 8 @@ -86356,15 +86635,6 @@ }, /turf/simulated/floor/holofloor/tiled, /area/horizon/holodeck/source_emptycourt) -"mex" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 10 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/office) "meC" = ( /obj/effect/floor_decal/industrial/warning, /obj/structure/filingcabinet/filingcabinet{ @@ -86500,11 +86770,6 @@ }, /turf/unsimulated/floor, /area/centcom/control) -"mfr" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_2/aft) "mfA" = ( /turf/simulated/wall/r_wall, /area/horizon/command/heads/captain) @@ -86912,25 +87177,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/simulated/floor/tiled, /area/merchant_station/warehouse) -"miB" = ( -/obj/machinery/power/emitter/gyrotron/anchored{ - dir = 1; - initial_id_tag = "horizon_fusion"; - state = 2 - }, -/obj/structure/cable/orange{ - icon_state = "0-2" - }, -/obj/effect/floor_decal/industrial/hatch/red, -/obj/structure/railing/mapped{ - dir = 4 - }, -/obj/structure/railing/mapped{ - dir = 8 - }, -/obj/structure/railing/mapped, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/mainchamber) "miC" = ( /obj/structure/bed/stool/chair, /obj/effect/floor_decal/spline/fancy/wood{ @@ -86956,6 +87202,14 @@ }, /turf/simulated/floor/tiled, /area/horizon/security/hallway) +"miN" = ( +/obj/machinery/fusion_fuel_compressor, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/mainchamber) "miO" = ( /turf/simulated/wall/shuttle/unique/tcfl{ icon_state = "13,6" @@ -88072,6 +88326,12 @@ }, /turf/unsimulated/floor, /area/antag/mercenary) +"msd" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "msi" = ( /obj/structure/railing/mapped, /turf/simulated/floor/tiled/dark, @@ -88461,6 +88721,23 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/security/interrogation/monitoring) +"mvc" = ( +/obj/structure/cable/yellow, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/lattice/catwalk/indoor, +/obj/machinery/power/smes/buildable{ + RCon_tag = "INDRA - Grid"; + charge = 4e+006; + cur_coils = 4; + input_attempt = 1; + input_level = 1e+006; + output_attempt = 1; + output_level = 1e+006 + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/smes) "mvi" = ( /obj/structure/platform/ledge{ dir = 4 @@ -88502,6 +88779,13 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/rnd/xenoarch/atrium) +"mvn" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/wing/starboard) "mvs" = ( /obj/machinery/alarm/east, /obj/structure/closet/secure_closet/package_courier, @@ -88695,19 +88979,6 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/medical/icu) -"mxt" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/structure/closet/crate, -/obj/item/circuitboard/smes, -/obj/item/circuitboard/smes, -/obj/item/smes_coil, -/obj/item/smes_coil, -/obj/item/smes_coil/super_capacity, -/obj/item/smes_coil/super_capacity, -/obj/item/smes_coil/super_io, -/obj/item/smes_coil/super_io, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "mxv" = ( /obj/structure/bed/stool/chair/shuttle{ dir = 8 @@ -89302,6 +89573,17 @@ }, /turf/simulated/floor/tiled/full, /area/horizon/engineering/lobby) +"mCO" = ( +/obj/machinery/light/small/emergency{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard/far) "mCP" = ( /obj/effect/floor_decal/corner/grey{ dir = 5 @@ -89309,6 +89591,16 @@ /obj/effect/floor_decal/sign/a, /turf/unsimulated/floor, /area/centcom/control) +"mCQ" = ( +/obj/machinery/light, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "mCS" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -89334,14 +89626,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/holodeck_control) -"mDb" = ( -/obj/machinery/computer/general_air_control/large_tank_control/terminal{ - input_tag = "fusion_injector_air"; - name = "INDRA Chamber Monitor"; - sensors = list("fusion_sensor"="INDRA Chamber") - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) "mDc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -89360,15 +89644,10 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/hangar/intrepid) -"mDn" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 6 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/office) +"mDs" = ( +/obj/structure/foamedmetal, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/monitoring) "mDv" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 @@ -89407,18 +89686,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/operations/lobby) -"mDC" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) "mDG" = ( /obj/structure/cable/green{ icon_state = "1-2" @@ -89870,6 +90137,20 @@ }, /turf/simulated/wall/shuttle/scc, /area/horizon/shuttle/quark/cargo_hold) +"mGW" = ( +/obj/machinery/door/blast/regular/open{ + dir = 4; + id = "r-ust_monitoring_blast"; + name = "INDRA Monitoring Blast Doors"; + rad_resistance_modifier = 24 + }, +/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, +/obj/structure/railing/mapped{ + icon_state = "railing0-0"; + rad_resistance_modifier = 6 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "mGZ" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 10 @@ -90011,6 +90292,12 @@ "mHN" = ( /turf/simulated/wall/walnutwood, /area/centcom/shared_dream) +"mHP" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "mHT" = ( /obj/structure/cable/green{ icon_state = "1-2" @@ -90068,9 +90355,39 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/operations/loading) +"mIk" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/kinetic_harvester{ + initial_id_tag = "horizon_fusion" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "mIl" = ( /turf/simulated/floor/holofloor/snow, /area/horizon/holodeck/source_snowfield) +"mIp" = ( +/obj/machinery/firealarm/north, +/obj/effect/floor_decal/spline/plain/yellow{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "mIw" = ( /turf/unsimulated/wall/steel, /area/antag/actor) @@ -90269,13 +90586,6 @@ /obj/effect/map_effect/window_spawner/full/reinforced/firedoor, /turf/simulated/floor/tiled/dark/full, /area/horizon/medical/paramedic) -"mKl" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 5 - }, -/obj/structure/grille, -/turf/simulated/floor/reinforced/airless, -/area/horizon/exterior) "mKn" = ( /obj/effect/floor_decal/corner_wide/green{ dir = 9 @@ -90311,6 +90621,15 @@ }, /turf/simulated/open, /area/horizon/maintenance/deck_2/wing/starboard) +"mKB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/obj/structure/lattice/catwalk/indoor/grate, +/turf/simulated/floor/plating, +/area/horizon/hallway/primary/deck_2/central) "mKE" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 @@ -90707,18 +91026,6 @@ }, /turf/unsimulated/floor, /area/centcom/bar) -"mNk" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/floor_decal/spline/plain{ - dir = 5 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "mNo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -91300,16 +91607,6 @@ }, /turf/simulated/floor/reinforced/airless, /area/horizon/engineering/atmos/turbine) -"mSF" = ( -/obj/structure/bed/stool/chair/padded/black, -/obj/effect/landmark/start{ - name = "Chief Engineer" - }, -/obj/effect/floor_decal/spline/plain{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/break_room) "mSI" = ( /obj/structure/lattice/catwalk/indoor/grate/dark, /obj/structure/cable/green{ @@ -91810,6 +92107,10 @@ "mWv" = ( /turf/simulated/wall/shuttle/scc_space_ship/cardinal, /area/horizon/stairwell/bridge/deck_3) +"mWB" = ( +/obj/structure/closet/crate/rad, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/office) "mWD" = ( /obj/machinery/atmospherics/pipe/simple/visible/supply, /turf/simulated/floor/plating, @@ -91911,6 +92212,28 @@ /obj/machinery/alarm/east, /turf/simulated/floor/tiled, /area/horizon/security/equipment) +"mXF" = ( +/obj/machinery/door/blast/regular/open{ + id = "r_ust_core_blast"; + name = "INDRA Reactor Blast Doors" + }, +/obj/machinery/door/blast/regular/open{ + id = "r_ust_core_blast"; + name = "INDRA Reactor Blast Doors" + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + locked = 1; + name = "INDRA Reactor Core Access"; + req_one_access = list(11,24); + rad_resistance_modifier = 2; + dir = 4 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "mXG" = ( /obj/machinery/camera/network/first_deck{ c_tag = "First Deck - Hangar 4"; @@ -93602,11 +93925,6 @@ /obj/structure/railing/mapped, /turf/simulated/floor/tiled, /area/horizon/hallway/primary/deck_2/central) -"njV" = ( -/obj/effect/floor_decal/industrial/hatch/red, -/obj/machinery/portable_atmospherics/canister/boron, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/bluespace_drive) "nkb" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 9 @@ -94057,6 +94375,13 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/intrepid/port_storage) +"nmJ" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/machinery/light/small/emergency{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/aft) "nmM" = ( /obj/machinery/light, /turf/simulated/floor/tiled, @@ -94147,6 +94472,18 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/medical/reception) +"noi" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-0" + }, +/obj/machinery/firealarm/east, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/empty, +/turf/simulated/floor/plating, +/area/horizon/engineering/storage/lower) "nok" = ( /obj/structure/railing/mapped, /obj/effect/floor_decal/corner/black{ @@ -94555,6 +94892,23 @@ }, /turf/simulated/floor/carpet, /area/horizon/command/heads/captain) +"nqT" = ( +/obj/structure/table/steel, +/obj/random/tool{ + pixel_y = -4 + }, +/obj/random/tool{ + pixel_y = -4 + }, +/obj/random/tool{ + pixel_y = -4 + }, +/obj/random/maintenance_junk_or_loot, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/office) "nrf" = ( /obj/effect/floor_decal/industrial/warning, /obj/random/dirt_75, @@ -94570,17 +94924,6 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/operations/secure_ammunition_storage) -"nrr" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, -/obj/machinery/door/blast/regular/open{ - id = "r_ust_core_blast"; - name = "INDRA Reactor Blast Doors" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "nrt" = ( /obj/effect/map_effect/window_spawner/full/reinforced/indestructible, /turf/unsimulated/floor/plating, @@ -94775,6 +95118,12 @@ }, /turf/simulated/floor, /area/horizon/maintenance/deck_2/wing/port/far) +"ntd" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable, +/obj/machinery/power/apc/south, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard) "ntk" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -95002,6 +95351,18 @@ }, /turf/simulated/floor/tiled, /area/horizon/security/brig) +"nuu" = ( +/obj/effect/floor_decal/corner_wide/yellow{ + dir = 9 + }, +/obj/structure/cable/orange{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/mainchamber) "nuv" = ( /obj/effect/floor_decal/industrial/warning{ dir = 1 @@ -95254,6 +95615,22 @@ }, /turf/simulated/floor/reinforced, /area/horizon/service/chapel/office) +"nwb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "nwj" = ( /turf/simulated/wall, /area/horizon/operations/break_room) @@ -95548,6 +95925,19 @@ /obj/machinery/door/window/westright, /turf/simulated/floor/tiled/dark/full, /area/shuttle/hapt) +"nyd" = ( +/obj/effect/floor_decal/corner/yellow{ + dir = 10 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/office) "nyf" = ( /obj/effect/floor_decal/spline/fancy/wood/cee, /turf/simulated/floor/holofloor/grass, @@ -96513,6 +96903,12 @@ }, /turf/unsimulated/floor, /area/centcom/spawning) +"nFv" = ( +/obj/machinery/power/breakerbox/activated{ + RCon_tag = "INDRA Containment Bypass" + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/mainchamber) "nFx" = ( /obj/machinery/door/window/northleft{ base_state = "right"; @@ -96661,28 +97057,6 @@ }, /turf/unsimulated/floor, /area/antag/raider) -"nGj" = ( -/obj/machinery/power/apc/super/critical/west, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/table/reinforced/steel, -/obj/machinery/button/remote/blast_door{ - dir = 1; - id = "r_ust_core_blast"; - name = "INDRA Reactor Core Blast Doors"; - pixel_x = -6; - pixel_y = 7 - }, -/obj/machinery/button/remote/blast_door{ - dir = 1; - id = "r-ust_monitoring_blast"; - name = "INDRA Reactor Monitoring Blast Doors"; - pixel_x = 6; - pixel_y = 7 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) "nGp" = ( /obj/structure/tank_wall/air{ density = 0; @@ -97323,16 +97697,6 @@ /obj/structure/lattice/catwalk/indoor/grate/dark, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/operations/starboard/far) -"nKN" = ( -/obj/structure/lattice/catwalk/indoor, -/obj/structure/sign/radiation{ - pixel_x = 32 - }, -/obj/structure/closet/walllocker/medical/firstaid{ - pixel_y = 32 - }, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/smes) "nKP" = ( /obj/machinery/door/airlock/hatch{ dir = 1; @@ -97405,12 +97769,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled/full, /area/horizon/engineering/storage_hard) -"nLD" = ( -/obj/effect/floor_decal/spline/plain{ - dir = 9 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "nLE" = ( /obj/machinery/space_heater, /obj/effect/floor_decal/industrial/outline/yellow, @@ -97787,6 +98145,16 @@ /obj/structure/lattice/catwalk/indoor/grate/dark, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/hangar/starboard) +"nOj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/lattice/catwalk/indoor/grate, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/horizon/hallway/primary/deck_2/central) "nOq" = ( /obj/machinery/light/floor{ dir = 4 @@ -97914,6 +98282,18 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/storage/eva/expedition) +"nPF" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/floor_decal/corner/yellow{ + dir = 6 + }, +/turf/simulated/floor/tiled/dark, +/area/horizon/engineering/aft_airlock) "nPH" = ( /turf/simulated/wall/r_wall, /area/horizon/rnd/test_range) @@ -99238,6 +99618,18 @@ name = "staircase" }, /area/antag/mercenary) +"oaS" = ( +/obj/effect/floor_decal/corner_wide/yellow{ + dir = 9 + }, +/obj/structure/sign/radiation{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/mainchamber) "oaU" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 8 @@ -99507,41 +99899,12 @@ /obj/machinery/disposal/small/east, /turf/simulated/floor/tiled/dark/full, /area/horizon/operations/machinist) -"ocF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - locked = 1; - name = "INDRA Reactor Core Access"; - req_one_access = list(11,24) - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "ocL" = ( /obj/structure/shuttle_part/tcfl{ icon_state = "15,1" }, /turf/unsimulated/floor/plating, /area/shuttle/legion) -"odf" = ( -/obj/structure/disposalpipe/segment{ - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable/green{ - icon_state = "2-8" - }, -/obj/structure/lattice/catwalk/indoor/grate, -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/turf/simulated/floor/plating, -/area/horizon/hallway/primary/deck_2/central) "odg" = ( /obj/effect/floor_decal/industrial/warning, /turf/simulated/floor/plating, @@ -99604,21 +99967,6 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/rnd/xenobiology/hazardous) -"odv" = ( -/obj/structure/closet/crate, -/obj/structure/railing/mapped{ - dir = 4 - }, -/obj/random/loot, -/obj/effect/decal/cleanable/cobweb2{ - icon_state = "cobweb1" - }, -/obj/structure/railing/mapped{ - density = 0; - icon_state = "railing0-0" - }, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_1/operations/starboard) "odw" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -99850,12 +100198,6 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/atmos/turbine) -"ofi" = ( -/obj/effect/floor_decal/spline/plain{ - dir = 5 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "ofj" = ( /obj/machinery/door/airlock/glass_research{ dir = 1; @@ -100440,6 +100782,12 @@ /obj/structure/bed/stool/chair, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/starboard) +"oif" = ( +/obj/structure/sign/radiation{ + pixel_y = -32 + }, +/turf/template_noop, +/area/template_noop) "oik" = ( /obj/structure/window/shuttle/unique/ccia{ icon_state = "0,2" @@ -100596,6 +100944,25 @@ "ojb" = ( /turf/simulated/wall, /area/horizon/maintenance/deck_2/wing/starboard/nacelle) +"ojc" = ( +/obj/structure/cable/orange{ + icon_state = "0-2" + }, +/obj/effect/floor_decal/industrial/hatch/red, +/obj/structure/railing/mapped{ + dir = 4 + }, +/obj/structure/railing/mapped{ + dir = 8 + }, +/obj/structure/railing/mapped, +/obj/machinery/power/emitter/gyrotron/anchored{ + dir = 1; + initial_id_tag = "horizon_fusion"; + state = 2 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/mainchamber) "oje" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -103102,6 +103469,13 @@ /obj/structure/table/wood, /turf/unsimulated/floor/wood, /area/centcom/specops) +"oAm" = ( +/obj/machinery/power/apc/low/south, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "oAn" = ( /obj/effect/floor_decal/corner/dark_blue/full, /obj/effect/floor_decal/industrial/outline/security, @@ -103625,6 +103999,15 @@ }, /turf/simulated/floor/wood, /area/horizon/command/bridge/minibar) +"oEp" = ( +/obj/structure/lattice/catwalk/indoor/grate/damaged{ + color = "#4c535b" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard) "oEq" = ( /turf/simulated/wall/shuttle/unique/ccia{ icon_state = "10,2" @@ -104723,6 +105106,17 @@ }, /turf/simulated/floor/tiled, /area/horizon/engineering/hallway/fore) +"oMF" = ( +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/obj/effect/floor_decal/corner/yellow/full, +/obj/machinery/light, +/turf/simulated/floor/tiled/dark, +/area/horizon/engineering/aft_airlock) "oMG" = ( /obj/machinery/atmospherics/binary/pump/high_power{ dir = 8; @@ -105006,20 +105400,6 @@ }, /turf/simulated/floor/lino, /area/horizon/service/cafeteria) -"oOU" = ( -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/obj/effect/floor_decal/corner/dark_blue/full, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/structure/cable/green{ - icon_state = "1-8" - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/ai/upload) "oOW" = ( /obj/item/paper_bin{ pixel_x = -3; @@ -105449,17 +105829,6 @@ name = "shallow water" }, /area/horizon/holodeck/source_konyang) -"oSl" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) "oSn" = ( /obj/effect/floor_decal/corner/dark_green{ dir = 5 @@ -105740,6 +106109,13 @@ }, /turf/unsimulated/floor/blue_circuit, /area/centcom/control) +"oUm" = ( +/obj/machinery/computer/security/engineering/terminal{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "oUq" = ( /obj/structure/cable{ icon_state = "4-8" @@ -106053,6 +106429,25 @@ }, /turf/simulated/floor/tiled, /area/horizon/hangar/operations) +"oWo" = ( +/obj/structure/table/reinforced/steel, +/obj/machinery/button/remote/blast_door{ + dir = 1; + id = "r_ust_core_blast"; + name = "INDRA Reactor Core Blast Doors"; + pixel_x = -6; + pixel_y = 7 + }, +/obj/machinery/button/remote/blast_door{ + dir = 1; + id = "r-ust_monitoring_blast"; + name = "INDRA Reactor Monitoring Blast Doors"; + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/device/geiger, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "oWt" = ( /obj/effect/landmark/entry_point/starboard{ name = "starboard, warehouse" @@ -106606,10 +107001,6 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/medical/hallway/upper) -"paw" = ( -/obj/machinery/computer/security/engineering/terminal, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) "paI" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -106672,6 +107063,21 @@ /obj/item/storage/box/donkpockets, /turf/simulated/floor/carpet/rubber, /area/horizon/engineering/bluespace_drive/monitoring) +"pbg" = ( +/obj/effect/floor_decal/spline/plain/yellow{ + dir = 9 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "pbn" = ( /obj/effect/floor_decal/corner/red{ dir = 5 @@ -106687,12 +107093,6 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark/full, /area/horizon/rnd/xenobiology/xenoflora) -"pbq" = ( -/obj/machinery/computer/fusion/core_control/terminal{ - initial_id_tag = "horizon_fusion" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) "pbt" = ( /obj/machinery/door/airlock/medical{ dir = 1; @@ -107328,22 +107728,6 @@ }, /turf/simulated/floor/reinforced, /area/horizon/rnd/xenobiology) -"pgr" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/green{ - icon_state = "1-8" - }, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) -"pgv" = ( -/obj/machinery/computer/fusion/gyrotron/terminal{ - initial_id_tag = "horizon_fusion" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) "pgw" = ( /obj/random/pottedplant, /obj/structure/railing/mapped, @@ -107604,15 +107988,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/service/bar) -"pjb" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/table/rack, -/obj/item/stack/material/deuterium/full, -/obj/item/stack/material/deuterium/full, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/mainchamber) "pjd" = ( /obj/machinery/embedded_controller/radio/simple_docking_controller{ frequency = 1337; @@ -107811,6 +108186,13 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/main/starboard) +"pkL" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard) "pkN" = ( /obj/machinery/atmospherics/pipe/manifold/hidden{ dir = 4 @@ -108714,6 +109096,15 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/operations/office) +"pst" = ( +/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, +/obj/machinery/door/blast/regular/open{ + id = "r_ust_core_blast"; + name = "INDRA Reactor Blast Doors"; + rad_resistance_modifier = 12 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "psx" = ( /obj/structure/lattice/catwalk/indoor, /obj/machinery/light{ @@ -109727,6 +110118,18 @@ /obj/random/junk, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/port/far) +"pAW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/effect/floor_decal/spline/plain/corner/black{ + dir = 8 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "pAX" = ( /obj/effect/map_effect/window_spawner/full/reinforced/indestructible, /obj/structure/sign/greencross{ @@ -110738,24 +111141,6 @@ icon_state = "dark_preview" }, /area/centcom/holding) -"pHz" = ( -/obj/structure/table/reinforced/steel, -/obj/machinery/button/remote/blast_door{ - dir = 1; - id = "r_ust_core_blast"; - name = "INDRA Reactor Core Blast Doors"; - pixel_x = -6; - pixel_y = 7 - }, -/obj/machinery/button/remote/blast_door{ - dir = 1; - id = "r-ust_monitoring_blast"; - name = "INDRA Reactor Monitoring Blast Doors"; - pixel_x = 6; - pixel_y = 7 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) "pHE" = ( /obj/effect/floor_decal/spline/plain, /obj/structure/table/reinforced/steel, @@ -111002,6 +111387,16 @@ }, /turf/simulated/floor, /area/horizon/maintenance/deck_3/aft/starboard/far) +"pJH" = ( +/obj/effect/floor_decal/industrial/hatch/red, +/obj/structure/railing/mapped{ + dir = 8 + }, +/obj/structure/railing/mapped{ + dir = 4 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/mainchamber) "pJI" = ( /obj/effect/floor_decal/corner/red{ dir = 9 @@ -111184,15 +111579,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/engineering/lobby) -"pLa" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "pLk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -111744,16 +112130,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/tiled/white, /area/horizon/shuttle/intrepid/medical) -"pQf" = ( -/obj/machinery/firealarm/north, -/obj/effect/floor_decal/spline/plain/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "pQh" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -111868,6 +112244,12 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/rnd/xenoarch/isolation_c) +"pRp" = ( +/obj/structure/closet/crate, +/obj/random/loot, +/obj/random/contraband, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/aft) "pRv" = ( /obj/structure/table/steel, /obj/effect/floor_decal/corner/dark_blue{ @@ -112348,6 +112730,17 @@ }, /turf/simulated/floor/lino, /area/horizon/service/bar) +"pVa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard/far) "pVw" = ( /obj/structure/bed/stool/chair/office/dark{ dir = 1 @@ -112380,6 +112773,25 @@ }, /turf/simulated/floor/tiled/full, /area/horizon/hallway/primary/deck_2/central) +"pVJ" = ( +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/structure/table/steel, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/high/north, +/turf/simulated/floor/tiled, +/area/horizon/medical/gen_treatment) "pVS" = ( /obj/structure/table/reinforced/steel, /obj/machinery/light{ @@ -112664,15 +113076,6 @@ }, /turf/simulated/floor/tiled/dark/full, /area/shuttle/skipjack) -"pYg" = ( -/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, -/obj/machinery/door/blast/regular/open{ - dir = 4; - id = "r_ust_core_blast"; - name = "INDRA Reactor Blast Doors" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "pYr" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -112892,16 +113295,6 @@ "qaA" = ( /turf/simulated/floor/tiled/white, /area/horizon/rnd/chemistry) -"qaF" = ( -/obj/effect/floor_decal/corner/dark_green{ - dir = 10 - }, -/obj/machinery/power/apc/south{ - is_critical = 1 - }, -/obj/structure/cable/green, -/turf/simulated/floor/tiled, -/area/horizon/hallway/primary/deck_2/central) "qaG" = ( /obj/effect/floor_decal/spline/plain/corner{ dir = 8 @@ -113583,6 +113976,20 @@ /obj/item/storage/slide_projector, /turf/simulated/floor/wood, /area/horizon/security/meeting_room) +"qeW" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 6 + }, +/obj/effect/floor_decal/industrial/outline/red, +/obj/machinery/atmospherics/unary/outlet_injector{ + frequency = 1441; + id = "fusion_injector_air"; + injecting = 1; + use_power = 1; + dir = 4 + }, +/turf/simulated/floor/reinforced/airless, +/area/horizon/engineering/reactor/indra/mainchamber) "qfc" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/light/small{ @@ -114726,15 +115133,6 @@ /obj/effect/map_effect/window_spawner/full/borosilicate/reinforced/firedoor, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/reactor/supermatter/monitoring) -"qoz" = ( -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "qoA" = ( /obj/machinery/porta_turret/legion, /turf/unsimulated/floor, @@ -115058,6 +115456,24 @@ }, /turf/simulated/floor/plating, /area/horizon/hangar/intrepid) +"qrb" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "qrz" = ( /obj/effect/floor_decal/corner/dark_green{ dir = 5 @@ -116190,6 +116606,12 @@ }, /turf/simulated/floor/plating, /area/shuttle/skipjack) +"qzX" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/closet/radiation, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/maintenance/deck_2/aft) "qAb" = ( /obj/effect/floor_decal/corner_wide/orange{ dir = 6 @@ -116858,6 +117280,12 @@ "qED" = ( /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/auxatmos) +"qEE" = ( +/obj/structure/cable/orange{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/mainchamber) "qEG" = ( /obj/structure/cable{ icon_state = "4-8" @@ -117603,6 +118031,26 @@ }, /turf/simulated/floor/wood, /area/horizon/hallway/primary/deck_2/starboard) +"qJs" = ( +/obj/effect/floor_decal/spline/plain/black{ + dir = 6 + }, +/obj/structure/table/reinforced/steel, +/obj/item/paper_bin{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/item/folder/yellow{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/pen{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/book/manual/fusion_reactor, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "qJv" = ( /obj/effect/decal/rolling_fog, /obj/structure/railing/mapped{ @@ -117774,6 +118222,14 @@ }, /turf/simulated/floor/plating, /area/horizon/hangar/intrepid) +"qKQ" = ( +/obj/effect/floor_decal/corner/dark_green{ + dir = 10 + }, +/obj/structure/cable/green, +/obj/machinery/power/apc/high/south, +/turf/simulated/floor/tiled, +/area/horizon/hallway/primary/deck_2/central) "qKW" = ( /obj/item/clothing/mask/gas/syndicate{ pixel_y = 6 @@ -118157,13 +118613,6 @@ }, /turf/unsimulated/floor/rubber_carpet, /area/centcom/specops) -"qNi" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/engineer_maintenance/electric/wall, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "qNl" = ( /obj/structure/closet/wardrobe/mixed, /obj/effect/floor_decal/corner/dark_green{ @@ -118325,19 +118774,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/service/custodial/disposals/deck_1) -"qOr" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/floor_decal/industrial/warning, -/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, -/obj/machinery/door/blast/regular/open{ - id = "r_ust_core_blast"; - name = "INDRA Reactor Blast Doors" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "qOA" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -119131,14 +119567,6 @@ }, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/reactor/supermatter/monitoring) -"qVC" = ( -/obj/machinery/light, -/obj/effect/floor_decal/spline/plain, -/obj/structure/sign/radiation{ - pixel_y = -32 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "qVN" = ( /obj/structure/table/stone/marble, /obj/machinery/door/firedoor, @@ -119966,6 +120394,17 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/atmos) +"rch" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/north, +/turf/simulated/floor/plating, +/area/horizon/hangar/airstation) "rci" = ( /obj/machinery/hologram/holopad/long_range, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -120339,6 +120778,18 @@ }, /turf/simulated/floor/plating, /area/horizon/shuttle/intrepid/flight_deck) +"reB" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/sign/nosmoking_1{ + pixel_y = 32 + }, +/obj/machinery/camera/network/reactor{ + c_tag = "Engineering - INDRA Room 3" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "reE" = ( /obj/machinery/lapvend, /obj/effect/floor_decal/spline/fancy/wood{ @@ -120983,12 +121434,6 @@ /obj/structure/flora/ausbushes/sunnybush, /turf/simulated/floor/grass/no_edge, /area/horizon/hallway/primary/deck_3/port) -"rkb" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) "rkd" = ( /obj/effect/decal/fake_object{ desc = "A button. It's unpowered. Typical."; @@ -121019,15 +121464,6 @@ /obj/effect/floor_decal/industrial/warning, /turf/simulated/floor/tiled/dark, /area/horizon/engineering/gravity_gen) -"rkp" = ( -/obj/effect/floor_decal/corner_wide/yellow{ - dir = 9 - }, -/obj/structure/sign/radiation{ - pixel_x = -32 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/mainchamber) "rks" = ( /obj/structure/table/standard, /obj/item/device/binoculars, @@ -121210,6 +121646,22 @@ /obj/structure/trash_pile, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/wing/port/far) +"rlM" = ( +/obj/structure/cable/orange{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/structure/lattice/catwalk/indoor/grate, +/obj/structure/cable/orange{ + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/mainchamber) "rlQ" = ( /obj/machinery/vending/security, /obj/machinery/light{ @@ -121714,18 +122166,6 @@ /obj/machinery/atmospherics/pipe/manifold/visible/red, /turf/simulated/floor/tiled/dark, /area/horizon/engineering/atmos/turbine) -"roi" = ( -/obj/structure/railing/mapped, -/obj/effect/floor_decal/industrial/outline/emergency_closet, -/obj/structure/closet/emcloset{ - anchored = 1; - canbemoved = 1 - }, -/obj/machinery/light/spot{ - dir = 8 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/mainchamber) "ron" = ( /obj/structure/cable{ icon_state = "4-8" @@ -121997,13 +122437,6 @@ }, /turf/unsimulated/floor/freezer, /area/antag/mercenary) -"rqx" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "rqA" = ( /obj/effect/floor_decal/industrial/outline/yellow, /turf/unsimulated/floor, @@ -122744,6 +123177,21 @@ }, /turf/simulated/floor/carpet/rubber, /area/horizon/engineering/reactor/supermatter/monitoring) +"rvO" = ( +/obj/effect/floor_decal/corner/black/full{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/high/east, +/turf/simulated/floor/tiled, +/area/horizon/operations/machinist) "rvW" = ( /obj/structure/platform/ledge, /obj/structure/platform/ledge{ @@ -123643,6 +124091,9 @@ /obj/effect/floor_decal/industrial/hatch/grey, /turf/simulated/floor/tiled/full, /area/horizon/hallway/primary/deck_3/starboard) +"rBJ" = ( +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "rBT" = ( /obj/structure/cable{ icon_state = "1-2" @@ -125662,18 +126113,6 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/starboard/nacelle) -"rRD" = ( -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/obj/effect/floor_decal/corner/dark_blue/full{ - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/ai/upload) "rRQ" = ( /obj/effect/floor_decal/corner/dark_green{ dir = 10 @@ -125936,6 +126375,10 @@ }, /turf/simulated/floor/tiled, /area/horizon/maintenance/deck_2/wing/starboard/auxatmos) +"rTp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/aft) "rTq" = ( /obj/effect/map_effect/window_spawner/full/borosilicate/reinforced/firedoor, /obj/machinery/door/blast/shutters/open{ @@ -126458,6 +126901,10 @@ /obj/machinery/photocopier, /turf/simulated/floor/carpet, /area/horizon/repoffice/representative_two) +"rWV" = ( +/obj/structure/foamedmetal, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/mainchamber) "rXm" = ( /obj/structure/lattice/catwalk/indoor/grate/dark, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -126624,18 +127071,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/security/evidence_storage) -"rYE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/floor_decal/spline/plain/corner{ - dir = 4 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "rYK" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 @@ -126741,22 +127176,6 @@ }, /turf/simulated/floor/reinforced/airless, /area/horizon/engineering/atmos/propulsion/starboard) -"rZs" = ( -/obj/structure/cable/green{ - icon_state = "1-8" - }, -/obj/effect/floor_decal/corner/yellow{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "rZt" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume{ dir = 8 @@ -126948,6 +127367,15 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/wood, /area/horizon/command/bridge/upperdeck) +"sbK" = ( +/obj/structure/sign/radiation{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/office) "sbR" = ( /obj/effect/decal/cleanable/cobweb2, /obj/effect/floor_decal/corner/red/diagonal, @@ -127006,18 +127434,6 @@ /obj/structure/lattice/catwalk/indoor/grate/dark, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/wing/port/far) -"scu" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_1/operations/starboard) "scv" = ( /obj/effect/decal/fake_object{ dir = 4; @@ -127199,6 +127615,20 @@ /obj/effect/floor_decal/industrial/outline/red, /turf/simulated/floor/tiled/dark/full, /area/shuttle/burglar) +"sdu" = ( +/obj/effect/floor_decal/spline/plain/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "sdx" = ( /obj/machinery/atmospherics/pipe/simple/visible/black, /obj/machinery/atmospherics/binary/pump{ @@ -127797,15 +128227,6 @@ /obj/effect/floor_decal/industrial/hatch/operations, /turf/simulated/floor/tiled/dark/full, /area/supply/dock) -"shh" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 6 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "shl" = ( /obj/machinery/door/airlock/centcom{ name = "Green Access"; @@ -127835,13 +128256,6 @@ }, /turf/unsimulated/floor/plating, /area/centcom/legion/hangar5) -"shr" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "sht" = ( /obj/effect/floor_decal/corner/dark_green{ dir = 5 @@ -129110,6 +129524,16 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/horizon/engineering/reactor/supermatter/mainchamber) +"sqk" = ( +/obj/machinery/firealarm/south, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/floor_decal/spline/plain/black{ + dir = 10 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "sqr" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -129134,6 +129558,16 @@ }, /turf/simulated/floor/wood, /area/horizon/command/bridge/minibar) +"sqz" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/lattice/catwalk/indoor/grate, +/turf/simulated/floor/plating, +/area/horizon/hallway/primary/deck_2/central) "sqA" = ( /obj/effect/floor_decal/spline/plain{ dir = 1 @@ -130209,15 +130643,6 @@ "sxY" = ( /turf/space/transit/east, /area/template_noop) -"sxZ" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/sign/nosmoking_1{ - pixel_y = 32 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "sya" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 9 @@ -130347,6 +130772,18 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/horizon/security/investigations_hallway) +"syX" = ( +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/floor_decal/corner/dark_blue/full{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/tiled/dark/cooled, +/area/horizon/ai/upload) "syZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -130367,6 +130804,12 @@ /obj/structure/foamedmetal, /turf/simulated/floor/plating, /area/horizon/engineering/atmos/propulsion/starboard) +"sze" = ( +/obj/structure/sign/radiation{ + pixel_x = -32 + }, +/turf/template_noop, +/area/template_noop) "szj" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -130696,20 +131139,6 @@ /obj/structure/sign/staff_only, /turf/unsimulated/wall/darkshuttlewall, /area/centcom/bar) -"sBr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "sBw" = ( /obj/structure/cable{ icon_state = "4-8" @@ -131139,6 +131568,15 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/rnd/xenobiology) +"sEl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk/indoor/grate, +/turf/simulated/floor/plating, +/area/horizon/hallway/primary/deck_2/central) "sEm" = ( /obj/structure/window/shuttle/unique/scc/mining, /obj/machinery/door/firedoor, @@ -132086,14 +132524,6 @@ }, /turf/simulated/floor/marble/dark, /area/horizon/holodeck/source_tribunal) -"sKV" = ( -/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, -/obj/machinery/door/blast/regular/open{ - id = "r_ust_core_blast"; - name = "INDRA Reactor Blast Doors" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "sKZ" = ( /obj/item/paper_bin{ pixel_x = -8; @@ -132419,6 +132849,16 @@ /obj/structure/lattice/catwalk/indoor/grate/dark, /turf/unsimulated/floor/plating, /area/centcom/legion) +"sNs" = ( +/obj/random/tool{ + pixel_y = 5 + }, +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/yellow{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/office) "sNt" = ( /obj/structure/table/reinforced/wood, /obj/item/storage/box/fancy/donut, @@ -132718,6 +133158,13 @@ }, /turf/simulated/floor/tiled/dark, /area/centcom/bar) +"sPa" = ( +/obj/structure/lattice/catwalk/indoor/grate, +/obj/structure/cable/orange{ + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/mainchamber) "sPd" = ( /obj/structure/cable/green{ d2 = 2; @@ -132805,6 +133252,15 @@ /obj/structure/table/wood, /turf/simulated/floor/tiled, /area/horizon/hangar/intrepid) +"sPG" = ( +/obj/structure/lattice/catwalk/indoor/grate/damaged{ + color = "#4c535b" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard/far) "sPI" = ( /obj/effect/floor_decal/corner/red/full{ dir = 1 @@ -132818,6 +133274,16 @@ temperature = 278.15 }, /area/horizon/medical/morgue) +"sPO" = ( +/obj/machinery/alarm/south, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/floor_decal/spline/plain/black{ + dir = 6 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "sQa" = ( /obj/structure/lattice/catwalk/indoor/grate/dark, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -133218,12 +133684,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/storage/eva) -"sSd" = ( -/obj/effect/floor_decal/corner_wide/yellow/full{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/office) "sSi" = ( /obj/structure/platform{ dir = 1 @@ -133303,6 +133763,16 @@ /obj/structure/lattice/catwalk/indoor/grate/dark, /turf/simulated/floor/plating, /area/shuttle/legion) +"sSG" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/item/stack/material/iron{ + amount = 5 + }, +/obj/structure/closet/crate/elec, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/mainchamber) "sSJ" = ( /obj/structure/cable/green{ icon_state = "1-2" @@ -133315,16 +133785,6 @@ /obj/machinery/alarm/east, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/starboard/near) -"sSN" = ( -/obj/machinery/door/blast/regular/open{ - dir = 4; - id = "r_ust_core_blast"; - name = "INDRA Reactor Blast Doors" - }, -/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, -/obj/machinery/atmospherics/pipe/simple/visible, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "sSO" = ( /obj/effect/floor_decal/corner/blue, /turf/simulated/floor/holofloor/tiled, @@ -133514,10 +133974,6 @@ }, /turf/simulated/floor/tiled/dark/full/airless, /area/horizon/command/bridge/controlroom) -"sUV" = ( -/obj/machinery/portable_atmospherics/canister/empty, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/office) "sUZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/yellow{ dir = 4 @@ -135128,6 +135584,18 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/hallway/primary/deck_3/port) +"thB" = ( +/obj/structure/sign/directions/prop{ + pixel_y = -22 + }, +/obj/effect/floor_decal/spline/plain/yellow{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "thD" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -135785,16 +136253,6 @@ /obj/structure/engineer_maintenance/electric/wall, /turf/simulated/floor/wood, /area/horizon/medical/psych) -"tlM" = ( -/obj/structure/lattice/catwalk/indoor/grate/dark, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_1/wing/starboard) "tlN" = ( /obj/random/junk, /turf/simulated/floor/tiled/dark/full, @@ -135868,6 +136326,13 @@ opacity = 1 }, /area/horizon/shuttle/canary) +"tmH" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard/far) "tmI" = ( /obj/effect/floor_decal/industrial/warning{ dir = 6 @@ -135980,6 +136445,12 @@ "tnl" = ( /turf/simulated/wall, /area/horizon/crew/lounge) +"tno" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "tnt" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 9 @@ -136465,6 +136936,20 @@ /obj/structure/table/reinforced/wood, /turf/unsimulated/floor, /area/antag/raider) +"tqw" = ( +/obj/machinery/camera/network/reactor{ + c_tag = "Engineering - INDRA Monitoring Room"; + dir = 1 + }, +/obj/structure/sign/nosmoking_1{ + pixel_y = -24 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/item/modular_computer/console/preset/engineering{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "tqz" = ( /obj/effect/floor_decal/industrial/outline/grey, /obj/structure/closet/crate{ @@ -136979,19 +137464,6 @@ /obj/machinery/meter, /turf/simulated/floor/tiled/dark, /area/horizon/engineering/atmos) -"ttJ" = ( -/obj/machinery/button/remote/blast_door{ - dir = 4; - id = "r-ust_north"; - name = "INDRA Reactor Storage Shutters"; - pixel_x = 24; - pixel_y = 7 - }, -/obj/effect/floor_decal/corner_wide/yellow{ - dir = 6 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/mainchamber) "ttT" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -137036,12 +137508,6 @@ }, /turf/unsimulated/floor, /area/centcom/bar) -"tuf" = ( -/obj/machinery/porta_turret, -/obj/effect/floor_decal/industrial/warning/full, -/obj/machinery/alarm/west, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/ai/upload) "tuh" = ( /obj/item/storage/box/drinkingglasses{ pixel_x = -7; @@ -137102,13 +137568,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/engineering/break_room) -"tuQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/lattice/catwalk/indoor/grate, -/turf/simulated/floor/plating, -/area/horizon/hallway/primary/deck_2/central) "tuS" = ( /obj/structure/table/reinforced/wood, /obj/machinery/chemical_dispenser/coffee/full{ @@ -137201,23 +137660,6 @@ /obj/machinery/alarm/west, /turf/simulated/floor/tiled/dark/full, /area/horizon/storage/secure) -"tvG" = ( -/obj/machinery/power/smes/buildable{ - RCon_tag = "INDRA - Containment"; - charge = 2000000; - input_attempt = 1; - input_level = 150000; - input_level_max = 350000; - is_critical = 1; - output_attempt = 1; - output_level = 150000; - output_level_max = 350000 - }, -/obj/structure/cable/orange{ - icon_state = "0-8" - }, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/mainchamber) "tvI" = ( /obj/item/device/taperecorder{ pixel_x = 3; @@ -137899,6 +138341,13 @@ }, /turf/simulated/floor/plating, /area/horizon/engineering/reactor/supermatter/airlock) +"tAb" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "tAc" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -138041,6 +138490,9 @@ }, /turf/simulated/floor/lino, /area/horizon/service/cafeteria) +"tBh" = ( +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/mainchamber) "tBm" = ( /obj/structure/flora/tree/adhomai, /turf/simulated/floor/holofloor/snow, @@ -140374,6 +140826,11 @@ }, /turf/simulated/floor/plating, /area/horizon/shuttle/quark/cargo_hold) +"tTv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "tTy" = ( /obj/machinery/power/portgen/basic, /obj/effect/floor_decal/industrial/outline/yellow, @@ -140872,6 +141329,16 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/tiled/full, /area/horizon/service/chapel/office) +"tXQ" = ( +/obj/effect/floor_decal/corner/yellow{ + dir = 9 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/crate/rad, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/office) "tXV" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/structure/closet/secure_closet/miner, @@ -140969,6 +141436,14 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark/full, /area/shuttle/mercenary) +"tYu" = ( +/obj/item/device/flashlight/lamp/off{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/structure/table/standard, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/office) "tYD" = ( /obj/structure/lattice/catwalk/indoor, /obj/machinery/atmospherics/pipe/simple/visible/green{ @@ -141103,6 +141578,15 @@ }, /turf/simulated/floor/exoplanet/barren/raskara, /area/centcom/shared_dream) +"tZw" = ( +/obj/effect/floor_decal/spline/plain/black{ + dir = 9 + }, +/obj/structure/bed/stool/chair/office/dark{ + dir = 8 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "tZA" = ( /obj/structure/window/reinforced{ dir = 1; @@ -141776,15 +142260,6 @@ /obj/item/clothing/gloves/black, /turf/simulated/floor, /area/horizon/maintenance/deck_3/aft/starboard/far) -"udR" = ( -/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced/firedoor, -/obj/machinery/door/blast/regular/open{ - dir = 4; - id = "r-ust_monitoring_blast"; - name = "INDRA Monitoring Blast Doors" - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) "udY" = ( /obj/machinery/light/small{ must_start_working = 1 @@ -141875,19 +142350,6 @@ /obj/structure/bed/stool/bar/padded/red, /turf/simulated/floor/wood, /area/horizon/maintenance/deck_2/wing/starboard) -"ueJ" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 10 - }, -/obj/machinery/atmospherics/unary/outlet_injector{ - frequency = 1441; - id = "fusion_injector_air"; - injecting = 1; - use_power = 1 - }, -/obj/effect/floor_decal/industrial/outline/red, -/turf/simulated/floor/reinforced/airless, -/area/horizon/engineering/reactor/indra/mainchamber) "ueO" = ( /obj/structure/window/reinforced/holowindow/disappearing{ dir = 4 @@ -142412,6 +142874,14 @@ }, /turf/simulated/floor/plating, /area/horizon/engineering/atmos) +"ujb" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/light/small/emergency{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/deuttrit, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "ujn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/floor_decal/corner/grey{ @@ -142700,6 +143170,13 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/hangar/starboard) +"ulc" = ( +/obj/structure/engineer_maintenance/pipe/wall, +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "ule" = ( /obj/effect/floor_decal/corner_wide/yellow{ dir = 5 @@ -142755,12 +143232,6 @@ }, /turf/simulated/floor/tiled, /area/horizon/engineering/break_room) -"ulz" = ( -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "ulI" = ( /obj/effect/floor_decal/industrial/hatch/yellow, /obj/machinery/door/firedoor{ @@ -142808,15 +143279,6 @@ }, /turf/simulated/floor/wood, /area/merchant_station) -"umg" = ( -/obj/effect/floor_decal/corner_wide/yellow{ - dir = 6 - }, -/obj/structure/sign/radiation{ - pixel_x = 32 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/mainchamber) "umh" = ( /obj/machinery/light{ dir = 1 @@ -143373,21 +143835,6 @@ }, /turf/unsimulated/floor, /area/centcom/holding) -"uqm" = ( -/obj/structure/table/wood, -/obj/effect/floor_decal/corner/dark_green{ - dir = 5 - }, -/obj/random/pottedplant_small{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/machinery/newscaster/north, -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/hallway/fore) "uqx" = ( /obj/effect/floor_decal/corner/dark_blue/diagonal, /obj/structure/bed/stool/chair/office/bridge, @@ -144006,15 +144453,6 @@ /obj/item/device/radio/intercom/south, /turf/simulated/floor/wood/walnut, /area/horizon/medical/smoking) -"uuu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "uuJ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -144283,27 +144721,6 @@ "uwY" = ( /turf/simulated/wall/r_wall, /area/horizon/rnd/xenobiology) -"uxg" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/floor_decal/spline/plain/yellow{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "uxj" = ( /obj/structure/closet/secure_closet/engineering_chief, /obj/item/device/radio/intercom/south, @@ -145241,15 +145658,6 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/medical/icu) -"uDE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "uDI" = ( /obj/effect/decal/fake_object/light_source{ icon = 'icons/effects/props/holodeck/konyang/32x96.dmi'; @@ -145593,18 +146001,6 @@ /obj/item/device/radio/intercom/expedition/north, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/main_compartment) -"uFB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) "uFJ" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 1 @@ -145974,6 +146370,22 @@ }, /turf/unsimulated/floor, /area/centcom/spawning) +"uIr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "uIs" = ( /obj/structure/table/standard, /obj/machinery/vending/wallmed1{ @@ -146560,27 +146972,6 @@ }, /turf/simulated/floor/holofloor/tiled, /area/horizon/holodeck/source_lasertag) -"uMu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "uMz" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -146734,14 +147125,6 @@ }, /turf/simulated/floor/tiled/white, /area/horizon/medical/hallway/upper) -"uOm" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/full, -/area/horizon/hallway/primary/deck_2/central) "uOo" = ( /obj/machinery/alarm/west, /obj/effect/floor_decal/corner/red/diagonal, @@ -146976,19 +147359,6 @@ }, /turf/simulated/floor/lino, /area/horizon/service/dining_hall) -"uPJ" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/lattice/catwalk/indoor/grate, -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/turf/simulated/floor/plating, -/area/horizon/hallway/primary/deck_2/central) "uPK" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 @@ -147563,6 +147933,16 @@ }, /turf/simulated/floor/tiled, /area/horizon/engineering/bluespace_drive) +"uUa" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/effect/floor_decal/industrial/loading/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard/far) "uUg" = ( /obj/structure/table/standard, /obj/item/storage/box/fancy/tray{ @@ -147766,6 +148146,18 @@ }, /turf/simulated/floor/tiled/dark, /area/shuttle/legion) +"uVs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "uVt" = ( /obj/effect/floor_decal/corner/brown{ dir = 6 @@ -148819,21 +149211,6 @@ }, /turf/simulated/open/airless, /area/horizon/exterior) -"vcm" = ( -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/effect/floor_decal/corner/brown/full{ - dir = 8 - }, -/obj/effect/landmark/start{ - name = "Hangar Technician" - }, -/turf/simulated/floor/tiled, -/area/horizon/operations/office) "vco" = ( /obj/structure/closet/secure_closet/refrigerator/standard, /obj/item/storage/box/fancy/egg_box, @@ -149791,6 +150168,22 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/starboard) +"vje" = ( +/obj/structure/disposalpipe/segment{ + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk/indoor/grate, +/turf/simulated/floor/plating, +/area/horizon/hallway/primary/deck_2/central) "vjh" = ( /obj/machinery/light{ dir = 4 @@ -150144,17 +150537,6 @@ /obj/item/modular_computer/console/preset/command/teleporter/ninja, /turf/unsimulated/floor, /area/antag/ninja) -"vlo" = ( -/obj/structure/lattice/catwalk/indoor/grate/dark, -/obj/machinery/light/small/emergency, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_1/wing/starboard) "vlp" = ( /obj/machinery/door/airlock/highsecurity{ dir = 1; @@ -151672,12 +152054,6 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/main/port) -"vwy" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 6 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/office) "vwA" = ( /turf/unsimulated/wall/fakepdoor{ dir = 8; @@ -151786,6 +152162,15 @@ icon_state = "0,3" }, /area/shuttle/specops) +"vxq" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/floor_decal/corner/yellow{ + dir = 6 + }, +/turf/simulated/floor/tiled/dark, +/area/horizon/engineering/aft_airlock) "vxz" = ( /obj/machinery/light/small/emergency{ dir = 4 @@ -152172,6 +152557,16 @@ icon_state = "dark_preview" }, /area/centcom/specops) +"vAl" = ( +/obj/machinery/door/blast/regular/open{ + dir = 4; + id = "r_ust_core_blast"; + name = "INDRA Reactor Blast Doors"; + rad_resistance_modifier = 12 + }, +/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "vAn" = ( /turf/simulated/wall, /area/horizon/service/chapel/office) @@ -152447,6 +152842,16 @@ /obj/effect/floor_decal/corner/brown, /turf/simulated/floor/tiled, /area/horizon/operations/office) +"vCy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard) "vCI" = ( /obj/structure/sign/poster{ pixel_y = 32 @@ -152668,19 +153073,6 @@ "vDX" = ( /turf/simulated/wall, /area/horizon/stairwell/starboard/deck_1) -"vEc" = ( -/obj/structure/closet/crate, -/obj/item/circuitboard/smes, -/obj/item/circuitboard/smes, -/obj/item/smes_coil, -/obj/item/smes_coil, -/obj/item/smes_coil/super_capacity, -/obj/item/smes_coil/super_capacity, -/obj/item/smes_coil/super_io, -/obj/item/smes_coil/super_io, -/obj/effect/floor_decal/industrial/warning, -/turf/simulated/floor/plating, -/area/horizon/engineering/storage/lower) "vEe" = ( /obj/structure/bed/stool/chair/padded/brown, /obj/effect/floor_decal/spline/fancy/wood/cee{ @@ -153512,6 +153904,13 @@ /obj/machinery/firealarm/west, /turf/simulated/floor/tiled/full, /area/horizon/command/bridge/cciaroom) +"vKD" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "vKF" = ( /obj/structure/closet/emcloset, /obj/effect/floor_decal/corner/dark_green{ @@ -154283,6 +154682,14 @@ }, /turf/simulated/floor/holofloor/tiled, /area/horizon/holodeck/source_gym) +"vQt" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_1/wing/starboard) "vQu" = ( /obj/effect/floor_decal/corner/dark_blue/full{ dir = 8 @@ -154804,6 +155211,12 @@ icon_state = "6,0" }, /area/centcom/specops) +"vUz" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "vUE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -155203,6 +155616,14 @@ }, /turf/unsimulated/floor, /area/centcom/legion) +"vWn" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/structure/reagent_dispensers/extinguisher, +/obj/machinery/light/small/emergency{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/maintenance/deck_2/aft) "vWv" = ( /obj/effect/floor_decal/industrial/outline/security, /turf/simulated/floor/tiled/dark/full, @@ -155304,18 +155725,6 @@ }, /turf/simulated/floor/plating, /area/horizon/hangar/auxiliary) -"vXy" = ( -/obj/structure/disposalpipe/segment{ - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "vXz" = ( /obj/structure/closet/secure_closet/personal, /turf/unsimulated/floor, @@ -155859,6 +156268,13 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/storage/eva) +"wbc" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "wbh" = ( /obj/structure/railing/mapped{ dir = 8 @@ -156228,6 +156644,12 @@ /obj/machinery/light/small/emergency, /turf/simulated/floor/tiled/dark/full, /area/horizon/operations/secure_ammunition_storage) +"wdK" = ( +/obj/structure/sign/radiation{ + pixel_x = 32 + }, +/turf/template_noop, +/area/template_noop) "wdO" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/effect/floor_decal/spline/plain{ @@ -157250,6 +157672,13 @@ "wkW" = ( /turf/simulated/wall/r_wall, /area/horizon/service/hydroponics) +"wkZ" = ( +/obj/structure/closet/crate/elec, +/obj/effect/floor_decal/corner_wide/yellow/full{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/office) "wlb" = ( /obj/random/junk, /obj/effect/floor_decal/industrial/outline/grey, @@ -159137,6 +159566,21 @@ /obj/effect/floor_decal/spline/plain/corner, /turf/simulated/floor/exoplanet/barren, /area/centcom/shared_dream) +"wwk" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "wwn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -159353,14 +159797,6 @@ icon_state = "11,17" }, /area/horizon/shuttle/mining) -"wxr" = ( -/obj/structure/closet/crate/rad, -/obj/item/stack/material/tritium/full, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/mainchamber) "wxu" = ( /obj/structure/cable{ icon_state = "0-2" @@ -159377,6 +159813,21 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/substation/engineering/lower) +"wxw" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/effect/floor_decal/corner/brown/full{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Hangar Technician" + }, +/turf/simulated/floor/tiled, +/area/horizon/operations/office) "wxA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -159537,6 +159988,10 @@ /obj/effect/floor_decal/industrial/warning, /turf/simulated/floor/plating, /area/horizon/engineering/reactor/supermatter/mainchamber) +"wyE" = ( +/obj/structure/bed/stool/chair/office/dark, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "wyI" = ( /turf/simulated/wall/shuttle/unique/tcfl{ icon_state = "14,1" @@ -159825,22 +160280,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/aux, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/auxatmos) -"wAL" = ( -/obj/machinery/light, -/obj/machinery/power/smes/buildable/substation{ - RCon_tag = "Substation - Deck 3 Telecommunications"; - charge = 5000000; - input_attempt = 1; - input_level = 200000; - output_attempt = 1; - output_level = 200000 - }, -/obj/structure/cable/green{ - icon_state = "0-8" - }, -/obj/effect/floor_decal/industrial/outline/yellow, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/tcommsat/entrance) "wAO" = ( /obj/effect/floor_decal/spline/fancy/wood, /obj/effect/floor_decal/spline/fancy/wood/corner{ @@ -160460,12 +160899,6 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled, /area/horizon/command/bridge/meeting_room) -"wFv" = ( -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/full, -/area/horizon/engineering/reactor/indra/office) "wFx" = ( /obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment, @@ -160588,21 +161021,6 @@ }, /turf/unsimulated/floor/dark_monotile, /area/antag/actor) -"wGN" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 10 - }, -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/office) "wGP" = ( /obj/structure/tank_wall/nitrogen{ density = 0; @@ -160739,10 +161157,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/maintenance/deck_2/wing/port/nacelle) -"wHC" = ( -/obj/effect/floor_decal/corner_wide/yellow/full, -/turf/simulated/floor/tiled, -/area/horizon/engineering/reactor/indra/office) "wHF" = ( /obj/effect/floor_decal/corner/brown{ dir = 5 @@ -160912,15 +161326,6 @@ /obj/machinery/firealarm/north, /turf/simulated/floor/tiled, /area/horizon/engineering/hallway/interior) -"wJv" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/sign/nosmoking_1{ - pixel_y = 32 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "wJy" = ( /turf/simulated/wall, /area/horizon/rnd/xenobiology) @@ -161139,6 +161544,21 @@ /obj/item/net_container, /turf/simulated/floor/tiled/white, /area/horizon/rnd/xenobiology) +"wLT" = ( +/obj/random/hardhat, +/obj/item/device/hand_labeler{ + pixel_y = -5 + }, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/yellow{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/reactor/indra/office) "wLV" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -161381,16 +161801,6 @@ icon_state = "white" }, /area/centcom/legion) -"wOf" = ( -/obj/machinery/camera/network/reactor{ - c_tag = "Engineering - INDRA SMES Room 1"; - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/smes) "wOl" = ( /obj/machinery/light{ name = "adjusted light fixture"; @@ -161689,6 +162099,15 @@ name = "shallow water" }, /area/horizon/holodeck/source_konyang) +"wPK" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 10 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "wPS" = ( /obj/structure/lattice, /obj/structure/grille/broken, @@ -162154,21 +162573,6 @@ /obj/structure/disposalpipe/trunk, /turf/simulated/floor/tiled/white, /area/horizon/crew/fitness/changing) -"wSL" = ( -/obj/structure/table/reinforced/steel, -/obj/item/paper_bin{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/pen{ - pixel_x = 5; - pixel_y = 9 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/monitoring) "wSP" = ( /obj/effect/map_effect/window_spawner/full/reinforced/indestructible, /obj/machinery/door/blast/odin{ @@ -162892,6 +163296,16 @@ icon_state = "dark_preview" }, /area/centcom/specops) +"wWK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/dark, +/area/horizon/engineering/aft_airlock) "wWM" = ( /obj/effect/floor_decal/corner/grey/diagonal, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -163127,6 +163541,11 @@ }, /turf/unsimulated/floor, /area/centcom/control) +"wYA" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/structure/reagent_dispensers/watertank, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/maintenance/deck_2/aft) "wYB" = ( /obj/effect/floor_decal/industrial/warning, /turf/simulated/floor/plating, @@ -163519,6 +163938,27 @@ /obj/structure/table/wood, /turf/simulated/floor/holofloor/wood, /area/horizon/holodeck/source_dininghall) +"xaE" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "xaL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -164022,20 +164462,6 @@ }, /turf/unsimulated/floor, /area/centcom/control) -"xer" = ( -/obj/machinery/door/firedoor, -/obj/structure/lattice/catwalk/indoor/grate/dark, -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_1/wing/starboard) "xes" = ( /obj/effect/floor_decal/industrial/warning{ dir = 5 @@ -164305,13 +164731,6 @@ /obj/structure/cable, /turf/simulated/floor/plating, /area/horizon/maintenance/substation/hangar) -"xgw" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "xgx" = ( /obj/effect/floor_decal/corner/beige/full{ dir = 4 @@ -164551,16 +164970,6 @@ "xiE" = ( /turf/simulated/wall/r_wall, /area/horizon/command/bridge/cciaroom) -"xiG" = ( -/obj/machinery/kinetic_harvester{ - initial_id_tag = "horizon_fusion" - }, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "xiJ" = ( /obj/structure/flora/grass/jungle, /obj/effect/floor_decal/spline/plain{ @@ -164961,6 +165370,17 @@ /obj/machinery/firealarm/north, /turf/simulated/floor/carpet/rubber, /area/horizon/rnd/server) +"xmD" = ( +/obj/effect/floor_decal/corner/yellow{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/dark, +/area/horizon/engineering/aft_airlock) "xmF" = ( /obj/structure/shuttle_part/scc/mining{ icon_state = "6,1"; @@ -164977,11 +165397,6 @@ }, /turf/simulated/floor/wood, /area/horizon/command/heads/om) -"xmI" = ( -/obj/structure/lattice/catwalk/indoor/grate/dark, -/obj/machinery/alarm/east, -/turf/simulated/floor/plating, -/area/horizon/maintenance/deck_2/wing/starboard/far) "xmM" = ( /turf/simulated/floor/tiled/white, /area/horizon/storage/eva/expedition) @@ -165062,16 +165477,6 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled, /area/horizon/operations/mining_main/refinery) -"xnx" = ( -/obj/machinery/portable_atmospherics/canister/empty/air, -/turf/simulated/floor/plating, -/area/horizon/engineering/reactor/indra/office) -"xnE" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 6 - }, -/turf/simulated/floor/tiled/dark, -/area/horizon/engineering/aft_airlock) "xnL" = ( /obj/machinery/light/small/emergency{ dir = 8 @@ -165283,6 +165688,21 @@ /obj/machinery/meter, /turf/simulated/floor/tiled, /area/horizon/security/brig) +"xpa" = ( +/obj/item/circuitboard/smes, +/obj/item/circuitboard/smes, +/obj/item/smes_coil, +/obj/item/smes_coil, +/obj/item/smes_coil/super_capacity, +/obj/item/smes_coil/super_capacity, +/obj/item/smes_coil/super_io, +/obj/item/smes_coil/super_io, +/obj/effect/floor_decal/industrial/warning, +/obj/structure/closet/crate/elec{ + name = "SMES supplies crate" + }, +/turf/simulated/floor/plating, +/area/horizon/engineering/storage/lower) "xpf" = ( /obj/structure/table/stone/marble, /obj/machinery/door/firedoor{ @@ -165407,6 +165827,15 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/security/evidence_storage) +"xpZ" = ( +/obj/structure/cable/green{ + icon_state = "2-8" + }, +/obj/structure/bed/stool/chair/office/light{ + dir = 4 + }, +/turf/simulated/floor/tiled/full, +/area/horizon/engineering/reactor/indra/office) "xqc" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -166404,6 +166833,12 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/tiled/full, /area/horizon/maintenance/deck_2/wing/starboard/far) +"xxO" = ( +/obj/effect/floor_decal/spline/plain/black{ + dir = 5 + }, +/turf/simulated/floor/carpet/rubber, +/area/horizon/engineering/reactor/indra/monitoring) "xxS" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -166433,14 +166868,6 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/engineering/reactor/supermatter/waste) -"xyj" = ( -/obj/machinery/alarm/south, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/floor_decal/spline/plain, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "xyl" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -166677,6 +167104,14 @@ }, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_1/wing/starboard/far) +"xzE" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/full, +/area/horizon/hallway/primary/deck_2/central) "xzF" = ( /turf/simulated/wall, /area/horizon/maintenance/deck_1/main/port) @@ -166911,21 +167346,6 @@ /obj/effect/floor_decal/industrial/outline_door/yellow, /turf/simulated/floor/tiled, /area/horizon/hangar/intrepid) -"xBR" = ( -/obj/structure/sign/radiation{ - pixel_y = 32 - }, -/obj/machinery/alarm/west, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/closet/radiation, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/floor_decal/industrial/warning{ - dir = 9 - }, -/turf/simulated/floor/tiled/full, -/area/horizon/engineering/reactor/supermatter/airlock) "xBV" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -167009,13 +167429,6 @@ }, /turf/unsimulated/floor, /area/centcom/legion/hangar5) -"xCw" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/engineer_maintenance/pipe/wall, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "xCC" = ( /obj/structure/lattice, /turf/space/dynamic, @@ -167605,16 +168018,6 @@ /obj/item/hullbeacon/red, /turf/simulated/floor/reinforced/airless, /area/horizon/exterior) -"xGY" = ( -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/obj/effect/floor_decal/corner/yellow/full{ - dir = 4 - }, -/obj/machinery/newscaster/south, -/turf/simulated/floor/tiled, -/area/horizon/engineering/storage_eva) "xHg" = ( /obj/structure/cable/green{ icon_state = "1-2" @@ -167726,6 +168129,17 @@ }, /turf/simulated/floor/tiled/full, /area/horizon/hallway/primary/deck_2/central) +"xHJ" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 6 + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc/west, +/turf/simulated/floor, +/area/horizon/maintenance/deck_3/aft/port/far) "xHO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -167952,6 +168366,22 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/unsimulated/floor, /area/antag/mercenary) +"xIV" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/obj/effect/floor_decal/corner/dark_blue/full{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/dark/cooled, +/area/horizon/ai/upload) "xIY" = ( /obj/structure/bed/stool/chair/office/light{ dir = 8 @@ -168062,24 +168492,6 @@ }, /turf/unsimulated/floor, /area/antag/raider) -"xJD" = ( -/obj/machinery/camera/network/command{ - c_tag = "AI Core - Foyer"; - dir = 4 - }, -/obj/machinery/power/apc/critical/south, -/obj/structure/cable/green{ - icon_state = "0-4" - }, -/obj/machinery/turretid/stun{ - check_synth = 1; - name = "\improper AI Chamber Turret Control Console"; - pixel_y = 1; - pixel_x = -31; - dir = 4 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/ai/upload) "xJF" = ( /obj/structure/railing/mapped, /obj/structure/lattice/catwalk/indoor/grate/dark, @@ -168164,6 +168576,14 @@ "xKr" = ( /turf/simulated/lava, /area/antag/ninja) +"xKs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard) "xKv" = ( /obj/effect/floor_decal/corner/paleblue{ dir = 1 @@ -168676,6 +169096,15 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/command/bridge/controlroom) +"xND" = ( +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/structure/sign/radiation{ + pixel_y = 32 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "xNF" = ( /obj/machinery/atmospherics/pipe/manifold/visible/yellow{ dir = 4 @@ -169080,9 +169509,6 @@ }, /turf/simulated/floor/tiled/full, /area/horizon/hallway/primary/deck_2/starboard) -"xRT" = ( -/turf/simulated/wall, -/area/horizon/engineering/shields) "xRV" = ( /obj/effect/floor_decal/corner/mauve{ dir = 9 @@ -169129,6 +169555,13 @@ }, /turf/simulated/floor/tiled/full, /area/horizon/service/hydroponics/garden) +"xSl" = ( +/obj/machinery/computer/fusion/core_control/terminal{ + initial_id_tag = "horizon_fusion" + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/monitoring) "xSt" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -169579,6 +170012,13 @@ /obj/machinery/atmospherics/pipe/simple/visible/green, /turf/simulated/floor/plating, /area/horizon/engineering/reactor/supermatter/mainchamber) +"xVO" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 5 + }, +/obj/item/hullbeacon/red, +/turf/simulated/floor/reinforced/airless, +/area/horizon/exterior) "xVV" = ( /obj/effect/floor_decal/corner/dark_blue{ dir = 8 @@ -169635,6 +170075,18 @@ }, /turf/simulated/floor/plating, /area/horizon/hangar/intrepid) +"xWz" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/floor_decal/corner/yellow{ + dir = 6 + }, +/obj/structure/sign/radiation{ + pixel_x = 32 + }, +/turf/simulated/floor/tiled, +/area/horizon/engineering/reactor/indra/office) "xWO" = ( /obj/effect/floor_decal/corner/dark_green{ dir = 9 @@ -169725,6 +170177,20 @@ /obj/structure/table/steel, /turf/simulated/floor/tiled/dark, /area/horizon/maintenance/deck_2/wing/port) +"xXm" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 10 + }, +/obj/machinery/atmospherics/unary/outlet_injector{ + frequency = 1441; + id = "fusion_injector_air"; + injecting = 1; + use_power = 1; + dir = 8 + }, +/obj/effect/floor_decal/industrial/outline/red, +/turf/simulated/floor/reinforced/airless, +/area/horizon/engineering/reactor/indra/mainchamber) "xXn" = ( /obj/effect/floor_decal/spline/plain/cee, /obj/structure/flora/ausbushes/lavendergrass, @@ -170093,15 +170559,6 @@ /obj/random/loot, /turf/simulated/floor/plating, /area/horizon/maintenance/deck_2/wing/port) -"xZT" = ( -/obj/structure/bed/stool/chair/office/dark{ - dir = 1 - }, -/obj/effect/floor_decal/spline/plain{ - dir = 1 - }, -/turf/simulated/floor/carpet/rubber, -/area/horizon/engineering/reactor/indra/monitoring) "xZU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -170614,15 +171071,6 @@ }, /turf/simulated/floor/tiled/white, /area/centcom/shared_dream) -"ydK" = ( -/obj/effect/floor_decal/industrial/warning, -/obj/structure/railing/mapped, -/obj/machinery/atmospherics/portables_connector{ - dir = 1 - }, -/obj/effect/floor_decal/industrial/outline/yellow, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "ydL" = ( /obj/effect/map_effect/window_spawner/full/shuttle/scc{ spawn_firedoor = 1; @@ -170772,24 +171220,6 @@ }, /turf/simulated/floor, /area/horizon/maintenance/substation/command) -"yeu" = ( -/obj/structure/cable/green{ - icon_state = "2-8" - }, -/turf/simulated/floor/tiled/full, -/area/horizon/engineering/reactor/indra/office) -"yev" = ( -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/structure/sign/radiation{ - pixel_y = 32 - }, -/obj/machinery/light/spot{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark/full, -/area/horizon/engineering/reactor/indra/mainchamber) "yew" = ( /obj/machinery/sleeper, /obj/machinery/camera/network/medbay{ @@ -170988,6 +171418,13 @@ }, /turf/simulated/floor/lino, /area/horizon/service/cafeteria) +"yfg" = ( +/obj/structure/lattice/catwalk/indoor/grate/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/horizon/maintenance/deck_2/wing/starboard/far) "yfk" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/carpet/rubber, @@ -171221,6 +171658,13 @@ icon_state = "dark_preview" }, /area/centcom/control) +"ygw" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/mainchamber) "ygz" = ( /obj/item/flame/lighter/zippo/gold{ pixel_x = -3; @@ -171730,6 +172174,25 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/medical/ward/isolation) +"yko" = ( +/obj/item/smes_coil/super_io, +/obj/item/smes_coil/super_io, +/obj/item/smes_coil/super_capacity, +/obj/item/smes_coil/super_capacity, +/obj/item/smes_coil, +/obj/item/smes_coil, +/obj/item/circuitboard/smes, +/obj/item/circuitboard/smes, +/obj/structure/closet/crate/elec{ + name = "SMES supplies crate" + }, +/obj/machinery/light, +/obj/machinery/camera/network/reactor{ + c_tag = "Engineering - INDRA SMES Room 1"; + dir = 1 + }, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/engineering/reactor/indra/smes) "ykp" = ( /obj/machinery/light, /turf/unsimulated/floor{ @@ -193913,7 +194376,7 @@ scN aoJ hLA hFg -rHt +avA uvv rHt egt @@ -194170,7 +194633,7 @@ mHc iZD mUl hFg -fCI +vQt egt egt egt @@ -194416,7 +194879,7 @@ mOM byv fch aYN -njV +scN dfe bOB cBN @@ -194427,7 +194890,7 @@ rCL aoJ lnz xZm -egt +mvn coA coA coA @@ -194684,7 +195147,7 @@ ydf fkx qmT uCE -vlo +ghD coA iDt rsg @@ -194941,7 +195404,7 @@ fSm wWg oBr xZm -tlM +iRd coA snZ tnT @@ -195198,7 +195661,7 @@ mHc qXH bFW hFg -jnQ +diR coA nfv xDw @@ -195455,7 +195918,7 @@ scN wWg ycV hFg -xer +gyb coA coA xqy @@ -195712,7 +196175,7 @@ bKf wWg oBr xZm -klD +fGf rXC hRJ bYO @@ -196240,7 +196703,7 @@ tEd uOT uOT tJW -odv +hNI hWT hWT jgx @@ -198011,7 +198474,7 @@ wEQ jbi tJJ tJJ -vEc +xpa vYR epp jse @@ -198530,7 +198993,7 @@ dHN mMB juh qBu -juw +noi nzx nIK hnE @@ -200092,7 +200555,7 @@ hoK hoK gRK gRK -scu +iRI gRK wZA vhH @@ -208069,7 +208532,7 @@ hTy aoG vTq eFB -mbl +rch ori jfA rvG @@ -252262,7 +252725,7 @@ okw vha fmx sGu -hii +pVa srI fjk ncE @@ -252519,7 +252982,7 @@ okw peq lFZ okw -kWK +mCO srI fjk iPx @@ -252776,8 +253239,8 @@ okw oxM xrs okw -xmI -mwi +baX +uUa rGA srI srI @@ -253034,7 +253497,7 @@ eOt okw okw fjk -udd +dGd fjk fjk udd @@ -253291,7 +253754,7 @@ jNB ghY kHs srI -srI +tmH ixJ ixJ srI @@ -253548,7 +254011,7 @@ jNB wEm fJX srI -ezg +sPG loS rWx ffJ @@ -253801,11 +254264,11 @@ lRA lkX fJX aYB -jNB -jNB -inB -srI -cNA +hjn +eIi +vCy +yfg +dYs rSV oSN cNA @@ -254058,7 +254521,7 @@ xnV vjc fJX kCO -jNB +pkL gHT fJX srI @@ -254315,7 +254778,7 @@ mHE fJX fJX jNB -jNB +pkL xsL fJX fjk @@ -254572,7 +255035,7 @@ lkX fJX wYS jxg -gON +oEp wEm fJX srI @@ -254829,7 +255292,7 @@ njK fJX yhD jxg -jNB +pkL jNB min waX @@ -255086,7 +255549,7 @@ fJX fJX tNX jxg -jNB +pkL jNB fJX srI @@ -255343,7 +255806,7 @@ kaE deU pEd jxg -jNB +pkL jNB fJX qLq @@ -255600,7 +256063,7 @@ lGL qYa pEd jxg -iDn +fqg jNB fJX gmn @@ -255857,8 +256320,8 @@ qrB esh pEd jxg -iDn -jNB +xKs +ntd fJX srI mYt @@ -260232,7 +260695,7 @@ osJ qTK xJs iEp -vcm +wxw fCw jUG fCw @@ -261755,7 +262218,7 @@ poM poM lto xFP -eAb +aYV vFR vUV ybT @@ -262249,7 +262712,7 @@ eVT eVT dqC wpL -hsj +kjN cdp gjV gjV @@ -263291,7 +263754,7 @@ cWx uIh fSw xZQ -xBR +lpL mxA gKL xZQ @@ -266130,7 +266593,7 @@ sFO jxT ede gIA -xGY +aFB tcG wVZ oPY @@ -266646,7 +267109,7 @@ ebm bxz gqq pIx -uqm +elE aOw gYT xlm @@ -267131,7 +267594,7 @@ eVT eVT xel ckp -dqC +jUA bVK bsx tRS @@ -267938,7 +268401,7 @@ rrG bnP esg rrG -lJZ +pVJ adI vlW hCf @@ -268447,7 +268910,7 @@ ddc tCa jDJ lQY -fJT +hmP stI jHa jHa @@ -271279,17 +271742,17 @@ wKJ aQv kBx ucf -git -rkb -tuQ -tuQ -tuQ -tuQ -tuQ -tuQ -tuQ -rkb -oSl +nwb +ebX +nOj +nOj +nOj +nOj +nOj +nOj +nOj +ebX +hOg mQb vGI pfa @@ -271536,7 +271999,7 @@ frH gQf mlB uDY -abz +uIr rZN snv snv @@ -271793,7 +272256,7 @@ xYh rsN pdR oax -hjw +crA gst ufZ kBh @@ -272050,7 +272513,7 @@ snv fkE oUY dvo -jdL +glp jrj jhy vpB @@ -272272,12 +272735,12 @@ eSV eSV dxi dxi -xnx -dOz +gMf +nqT bjx isZ -iiS -wHC +tXQ +dXd gmq tHh deu @@ -272307,7 +272770,7 @@ dXW dXW nqF fOI -jdL +glp jrj fru teh @@ -272564,7 +273027,7 @@ oFD sJn rTg vsP -jdL +glp jrj uXG lft @@ -272796,7 +273259,7 @@ iDH ohs eus sEs -bTq +oMF deu pNO ezx @@ -272821,7 +273284,7 @@ vxO lVC rTg vsP -jdL +glp gst dFW sVT @@ -272832,7 +273295,7 @@ iEK guh dvo sOs -qaF +qKQ qZz qZz qZz @@ -273042,18 +273505,18 @@ eSV eSV eSV dxi -gAG +feV tCq tCq -cLl -yeu -wFv -wGN +tYu +xpZ +cdH +nyd yeY -eVK -xgw -rqx -jYP +xmD +boZ +wWK +gJL deu dmZ ddm @@ -273078,7 +273541,7 @@ wck ddE rTg vsP -kaK +ovn jrj cXG lft @@ -273088,7 +273551,7 @@ dBz jWS hTg fNg -odf +vje edn xHI uWA @@ -273296,25 +273759,25 @@ eSV eSV eSV eSV -eSV +wdK eSV dxi -sUV -tCq -tCq -aEh -aFc -cLl -mex +dPK +sbK +mWB +wLT +sNs +xWz +wkZ iDH -bpX -qoz -lld -rZs -vkw -jFV -uxg -aDr +gfz +nPF +vxq +bzP +bmq +pbg +sdu +thB uVH uVH uVH @@ -273335,7 +273798,7 @@ fWh vIE nqF kpl -jdL +glp jrj aJs qaG @@ -273345,7 +273808,7 @@ kBK nir hTg fNg -ovn +kaK agC icP icP @@ -273552,27 +274015,27 @@ eSV eSV eSV eSV -eSV -eSV -eSV +dST +dST +dST dxi -sUV -tCq -vwy -jKH -itu -mDn -sSd -iDH -fCJ -shh -xnE -bzP -bmq -emu -vXy -fDq -lCY +dxi +dxi +dxi +dxi +dxi +dxi +dxi +dxi +tsJ +tsJ +tsJ +tsJ +deu +kYM +grg +bPF +uVs fiX lar uVH @@ -273592,7 +274055,7 @@ nRI hbe tjO rzh -fYR +gJr jrj mlB uan @@ -273602,7 +274065,7 @@ hIS rRV mlB fNg -ovn +kaK gst glY qIo @@ -273808,33 +274271,33 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV -dxi -gmq -gmq -gmq -gmq -gmq -gmq -gmq -gmq -deu -deu -deu -deu +dST +dST +sPz +sPz +sPz +sPz +sPz +sPz +sPz +sPz +sPz +sPz +sPz +sPz +sPz vkw -pQf -shr -czG -wOf +vkw +vkw +mIp +tAb +jyO +oAm vkw uLJ +gxe gcb -gxe -gxe +kUZ fHU fDY wUj @@ -273849,7 +274312,7 @@ eLM xoG nqF oRL -ktd +jGv upa eaw eaw @@ -273859,7 +274322,7 @@ eaw eaw eaw iKu -uFB +eri gst glY aVS @@ -274065,28 +274528,28 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV dST sPz sPz eTI -roi -rkp +jji +oaS evT qpX -idO +evT +lxn +evT ekk rHM -exP +nuu hNL vkw yfO -deX -uMu -hmK +mvc +xaE +aOj +rBJ +yko vkw opI ylV @@ -274106,17 +274569,17 @@ vQS uih oxs iZV -mDC -lTD -bCW -iVl -bCW -bCW -iVl -hgg -uPJ -uOm -pgr +wwk +xzE +jAG +idD +jAG +jAG +sEl +mKB +sqz +tTv +vKD muw ukN ldf @@ -274321,20 +274784,18 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV dST dST sPz sPz -wJv +cjY pRA sVs pGf aKG vds +vds +vds gcv bfS rfx @@ -274342,8 +274803,10 @@ czv tiK cHC gbr -sBr -hmK +kGf +rBJ +rBJ +llm vkw jOO mjY @@ -274578,32 +275041,32 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV dST sPz sPz -lHA +tno iYR aol ebG aol lhg edk +edk +edk qyo wCp rxU mQG vkw -nKN +fzg bTV -dGU -fHT +qrb +cOO +msd +hmK vkw jOO -mfr +ino vwP ycF cXf @@ -274834,33 +275297,33 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV -eSV +oif dST sPz -lPX +flZ igI cIJ iOC xEs iOC -gYW -igI -bIE -dyE +fQJ +ygw +lWk +dwz +dNt +gqX bio -fsE +bfm ovm ovm ovm jdX ovm ovm -jOO -ino +tAI +tAI +nmJ +pRp vwP cRG ewd @@ -275092,32 +275555,32 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV dST sPz eDS sPz -sKV -sKV -arO -qOr -nrr +pst +pst +lPE +eSQ +mXF sPz -qNi -dyE +dfM +iYR +igI +fpm vqr -pjb -ovm -aYU -nGj -dZZ -eMh +miN +glL +giw +cxF +gqs +etx ovm +qzX +dqW fDg -kPt +rTp vwP vAw pBk @@ -275127,7 +275590,7 @@ aKb dRL gho cFp -bda +rvO daI tBr eAO @@ -275349,10 +275812,6 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV dST sPz krr @@ -275361,18 +275820,22 @@ hIc shy qTh shy -ueJ -sSN -iha -ydK +xXm +vAl +vUz +dyE +iRU +iRU bio -wxr -udR -mDb -nLD -rYE -qVC +sSG +mGW +ghv +tZw +aRg +hoq ovm +vWn +igE jOO gPX tyb @@ -275606,10 +276069,6 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV hbF pDx hKo @@ -275619,17 +276078,21 @@ cVs cXS iGl koM -ocF +vAl gYW cIJ +tBh +tBh gdX cgY -udR -gMG -xZT -uDE -xyj +mGW +jcW +btm +adW +sPO ovm +wYA +igE jOO dYY dYY @@ -275863,10 +276326,6 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV ePH vKX ngj @@ -275876,17 +276335,21 @@ koM urO tXi qdS -pYg -hNB -miB -dRG -xiG -udR -pbq -kdV -uuu -ihy +vAl +pJH +ojc +sPa +mIk +vqr +vUz +mGW +xSl +hdq +hDy +tqw ovm +cOK +dqW jOO dYY oOR @@ -276120,10 +276583,6 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV eAB gtz iWk @@ -276133,17 +276592,21 @@ hnm qTh nPb koM -ocF +vAl cgY cbA +qEE +tBh ojo gYW -udR -pgv -xZT -btM -fFB +mGW +fxN +hdq +pAW +sqk ovm +fOt +fJe jOO dYY pUg @@ -276377,10 +276840,6 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV dST sPz krr @@ -276389,18 +276848,22 @@ cui lgD cXS lgD -jxD -sSN -iha -gqX -bha +qeW +vAl +vUz +dyE +kXR +dSi +rlM mbt -udR -paw -ofi -alB -qVC +ayM +wyE +xxO +ffn +bqw ovm +tAI +tAI ubG cIN xxi @@ -276634,30 +277097,30 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV dST sPz eDS sPz -sKV -sKV -arO -qOr -nrr +pst +pst +lPE +eSQ +iQJ sPz -xCw -dyE +ulc +vcJ +pRA +ioh bha -kBp -ovm -wSL -pHz -mNk -cDd +dJC +glL +oWo +oUm +dOx +qJs ovm +gLd +tAI yak dYY jFU @@ -276890,29 +277353,29 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV -eSV +oif dST sPz -yev +xND pRA cbA qjQ uxx qjQ -cgY -pRA -ulz -dyE +wPK +wbc +jbR +dwz +dNt +gqX bha -ddl +mdB ovm ovm ovm qqW +ovm +ovm afY afY afY @@ -277148,20 +277611,18 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV dST sPz sPz -cJR +mHP vcJ cgu qsd cgu wXb jsu +jsu +jsu pWa uPg aCD @@ -277170,6 +277631,8 @@ ovm anu dIQ hDp +ovm +mDs afY hoc xRV @@ -277405,20 +277868,18 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV dST dST sPz sPz -sxZ +reB igI xzd jda eoT vds +vds +vds gNN iqb oqU @@ -277427,6 +277888,8 @@ gOp lKR lKk pOt +ovm +mDs wSq fqw tlo @@ -277663,27 +278126,27 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV -dST dST sPz +sPz iaF -gfB -umg +jji +bZY yeW yeW yeW yeW -ttJ -ckq +yeW +aeo +lNo +cEh okB ovm vMr myF vew +ovm +mDs afY qRL deZ @@ -277920,12 +278383,10 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV -eSV dST +dST +sPz +sPz sPz sPz sPz @@ -277933,10 +278394,12 @@ sPz aWj aWj gNR -aWj sPz -eDz +jHk +sPz cvG +sPz +sPz ejO ejO ejO @@ -278178,22 +278641,22 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV +dST +dST dST dST dST dST sPz -gyN dLV -lsG +dLV aVz sPz -kiG -pLa +mcv +auh +kLR +sPz +rWV ejO fYm bvv @@ -278437,20 +278900,20 @@ eSV eSV eSV eSV -eSV -eSV -eSV +sze eSV eSV dST sPz -kJO -mxt -lsG -lOm +ujb +lbW +lED sPz -tvG -grq +nFv +bHB +mCQ +sPz +rWV ejO wUi lqD @@ -278697,8 +279160,6 @@ eSV eSV eSV eSV -eSV -eSV dST sPz sPz @@ -278708,6 +279169,8 @@ sPz sPz sPz sPz +sPz +rWV ejO xmB tuz @@ -278954,8 +279417,8 @@ eSV eSV eSV eSV -eSV -eSV +dST +dST dST dST dST @@ -332686,7 +333149,7 @@ lWW aQx pCv exe -wAL +kwB fLk gqA vvr @@ -335510,7 +335973,7 @@ wTc lly ijw cyl -xRT +jGE fmD nMj lvO @@ -335763,14 +336226,14 @@ nGb nGb bcN jQk -xRT +jGE xHv -xRT -xRT -xRT -kKc +jGE +jGE +jGE +bMq uSB -kKc +bMq hlT dUz lSW @@ -337048,7 +337511,7 @@ qfo qfo rVj pXI -mSF +kxc fdS xIk fwN @@ -339088,10 +339551,10 @@ eSV eSV eSV eSV -eSV -eSV -eSV -rVj +krb +dbd +dbd +gFJ cKu cKu jkB @@ -339344,11 +339807,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV -rVj +iJX +gFJ +cKu +cKu +cKu cKu cKu jkB @@ -339601,13 +340064,13 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj cKu cKu +cKu +cKu +cKu +cKu tml cKu cKu @@ -339857,14 +340320,14 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV iJX gFJ cKu cKu +cKu +cKu +cKu +cKu jkB cKu rWq @@ -340114,11 +340577,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ xLZ xLZ @@ -340141,7 +340604,7 @@ brM wNN wNN nAO -xkn +xHJ gPO hUv wkl @@ -340371,11 +340834,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu gkW qWk qWk @@ -340398,7 +340861,7 @@ jhc sHc fUQ vFr -ffd +kwZ fzC hUv hIb @@ -340628,11 +341091,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ qWk qGv @@ -340885,19 +341348,19 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ qWk qGv tOi wQG lLC -tuf -xJD +bOg +fKE qGv rSA grv @@ -341142,19 +341605,19 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ qWk qGv wfY sqc izC -grA -oOU +xIV +ksb kmC fLv kGR @@ -341399,19 +341862,19 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ qWk qGv tOi fUk lHy -rRD -lUB +syX +laM qGv rAr uRi @@ -341656,11 +342119,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ qWk qGv @@ -341913,11 +342376,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ miS uyp @@ -342170,11 +342633,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ miS uyp @@ -342427,11 +342890,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ miS uyp @@ -342684,11 +343147,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV rVj +cKu +cKu +cKu +cKu xLZ miS uyp @@ -342941,12 +343404,12 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV sIA -gNr +ryE +cKu +cKu +cKu +xLZ miS uyp uyp @@ -343199,11 +343662,11 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV -mKl +rVj +cKu +cKu +cKu +xLZ miS miS miS @@ -343456,12 +343919,12 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV -eSV -gzw +sIA +ryE +cKu +cKu +xLZ +xLZ xLZ xLZ xLZ @@ -343714,16 +344177,16 @@ eSV eSV eSV eSV -eSV -eSV -eSV -eSV -sIA +xVO +hCm +hCm hCm hCm ryE cKu cKu +cKu +xLZ xLZ eAC wmT @@ -343976,11 +344439,11 @@ eSV eSV eSV eSV -eSV -eSV rVj cKu cKu +cKu +cKu xLZ xLZ xLZ @@ -344233,8 +344696,6 @@ eSV eSV eSV eSV -eSV -eSV rVj cKu cKu @@ -344242,6 +344703,8 @@ cKu cKu cKu cKu +cKu +cKu xLZ xut xut @@ -344490,14 +344953,14 @@ eSV eSV eSV eSV -eSV -eSV sIA hCm hCm hCm hCm hCm +hCm +hCm ryE xLZ xLZ diff --git a/maps/sccv_horizon/submaps/ops_warehouse_small_storage.dmm b/maps/sccv_horizon/submaps/ops_warehouse_small_storage.dmm index 13f47ec77f0..c233b4ea927 100644 --- a/maps/sccv_horizon/submaps/ops_warehouse_small_storage.dmm +++ b/maps/sccv_horizon/submaps/ops_warehouse_small_storage.dmm @@ -80,6 +80,10 @@ /obj/item/stack/cable_coil, /turf/template_noop, /area/template_noop) +"bv" = ( +/obj/structure/cart/storage/janitorialcart, +/turf/template_noop, +/area/template_noop) "bw" = ( /obj/structure/table/rack/no_cargo, /obj/item/rfd/piping, @@ -295,10 +299,6 @@ /obj/random/booze, /turf/template_noop, /area/template_noop) -"hs" = ( -/obj/structure/cart/storage/janitorialcart, -/turf/template_noop, -/area/template_noop) "ht" = ( /obj/structure/table/rack/no_cargo, /obj/machinery/chemical_dispenser/coffee/full, @@ -954,6 +954,10 @@ /obj/random/coin, /turf/template_noop, /area/template_noop) +"vG" = ( +/obj/structure/cart/storage/janitorialcart/full, +/turf/template_noop, +/area/template_noop) "wa" = ( /obj/effect/map_effect/marker/mapmanip/submap/extract/sccv_horizon/ops_warehouse_small_storage, /obj/structure/closet/emcloset, @@ -1119,10 +1123,6 @@ /obj/random/dirt_75, /turf/template_noop, /area/template_noop) -"AK" = ( -/obj/machinery/portable_atmospherics/canister/hydrogen/deuterium, -/turf/template_noop, -/area/template_noop) "AW" = ( /obj/machinery/portable_atmospherics/hydroponics, /obj/random/dirt_75, @@ -1196,10 +1196,6 @@ }, /turf/template_noop, /area/template_noop) -"Dl" = ( -/obj/machinery/portable_atmospherics/canister/boron, -/turf/template_noop, -/area/template_noop) "Dv" = ( /obj/machinery/computer/arcade/orion_trail, /turf/template_noop, @@ -1475,6 +1471,10 @@ /obj/random/loot, /turf/template_noop, /area/template_noop) +"LX" = ( +/obj/machinery/portable_atmospherics/canister/deuterium, +/turf/template_noop, +/area/template_noop) "LZ" = ( /obj/effect/map_effect/marker_helper/mapmanip/submap/edge{ dir = 4 @@ -1486,6 +1486,10 @@ /obj/effect/decal/cleanable/greenglow, /turf/template_noop, /area/template_noop) +"Ms" = ( +/obj/machinery/portable_atmospherics/canister/heliumfuel, +/turf/template_noop, +/area/template_noop) "MH" = ( /obj/random/junk, /obj/random/maintenance_junk_or_loot, @@ -1528,10 +1532,6 @@ /obj/random/dirt_75, /turf/template_noop, /area/template_noop) -"NJ" = ( -/obj/structure/cart/storage/janitorialcart/full, -/turf/template_noop, -/area/template_noop) "NR" = ( /obj/effect/map_effect/marker/mapmanip/submap/extract/sccv_horizon/ops_warehouse_small_storage, /obj/random/dirt_75, @@ -3597,7 +3597,7 @@ Gz Gz Gz Gz -hs +bv Gz Gz Gz @@ -3643,7 +3643,7 @@ zw Gz Gz Gz -NJ +vG nn Gz Gz @@ -4158,7 +4158,7 @@ Gz Gz Gz sW -AK +LX Gz Gz Gz @@ -4191,7 +4191,7 @@ nC nC nn sW -Dl +Ms Gz Gz Gz diff --git a/tgui/packages/tgui/interfaces/Apc.tsx b/tgui/packages/tgui/interfaces/Apc.tsx index b374ebbfc88..e285ad28705 100644 --- a/tgui/packages/tgui/interfaces/Apc.tsx +++ b/tgui/packages/tgui/interfaces/Apc.tsx @@ -10,8 +10,8 @@ export type APCData = { fail_time: number; silicon_user: BooleanLike; is_AI_or_robot: BooleanLike; - total_load: number; - total_charging: number; + total_load: string; + total_charging: string; is_operating: BooleanLike; external_power: number; charge_mode: BooleanLike; @@ -26,7 +26,7 @@ export type APCData = { type PowerChannel = { name: string; - power_load: number; + power_load: string; status: number; }; @@ -169,7 +169,7 @@ export const APCWindow = (props, context) => { [{channelStatus(channel.status)}] | [ - {channelPower(channel.status)}] | {channel.power_load} W + {channelPower(channel.status)}] | {channel.power_load} {(!data.locked && !data.silicon_user) || data.is_AI_or_robot ? (

    @@ -200,9 +200,9 @@ export const APCWindow = (props, context) => { ))} - {data.total_load}W + {data.total_load} {data.total_charging - ? ` (+ ${data.total_charging}W Charging)` + ? ` (+ ${data.total_charging} Charging)` : null} diff --git a/tgui/packages/tgui/interfaces/FusionCodex.tsx b/tgui/packages/tgui/interfaces/FusionCodex.tsx new file mode 100644 index 00000000000..b6a3765410a --- /dev/null +++ b/tgui/packages/tgui/interfaces/FusionCodex.tsx @@ -0,0 +1,137 @@ +import { useBackend, useLocalState } from '../backend'; +import { Box, Flex, Input, LabeledList, Section } from '../components'; +import { NtosWindow } from '../layouts'; + +export type CodexData = { + reactions: Reaction[]; +}; + +type Reaction = { + name: string; + reactants: Reactant[]; + products: Product[]; + minimum_temp: number; + energy_consumption: number; + energy_production: number; + radiation: number; + instability: number; +}; + +type Reactant = { + name: string; + amount: number; +}; + +type Product = { + name: string; + amount: number; +}; + +export const FusionCodex = (props, context) => { + const { act, data } = useBackend(context); + const [searchTerm, setSearchTerm] = useLocalState( + context, + `searchTerm`, + `` + ); + + return ( + + +
    { + setSearchTerm(value); + }} + value={searchTerm} + /> + }> + +
    + {data.reactions + .filter( + (reaction) => + reaction.name + .toLowerCase() + .indexOf(searchTerm.toLowerCase()) > -1 + ) + .map((reaction) => ( +
    + + + +
    + + {reaction.reactants.map((Reactant) => ( + + {Reactant.amount ? Reactant.amount : 'None'} + + ))} + +
    +
    + +
    + + {reaction.products.map((Product) => ( + + {Product.amount} + + ))} + +
    +
    +
    +
    + + + {reaction.minimum_temp} K + + + + {reaction.energy_production} {' / '} + {reaction.energy_consumption} + + + + {reaction.radiation ? reaction.radiation : 'None'} + + + + {reaction.instability + ? reaction.instability + : 'None'} + + + +
    +
    +
    + ))} +
    +
    +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/FusionCoreControl.tsx b/tgui/packages/tgui/interfaces/FusionCoreControl.tsx index 838a82b25bf..00bef325631 100644 --- a/tgui/packages/tgui/interfaces/FusionCoreControl.tsx +++ b/tgui/packages/tgui/interfaces/FusionCoreControl.tsx @@ -2,7 +2,7 @@ import { round } from '../../common/math'; import { BooleanLike } from '../../common/react'; import { capitalize } from '../../common/string'; import { useBackend, useSharedState } from '../backend'; -import { Box, Button, Dimmer, Divider, LabeledList, NoticeBox, NumberInput, ProgressBar, Section } from '../components'; +import { Box, Button, Dimmer, Divider, Flex, LabeledList, NoticeBox, NumberInput, ProgressBar, Section } from '../components'; import { Window } from '../layouts'; export type FusionCoreData = { @@ -14,12 +14,18 @@ type Core = { id: number; ref: string; field: BooleanLike; - field_strength: number; // backend only, user facing value is power + field_strength: number; + field_strength_max: number; + entropy_multiplier: number; + instability_multiplier: number; + power_multiplier: number; power: number; size: number; instability: number; temperature: number; - power_status: string; + power_available: string; + power_usage: string; + power_generated: string; shutdown_safe: BooleanLike; reactants: Reactant[]; }; @@ -36,9 +42,8 @@ export const FusionCoreControl = (props, context) => { 'override', false ); - return ( - + {data.cores && data.cores.length ? ( data.cores.map((core) => ( @@ -82,78 +87,108 @@ export const FusionCoreControl = (props, context) => { ) : ( '' )} - - Field status:{' '} - - {core.field ? 'Online' : 'Offline'}. - - + + + + + {core.power_available} + + + + + + + {core.power_usage} + + + + + + + {core.power_generated} + + + + - - - {core.power_status} W - - - - act('strength', { - strength: value, - machine: core.ref, - }) - } - /> - - - {core.size}{' '} - {core.size > 1 || core.size < 1 ? 'meters' : 'meter'} - - - {core.instability < 0 ? ( - - Core offline. + + + + + Field status:{' '} + + {core.field ? 'Online' : 'Offline'}. + - ) : ( - - )} - - - {core.temperature < 0 ? ( - - Core offline. - - ) : ( - round(core.temperature, 0.1) + ' kelvin' - )} - - -
    - {core.reactants && core.reactants.length ? ( - core.reactants.map((reactant) => ( -
    - - {capitalize(reactant.name)} ( - {round(reactant.amount, 0.1)} cubic units) - -
    - )) - ) : ( - No reactants detected. - )} -
    + + + + + act('strength', { + strength: value, + machine: core.ref, + }) + } + /> + + + {core.size}{' '} + {core.size > 1 || core.size < 1 ? 'meters' : 'meter'} + + + {core.instability < 0 ? ( + + Core offline. + + ) : ( + + )} + + + {core.temperature < 0 ? ( + + Core offline. + + ) : ( + round(core.temperature, 0.1) + ' kelvin' + )} + + + + + + + Reactants + {core.reactants && core.reactants.length ? ( + core.reactants.map((reactant) => ( +
    + + {capitalize(reactant.name)} ( + {round(reactant.amount, 0.1)}) + +
    + )) + ) : ( + No reactants detected. + )} +
    +
    +
    )) ) : ( diff --git a/tgui/packages/tgui/interfaces/FusionGyrotronControl.tsx b/tgui/packages/tgui/interfaces/FusionGyrotronControl.tsx index d894e495da7..8c41be48e9e 100644 --- a/tgui/packages/tgui/interfaces/FusionGyrotronControl.tsx +++ b/tgui/packages/tgui/interfaces/FusionGyrotronControl.tsx @@ -15,13 +15,14 @@ type Gyrotron = { active: BooleanLike; firedelay: number; energy: number; + power_status: string; }; export const FusionGyrotronControl = (props, context) => { const { act, data } = useBackend(context); return ( - + {data.gyrotrons && data.gyrotrons.length ? ( data.gyrotrons.map((gyrotron) => ( @@ -37,15 +38,14 @@ export const FusionGyrotronControl = (props, context) => { /> }> - Power consumption per shot:{' '} - {gyrotron.energy * data.gyro_power_constant} watts. + Power consumption per shot: {gyrotron.power_status} diff --git a/tgui/packages/tgui/interfaces/FusionInjectorControl.tsx b/tgui/packages/tgui/interfaces/FusionInjectorControl.tsx index d040395c55d..05537b059f1 100644 --- a/tgui/packages/tgui/interfaces/FusionInjectorControl.tsx +++ b/tgui/packages/tgui/interfaces/FusionInjectorControl.tsx @@ -23,7 +23,7 @@ export const FusionInjectorControl = (props, context) => { const { act, data } = useBackend(context); return ( - + {data.injectors && data.injectors.length ? ( <> diff --git a/tgui/public/tgui.bundle.js b/tgui/public/tgui.bundle.js index 1d7d68e90d8..acab924822b 100644 --- a/tgui/public/tgui.bundle.js +++ b/tgui/public/tgui.bundle.js @@ -1 +1 @@ -!function(){var e={36997:function(e,t,n){"use strict";t.__esModule=!0,t.popperGenerator=h,t.createPopper=void 0;var o=p(n(65811)),r=p(n(62408)),a=p(n(39662)),i=p(n(95111)),c=(p(n(25462)),p(n(23967))),l=p(n(17850)),u=(p(n(23849)),p(n(6559)),p(n(91561)),p(n(13043))),d=p(n(63308));t.detectOverflow=d["default"];var s=n(1316);n(61797);function p(e){return e&&e.__esModule?e:{"default":e}}var m={placement:"bottom",modifiers:[],strategy:"absolute"};function f(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&(0,d.isHTMLElement)(e)?(0,c["default"])(e):e;if(!(0,d.isElement)(n))return[];return t.filter((function(e){return(0,d.isElement)(e)&&(0,m["default"])(e,n)&&"body"!==(0,f["default"])(e)}))}(e):[].concat(t),r=[].concat(o,[n]),a=r[0],l=r.reduce((function(t,n){var o=b(e,n);return t.top=(0,C.max)(o.top,t.top),t.right=(0,C.min)(o.right,t.right),t.bottom=(0,C.min)(o.bottom,t.bottom),t.left=(0,C.max)(o.left,t.left),t}),b(e,a));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l};var o=n(61797),r=g(n(68056)),a=g(n(52779)),i=g(n(39662)),c=g(n(95111)),l=g(n(67977)),u=g(n(25462)),d=n(1316),s=g(n(93529)),p=g(n(62576)),m=g(n(63171)),f=g(n(22999)),h=g(n(24955)),C=n(36083);function g(e){return e&&e.__esModule?e:{"default":e}}function b(e,t){return t===o.viewport?(0,h["default"])((0,r["default"])(e)):(0,d.isHTMLElement)(t)?function(e){var t=(0,s["default"])(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):(0,h["default"])((0,a["default"])((0,l["default"])(e)))}},65811:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t,n){void 0===n&&(n=!1);var d=(0,i.isHTMLElement)(t),s=(0,i.isHTMLElement)(t)&&function(e){var t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,o=t.height/e.offsetHeight||1;return 1!==n||1!==o}(t),p=(0,l["default"])(t),m=(0,o["default"])(e,s),f={scrollLeft:0,scrollTop:0},h={x:0,y:0};(d||!d&&!n)&&(("body"!==(0,a["default"])(t)||(0,u["default"])(p))&&(f=(0,r["default"])(t)),(0,i.isHTMLElement)(t)?((h=(0,o["default"])(t,!0)).x+=t.clientLeft,h.y+=t.clientTop):p&&(h.x=(0,c["default"])(p)));return{x:m.left+f.scrollLeft-h.x,y:m.top+f.scrollTop-h.y,width:m.width,height:m.height}};var o=d(n(93529)),r=d(n(62317)),a=d(n(22999)),i=n(1316),c=d(n(54418)),l=d(n(67977)),u=d(n(63383));function d(e){return e&&e.__esModule?e:{"default":e}}},25462:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return(0,r["default"])(e).getComputedStyle(e)};var o,r=(o=n(83808))&&o.__esModule?o:{"default":o}},67977:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return(((0,o.isElement)(e)?e.ownerDocument:e.document)||window.document).documentElement};var o=n(1316)},52779:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t,n=(0,o["default"])(e),l=(0,i["default"])(e),u=null==(t=e.ownerDocument)?void 0:t.body,d=(0,c.max)(n.scrollWidth,n.clientWidth,u?u.scrollWidth:0,u?u.clientWidth:0),s=(0,c.max)(n.scrollHeight,n.clientHeight,u?u.scrollHeight:0,u?u.clientHeight:0),p=-l.scrollLeft+(0,a["default"])(e),m=-l.scrollTop;"rtl"===(0,r["default"])(u||n).direction&&(p+=(0,c.max)(n.clientWidth,u?u.clientWidth:0)-d);return{width:d,height:s,x:p,y:m}};var o=l(n(67977)),r=l(n(25462)),a=l(n(54418)),i=l(n(43581)),c=n(36083);function l(e){return e&&e.__esModule?e:{"default":e}}},66860:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}},62408:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,r["default"])(e),n=e.offsetWidth,o=e.offsetHeight;Math.abs(t.width-n)<=1&&(n=t.width);Math.abs(t.height-o)<=1&&(o=t.height);return{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}};var o,r=(o=n(93529))&&o.__esModule?o:{"default":o}},22999:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e?(e.nodeName||"").toLowerCase():null}},62317:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return e!==(0,r["default"])(e)&&(0,a.isHTMLElement)(e)?(0,i["default"])(e):(0,o["default"])(e)};var o=c(n(43581)),r=c(n(83808)),a=n(1316),i=c(n(66860));function c(e){return e&&e.__esModule?e:{"default":e}}},95111:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,o["default"])(e),n=d(e);for(;n&&(0,c["default"])(n)&&"static"===(0,a["default"])(n).position;)n=d(n);if(n&&("html"===(0,r["default"])(n)||"body"===(0,r["default"])(n)&&"static"===(0,a["default"])(n).position))return t;return n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&(0,i.isHTMLElement)(e)){if("fixed"===(0,a["default"])(e).position)return null}var n=(0,l["default"])(e);for(;(0,i.isHTMLElement)(n)&&["html","body"].indexOf((0,r["default"])(n))<0;){var o=(0,a["default"])(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t};var o=u(n(83808)),r=u(n(22999)),a=u(n(25462)),i=n(1316),c=u(n(45574)),l=u(n(62576));function u(e){return e&&e.__esModule?e:{"default":e}}function d(e){return(0,i.isHTMLElement)(e)&&"fixed"!==(0,a["default"])(e).position?e.offsetParent:null}},62576:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){if("html"===(0,o["default"])(e))return e;return e.assignedSlot||e.parentNode||((0,a.isShadowRoot)(e)?e.host:null)||(0,r["default"])(e)};var o=i(n(22999)),r=i(n(67977)),a=n(1316);function i(e){return e&&e.__esModule?e:{"default":e}}},99597:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function l(e){if(["html","body","#document"].indexOf((0,a["default"])(e))>=0)return e.ownerDocument.body;if((0,i.isHTMLElement)(e)&&(0,r["default"])(e))return e;return l((0,o["default"])(e))};var o=c(n(62576)),r=c(n(63383)),a=c(n(22999)),i=n(1316);function c(e){return e&&e.__esModule?e:{"default":e}}},68056:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,o["default"])(e),n=(0,r["default"])(e),i=t.visualViewport,c=n.clientWidth,l=n.clientHeight,u=0,d=0;i&&(c=i.width,l=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(u=i.offsetLeft,d=i.offsetTop));return{width:c,height:l,x:u+(0,a["default"])(e),y:d}};var o=i(n(83808)),r=i(n(67977)),a=i(n(54418));function i(e){return e&&e.__esModule?e:{"default":e}}},83808:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}},43581:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,r["default"])(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}};var o,r=(o=n(83808))&&o.__esModule?o:{"default":o}},54418:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return(0,o["default"])((0,r["default"])(e)).left+(0,a["default"])(e).scrollLeft};var o=i(n(93529)),r=i(n(67977)),a=i(n(43581));function i(e){return e&&e.__esModule?e:{"default":e}}},1316:function(e,t,n){"use strict";t.__esModule=!0,t.isElement=function(e){var t=(0,r["default"])(e).Element;return e instanceof t||e instanceof Element},t.isHTMLElement=function(e){var t=(0,r["default"])(e).HTMLElement;return e instanceof t||e instanceof HTMLElement},t.isShadowRoot=function(e){if("undefined"==typeof ShadowRoot)return!1;var t=(0,r["default"])(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot};var o,r=(o=n(83808))&&o.__esModule?o:{"default":o}},63383:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,r["default"])(e),n=t.overflow,o=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+o)};var o,r=(o=n(25462))&&o.__esModule?o:{"default":o}},45574:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return["table","td","th"].indexOf((0,r["default"])(e))>=0};var o,r=(o=n(22999))&&o.__esModule?o:{"default":o}},39662:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function l(e,t){var n;void 0===t&&(t=[]);var c=(0,o["default"])(e),u=c===(null==(n=e.ownerDocument)?void 0:n.body),d=(0,a["default"])(c),s=u?[d].concat(d.visualViewport||[],(0,i["default"])(c)?c:[]):c,p=t.concat(s);return u?p:p.concat(l((0,r["default"])(s)))};var o=c(n(99597)),r=c(n(62576)),a=c(n(83808)),i=c(n(63383));function c(e){return e&&e.__esModule?e:{"default":e}}},61797:function(e,t){"use strict";t.__esModule=!0,t.modifierPhases=t.afterWrite=t.write=t.beforeWrite=t.afterMain=t.main=t.beforeMain=t.afterRead=t.read=t.beforeRead=t.placements=t.variationPlacements=t.reference=t.popper=t.viewport=t.clippingParents=t.end=t.start=t.basePlacements=t.auto=t.left=t.right=t.bottom=t.top=void 0;t.top="top";var n="bottom";t.bottom=n;var o="right";t.right=o;var r="left";t.left=r;var a="auto";t.auto=a;var i=["top",n,o,r];t.basePlacements=i;var c="start";t.start=c;var l="end";t.end=l;t.clippingParents="clippingParents";t.viewport="viewport";t.popper="popper";t.reference="reference";var u=i.reduce((function(e,t){return e.concat([t+"-"+c,t+"-"+l])}),[]);t.variationPlacements=u;var d=[].concat(i,[a]).reduce((function(e,t){return e.concat([t,t+"-"+c,t+"-"+l])}),[]);t.placements=d;var s="beforeRead";t.beforeRead=s;var p="read";t.read=p;var m="afterRead";t.afterRead=m;var f="beforeMain";t.beforeMain=f;var h="main";t.main=h;var C="afterMain";t.afterMain=C;var g="beforeWrite";t.beforeWrite=g;var b="write";t.write=b;var v="afterWrite";t.afterWrite=v;var N=[s,p,m,f,h,C,g,b,v];t.modifierPhases=N},84195:function(e,t,n){"use strict";t.__esModule=!0;var o={popperGenerator:!0,detectOverflow:!0,createPopperBase:!0,createPopper:!0,createPopperLite:!0};t.createPopperLite=t.createPopper=t.createPopperBase=t.detectOverflow=t.popperGenerator=void 0;var r=n(61797);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===r[e]||(t[e]=r[e]))}));var a=n(16850);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===a[e]||(t[e]=a[e]))}));var i=n(36997);t.popperGenerator=i.popperGenerator,t.detectOverflow=i.detectOverflow,t.createPopperBase=i.createPopper;var c=n(38385);t.createPopper=c.createPopper;var l=n(97126);t.createPopperLite=l.createPopper},59028:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o,r=(o=n(22999))&&o.__esModule?o:{"default":o},a=n(1316);var i={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];(0,a.isHTMLElement)(i)&&(0,r["default"])(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},c=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});(0,a.isHTMLElement)(o)&&(0,r["default"])(o)&&(Object.assign(o.style,c),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};t["default"]=i},25615:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o=p(n(91561)),r=p(n(62408)),a=p(n(63171)),i=p(n(95111)),c=p(n(19398)),l=p(n(83158)),u=p(n(2595)),d=p(n(1724)),s=n(61797);n(1316);function p(e){return e&&e.__esModule?e:{"default":e}}var m=function(e,t){return e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e,(0,u["default"])("number"!=typeof e?e:(0,d["default"])(e,s.basePlacements))};var f={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,a=e.name,u=e.options,d=n.elements.arrow,p=n.modifiersData.popperOffsets,f=(0,o["default"])(n.placement),h=(0,c["default"])(f),C=[s.left,s.right].indexOf(f)>=0?"height":"width";if(d&&p){var g=m(u.padding,n),b=(0,r["default"])(d),v="y"===h?s.top:s.left,N="y"===h?s.bottom:s.right,V=n.rects.reference[C]+n.rects.reference[h]-p[h]-n.rects.popper[C],y=p[h]-n.rects.reference[h],_=(0,i["default"])(d),w=_?"y"===h?_.clientHeight||0:_.clientWidth||0:0,k=V/2-y/2,S=g[v],B=w-b[C]-g[N],x=w/2-b[C]/2+k,A=(0,l["default"])(S,x,B),D=h;n.modifiersData[a]=((t={})[D]=A,t.centerOffset=A-x,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&(0,a["default"])(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};t["default"]=f},21481:function(e,t,n){"use strict";t.__esModule=!0,t.mapToStyles=p,t["default"]=void 0;var o=n(61797),r=d(n(95111)),a=d(n(83808)),i=d(n(67977)),c=d(n(25462)),l=d(n(91561)),u=n(36083);function d(e){return e&&e.__esModule?e:{"default":e}}var s={top:"auto",right:"auto",bottom:"auto",left:"auto"};function p(e){var t,n=e.popper,l=e.popperRect,d=e.placement,p=e.offsets,m=e.position,f=e.gpuAcceleration,h=e.adaptive,C=e.roundOffsets,g=!0===C?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:(0,u.round)((0,u.round)(t*o)/o)||0,y:(0,u.round)((0,u.round)(n*o)/o)||0}}(p):"function"==typeof C?C(p):p,b=g.x,v=void 0===b?0:b,N=g.y,V=void 0===N?0:N,y=p.hasOwnProperty("x"),_=p.hasOwnProperty("y"),w=o.left,k=o.top,S=window;if(h){var B=(0,r["default"])(n),x="clientHeight",A="clientWidth";B===(0,a["default"])(n)&&(B=(0,i["default"])(n),"static"!==(0,c["default"])(B).position&&(x="scrollHeight",A="scrollWidth")),d===o.top&&(k=o.bottom,V-=B[x]-l.height,V*=f?1:-1),d===o.left&&(w=o.right,v-=B[A]-l.width,v*=f?1:-1)}var D,L=Object.assign({position:m},h&&s);return f?Object.assign({},L,((D={})[k]=_?"0":"",D[w]=y?"0":"",D.transform=(S.devicePixelRatio||1)<2?"translate("+v+"px, "+V+"px)":"translate3d("+v+"px, "+V+"px, 0)",D)):Object.assign({},L,((t={})[k]=_?V+"px":"",t[w]=y?v+"px":"",t.transform="",t))}var m={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=void 0===o||o,a=n.adaptive,i=void 0===a||a,c=n.roundOffsets,u=void 0===c||c,d={placement:(0,l["default"])(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,p(Object.assign({},d,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:u})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,p(Object.assign({},d,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};t["default"]=m},42325:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o,r=(o=n(83808))&&o.__esModule?o:{"default":o};var a={passive:!0};var i={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=e.options,i=o.scroll,c=void 0===i||i,l=o.resize,u=void 0===l||l,d=(0,r["default"])(t.elements.popper),s=[].concat(t.scrollParents.reference,t.scrollParents.popper);return c&&s.forEach((function(e){e.addEventListener("scroll",n.update,a)})),u&&d.addEventListener("resize",n.update,a),function(){c&&s.forEach((function(e){e.removeEventListener("scroll",n.update,a)})),u&&d.removeEventListener("resize",n.update,a)}},data:{}};t["default"]=i},56159:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o=d(n(86141)),r=d(n(91561)),a=d(n(10404)),i=d(n(63308)),c=d(n(97396)),l=n(61797),u=d(n(26992));function d(e){return e&&e.__esModule?e:{"default":e}}var s={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,d=e.name;if(!t.modifiersData[d]._skip){for(var s=n.mainAxis,p=void 0===s||s,m=n.altAxis,f=void 0===m||m,h=n.fallbackPlacements,C=n.padding,g=n.boundary,b=n.rootBoundary,v=n.altBoundary,N=n.flipVariations,V=void 0===N||N,y=n.allowedAutoPlacements,_=t.options.placement,w=(0,r["default"])(_),k=h||(w===_||!V?[(0,o["default"])(_)]:function(e){if((0,r["default"])(e)===l.auto)return[];var t=(0,o["default"])(e);return[(0,a["default"])(e),t,(0,a["default"])(t)]}(_)),S=[_].concat(k).reduce((function(e,n){return e.concat((0,r["default"])(n)===l.auto?(0,c["default"])(t,{placement:n,boundary:g,rootBoundary:b,padding:C,flipVariations:V,allowedAutoPlacements:y}):n)}),[]),B=t.rects.reference,x=t.rects.popper,A=new Map,D=!0,L=S[0],E=0;E=0,M=O?"width":"height",P=(0,i["default"])(t,{placement:T,boundary:g,rootBoundary:b,altBoundary:v,padding:C}),R=O?F?l.right:l.left:F?l.bottom:l.top;B[M]>x[M]&&(R=(0,o["default"])(R));var j=(0,o["default"])(R),W=[];if(p&&W.push(P[I]<=0),f&&W.push(P[R]<=0,P[j]<=0),W.every((function(e){return e}))){L=T,D=!1;break}A.set(T,W)}if(D)for(var z=function(e){var t=S.find((function(t){var n=A.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return L=t,"break"},U=V?3:1;U>0;U--){if("break"===z(U))break}t.placement!==L&&(t.modifiersData[d]._skip=!0,t.placement=L,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};t["default"]=s},408:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o,r=n(61797),a=(o=n(63308))&&o.__esModule?o:{"default":o};function i(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function c(e){return[r.top,r.right,r.bottom,r.left].some((function(t){return e[t]>=0}))}var l={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,l=t.modifiersData.preventOverflow,u=(0,a["default"])(t,{elementContext:"reference"}),d=(0,a["default"])(t,{altBoundary:!0}),s=i(u,o),p=i(d,r,l),m=c(s),f=c(p);t.modifiersData[n]={referenceClippingOffsets:s,popperEscapeOffsets:p,isReferenceHidden:m,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":m,"data-popper-escaped":f})}};t["default"]=l},16850:function(e,t,n){"use strict";t.__esModule=!0,t.preventOverflow=t.popperOffsets=t.offset=t.hide=t.flip=t.eventListeners=t.computeStyles=t.arrow=t.applyStyles=void 0;var o=p(n(59028));t.applyStyles=o["default"];var r=p(n(25615));t.arrow=r["default"];var a=p(n(21481));t.computeStyles=a["default"];var i=p(n(42325));t.eventListeners=i["default"];var c=p(n(56159));t.flip=c["default"];var l=p(n(408));t.hide=l["default"];var u=p(n(62167));t.offset=u["default"];var d=p(n(56496));t.popperOffsets=d["default"];var s=p(n(458));function p(e){return e&&e.__esModule?e:{"default":e}}t.preventOverflow=s["default"]},62167:function(e,t,n){"use strict";t.__esModule=!0,t.distanceAndSkiddingToXY=i,t["default"]=void 0;var o,r=(o=n(91561))&&o.__esModule?o:{"default":o},a=n(61797);function i(e,t,n){var o=(0,r["default"])(e),i=[a.left,a.top].indexOf(o)>=0?-1:1,c="function"==typeof n?n(Object.assign({},t,{placement:e})):n,l=c[0],u=c[1];return l=l||0,u=(u||0)*i,[a.left,a.right].indexOf(o)>=0?{x:u,y:l}:{x:l,y:u}}var c={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.offset,c=void 0===r?[0,0]:r,l=a.placements.reduce((function(e,n){return e[n]=i(n,t.rects,c),e}),{}),u=l[t.placement],d=u.x,s=u.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=s),t.modifiersData[o]=l}};t["default"]=c},56496:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o,r=(o=n(38138))&&o.__esModule?o:{"default":o};var a={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=(0,r["default"])({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};t["default"]=a},458:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o=n(61797),r=f(n(91561)),a=f(n(19398)),i=f(n(81367)),c=f(n(83158)),l=f(n(62408)),u=f(n(95111)),d=f(n(63308)),s=f(n(26992)),p=f(n(15565)),m=n(36083);function f(e){return e&&e.__esModule?e:{"default":e}}var h={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,f=e.name,h=n.mainAxis,C=void 0===h||h,g=n.altAxis,b=void 0!==g&&g,v=n.boundary,N=n.rootBoundary,V=n.altBoundary,y=n.padding,_=n.tether,w=void 0===_||_,k=n.tetherOffset,S=void 0===k?0:k,B=(0,d["default"])(t,{boundary:v,rootBoundary:N,padding:y,altBoundary:V}),x=(0,r["default"])(t.placement),A=(0,s["default"])(t.placement),D=!A,L=(0,a["default"])(x),E=(0,i["default"])(L),T=t.modifiersData.popperOffsets,I=t.rects.reference,F=t.rects.popper,O="function"==typeof S?S(Object.assign({},t.rects,{placement:t.placement})):S,M={x:0,y:0};if(T){if(C||b){var P="y"===L?o.top:o.left,R="y"===L?o.bottom:o.right,j="y"===L?"height":"width",W=T[L],z=T[L]+B[P],U=T[L]-B[R],K=w?-F[j]/2:0,H=A===o.start?I[j]:F[j],G=A===o.start?-F[j]:-I[j],Y=t.elements.arrow,q=w&&Y?(0,l["default"])(Y):{width:0,height:0},$=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:(0,p["default"])(),Q=$[P],J=$[R],Z=(0,c["default"])(0,I[j],q[j]),X=D?I[j]/2-K-Z-Q-O:H-Z-Q-O,ee=D?-I[j]/2+K+Z+J+O:G+Z+J+O,te=t.elements.arrow&&(0,u["default"])(t.elements.arrow),ne=te?"y"===L?te.clientTop||0:te.clientLeft||0:0,oe=t.modifiersData.offset?t.modifiersData.offset[t.placement][L]:0,re=T[L]+X-oe-ne,ae=T[L]+ee-oe;if(C){var ie=(0,c["default"])(w?(0,m.min)(z,re):z,W,w?(0,m.max)(U,ae):U);T[L]=ie,M[L]=ie-W}if(b){var ce="x"===L?o.top:o.left,le="x"===L?o.bottom:o.right,ue=T[E],de=ue+B[ce],se=ue-B[le],pe=(0,c["default"])(w?(0,m.min)(de,re):de,ue,w?(0,m.max)(se,ae):se);T[E]=pe,M[E]=pe-ue}}t.modifiersData[f]=M}},requiresIfExists:["offset"]};t["default"]=h},97126:function(e,t,n){"use strict";t.__esModule=!0,t.defaultModifiers=t.createPopper=void 0;var o=n(36997);t.popperGenerator=o.popperGenerator,t.detectOverflow=o.detectOverflow;var r=l(n(42325)),a=l(n(56496)),i=l(n(21481)),c=l(n(59028));function l(e){return e&&e.__esModule?e:{"default":e}}var u=[r["default"],a["default"],i["default"],c["default"]];t.defaultModifiers=u;var d=(0,o.popperGenerator)({defaultModifiers:u});t.createPopper=d},38385:function(e,t,n){"use strict";t.__esModule=!0;var o={createPopper:!0,createPopperLite:!0,defaultModifiers:!0,popperGenerator:!0,detectOverflow:!0};t.defaultModifiers=t.createPopperLite=t.createPopper=void 0;var r=n(36997);t.popperGenerator=r.popperGenerator,t.detectOverflow=r.detectOverflow;var a=C(n(42325)),i=C(n(56496)),c=C(n(21481)),l=C(n(59028)),u=C(n(62167)),d=C(n(56159)),s=C(n(458)),p=C(n(25615)),m=C(n(408)),f=n(97126);t.createPopperLite=f.createPopper;var h=n(16850);function C(e){return e&&e.__esModule?e:{"default":e}}Object.keys(h).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===h[e]||(t[e]=h[e]))}));var g=[a["default"],i["default"],c["default"],l["default"],u["default"],d["default"],s["default"],p["default"],m["default"]];t.defaultModifiers=g;var b=(0,r.popperGenerator)({defaultModifiers:g});t.createPopperLite=t.createPopper=b},97396:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t){void 0===t&&(t={});var n=t,c=n.placement,l=n.boundary,u=n.rootBoundary,d=n.padding,s=n.flipVariations,p=n.allowedAutoPlacements,m=void 0===p?r.placements:p,f=(0,o["default"])(c),h=f?s?r.variationPlacements:r.variationPlacements.filter((function(e){return(0,o["default"])(e)===f})):r.basePlacements,C=h.filter((function(e){return m.indexOf(e)>=0}));0===C.length&&(C=h);var g=C.reduce((function(t,n){return t[n]=(0,a["default"])(e,{placement:n,boundary:l,rootBoundary:u,padding:d})[(0,i["default"])(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))};var o=c(n(26992)),r=n(61797),a=c(n(63308)),i=c(n(91561));function c(e){return e&&e.__esModule?e:{"default":e}}},38138:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t,n=e.reference,c=e.element,l=e.placement,u=l?(0,o["default"])(l):null,d=l?(0,r["default"])(l):null,s=n.x+n.width/2-c.width/2,p=n.y+n.height/2-c.height/2;switch(u){case i.top:t={x:s,y:n.y-c.height};break;case i.bottom:t={x:s,y:n.y+n.height};break;case i.right:t={x:n.x+n.width,y:p};break;case i.left:t={x:n.x-c.width,y:p};break;default:t={x:n.x,y:n.y}}var m=u?(0,a["default"])(u):null;if(null!=m){var f="y"===m?"height":"width";switch(d){case i.start:t[m]=t[m]-(n[f]/2-c[f]/2);break;case i.end:t[m]=t[m]+(n[f]/2-c[f]/2)}}return t};var o=c(n(91561)),r=c(n(26992)),a=c(n(19398)),i=n(61797);function c(e){return e&&e.__esModule?e:{"default":e}}},17850:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=undefined,n(e())}))}))),t}}},63308:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t){void 0===t&&(t={});var n=t,p=n.placement,m=void 0===p?e.placement:p,f=n.boundary,h=void 0===f?l.clippingParents:f,C=n.rootBoundary,g=void 0===C?l.viewport:C,b=n.elementContext,v=void 0===b?l.popper:b,N=n.altBoundary,V=void 0!==N&&N,y=n.padding,_=void 0===y?0:y,w=(0,d["default"])("number"!=typeof _?_:(0,s["default"])(_,l.basePlacements)),k=v===l.popper?l.reference:l.popper,S=e.elements.reference,B=e.rects.popper,x=e.elements[V?k:v],A=(0,r["default"])((0,u.isElement)(x)?x:x.contextElement||(0,a["default"])(e.elements.popper),h,g),D=(0,o["default"])(S),L=(0,i["default"])({reference:D,element:B,strategy:"absolute",placement:m}),E=(0,c["default"])(Object.assign({},B,L)),T=v===l.popper?E:D,I={top:A.top-T.top+w.top,bottom:T.bottom-A.bottom+w.bottom,left:A.left-T.left+w.left,right:T.right-A.right+w.right},F=e.modifiersData.offset;if(v===l.popper&&F){var O=F[m];Object.keys(I).forEach((function(e){var t=[l.right,l.bottom].indexOf(e)>=0?1:-1,n=[l.top,l.bottom].indexOf(e)>=0?"y":"x";I[e]+=O[n]*t}))}return I};var o=p(n(93529)),r=p(n(76416)),a=p(n(67977)),i=p(n(38138)),c=p(n(24955)),l=n(61797),u=n(1316),d=p(n(2595)),s=p(n(1724));function p(e){return e&&e.__esModule?e:{"default":e}}},1724:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}},62630:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o=0?"x":"y"}},86141:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e.replace(/left|right|bottom|top/g,(function(e){return n[e]}))};var n={left:"right",right:"left",bottom:"top",top:"bottom"}},10404:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e.replace(/start|end/g,(function(e){return n[e]}))};var n={start:"end",end:"start"}},26992:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e.split("-")[1]}},36083:function(e,t){"use strict";t.__esModule=!0,t.round=t.min=t.max=void 0;var n=Math.max;t.max=n;var o=Math.min;t.min=o;var r=Math.round;t.round=r},13043:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){var t=e.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}},2595:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return Object.assign({},(0,r["default"])(),e)};var o,r=(o=n(15565))&&o.__esModule?o:{"default":o}},23967:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=function(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),o}(e);return o.modifierPhases.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])};var o=n(61797)},24955:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}},6559:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e,t){var n=new Set;return e.filter((function(e){var o=t(e);if(!n.has(o))return n.add(o),!0}))}},23849:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){e.forEach((function(t){Object.keys(t).forEach((function(n){switch(n){case"name":t.name;break;case"enabled":t.enabled;case"phase":r.modifierPhases.indexOf(t.phase);break;case"fn":t.fn;break;case"effect":t.effect;break;case"requires":Array.isArray(t.requires);break;case"requiresIfExists":Array.isArray(t.requiresIfExists)}t.requires&&t.requires.forEach((function(t){e.find((function(e){return e.name===t}))}))}))}))};(o=n(62630))&&o.__esModule;var o,r=n(61797)},83158:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t,n){return(0,o.max)(e,(0,o.min)(t,n))};var o=n(36083)},52726:function(e){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},91254:function(e,t,n){"use strict";var o=n(81662);e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},26817:function(e,t,n){"use strict";var o=n(20839),r=n(49500),a=n(81965),i=o("unscopables"),c=Array.prototype;c[i]==undefined&&a.f(c,i,{configurable:!0,value:r(null)}),e.exports=function(e){c[i][e]=!0}},84249:function(e,t,n){"use strict";var o=n(70219).charAt;e.exports=function(e,t,n){return t+(n?o(e,t).length:1)}},62147:function(e){"use strict";e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},90155:function(e,t,n){"use strict";var o=n(81662);e.exports=function(e){if(!o(e))throw TypeError(String(e)+" is not an object");return e}},38536:function(e){"use strict";e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},46024:function(e,t,n){"use strict";var o,r,a,i=n(38536),c=n(54408),l=n(29071),u=n(81662),d=n(83122),s=n(42287),p=n(95479),m=n(51414),f=n(81965).f,h=n(87263),C=n(99099),g=n(20839),b=n(58060),v=l.Int8Array,N=v&&v.prototype,V=l.Uint8ClampedArray,y=V&&V.prototype,_=v&&h(v),w=N&&h(N),k=Object.prototype,S=k.isPrototypeOf,B=g("toStringTag"),x=b("TYPED_ARRAY_TAG"),A=b("TYPED_ARRAY_CONSTRUCTOR"),D=i&&!!C&&"Opera"!==s(l.opera),L=!1,E={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},T={BigInt64Array:8,BigUint64Array:8},I=function(e){if(!u(e))return!1;var t=s(e);return"DataView"===t||d(E,t)||d(T,t)},F=function(e){if(!u(e))return!1;var t=s(e);return d(E,t)||d(T,t)};for(o in E)(a=(r=l[o])&&r.prototype)?p(a,A,r):D=!1;for(o in T)(a=(r=l[o])&&r.prototype)&&p(a,A,r);if((!D||"function"!=typeof _||_===Function.prototype)&&(_=function(){throw TypeError("Incorrect invocation")},D))for(o in E)l[o]&&C(l[o],_);if((!D||!w||w===k)&&(w=_.prototype,D))for(o in E)l[o]&&C(l[o].prototype,w);if(D&&h(y)!==w&&C(y,w),c&&!d(w,B))for(o in L=!0,f(w,B,{get:function(){return u(this)?this[x]:undefined}}),E)l[o]&&p(l[o],x,o);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:D,TYPED_ARRAY_CONSTRUCTOR:A,TYPED_ARRAY_TAG:L&&x,aTypedArray:function(e){if(F(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(C&&!S.call(_,e))throw TypeError("Target is not a typed array constructor");return e},exportTypedArrayMethod:function(e,t,n){if(c){if(n)for(var o in E){var r=l[o];if(r&&d(r.prototype,e))try{delete r.prototype[e]}catch(a){}}w[e]&&!n||m(w,e,n?t:D&&N[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var o,r;if(c){if(C){if(n)for(o in E)if((r=l[o])&&d(r,e))try{delete r[e]}catch(a){}if(_[e]&&!n)return;try{return m(_,e,n?t:D&&_[e]||t)}catch(a){}}for(o in E)!(r=l[o])||r[e]&&!n||m(r,e,t)}},isView:I,isTypedArray:F,TypedArray:_,TypedArrayPrototype:w}},14374:function(e,t,n){"use strict";var o=n(29071),r=n(54408),a=n(38536),i=n(95479),c=n(46360),l=n(46203),u=n(62147),d=n(54026),s=n(46330),p=n(21332),m=n(33830),f=n(87263),h=n(99099),C=n(6628).f,g=n(81965).f,b=n(21657),v=n(72843),N=n(48441),V=N.get,y=N.set,_="ArrayBuffer",w="DataView",k="Wrong index",S=o.ArrayBuffer,B=S,x=o.DataView,A=x&&x.prototype,D=Object.prototype,L=o.RangeError,E=m.pack,T=m.unpack,I=function(e){return[255&e]},F=function(e){return[255&e,e>>8&255]},O=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},M=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},P=function(e){return E(e,23,4)},R=function(e){return E(e,52,8)},j=function(e,t){g(e.prototype,t,{get:function(){return V(this)[t]}})},W=function(e,t,n,o){var r=p(n),a=V(e);if(r+t>a.byteLength)throw L(k);var i=V(a.buffer).bytes,c=r+a.byteOffset,l=i.slice(c,c+t);return o?l:l.reverse()},z=function(e,t,n,o,r,a){var i=p(n),c=V(e);if(i+t>c.byteLength)throw L(k);for(var l=V(c.buffer).bytes,u=i+c.byteOffset,d=o(+r),s=0;sG;)(U=H[G++])in B||i(B,U,S[U]);K.constructor=B}h&&f(A)!==D&&h(A,D);var Y=new x(new B(2)),q=A.setInt8;Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),!Y.getInt8(0)&&Y.getInt8(1)||c(A,{setInt8:function(e,t){q.call(this,e,t<<24>>24)},setUint8:function(e,t){q.call(this,e,t<<24>>24)}},{unsafe:!0})}else B=function(e){u(this,B,_);var t=p(e);y(this,{bytes:b.call(new Array(t),0),byteLength:t}),r||(this.byteLength=t)},x=function(e,t,n){u(this,x,w),u(e,B,w);var o=V(e).byteLength,a=d(t);if(a<0||a>o)throw L("Wrong offset");if(a+(n=n===undefined?o-a:s(n))>o)throw L("Wrong length");y(this,{buffer:e,byteLength:n,byteOffset:a}),r||(this.buffer=e,this.byteLength=n,this.byteOffset=a)},r&&(j(B,"byteLength"),j(x,"buffer"),j(x,"byteLength"),j(x,"byteOffset")),c(x.prototype,{getInt8:function(e){return W(this,1,e)[0]<<24>>24},getUint8:function(e){return W(this,1,e)[0]},getInt16:function(e){var t=W(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=W(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return M(W(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return M(W(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return T(W(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return T(W(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){z(this,1,e,I,t)},setUint8:function(e,t){z(this,1,e,I,t)},setInt16:function(e,t){z(this,2,e,F,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){z(this,2,e,F,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){z(this,4,e,O,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){z(this,4,e,O,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){z(this,4,e,P,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){z(this,8,e,R,t,arguments.length>2?arguments[2]:undefined)}});v(B,_),v(x,w),e.exports={ArrayBuffer:B,DataView:x}},84705:function(e,t,n){"use strict";var o=n(45009),r=n(97094),a=n(46330),i=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),c=a(n.length),l=r(e,c),u=r(t,c),d=arguments.length>2?arguments[2]:undefined,s=i((d===undefined?c:r(d,c))-u,c-l),p=1;for(u0;)u in n?n[l]=n[u]:delete n[l],l+=p,u+=p;return n}},21657:function(e,t,n){"use strict";var o=n(45009),r=n(97094),a=n(46330);e.exports=function(e){for(var t=o(this),n=a(t.length),i=arguments.length,c=r(i>1?arguments[1]:undefined,n),l=i>2?arguments[2]:undefined,u=l===undefined?n:r(l,n);u>c;)t[c++]=e;return t}},49751:function(e,t,n){"use strict";var o=n(78969).forEach,r=n(57978)("forEach");e.exports=r?[].forEach:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}},15886:function(e){"use strict";e.exports=function(e,t){for(var n=0,o=t.length,r=new e(o);o>n;)r[n]=t[n++];return r}},34192:function(e,t,n){"use strict";var o=n(77348),r=n(45009),a=n(32603),i=n(64453),c=n(46330),l=n(18996),u=n(39423);e.exports=function(e){var t,n,d,s,p,m,f=r(e),h="function"==typeof this?this:Array,C=arguments.length,g=C>1?arguments[1]:undefined,b=g!==undefined,v=u(f),N=0;if(b&&(g=o(g,C>2?arguments[2]:undefined,2)),v==undefined||h==Array&&i(v))for(n=new h(t=c(f.length));t>N;N++)m=b?g(f[N],N):f[N],l(n,N,m);else for(p=(s=v.call(f)).next,n=new h;!(d=p.call(s)).done;N++)m=b?a(s,g,[d.value,N],!0):d.value,l(n,N,m);return n.length=N,n}},35957:function(e,t,n){"use strict";var o=n(10961),r=n(46330),a=n(97094),i=function(e){return function(t,n,i){var c,l=o(t),u=r(l.length),d=a(i,u);if(e&&n!=n){for(;u>d;)if((c=l[d++])!=c)return!0}else for(;u>d;d++)if((e||d in l)&&l[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},78969:function(e,t,n){"use strict";var o=n(77348),r=n(27371),a=n(45009),i=n(46330),c=n(87257),l=[].push,u=function(e){var t=1==e,n=2==e,u=3==e,d=4==e,s=6==e,p=7==e,m=5==e||s;return function(f,h,C,g){for(var b,v,N=a(f),V=r(N),y=o(h,C,3),_=i(V.length),w=0,k=g||c,S=t?k(f,_):n||p?k(f,0):undefined;_>w;w++)if((m||w in V)&&(v=y(b=V[w],w,N),e))if(t)S[w]=v;else if(v)switch(e){case 3:return!0;case 5:return b;case 6:return w;case 2:l.call(S,b)}else switch(e){case 4:return!1;case 7:l.call(S,b)}return s?-1:u||d?d:S}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},65975:function(e,t,n){"use strict";var o=n(10961),r=n(54026),a=n(46330),i=n(57978),c=Math.min,l=[].lastIndexOf,u=!!l&&1/[1].lastIndexOf(1,-0)<0,d=i("lastIndexOf"),s=u||!d;e.exports=s?function(e){if(u)return l.apply(this,arguments)||0;var t=o(this),n=a(t.length),i=n-1;for(arguments.length>1&&(i=c(i,r(arguments[1]))),i<0&&(i=n+i);i>=0;i--)if(i in t&&t[i]===e)return i||0;return-1}:l},71721:function(e,t,n){"use strict";var o=n(46203),r=n(20839),a=n(95336),i=r("species");e.exports=function(e){return a>=51||!o((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},57978:function(e,t,n){"use strict";var o=n(46203);e.exports=function(e,t){var n=[][e];return!!n&&o((function(){n.call(null,t||function(){throw 1},1)}))}},97402:function(e,t,n){"use strict";var o=n(52726),r=n(45009),a=n(27371),i=n(46330),c=function(e){return function(t,n,c,l){o(n);var u=r(t),d=a(u),s=i(u.length),p=e?s-1:0,m=e?-1:1;if(c<2)for(;;){if(p in d){l=d[p],p+=m;break}if(p+=m,e?p<0:s<=p)throw TypeError("Reduce of empty array with no initial value")}for(;e?p>=0:s>p;p+=m)p in d&&(l=n(l,d[p],p,u));return l}};e.exports={left:c(!1),right:c(!0)}},85492:function(e){"use strict";var t=Math.floor,n=function(e,t){for(var n,o,r=e.length,a=1;a0;)e[o]=e[--o];o!==a++&&(e[o]=n)}return e},o=function(e,t,n){for(var o=e.length,r=t.length,a=0,i=0,c=[];a1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),a(d.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return C(this,0===e?0:e,t)}}:{add:function(e){return C(this,e=0===e?0:e,e)}}),s&&o(d.prototype,"size",{get:function(){return m(this).size}}),d},setStrong:function(e,t,n){var o=t+" Iterator",r=h(t),a=h(o);u(e,t,(function(e,t){f(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),d(t)}}},6789:function(e,t,n){"use strict";var o=n(46360),r=n(88511).getWeakData,a=n(90155),i=n(81662),c=n(62147),l=n(1464),u=n(78969),d=n(83122),s=n(48441),p=s.set,m=s.getterFor,f=u.find,h=u.findIndex,C=0,g=function(e){return e.frozen||(e.frozen=new b)},b=function(){this.entries=[]},v=function(e,t){return f(e.entries,(function(e){return e[0]===t}))};b.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,u){var s=e((function(e,o){c(e,s,t),p(e,{type:t,id:C++,frozen:undefined}),o!=undefined&&l(o,e[u],{that:e,AS_ENTRIES:n})})),f=m(t),h=function(e,t,n){var o=f(e),i=r(a(t),!0);return!0===i?g(o).set(t,n):i[o.id]=n,e};return o(s.prototype,{"delete":function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?g(t)["delete"](e):n&&d(n,t.id)&&delete n[t.id]},has:function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?g(t).has(e):n&&d(n,t.id)}}),o(s.prototype,n?{get:function(e){var t=f(this);if(i(e)){var n=r(e);return!0===n?g(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),s}}},37488:function(e,t,n){"use strict";var o=n(70850),r=n(29071),a=n(17600),i=n(51414),c=n(88511),l=n(1464),u=n(62147),d=n(81662),s=n(46203),p=n(61504),m=n(72843),f=n(50843);e.exports=function(e,t,n){var h=-1!==e.indexOf("Map"),C=-1!==e.indexOf("Weak"),g=h?"set":"add",b=r[e],v=b&&b.prototype,N=b,V={},y=function(e){var t=v[e];i(v,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return C&&!d(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(a(e,"function"!=typeof b||!(C||v.forEach&&!s((function(){(new b).entries().next()})))))N=n.getConstructor(t,e,h,g),c.enable();else if(a(e,!0)){var _=new N,w=_[g](C?{}:-0,1)!=_,k=s((function(){_.has(1)})),S=p((function(e){new b(e)})),B=!C&&s((function(){for(var e=new b,t=5;t--;)e[g](t,t);return!e.has(-0)}));S||((N=t((function(t,n){u(t,N,e);var o=f(new b,t,N);return n!=undefined&&l(n,o[g],{that:o,AS_ENTRIES:h}),o}))).prototype=v,v.constructor=N),(k||B)&&(y("delete"),y("has"),h&&y("get")),(B||w)&&y(g),C&&v.clear&&delete v.clear}return V[e]=N,o({global:!0,forced:N!=b},V),m(N,e),C||n.setStrong(N,e,h),N}},9088:function(e,t,n){"use strict";var o=n(83122),r=n(11475),a=n(77415),i=n(81965);e.exports=function(e,t){for(var n=r(t),c=i.f,l=a.f,u=0;u"+c+""}},89750:function(e,t,n){"use strict";var o=n(53637).IteratorPrototype,r=n(49500),a=n(66856),i=n(72843),c=n(63913),l=function(){return this};e.exports=function(e,t,n){var u=t+" Iterator";return e.prototype=r(o,{next:a(1,n)}),i(e,u,!1,!0),c[u]=l,e}},95479:function(e,t,n){"use strict";var o=n(54408),r=n(81965),a=n(66856);e.exports=o?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},66856:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},18996:function(e,t,n){"use strict";var o=n(86997),r=n(81965),a=n(66856);e.exports=function(e,t,n){var i=o(t);i in e?r.f(e,i,a(0,n)):e[i]=n}},11216:function(e,t,n){"use strict";var o=n(46203),r=n(77169).start,a=Math.abs,i=Date.prototype,c=i.getTime,l=i.toISOString;e.exports=o((function(){return"0385-07-25T07:06:39.999Z"!=l.call(new Date(-50000000000001))}))||!o((function(){l.call(new Date(NaN))}))?function(){if(!isFinite(c.call(this)))throw RangeError("Invalid time value");var e=this,t=e.getUTCFullYear(),n=e.getUTCMilliseconds(),o=t<0?"-":t>9999?"+":"";return o+r(a(t),o?6:4,0)+"-"+r(e.getUTCMonth()+1,2,0)+"-"+r(e.getUTCDate(),2,0)+"T"+r(e.getUTCHours(),2,0)+":"+r(e.getUTCMinutes(),2,0)+":"+r(e.getUTCSeconds(),2,0)+"."+r(n,3,0)+"Z"}:l},62812:function(e,t,n){"use strict";var o=n(90155),r=n(17762);e.exports=function(e){if(o(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw TypeError("Incorrect hint");return r(this,e)}},54934:function(e,t,n){"use strict";var o=n(70850),r=n(89750),a=n(87263),i=n(99099),c=n(72843),l=n(95479),u=n(51414),d=n(20839),s=n(80591),p=n(63913),m=n(53637),f=m.IteratorPrototype,h=m.BUGGY_SAFARI_ITERATORS,C=d("iterator"),g="keys",b="values",v="entries",N=function(){return this};e.exports=function(e,t,n,d,m,V,y){r(n,t,d);var _,w,k,S=function(e){if(e===m&&L)return L;if(!h&&e in A)return A[e];switch(e){case g:case b:case v:return function(){return new n(this,e)}}return function(){return new n(this)}},B=t+" Iterator",x=!1,A=e.prototype,D=A[C]||A["@@iterator"]||m&&A[m],L=!h&&D||S(m),E="Array"==t&&A.entries||D;if(E&&(_=a(E.call(new e)),f!==Object.prototype&&_.next&&(s||a(_)===f||(i?i(_,f):"function"!=typeof _[C]&&l(_,C,N)),c(_,B,!0,!0),s&&(p[B]=N))),m==b&&D&&D.name!==b&&(x=!0,L=function(){return D.call(this)}),s&&!y||A[C]===L||l(A,C,L),p[t]=L,m)if(w={values:S(b),keys:V?L:S(g),entries:S(v)},y)for(k in w)(h||x||!(k in A))&&u(A,k,w[k]);else o({target:t,proto:!0,forced:h||x},w);return w}},34899:function(e,t,n){"use strict";var o=n(82155),r=n(83122),a=n(78131),i=n(81965).f;e.exports=function(e){var t=o.Symbol||(o.Symbol={});r(t,e)||i(t,e,{value:a.f(e)})}},54408:function(e,t,n){"use strict";var o=n(46203);e.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},939:function(e,t,n){"use strict";var o=n(29071),r=n(81662),a=o.document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},69238:function(e,t,n){"use strict";var o=n(68548).match(/firefox\/(\d+)/i);e.exports=!!o&&+o[1]},45158:function(e){"use strict";e.exports="object"==typeof window},85342:function(e,t,n){"use strict";var o=n(68548);e.exports=/MSIE|Trident/.test(o)},10064:function(e,t,n){"use strict";var o=n(68548),r=n(29071);e.exports=/iphone|ipod|ipad/i.test(o)&&r.Pebble!==undefined},33459:function(e,t,n){"use strict";var o=n(68548);e.exports=/(?:iphone|ipod|ipad).*applewebkit/i.test(o)},12396:function(e,t,n){"use strict";var o=n(87684),r=n(29071);e.exports="process"==o(r.process)},45521:function(e,t,n){"use strict";var o=n(68548);e.exports=/web0s(?!.*chrome)/i.test(o)},68548:function(e,t,n){"use strict";var o=n(54883);e.exports=o("navigator","userAgent")||""},95336:function(e,t,n){"use strict";var o,r,a=n(29071),i=n(68548),c=a.process,l=a.Deno,u=c&&c.versions||l&&l.version,d=u&&u.v8;d?r=(o=d.split("."))[0]<4?1:o[0]+o[1]:i&&(!(o=i.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/))&&(r=o[1]),e.exports=r&&+r},5556:function(e,t,n){"use strict";var o=n(68548).match(/AppleWebKit\/(\d+)\./);e.exports=!!o&&+o[1]},17195:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},70850:function(e,t,n){"use strict";var o=n(29071),r=n(77415).f,a=n(95479),i=n(51414),c=n(97952),l=n(9088),u=n(17600);e.exports=function(e,t){var n,d,s,p,m,f=e.target,h=e.global,C=e.stat;if(n=h?o:C?o[f]||c(f,{}):(o[f]||{}).prototype)for(d in t){if(p=t[d],s=e.noTargetGet?(m=r(n,d))&&m.value:n[d],!u(h?d:f+(C?".":"#")+d,e.forced)&&s!==undefined){if(typeof p==typeof s)continue;l(p,s)}(e.sham||s&&s.sham)&&a(p,"sham",!0),i(n,d,p,e)}}},46203:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},96504:function(e,t,n){"use strict";n(69811);var o=n(51414),r=n(10199),a=n(46203),i=n(20839),c=n(95479),l=i("species"),u=RegExp.prototype;e.exports=function(e,t,n,d){var s=i(e),p=!a((function(){var t={};return t[s]=function(){return 7},7!=""[e](t)})),m=p&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[s]=/./[s]),n.exec=function(){return t=!0,null},n[s](""),!t}));if(!p||!m||n){var f=/./[s],h=t(s,""[e],(function(e,t,n,o,a){var i=t.exec;return i===r||i===u.exec?p&&!a?{done:!0,value:f.call(t,n,o)}:{done:!0,value:e.call(n,t,o)}:{done:!1}}));o(String.prototype,e,h[0]),o(u,s,h[1])}d&&c(u[s],"sham",!0)}},46927:function(e,t,n){"use strict";var o=n(32420),r=n(46330),a=n(77348);e.exports=function i(e,t,n,c,l,u,d,s){for(var p,m=l,f=0,h=!!d&&a(d,s,3);f0&&o(p))m=i(e,t,p,r(p.length),m,u-1)-1;else{if(m>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[m]=p}m++}f++}return m}},90452:function(e,t,n){"use strict";var o=n(46203);e.exports=!o((function(){return Object.isExtensible(Object.preventExtensions({}))}))},77348:function(e,t,n){"use strict";var o=n(52726);e.exports=function(e,t,n){if(o(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},18602:function(e,t,n){"use strict";var o=n(52726),r=n(81662),a=[].slice,i={},c=function(e,t,n){if(!(t in i)){for(var o=[],r=0;r]*>)/g,c=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,l,u,d){var s=n+e.length,p=l.length,m=c;return u!==undefined&&(u=o(u),m=i),a.call(d,m,(function(o,a){var i;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(s);case"<":i=u[a.slice(1,-1)];break;default:var c=+a;if(0===c)return o;if(c>p){var d=r(c/10);return 0===d?o:d<=p?l[d-1]===undefined?a.charAt(1):l[d-1]+a.charAt(1):o}i=l[c-1]}return i===undefined?"":i}))}},29071:function(e,t,n){"use strict";var o=function(e){return e&&e.Math==Math&&e};e.exports=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},83122:function(e,t,n){"use strict";var o=n(45009),r={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,t){return r.call(o(e),t)}},18609:function(e){"use strict";e.exports={}},40753:function(e,t,n){"use strict";var o=n(29071);e.exports=function(e,t){var n=o.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},21929:function(e,t,n){"use strict";var o=n(54883);e.exports=o("document","documentElement")},72825:function(e,t,n){"use strict";var o=n(54408),r=n(46203),a=n(939);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},33830:function(e){"use strict";var t=Math.abs,n=Math.pow,o=Math.floor,r=Math.log,a=Math.LN2;e.exports={pack:function(e,i,c){var l,u,d,s=new Array(c),p=8*c-i-1,m=(1<>1,h=23===i?n(2,-24)-n(2,-77):0,C=e<0||0===e&&1/e<0?1:0,g=0;for((e=t(e))!=e||e===Infinity?(u=e!=e?1:0,l=m):(l=o(r(e)/a),e*(d=n(2,-l))<1&&(l--,d*=2),(e+=l+f>=1?h/d:h*n(2,1-f))*d>=2&&(l++,d/=2),l+f>=m?(u=0,l=m):l+f>=1?(u=(e*d-1)*n(2,i),l+=f):(u=e*n(2,f-1)*n(2,i),l=0));i>=8;s[g++]=255&u,u/=256,i-=8);for(l=l<0;s[g++]=255&l,l/=256,p-=8);return s[--g]|=128*C,s},unpack:function(e,t){var o,r=e.length,a=8*r-t-1,i=(1<>1,l=a-7,u=r-1,d=e[u--],s=127&d;for(d>>=7;l>0;s=256*s+e[u],u--,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=t;l>0;o=256*o+e[u],u--,l-=8);if(0===s)s=1-c;else{if(s===i)return o?NaN:d?-Infinity:Infinity;o+=n(2,t),s-=c}return(d?-1:1)*o*n(2,s-t)}}},27371:function(e,t,n){"use strict";var o=n(46203),r=n(87684),a="".split;e.exports=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?a.call(e,""):Object(e)}:Object},50843:function(e,t,n){"use strict";var o=n(81662),r=n(99099);e.exports=function(e,t,n){var a,i;return r&&"function"==typeof(a=t.constructor)&&a!==n&&o(i=a.prototype)&&i!==n.prototype&&r(e,i),e}},69718:function(e,t,n){"use strict";var o=n(41537),r=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(e){return r.call(e)}),e.exports=o.inspectSource},88511:function(e,t,n){"use strict";var o=n(70850),r=n(18609),a=n(81662),i=n(83122),c=n(81965).f,l=n(6628),u=n(18118),d=n(58060),s=n(90452),p=!1,m=d("meta"),f=0,h=Object.isExtensible||function(){return!0},C=function(e){c(e,m,{value:{objectID:"O"+f++,weakData:{}}})},g=e.exports={enable:function(){g.enable=function(){},p=!0;var e=l.f,t=[].splice,n={};n[m]=1,e(n).length&&(l.f=function(n){for(var o=e(n),r=0,a=o.length;rp;p++)if((f=_(e[p]))&&f instanceof u)return f;return new u(!1)}d=s.call(e)}for(h=d.next;!(C=h.call(d)).done;){try{f=_(C.value)}catch(w){throw l(d),w}if("object"==typeof f&&f&&f instanceof u)return f}return new u(!1)}},151:function(e,t,n){"use strict";var o=n(90155);e.exports=function(e){var t=e["return"];if(t!==undefined)return o(t.call(e)).value}},53637:function(e,t,n){"use strict";var o,r,a,i=n(46203),c=n(87263),l=n(95479),u=n(83122),d=n(20839),s=n(80591),p=d("iterator"),m=!1;[].keys&&("next"in(a=[].keys())?(r=c(c(a)))!==Object.prototype&&(o=r):m=!0);var f=o==undefined||i((function(){var e={};return o[p].call(e)!==e}));f&&(o={}),s&&!f||u(o,p)||l(o,p,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:m}},63913:function(e){"use strict";e.exports={}},49294:function(e){"use strict";var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||t(10)<22025.465794806718||-2e-17!=t(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:n(e)-1}:t},23965:function(e,t,n){"use strict";var o=n(84250),r=Math.abs,a=Math.pow,i=a(2,-52),c=a(2,-23),l=a(2,127)*(2-c),u=a(2,-126);e.exports=Math.fround||function(e){var t,n,a=r(e),d=o(e);return al||n!=n?d*Infinity:d*n}},82544:function(e){"use strict";var t=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:t(1+e)}},84250:function(e){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},83639:function(e,t,n){"use strict";var o,r,a,i,c,l,u,d,s=n(29071),p=n(77415).f,m=n(37189).set,f=n(33459),h=n(10064),C=n(45521),g=n(12396),b=s.MutationObserver||s.WebKitMutationObserver,v=s.document,N=s.process,V=s.Promise,y=p(s,"queueMicrotask"),_=y&&y.value;_||(o=function(){var e,t;for(g&&(e=N.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?i():a=undefined,n}}a=undefined,e&&e.enter()},f||g||C||!b||!v?!h&&V&&V.resolve?((u=V.resolve(undefined)).constructor=V,d=u.then,i=function(){d.call(u,o)}):i=g?function(){N.nextTick(o)}:function(){m.call(s,o)}:(c=!0,l=v.createTextNode(""),new b(o).observe(l,{characterData:!0}),i=function(){l.data=c=!c})),e.exports=_||function(e){var t={fn:e,next:undefined};a&&(a.next=t),r||(r=t,i()),a=t}},86514:function(e,t,n){"use strict";var o=n(29071);e.exports=o.Promise},82156:function(e,t,n){"use strict";var o=n(95336),r=n(46203);e.exports=!!Object.getOwnPropertySymbols&&!r((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},63059:function(e,t,n){"use strict";var o=n(29071),r=n(69718),a=o.WeakMap;e.exports="function"==typeof a&&/native code/.test(r(a))},24735:function(e,t,n){"use strict";var o=n(52726),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},2019:function(e,t,n){"use strict";var o=n(94384);e.exports=function(e){if(o(e))throw TypeError("The method doesn't accept regular expressions");return e}},19548:function(e,t,n){"use strict";var o=n(29071).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&o(e)}},14236:function(e,t,n){"use strict";var o=n(29071),r=n(1435),a=n(8182).trim,i=n(89384),c=o.parseFloat,l=1/c(i+"-0")!=-Infinity;e.exports=l?function(e){var t=a(r(e)),n=c(t);return 0===n&&"-"==t.charAt(0)?-0:n}:c},40731:function(e,t,n){"use strict";var o=n(29071),r=n(1435),a=n(8182).trim,i=n(89384),c=o.parseInt,l=/^[+-]?0[Xx]/,u=8!==c(i+"08")||22!==c(i+"0x16");e.exports=u?function(e,t){var n=a(r(e));return c(n,t>>>0||(l.test(n)?16:10))}:c},81217:function(e,t,n){"use strict";var o=n(54408),r=n(46203),a=n(45044),i=n(37881),c=n(96177),l=n(45009),u=n(27371),d=Object.assign,s=Object.defineProperty;e.exports=!d||r((function(){if(o&&1!==d({b:1},d(s({},"a",{enumerable:!0,get:function(){s(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=d({},e)[n]||a(d({},t)).join("")!=r}))?function(e,t){for(var n=l(e),r=arguments.length,d=1,s=i.f,p=c.f;r>d;)for(var m,f=u(arguments[d++]),h=s?a(f).concat(s(f)):a(f),C=h.length,g=0;C>g;)m=h[g++],o&&!p.call(f,m)||(n[m]=f[m]);return n}:d},49500:function(e,t,n){"use strict";var o,r=n(90155),a=n(61685),i=n(17195),c=n(18609),l=n(21929),u=n(939),d=n(15595),s=d("IE_PROTO"),p=function(){},m=function(e){return"