@elite-dangerous-almanac/core 0.2.10 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PROVENANCE/astro/SOURCES.md +18 -0
- package/PROVENANCE/commodities/SOURCES.md +2 -1
- package/PROVENANCE/i18n/SOURCES.md +66 -2
- package/PROVENANCE/ships/SOURCES.md +58 -51
- package/README.md +7 -5
- package/THIRD_PARTY_NOTICES.md +2 -1
- package/dist/astro/codex-region-lookup.js +1 -1
- package/dist/astro/codex-region.d.ts +5 -1
- package/dist/astro/codex-region.js +1 -1
- package/dist/astro/index.js +1 -1
- package/dist/chunk-25EECUZ2.js +1 -0
- package/dist/chunk-25EECUZ2.js.map +1 -0
- package/dist/chunk-36I5QLTL.js +1 -0
- package/dist/chunk-36I5QLTL.js.map +1 -0
- package/dist/{chunk-2TY42PTF.js → chunk-6MQOPQAA.js} +1 -1
- package/dist/{chunk-X3MXPE7G.js → chunk-7UF4XRIR.js} +1 -1
- package/dist/{chunk-K5JK3XQB.js → chunk-ARG6ESYB.js} +1 -1
- package/dist/{chunk-K5JK3XQB.js.map → chunk-ARG6ESYB.js.map} +1 -1
- package/dist/{chunk-ADLVPKUV.js → chunk-ATD32GCX.js} +1 -1
- package/dist/{chunk-ADLVPKUV.js.map → chunk-ATD32GCX.js.map} +1 -1
- package/dist/chunk-BUQLUEQS.js +1 -0
- package/dist/chunk-BUQLUEQS.js.map +1 -0
- package/dist/{chunk-SFEQXUIA.js → chunk-CCJPWDMA.js} +1 -1
- package/dist/{chunk-5VWACBTN.js → chunk-DBJKLXLS.js} +1 -1
- package/dist/{chunk-5VWACBTN.js.map → chunk-DBJKLXLS.js.map} +1 -1
- package/dist/{chunk-G7WARJ3X.js → chunk-DEY44PHF.js} +1 -1
- package/dist/chunk-DEY44PHF.js.map +1 -0
- package/dist/chunk-EXHZ4CFB.js +1 -0
- package/dist/{chunk-AUBV6S7V.js.map → chunk-EXHZ4CFB.js.map} +1 -1
- package/dist/chunk-FRG7MKSJ.js +1 -0
- package/dist/{chunk-T7IQHFQ2.js.map → chunk-FRG7MKSJ.js.map} +1 -1
- package/dist/chunk-KLC5XT6F.js +1 -0
- package/dist/chunk-KLC5XT6F.js.map +1 -0
- package/dist/chunk-KR664YI3.js +1 -0
- package/dist/{chunk-UI5RROGI.js.map → chunk-KR664YI3.js.map} +1 -1
- package/dist/{chunk-Q647OXON.js → chunk-LOWKWUNS.js} +1 -1
- package/dist/{chunk-Q647OXON.js.map → chunk-LOWKWUNS.js.map} +1 -1
- package/dist/chunk-O4NIJDL4.js +1 -0
- package/dist/chunk-O4NIJDL4.js.map +1 -0
- package/dist/{chunk-C3YZ5KTA.js → chunk-P6HCQ2YE.js} +1 -1
- package/dist/chunk-P6HCQ2YE.js.map +1 -0
- package/dist/chunk-WDAYRHXR.js +1 -0
- package/dist/{chunk-AYAKU4YA.js.map → chunk-WDAYRHXR.js.map} +1 -1
- package/dist/commodities/commodities-all.js +1 -1
- package/dist/commodities/commodities-standard.d.ts +1 -1
- package/dist/commodities/commodities-standard.js +1 -1
- package/dist/commodities/commodities.js +1 -1
- package/dist/commodities/index.js +1 -1
- package/dist/equipment/index.d.ts +7 -0
- package/dist/equipment/index.js +1 -1
- package/dist/equipment/suit-loadout.d.ts +284 -0
- package/dist/equipment/suit-loadout.js +1 -0
- package/dist/equipment/suit-loadout.js.map +1 -0
- package/dist/i18n/blueprints.js +1 -1
- package/dist/i18n/codex-regions.d.ts +33 -0
- package/dist/i18n/codex-regions.js +1 -0
- package/dist/i18n/codex-regions.js.map +1 -0
- package/dist/i18n/index.d.ts +10 -8
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/pre-engineered.d.ts +4 -0
- package/dist/i18n/pre-engineered.js +1 -1
- package/dist/materials/index.js +1 -1
- package/dist/materials/micro-resources-all.js +1 -1
- package/dist/materials/micro-resources.js +1 -1
- package/dist/ships/blueprint-costs.js +1 -1
- package/dist/ships/blueprints.d.ts +1 -2
- package/dist/ships/blueprints.js +1 -1
- package/dist/ships/build-metrics.js +1 -1
- package/dist/ships/index.js +1 -1
- package/dist/ships/pre-engineered-stats.d.ts +5 -9
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/pre-engineered.d.ts +12 -6
- package/dist/ships/pre-engineered.js +1 -1
- package/dist/ships/shields.d.ts +4 -1
- package/dist/ships/shields.js +1 -1
- package/dist/ships/ship-loadout.d.ts +21 -19
- package/dist/ships/ship-loadout.js +1 -1
- package/package.json +14 -5
- package/dist/chunk-AUBV6S7V.js +0 -1
- package/dist/chunk-AYAKU4YA.js +0 -1
- package/dist/chunk-C3YZ5KTA.js.map +0 -1
- package/dist/chunk-G7WARJ3X.js.map +0 -1
- package/dist/chunk-GVNTKCVF.js +0 -1
- package/dist/chunk-GVNTKCVF.js.map +0 -1
- package/dist/chunk-HIJR7DOC.js +0 -1
- package/dist/chunk-HIJR7DOC.js.map +0 -1
- package/dist/chunk-T7IQHFQ2.js +0 -1
- package/dist/chunk-UI5RROGI.js +0 -1
- package/dist/chunk-ZBUTGTZ3.js +0 -1
- package/dist/chunk-ZBUTGTZ3.js.map +0 -1
- /package/dist/{chunk-2TY42PTF.js.map → chunk-6MQOPQAA.js.map} +0 -0
- /package/dist/{chunk-X3MXPE7G.js.map → chunk-7UF4XRIR.js.map} +0 -0
- /package/dist/{chunk-SFEQXUIA.js.map → chunk-CCJPWDMA.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getLocalizedName,createLocalizedNameIndex}from"./chunk-RVIYOHYF.js";var blueprint_names_default={AbrasionBlaster_FarReaching:{en:"Abrasion Blaster — Far-reaching",de:"Abrasionsblaster mit großer Reichweite",es:"Destructor de abrasión de largo alcance",fr:"Surfaceur abrasif longue portée",pt:"Detonador de abrasão de longo alcance",ru:"Абразивный бластер с увеличенной дальностью"},AFM_Shielded:{en:"Shielded",de:"Div. Schildverstärkt",es:"Blindado misceláneo",fr:"Divers - protection",pt:"Qualquer Protegido",ru:"Защищенное прочее"},Armour_Advanced:{en:"Lightweight",de:"Leichte Panzerung",es:"Blindaje ligero",fr:"Blindage léger",pt:"Blindagem Leve",ru:"Броня из легких сплавов"},Armour_Explosive:{en:"Blast resistant",de:"Detonationsresistente Panzerung",es:"Blindaje resistente a explosiones",fr:"Blindage anti-explosions",pt:"Blindagem de resistência a Explosões",ru:"Взрывостойкая обшивка"},Armour_HeavyDuty:{en:"Heavy duty",de:"Schwere Panzerung",es:"Blindaje de alta resistencia",fr:"Blindage lourd",pt:"Blindagem Pesada",ru:"Толстая броня"},Armour_Kinetic:{en:"Kinetic resistant",de:"Kinetikresistente Panzerung",es:"Blindaje de resistencia cinética",fr:"Blindage anti-cinétique",pt:"Blindagem de Resistência Cinética",ru:"Противокинетическая броня"},Armour_Thermic:{en:"Thermal resistant",de:"Thermalresistente Panzerung",es:"Blindaje de resistencia térmica",fr:"Blindage antithermique",pt:"Blindagem de Resistência Térmica",ru:"Термостойкая броня"},BeamLaser_Overloaded:{en:"Beam Laser — Overloaded",de:"Überladener Strahlenlaser",es:"Láser de rayo sobrecargado",fr:"Rayon laser surchargé",pt:"Laser contínuo sobrecarregado",ru:"Разогнанный пучковый лазер"},BeamLaser_ThermalPlasmaConversion:{en:"Plasma conversion",de:"Plasmaumwandlung",es:"Conversión de plasma",fr:"Conversion de plasma",pt:"Conversão de plasma",ru:"Преобразование в плазму"},BurstLaser_Regenerative:{en:"Burst Laser — Regenerative",de:"Regenerativer Salvenlaser",es:"Láser de ráfagas regenerativo",fr:"Laser à rafale régénératif",pt:"Laser de rajada regenerativo",ru:"Регенеративный пульсирующий лазер"},BurstLaser_ThermalPlasmaConversion:{en:"Plasma conversion",de:"Plasmaumwandlung",es:"Conversión de plasma",fr:"Conversion de plasma",pt:"Conversão de plasma",ru:"Преобразование в плазму"},Cannon_ForceImpact:{en:"Cannon — Force impact",de:"Krafteinschlagkanone",es:"Cañón de impacto potente",fr:"Canon à impact de force",pt:"Canhão de impacto de força",ru:"Орудие силового воздействия"},CargoRack_IncreasedCapacity:{en:"Expanded Cargo Rack",de:"Erweitertes Frachtgestell",es:"Bodega de carga expandida",fr:"Compartiment de soute étendu",pt:"Estante de carga estendida",ru:"Большой грузовой стеллаж"},CargoRackS5C1_Extended:{en:"Cargo Rack — Extended",de:"Erweitertes Frachtgestell",es:"Bodega de carga extendida",fr:"Compartiment soute agrandi",pt:"Estante de carga estendido",ru:"Увеличенный грузовой стеллаж"},CargoRackS6C1_Extended:{en:"Cargo Rack — Extended",de:"Erweitertes Frachtgestell",es:"Bodega de carga extendida",fr:"Compartiment soute agrandi",pt:"Estante de carga estendido",ru:"Увеличенный грузовой стеллаж"},CollectionLimpet_LightWeight:{en:"Lightweight",de:"Div. Leichtgewicht",es:"Ligero misceláneo",fr:"Divers - allégement",pt:"Qualquer Leve",ru:"Облегченное прочее"},CollectionLimpet_Reinforced:{en:"Reinforced",de:"Div. Verstärkt",es:"Reforzado misceláneo",fr:"Divers - renforcement",pt:"Qualquer Reforçado",ru:"Усиленное прочее"},CollectionLimpet_Shielded:{en:"Shielded",de:"Div. Schildverstärkt",es:"Blindado misceláneo",fr:"Divers - protection",pt:"Qualquer Protegido",ru:"Защищенное прочее"},DetailedSurfaceScanner_LongRange:{en:"Detailed Surface Scanner — Long range detailed",de:"Ferndistanz-Detail-Oberflächenscanner",es:"Escáner de análisis de superficie detallado de largo alcance",fr:"Détecteur de surface détaillé longue portée",pt:"Scanner de superfície detalhada de Longo Alcance",ru:"Подробный сканер поверхностей с увеличенной дальностью"},Engine_Dirty:{en:"Dirty",de:"Aggressives Antriebstuning",es:"Modificación de motor sucio",fr:"Optimisation de réacteur détériorante",pt:"Ajuste de Motor Sujo",ru:"«Грязная» донастройка двигателя"},Engine_Reinforced:{en:"Reinforced",de:"Antriebsstärkung",es:"Fortalecimiento de motor",fr:"Renforcement du réacteur",pt:"Reforçamento do Motor",ru:"Усиление двигателя"},Engine_Tuned:{en:"Clean",de:"Ausgewogenes Antriebstuning",es:"Modificación de motor limpio",fr:"Optimisation de réacteur propre",pt:"Ajuste de Motor Limpo",ru:"«Чистая» донастройка двигателя"},EnzymeMissileRack_HighYield:{en:"Enzyme Missile Rack — High-yield",de:"Enzymraketenrampe mit hohen Erträgen",es:"Lanzamisiles de enzimas de alto rendimiento",fr:"Batterie de missiles enzymatiques à hauts rendements",pt:"Estante de mísseis enzimáticos de alta potência",ru:"Блок энзимных ракет высокой мощности"},FragmentCannonLarge_DoubleScreaming:{en:"Fragment Cannon — Double screaming",de:"Doppelschrei-Splitterkanone",es:"Cañón de fragmentación doble con proyectil de pantalla",fr:"Double canon à fragmentation Screaming",pt:"Canhão de fragmentos duplo de barragem",ru:"Залповое орудие «Двойной вой»"},FragmentCannonSmall_DoubleScreaming:{en:"Fragment Cannon — Double screaming",de:"Doppelschrei-Splitterkanone",es:"Cañón de fragmentación doble con proyectil de pantalla",fr:"Double canon à fragmentation Screaming",pt:"Canhão de fragmentos duplo de barragem",ru:"Залповое орудие «Двойной вой»"},FSD_FastBoot:{en:"Faster boot sequence",de:"Schnellere FSA-Ladesequenz",es:"Secuencia de inicio de MDD rápida",fr:"Démarrage accéléré du réacteur FSD",pt:"Sequência de Inicialização do MDD Mais Rápida",ru:"Последовательность быстрого запуска FSD"},FSD_LongRange:{en:"Increased range",de:"Erhöhte FSA-Reichweite",es:"Aumento de alcance de MDD",fr:"Portée FSD améliorée",pt:"Alcance do MDD Aumentado",ru:"Увеличенная дальность FSD"},FSD_Shielded:{en:"Shielded",de:"Abgeschirmter FSA",es:"MDD blindado",fr:"FSD protégé",pt:"MDD Protegido",ru:"Защищенный FSD"},FSDinterdictor_Expanded:{en:"Expanded capture arc",de:"Erw. Abfangkreisbogen für FSA-Unterbrecher",es:"Arco de captura de interdictor de MDD extendido",fr:"Intercepteur FSD à angle de capture augmenté",pt:"Arco de Captura do Interditor de MDD Expandido",ru:"Перехватчик FSD с расширенной дугой захвата"},FSDinterdictor_LongRange:{en:"Long range",de:"Ferndistanz-FSA-Unterbrecher",es:"Interdictor de MDD de largo alcance",fr:"Intercepteur FSD longue portée",pt:"Interditor de MDD de Longo Alcance",ru:"Перехватчик FSD большой дальности"},FuelScoop_Efficiency:{en:"Fuel Scoop — Scoop rate enhanced",de:"Erweiterte Sammelrate",es:"Velocidad de recarga mejorada",fr:"Taux de récupération amélioré",pt:"Taxa da coleta aprimorada",ru:"Улучшенная интенсивность забора"},FuelScoop_Shielded:{en:"Shielded",de:"Treibstoffsammler mit Schild",es:"Recolector de combustible blindado",fr:"Récupérateur de carburant protégé",pt:"Coletor de Combustível Protegido",ru:"Защищенный топливозаборник"},FuelTransferLimpet_LightWeight:{en:"Lightweight",de:"Div. Leichtgewicht",es:"Ligero misceláneo",fr:"Divers - allégement",pt:"Qualquer Leve",ru:"Облегченное прочее"},FuelTransferLimpet_Reinforced:{en:"Reinforced",de:"Div. Verstärkt",es:"Reforzado misceláneo",fr:"Divers - renforcement",pt:"Qualquer Reforçado",ru:"Усиленное прочее"},FuelTransferLimpet_Shielded:{en:"Shielded",de:"Div. Schildverstärkt",es:"Blindado misceláneo",fr:"Divers - protection",pt:"Qualquer Protegido",ru:"Защищенное прочее"},GuardianModule_Sturdy:{en:"Anti-Guardian Zone Resistance",de:"Anti-Guardian-Zone-Widerstand",es:"Zona de resistencia antiguardián",fr:"Résistance à la zone anti-Guardian",pt:"Resistência à área anti-Guardian",ru:"Защита от отключающего поля"},HatchBreakerLimpet_LightWeight:{en:"Lightweight",de:"Div. Leichtgewicht",es:"Ligero misceláneo",fr:"Divers - allégement",pt:"Qualquer Leve",ru:"Облегченное прочее"},HatchBreakerLimpet_Reinforced:{en:"Reinforced",de:"Div. Verstärkt",es:"Reforzado misceláneo",fr:"Divers - renforcement",pt:"Qualquer Reforçado",ru:"Усиленное прочее"},HatchBreakerLimpet_Shielded:{en:"Shielded",de:"Div. Schildverstärkt",es:"Blindado misceláneo",fr:"Divers - protection",pt:"Qualquer Protegido",ru:"Защищенное прочее"},HullReinforcement_Advanced:{en:"Lightweight",de:"Leichtgewicht-Rumpfhüllenverstärkung",es:"Refuerzo estructural aligerado",fr:"Renforcement de coque ultraléger",pt:"Reforço de Casco Leve",ru:"Легкое усиление корпуса"},HullReinforcement_Explosive:{en:"Blast resistant",de:"Detonationsresistente Rumpfhüllenverstärkung",es:"Refuerzo estruct. de resistencia explo.",fr:"Renforcement de coque anti-explosions",pt:"Reforço de Casco de resistência a Explosões",ru:"Взрывостойкое усиление корпуса"},HullReinforcement_HeavyDuty:{en:"Heavy duty",de:"Schwere Rumpfhüllenverstärkung",es:"Refuerzo estructural de alta resistencia",fr:"Renforcement de coque lourd",pt:"Reforço de Casco Pesado",ru:"Надежное усиление корпуса"},HullReinforcement_Kinetic:{en:"Kinetic resistant",de:"Kinetikresistente Rumpfhüllenverstärkung",es:"Refuerzo estructural de resistencia cinética",fr:"Renforcement de coque anti-cinétique",pt:"Reforço de Casco de Resistência Cinética",ru:"Противокинетическое усиление корпуса"},HullReinforcement_Thermic:{en:"Thermal resistant",de:"Thermalresistente Rumpfhüllenverstärkung",es:"Refuerzo estructural de resistencia térmica",fr:"Renforcement de coque antithermique",pt:"Reforço de Casco de Resistência Térmica",ru:"Термостойкое усиление корпуса"},LifeSupport_LightWeight:{en:"Lightweight",de:"Leichtes Lebenserhaltungssystem",es:"Soporte vital ligero",fr:"Systèmes de survie allégés",pt:"Suporte de vida leve",ru:"Облегченная система жизнеобеспечения"},LifeSupport_Reinforced:{en:"Reinforced",de:"Verstärktes Lebenserhaltungssystem",es:"Soporte vital reforzado",fr:"Systèmes de survie renforcés",pt:"Suporte de vida reforçado",ru:"Усиленная система жизнеобеспечения"},LifeSupport_Shielded:{en:"Shielded",de:"Lebenserhaltungssystem mit Schild",es:"Soporte vital blindado",fr:"Systèmes de survie protégés",pt:"Suporte de vida protegido",ru:"Защищенная система жизнеобеспечения"},MC_Overcharged:{en:"Overcharged",de:"Überladungswaffe",es:"Arma sobrecargada",fr:"Arme surchargée",pt:"Arma Sobrecarregada",ru:"Усиленное орудие"},MiningLaser_LongRange:{en:"Mining Laser — Long range",de:"Ferndistanz-Abbaulaser",es:"Láser de minería de largo alcance",fr:"Laser minier longue portée",pt:"Laser de mineração de longo alcance",ru:"Проходочный лазер с увеличенной дальностью"},Misc_ChaffCapacity:{en:"Ammo capacity",de:"Düppel-Munitionskapazität",es:"Capacidad de munición de señuelos",fr:"Capacité du chargeur du lanceur de paillettes",pt:"Capacidade de Munição de Chaff",ru:"Вместимость припасов дипольного отражателя"},Misc_HeatSinkCapacity:{en:"Ammo capacity",de:"Kühlkörper-Munitionskapazität",es:"Capacidad de munición de eyector de calor",fr:"Capacité du chargeur de l'éjecteur de dissipateur thermique",pt:"Capacidade de Munição de Dissipador Térmico",ru:"Вместимость припасов теплоотвода"},Misc_LightWeight:{en:"Lightweight",de:"Div. Leichtgewicht",es:"Ligero misceláneo",fr:"Divers - allégement",pt:"Qualquer Leve",ru:"Облегченное прочее"},Misc_PointDefenseCapacity:{en:"Ammo capacity",de:"Punktverteidigung-Munitionskapazität",es:"Capacidad de munición de defensa de punto",fr:"Capacité du chargeur de la défense ponctuelle",pt:"Capacidade de Munição de Defesa de Ponto",ru:"Вместимость припасов точечной обороны"},Misc_Reinforced:{en:"Reinforced",de:"Div. Verstärkt",es:"Reforzado misceláneo",fr:"Divers - renforcement",pt:"Qualquer Reforçado",ru:"Усиленное прочее"},Misc_Shielded:{en:"Shielded",de:"Div. Schildverstärkt",es:"Blindado misceláneo",fr:"Divers - protection",pt:"Qualquer Protegido",ru:"Защищенное прочее"},ModuleReinforcement_HeavyDuty:{en:"Module Reinforcement Package — Heavy duty",de:"Schwere Modulverstärkung (Paket)",es:"Paquete de refuerzo de módulo de alta resistencia",fr:"Pack de renforcement de modules lourds",pt:"Pacote de Reforço de módulo Pesado",ru:"Укрепленный набор для усиления модуля"},MultiCannon_Rapid:{en:"Multi-cannon — Rapid phase",de:"Schnellfeuer-Mehrfachgeschütz",es:"Multicañón de fase con disparo rápido",fr:"Multi-canon à phase rapide",pt:"Canhão de repetição de tiro rápido",ru:"Скорострельное фазовое многоствольное орудие"},PowerDistributor_Balanced:{en:"Power Distributor — Balanced",de:"Abgeglichener Energieverteiler",es:"Distribuidor de energía equilibrado",fr:"Répartiteur de puissance équilibré",pt:"Distribuidor de energia equilibrado",ru:"Сбалансированный распределитель энергии"},PowerDistributor_HighCapacity:{en:"High charge capacity",de:"Hochleistungsfähiger Energieverteiler",es:"Distribuidor de energía de alta capacidad de carga",fr:"Répartiteur de puissance à capacité accrue",pt:"Distribuidor de Energia de Alta Capacidade",ru:"Высокоемкий распределитель питания"},PowerDistributor_HighFrequency:{en:"Charge enhanced",de:"Ladungsoptimierter Energieverteiler",es:"Distribuidor de energía de carga mejorada",fr:"Répartiteur de puissance rapide",pt:"Distribuidor de Energia de Recarga Melhorada",ru:"Быстрозаряжающийся распределитель питания"},PowerDistributor_PriorityEngines:{en:"Engine focused",de:"Antriebsfokussierter Energieverteiler",es:"Distribuidor de energía orientado a motor",fr:"Répartiteur de puissance optimisé Moteur",pt:"Distribuidor de Energia com Foco nos Motores",ru:"Распределитель питания на двигатель"},PowerDistributor_PrioritySystems:{en:"System focused",de:"Systemfokussierter Energieverteiler",es:"Distribuidor de energía orientado a sistemas",fr:"Répartiteur de puissance optimisé Systèmes",pt:"Distribuidor de Energia com Foco nos Sistemas",ru:"Распределитель питания на систему"},PowerDistributor_PriorityWeapons:{en:"Weapon focused",de:"Waffenfokussierter Energieverteiler",es:"Distribuidor de energía orientado a armas",fr:"Répartiteur de puissance optimisé Armes",pt:"Distribuidor de Energia com Foco nas Armas",ru:"Распределитель питания на орудия"},PowerDistributor_Shielded:{en:"Shielded",de:"Abgeschirmter Energieverteiler",es:"Distribuidor de energía blindado",fr:"Répartiteur de puissance protégé",pt:"Distribuidor de Energia Protegido",ru:"Защищенный распределитель питания"},PowerDistributorS3C2_SupportFocused:{en:"Power Distributor — Support focused",de:"Unterstützungsfokussierter Energieverteiler",es:"Distribuidor de energía orientado al apoyo",fr:"Répartiteur de puissance optimisé Survie",pt:"Distribuidor de energia com foco no suporte",ru:"Вспомогательный распределитель питания"},PowerDistributorS3C5_SupportFocused:{en:"Power Distributor — Support focused",de:"Unterstützungsfokussierter Energieverteiler",es:"Distribuidor de energía orientado al apoyo",fr:"Répartiteur de puissance optimisé Survie",pt:"Distribuidor de energia com foco no suporte",ru:"Вспомогательный распределитель питания"},PowerDistributorS4C2_SupportFocused:{en:"Power Distributor — Support focused",de:"Unterstützungsfokussierter Energieverteiler",es:"Distribuidor de energía orientado al apoyo",fr:"Répartiteur de puissance optimisé Survie",pt:"Distribuidor de energia com foco no suporte",ru:"Вспомогательный распределитель питания"},PowerDistributorS4C5_SupportFocused:{en:"Power Distributor — Support focused",de:"Unterstützungsfokussierter Energieverteiler",es:"Distribuidor de energía orientado al apoyo",fr:"Répartiteur de puissance optimisé Survie",pt:"Distribuidor de energia com foco no suporte",ru:"Вспомогательный распределитель питания"},PowerDistributorS6C5_SupportFocused:{en:"Power Distributor — Support focused",de:"Unterstützungsfokussierter Energieverteiler",es:"Distribuidor de energía orientado al apoyo",fr:"Répartiteur de puissance optimisé Survie",pt:"Distribuidor de energia com foco no suporte",ru:"Вспомогательный распределитель питания"},PowerPlant_Armoured:{en:"Armoured",de:"Kraftwerkpanzerung",es:"Núcleo de energía blindado",fr:"Générateur blindé",pt:"Gerador de Energia Blindado",ru:"Бронированная силовая установка"},PowerPlant_Boosted:{en:"Overcharged",de:"Kraftwerksüberladung",es:"Núcleo de energía sobrecargado",fr:"Générateur surchargé",pt:"Gerador de Energia Sobrecarregado",ru:"Усиленная силовая установка"},PowerPlant_Stealth:{en:"Low emissions",de:"Emissionsoptimiertes Kraftwerk",es:"Núcleo de energía de bajas emisiones",fr:"Générateur à faibles émissions",pt:"Gerador de Energia de Baixa Emissão",ru:"Силовая установка с малым излучением"},ProspectingLimpet_LightWeight:{en:"Lightweight",de:"Div. Leichtgewicht",es:"Ligero misceláneo",fr:"Divers - allégement",pt:"Qualquer Leve",ru:"Облегченное прочее"},ProspectingLimpet_Reinforced:{en:"Reinforced",de:"Div. Verstärkt",es:"Reforzado misceláneo",fr:"Divers - renforcement",pt:"Qualquer Reforçado",ru:"Усиленное прочее"},ProspectingLimpet_Shielded:{en:"Shielded",de:"Div. Schildverstärkt",es:"Blindado misceláneo",fr:"Divers - protection",pt:"Qualquer Protegido",ru:"Защищенное прочее"},PulseLaser_ThermalPlasmaConversion:{en:"Plasma conversion",de:"Plasmaumwandlung",es:"Conversión de plasma",fr:"Conversion de plasma",pt:"Conversão de plasma",ru:"Преобразование в плазму"},RailGun_LongShot:{en:"Rail Gun — Enduring feedback",de:"Robuste Feedback-Schienenkanone",es:"Cañón de riel Retroalimentación Soportable",fr:"Canon électrique énergétique résistant",pt:"Canhão elétrico de feedback duradouro",ru:"Электромагнитная пушка с постоянным откликом"},Refineries_Shielded:{en:"Shielded",de:"Div. Schildverstärkt",es:"Blindado misceláneo",fr:"Divers - protection",pt:"Qualquer Protegido",ru:"Защищенное прочее"},Scanner_LongRange:{en:"Long range",de:"Ferndistanzscanner",es:"Escáner de largo alcance",fr:"Détecteur à longue portée",pt:"Scanner de longa distância",ru:"Сканер дальнего действия"},Scanner_WideAngle:{en:"Wide angle",de:"Weitwinkelscanner",es:"Escáner de estelas de ángulo amplio",fr:"Détecteur grand-angle",pt:"Scanner de Ângulo Amplo",ru:"Широкоугольный сканер"},SeekerMissileRack_Drag:{en:"Seeker Missile Rack — Drag",de:"Suchraketenrampe ziehen",es:"Lanzamisiles guiado con lastre",fr:"Batterie de missiles TC à inertie",pt:"Estante de míssil guiado de arrasto",ru:"Блок ракет с самонаведением и замедляющими боеприпасами"},SeekerMissileRack_LightWeightThermal:{en:"Seeker Missile Rack — Lightweight thermal",de:"Leichte thermische Suchraketenrampe",es:"Lanzamisiles guiado térmico ligero",fr:"Batterie de missiles TC thermiques légers",pt:"Estante de míssil guiado leve",ru:"Легкий блок тепловых ракет с самонаведением"},SeekerMissileRackLarge_ExposingMissiles:{en:"Seeker Missile Rack — Exposing missiles",de:"Enttarnungsraketen",es:"Misiles reveladores",fr:"Missiles exposés",pt:"Misseis de exposição",ru:"Ракеты обнаружения"},SeekerMissileRackLarge_Lockdown:{en:"Seeker Missile Rack — Lockdown",de:"Abriegelung-Suchraketenrampe",es:"Lanzamisiles guiado con bloqueo",fr:"Batterie de missiles TC à verrouillage",pt:"Estante de míssil guiado de precisão",ru:"Блок ракет с самонаведением и блокировкой"},SeekerMissileRackMedium_Lockdown:{en:"Seeker Missile Rack — Lockdown",de:"Abriegelung-Suchraketenrampe",es:"Lanzamisiles guiado con bloqueo",fr:"Batterie de missiles TC à verrouillage",pt:"Estante de míssil guiado de precisão",ru:"Блок ракет с самонаведением и блокировкой"},Sensor_Expanded:{en:"Expanded Probe Scanning Radius",de:"Erweiterter Sonden-Scanradius",es:"Radio de escaneo de sonda ampliado",fr:"Rayon d'analyse de sonde augmenté",pt:"Expansão do raio de escaneamento da sonda",ru:"Увеличение радиуса сканирования зондов"},Sensor_FastScan:{en:"Fast scan",de:"Schnellscanner",es:"Escáner rápido",fr:"Détecteur analyse rapide",pt:"Scanner Rápido",ru:"Быстрый сканер"},Sensor_LightWeight:{en:"Lightweight",de:"Leichter Scanner",es:"Escáner ligero",fr:"Détecteur allégé",pt:"Scanner Leve",ru:"Облегченный сканер"},Sensor_LongRange:{en:"Long range",de:"Ferndistanzscanner",es:"Escáner de largo alcance",fr:"Détecteur à longue portée",pt:"Scanner de longa distância",ru:"Сканер дальнего действия"},Sensor_WideAngle:{en:"Wide angle",de:"Weitwinkelscanner",es:"Escáner de estelas de ángulo amplio",fr:"Détecteur grand-angle",pt:"Scanner de Ângulo Amplo",ru:"Широкоугольный сканер"},ShieldBooster_Explosive:{en:"Blast resistant",de:"Detonationsresistenter Schild-Booster",es:"Potenciador de escudos de resistencia explosiva",fr:"Survolteur de bouclier anti-explosions",pt:"Potenciador de Escudo de resistência a Explosões",ru:"Взрывостойкий усилитель щита"},ShieldBooster_HeavyDuty:{en:"Heavy duty",de:"Schwerer Schild-Booster",es:"Potenciador de escudos de alta resistencia",fr:"Survolteur de bouclier lourd",pt:"Potenciador de escudo Pesado",ru:"Надежный усилитель щита"},ShieldBooster_Kinetic:{en:"Kinetic resistant",de:"Kinetikresistenter Schild-Booster",es:"Potenciador de escudos de resistencia cinética",fr:"Survolteur de bouclier anti-cinétique",pt:"Potenciador de Escudo de Resistência Cinética",ru:"Противокинетический усилитель щита"},ShieldBooster_Resistive:{en:"Resistance augmented",de:"Widerstandsverstärkter Schild-Booster",es:"Potenciador de escudos de resistencia aumentada",fr:"Survolteur de bouclier à résistance améliorée",pt:"Potenciador de Escudo com Resistência Aumentada",ru:"Усилитель щита с универсальной защитой"},ShieldBooster_Thermic:{en:"Thermal resistant",de:"Thermalresistenter Schild-Booster",es:"Potenciador de escudos de resistencia térmica",fr:"Survolteur de bouclier antithermique",pt:"Potenciador de Escudo de Resistência Térmica",ru:"Термостойкий усилитель щита"},ShieldCellBank_Rapid:{en:"Rapid charge",de:"Schnell aufladende Schildzellenbank",es:"Acumulador de células de escudo de recarga rápida",fr:"Réserve de cellules d'énergie à chargement rapide",pt:"Banco de Célula de Escudo de Carga Rápida",ru:"Щитонакопитель быстрой зарядки"},ShieldCellBank_Specialised:{en:"Specialised",de:"Spezielle Schildzellenbank",es:"Acumulador de células de escudo especializado",fr:"Réserve de cellules d'énergie spécialisées",pt:"Banco de Célula de Escudo Especializado",ru:"Адаптивный щитонакопитель"},ShieldGenerator_Kinetic:{en:"Kinetic resistant",de:"Kinetikresistente Schilde",es:"Escudos de resistencia cinética",fr:"Bouclier anti-cinétique",pt:"Escudos de Resistência Cinética",ru:"Противокинетические щиты"},ShieldGenerator_Optimised:{en:"Enhanced low power",de:"Verbesserte Niedrigenergieschilde",es:"Escudos mejorados de baja energía",fr:"Bouclier amélioré à consommation réduite",pt:"Escudos de Baixo Consumo, Aprimorados",ru:"Усиленные энергосберегающие щиты"},ShieldGenerator_Reinforced:{en:"Reinforced",de:"Verstärkte Schilde",es:"Escudos reforzados",fr:"Bouclier renforcé",pt:"Escudos Reforçados",ru:"Усиленные щиты"},ShieldGenerator_Thermic:{en:"Thermal resistant",de:"Thermalresistente Schilde",es:"Escudos de resistencia térmica",fr:"Bouclier antithermique",pt:"Escudos de Resistência Térmica",ru:"Термостойкие щиты"},Weapon_DoubleShot:{en:"Double shot",de:"Doppelschuss",es:"Doble disparo",fr:"Tir double",pt:"Tiro Duplo",ru:"Двойной выстрел"},Weapon_Efficient:{en:"Efficient",de:"Waffeneffizienz",es:"Arma eficiente",fr:"Arme efficace",pt:"Arma Eficiente",ru:"Эффективное орудие"},Weapon_Focused:{en:"Focused",de:"Waffenfokus",es:"Arma concentrada",fr:"Arme concentrée",pt:"Arma com Foco",ru:"Точное орудие"},Weapon_HighCapacity:{en:"High capacity",de:"Hochleistungsmagazin",es:"Cargador de alta capacidad",fr:"Chargeur grande capacité",pt:"Cartucho de Alta Capacidade",ru:"Вместительный магазин"},Weapon_LightWeight:{en:"Lightweight",de:"Leichtgewichtgeschütz",es:"Anclaje ligero",fr:"Support ultraléger",pt:"Encaixe Leve",ru:"Легкое крепление"},Weapon_LongRange:{en:"Long range",de:"Ferndistanzwaffe",es:"Arma de largo alcance",fr:"Arme à longue portée",pt:"Arma de longa distância",ru:"Дальнобойное орудие"},Weapon_Overcharged:{en:"Overcharged",de:"Überladungswaffe",es:"Arma sobrecargada",fr:"Arme surchargée",pt:"Arma Sobrecarregada",ru:"Усиленное орудие"},Weapon_RapidFire:{en:"Rapid fire",de:"Schnellfeuermodifikation",es:"Modificación de tiro rápido",fr:"Modification de cadence rapide",pt:"Modificação de Disparo Rápido",ru:"Улучшение скорострельности"},Weapon_ShortRange:{en:"Short range",de:"Kurzdistanzblaster",es:"Destructor de corto alcance",fr:"Tir à courte portée",pt:"Disparo de Curto Alcance",ru:"Бластер малого радиуса действия"},Weapon_Sturdy:{en:"Sturdy",de:"Robustes Gestell",es:"Anclaje robusto",fr:"Support robuste",pt:"Encaixe Robusto",ru:"Прочное крепление"}};var BLUEPRINT_NAMES=/* @__PURE__ */createLocalizedNameIndex(blueprint_names_default);function getBlueprintName(blueprintSymbol,locale){return getLocalizedName(BLUEPRINT_NAMES,blueprintSymbol,locale,"getBlueprintName","blueprintSymbol")}export{getBlueprintName};//# sourceMappingURL=chunk-KR664YI3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/i18n/blueprints.ts"],"names":["getLocalizedName","createLocalizedNameIndex","blueprint_names_default","BLUEPRINT_NAMES","getBlueprintName","blueprintSymbol","locale"],"mappings":"O,
|
|
1
|
+
{"version":3,"sources":["../src/i18n/blueprints.ts"],"names":["getLocalizedName","createLocalizedNameIndex","blueprint_names_default","BLUEPRINT_NAMES","getBlueprintName","blueprintSymbol","locale"],"mappings":"O,0xvBASA,IAAMG,+BAAkCF,yBACpCC,yBA6BG,SAASE,iBAAiBC,gBAAyBC,QACtD,OAAON,iBACHG,gBACAE,gBACAC,OACA,mBACA,kBAER,QAAAF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{buildCommodityCatalogue}from"./chunk-VQJXRPYI.js";var commodities_default=[{symbol:"Platinum",name:"Platinum",category:"Metals"},{symbol:"Palladium",name:"Palladium",category:"Metals"},{symbol:"Gold",name:"Gold",category:"Metals"},{symbol:"Silver",name:"Silver",category:"Metals"},{symbol:"Bertrandite",name:"Bertrandite",category:"Minerals"},{symbol:"Indite",name:"Indite",category:"Minerals"},{symbol:"Gallite",name:"Gallite",category:"Minerals"},{symbol:"Coltan",name:"Coltan",category:"Minerals"},{symbol:"Uraninite",name:"Uraninite",category:"Minerals"},{symbol:"Lepidolite",name:"Lepidolite",category:"Minerals"},{symbol:"Cobalt",name:"Cobalt",category:"Metals"},{symbol:"Rutile",name:"Rutile",category:"Minerals"},{symbol:"Bauxite",name:"Bauxite",category:"Minerals"},{symbol:"Water",name:"Water",category:"Chemicals"},{symbol:"Beryllium",name:"Beryllium",category:"Metals"},{symbol:"Indium",name:"Indium",category:"Metals"},{symbol:"Gallium",name:"Gallium",category:"Metals"},{symbol:"Tantalum",name:"Tantalum",category:"Metals"},{symbol:"Uranium",name:"Uranium",category:"Metals"},{symbol:"Lithium",name:"Lithium",category:"Metals"},{symbol:"Titanium",name:"Titanium",category:"Metals"},{symbol:"Copper",name:"Copper",category:"Metals"},{symbol:"Aluminium",name:"Aluminium",category:"Metals"},{symbol:"Algae",name:"Algae",category:"Foods"},{symbol:"FruitAndVegetables",name:"Fruit and Vegetables",category:"Foods"},{symbol:"Grain",name:"Grain",category:"Foods"},{symbol:"Animalmeat",name:"Animal Meat",category:"Foods"},{symbol:"Fish",name:"Fish",category:"Foods"},{symbol:"FoodCartridges",name:"Food Cartridges",category:"Foods"},{symbol:"SyntheticMeat",name:"Synthetic Meat",category:"Foods"},{symbol:"Tea",name:"Tea",category:"Foods"},{symbol:"Coffee",name:"Coffee",category:"Foods"},{symbol:"Leather",name:"Leather",category:"Textiles"},{symbol:"NaturalFabrics",name:"Natural Fabrics",category:"Textiles"},{symbol:"SyntheticFabrics",name:"Synthetic Fabrics",category:"Textiles"},{symbol:"Polymers",name:"Polymers",category:"Industrial Materials"},{symbol:"Semiconductors",name:"Semiconductors",category:"Industrial Materials"},{symbol:"Superconductors",name:"Superconductors",category:"Industrial Materials"},{symbol:"HydrogenFuel",name:"Hydrogen Fuel",category:"Chemicals"},{symbol:"MineralOil",name:"Mineral Oil",category:"Chemicals"},{symbol:"Explosives",name:"Explosives",category:"Chemicals"},{symbol:"Pesticides",name:"Pesticides",category:"Chemicals"},{symbol:"AgriculturalMedicines",name:"Agri-Medicines",category:"Medicines"},{symbol:"PerformanceEnhancers",name:"Performance Enhancers",category:"Medicines"},{symbol:"BasicMedicines",name:"Basic Medicines",category:"Medicines"},{symbol:"BasicNarcotics",name:"Narcotics",category:"Legal Drugs"},{symbol:"Tobacco",name:"Tobacco",category:"Legal Drugs"},{symbol:"Beer",name:"Beer",category:"Legal Drugs"},{symbol:"Wine",name:"Wine",category:"Legal Drugs"},{symbol:"Liquor",name:"Liquor",category:"Legal Drugs"},{symbol:"PowerGenerators",name:"Power Generators",category:"Machinery"},{symbol:"WaterPurifiers",name:"Water Purifiers",category:"Machinery"},{symbol:"HeliostaticFurnaces",name:"Microbial Furnaces",category:"Machinery"},{symbol:"MineralExtractors",name:"Mineral Extractors",category:"Machinery"},{symbol:"CropHarvesters",name:"Crop Harvesters",category:"Machinery"},{symbol:"MarineSupplies",name:"Marine Equipment",category:"Machinery"},{symbol:"ComputerComponents",name:"Computer Components",category:"Technology"},{symbol:"HazardousEnvironmentSuits",name:"H.E. Suits",category:"Technology"},{symbol:"Robotics",name:"Robotics",category:"Technology"},{symbol:"AutoFabricators",name:"Auto-Fabricators",category:"Technology"},{symbol:"AnimalMonitors",name:"Animal Monitors",category:"Technology"},{symbol:"AquaponicSystems",name:"Aquaponic Systems",category:"Technology"},{symbol:"AdvancedCatalysers",name:"Advanced Catalysers",category:"Technology"},{symbol:"TerrainEnrichmentSystems",name:"Land Enrichment Systems",category:"Technology"},{symbol:"PersonalWeapons",name:"Personal Weapons",category:"Weapons"},{symbol:"BattleWeapons",name:"Battle Weapons",category:"Weapons"},{symbol:"ReactiveArmour",name:"Reactive Armour",category:"Weapons"},{symbol:"NonLethalWeapons",name:"Non-Lethal Weapons",category:"Weapons"},{symbol:"DomesticAppliances",name:"Domestic Appliances",category:"Consumer Items"},{symbol:"ConsumerTechnology",name:"Consumer Technology",category:"Consumer Items"},{symbol:"Clothing",name:"Clothing",category:"Consumer Items"},{symbol:"Slaves",name:"Slaves",category:"Slavery"},{symbol:"Biowaste",name:"Biowaste",category:"Waste"},{symbol:"ToxicWaste",name:"Toxic Waste",category:"Waste"},{symbol:"ChemicalWaste",name:"Chemical Waste",category:"Waste"},{symbol:"Scrap",name:"Scrap",category:"Waste"},{symbol:"ProgenitorCells",name:"Progenitor Cells",category:"Medicines"},{symbol:"CombatStabilisers",name:"Combat Stabilisers",category:"Medicines"},{symbol:"ResonatingSeparators",name:"Resonating Separators",category:"Technology"},{symbol:"BioReducingLichen",name:"Bioreducing Lichen",category:"Technology"},{symbol:"AtmosphericExtractors",name:"Atmospheric Processors",category:"Machinery"},{symbol:"Drones",name:"Limpets",category:"NonMarketable"},{symbol:"USSCargoBlackBox",name:"Black Box",category:"Salvage"},{symbol:"USSCargoTradeData",name:"Trade Data",category:"Salvage"},{symbol:"USSCargoMilitaryPlans",name:"Military Plans",category:"Salvage"},{symbol:"USSCargoAncientArtefact",name:"Ancient Artefact",category:"Salvage"},{symbol:"USSCargoRareArtwork",name:"Rare Artwork",category:"Salvage"},{symbol:"USSCargoExperimentalChemicals",name:"Experimental Chemicals",category:"Salvage"},{symbol:"USSCargoRebelTransmissions",name:"Rebel Transmissions",category:"Salvage"},{symbol:"USSCargoPrototypeTech",name:"Prototype Tech",category:"Salvage"},{symbol:"USSCargoTechnicalBlueprints",name:"Technical Blueprints",category:"Salvage"},{symbol:"ImperialSlaves",name:"Imperial Slaves",category:"Slavery"},{symbol:"UnknownArtifact",name:"Thargoid Sensor",category:"Salvage"},{symbol:"AiRelics",name:"AI Relics",category:"Salvage"},{symbol:"Hafnium178",name:"Hafnium 178",category:"Metals"},{symbol:"Painite",name:"Painite",category:"Minerals"},{symbol:"Antiquities",name:"Antiquities",category:"Salvage"},{symbol:"MilitaryIntelligence",name:"Military Intelligence",category:"Salvage"},{symbol:"Osmium",name:"Osmium",category:"Metals"},{symbol:"SAP8CoreContainer",name:"SAP 8 Core Container",category:"Salvage"},{symbol:"TrinketsOfFortune",name:"Trinkets of Hidden Fortune",category:"Consumer Items"},{symbol:"WreckageComponents",name:"Wreckage Components",category:"Salvage"},{symbol:"EncriptedDataStorage",name:"Encrypted Data Storage",category:"Salvage"},{symbol:"OccupiedCryoPod",name:"Occupied Escape Pod",category:"Salvage"},{symbol:"PersonalEffects",name:"Personal Effects",category:"Salvage"},{symbol:"ComercialSamples",name:"Commercial Samples",category:"Salvage"},{symbol:"TacticalData",name:"Tactical Data",category:"Salvage"},{symbol:"AssaultPlans",name:"Assault Plans",category:"Salvage"},{symbol:"EncryptedCorrespondence",name:"Encrypted Correspondence",category:"Salvage"},{symbol:"DiplomaticBag",name:"Diplomatic Bag",category:"Salvage"},{symbol:"ScientificResearch",name:"Scientific Research",category:"Salvage"},{symbol:"ScientificSamples",name:"Scientific Samples",category:"Salvage"},{symbol:"PoliticalPrisoner",name:"Political Prisoners",category:"Salvage"},{symbol:"Hostage",name:"Hostages",category:"Salvage"},{symbol:"LargeExplorationDataCash",name:"Large Survey Data Cache",category:"Salvage"},{symbol:"SmallExplorationDataCash",name:"Small Survey Data Cache",category:"Salvage"},{symbol:"AntiqueJewellery",name:"Antique Jewellery",category:"Salvage"},{symbol:"PreciousGems",name:"Precious Gems",category:"Salvage"},{symbol:"EarthRelics",name:"Earth Relics",category:"Salvage"},{symbol:"GeneBank",name:"Gene Bank",category:"Salvage"},{symbol:"TimeCapsule",name:"Time Capsule",category:"Salvage"},{symbol:"Cryolite",name:"Cryolite",category:"Minerals"},{symbol:"Goslarite",name:"Goslarite",category:"Minerals"},{symbol:"Moissanite",name:"Moissanite",category:"Minerals"},{symbol:"Pyrophyllite",name:"Pyrophyllite",category:"Minerals"},{symbol:"Lanthanum",name:"Lanthanum",category:"Metals"},{symbol:"Thallium",name:"Thallium",category:"Metals"},{symbol:"Bismuth",name:"Bismuth",category:"Metals"},{symbol:"Thorium",name:"Thorium",category:"Metals"},{symbol:"CeramicComposites",name:"Ceramic Composites",category:"Industrial Materials"},{symbol:"SyntheticReagents",name:"Synthetic Reagents",category:"Chemicals"},{symbol:"NerveAgents",name:"Nerve Agents",category:"Chemicals"},{symbol:"SurfaceStabilisers",name:"Surface Stabilisers",category:"Chemicals"},{symbol:"BootlegLiquor",name:"Bootleg Liquor",category:"Legal Drugs"},{symbol:"GeologicalEquipment",name:"Geological Equipment",category:"Machinery"},{symbol:"ThermalCoolingUnits",name:"Thermal Cooling Units",category:"Machinery"},{symbol:"BuildingFabricators",name:"Building Fabricators",category:"Machinery"},{symbol:"MuTomImager",name:"Muon Imager",category:"Technology"},{symbol:"StructuralRegulators",name:"Structural Regulators",category:"Technology"},{symbol:"Landmines",name:"Landmines",category:"Weapons"},{symbol:"SkimerComponents",name:"Skimmer Components",category:"Machinery"},{symbol:"EvacuationShelter",name:"Evacuation Shelter",category:"Consumer Items"},{symbol:"GeologicalSamples",name:"Geological Samples",category:"Salvage"},{symbol:"MetaAlloys",name:"Meta-Alloys",category:"Industrial Materials"},{symbol:"Taaffeite",name:"Taaffeite",category:"Minerals"},{symbol:"Jadeite",name:"Jadeite",category:"Minerals"},{symbol:"UnstableDataCore",name:"Unstable Data Core",category:"Salvage"},{symbol:"DamagedEscapePod",name:"Damaged Escape Pod",category:"Salvage"},{symbol:"Praseodymium",name:"Praseodymium",category:"Metals"},{symbol:"Bromellite",name:"Bromellite",category:"Minerals"},{symbol:"Samarium",name:"Samarium",category:"Metals"},{symbol:"LowTemperatureDiamond",name:"Low Temperature Diamonds",category:"Minerals"},{symbol:"HydrogenPeroxide",name:"Hydrogen Peroxide",category:"Chemicals"},{symbol:"LiquidOxygen",name:"Liquid oxygen",category:"Chemicals"},{symbol:"MethanolMonohydrateCrystals",name:"Methanol Monohydrate Crystals",category:"Minerals"},{symbol:"LithiumHydroxide",name:"Lithium Hydroxide",category:"Minerals"},{symbol:"MethaneClathrate",name:"Methane Clathrate",category:"Minerals"},{symbol:"InsulatingMembrane",name:"Insulating Membrane",category:"Industrial Materials"},{symbol:"CMMComposite",name:"CMM Composite",category:"Industrial Materials"},{symbol:"CoolingHoses",name:"Micro-weave Cooling Hoses",category:"Industrial Materials"},{symbol:"NeofabricInsulation",name:"Neofabric Insulation",category:"Industrial Materials"},{symbol:"ArticulationMotors",name:"Articulation Motors",category:"Machinery"},{symbol:"HNShockMount",name:"HN Shock Mount",category:"Machinery"},{symbol:"EmergencyPowerCells",name:"Emergency Power Cells",category:"Machinery"},{symbol:"PowerConverter",name:"Power Converter",category:"Machinery"},{symbol:"PowerGridAssembly",name:"Energy Grid Assembly",category:"Machinery"},{symbol:"PowerTransferConduits",name:"Power Transfer Bus",category:"Machinery"},{symbol:"RadiationBaffle",name:"Radiation Baffle",category:"Machinery"},{symbol:"ExhaustManifold",name:"Exhaust Manifold",category:"Machinery"},{symbol:"ReinforcedMountingPlate",name:"Reinforced Mounting Plate",category:"Machinery"},{symbol:"HeatsinkInterlink",name:"Heatsink Interlink",category:"Machinery"},{symbol:"MagneticEmitterCoil",name:"Magnetic Emitter Coil",category:"Machinery"},{symbol:"ModularTerminals",name:"Modular Terminals",category:"Machinery"},{symbol:"Nanobreakers",name:"Nanobreakers",category:"Technology"},{symbol:"TelemetrySuite",name:"Telemetry Suite",category:"Technology"},{symbol:"MicroControllers",name:"Micro Controllers",category:"Technology"},{symbol:"IonDistributor",name:"Ion Distributor",category:"Machinery"},{symbol:"DiagnosticSensor",name:"Hardware Diagnostic Sensor",category:"Technology"},{symbol:"UnknownArtifact2",name:"Thargoid Probe",category:"Salvage"},{symbol:"ConductiveFabrics",name:"Conductive Fabrics",category:"Textiles"},{symbol:"MilitaryGradeFabrics",name:"Military Grade Fabrics",category:"Textiles"},{symbol:"AdvancedMedicines",name:"Advanced Medicines",category:"Medicines"},{symbol:"MedicalDiagnosticEquipment",name:"Medical Diagnostic Equipment",category:"Technology"},{symbol:"SurvivalEquipment",name:"Survival Equipment",category:"Consumer Items"},{symbol:"DataCore",name:"Data Core",category:"Salvage"},{symbol:"MysteriousIdol",name:"Mysterious Idol",category:"Salvage"},{symbol:"ProhibitedResearchMaterials",name:"Prohibited Research Materials",category:"Salvage"},{symbol:"AntimatterContainmentUnit",name:"Antimatter Containment Unit",category:"Salvage"},{symbol:"SpacePioneerRelics",name:"Space Pioneer Relics",category:"Salvage"},{symbol:"FossilRemnants",name:"Fossil Remnants",category:"Salvage"},{symbol:"AncientRelic",name:"Guardian Relic",category:"Salvage"},{symbol:"AncientOrb",name:"Guardian Orb",category:"Salvage"},{symbol:"AncientCasket",name:"Guardian Casket",category:"Salvage"},{symbol:"AncientTablet",name:"Guardian Tablet",category:"Salvage"},{symbol:"AncientUrn",name:"Guardian Urn",category:"Salvage"},{symbol:"AncientTotem",name:"Guardian Totem",category:"Salvage"},{symbol:"UnknownResin",name:"Thargoid Resin",category:"Salvage"},{symbol:"UnknownBiologicalMatter",name:"Thargoid Biological Matter",category:"Salvage"},{symbol:"UnknownTechnologySamples",name:"Thargoid Technology Samples",category:"Salvage"},{symbol:"UnknownArtifact3",name:"Thargoid Link",category:"Salvage"},{symbol:"ThargoidHeart",name:"Thargoid Heart",category:"Salvage"},{symbol:"ThargoidTissueSampleType1",name:"Thargoid Cyclops Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType2",name:"Thargoid Basilisk Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType3",name:"Thargoid Medusa Tissue Sample",category:"Salvage"},{symbol:"ThargoidScoutTissueSample",name:"Thargoid Scout Tissue Sample",category:"Salvage"},{symbol:"AncientKey",name:"Ancient Key",category:"Salvage"},{symbol:"ThargoidTissueSampleType4",name:"Thargoid Hydra Tissue Sample",category:"Salvage"},{symbol:"M_TissueSample_Fluid",name:"Mollusc Fluid",category:"Salvage"},{symbol:"M_TissueSample_Soft",name:"Mollusc Soft Tissue",category:"Salvage"},{symbol:"M_TissueSample_Nerves",name:"Mollusc Brain Tissue",category:"Salvage"},{symbol:"S_TissueSample_Cells",name:"Pod Core Tissue",category:"Salvage"},{symbol:"S_TissueSample_Surface",name:"Pod Dead Tissue",category:"Salvage"},{symbol:"S_TissueSample_Core",name:"Pod Surface Tissue",category:"Salvage"},{symbol:"P_ParticulateSample",name:"Anomaly Particles",category:"Salvage"},{symbol:"S9_TissueSample_Shell",name:"Pod Tissue",category:"Salvage"},{symbol:"M3_TissueSample_Membrane",name:"Mollusc Membrane",category:"Salvage"},{symbol:"M3_TissueSample_Mycelium",name:"Mollusc Mycelium",category:"Salvage"},{symbol:"M3_TissueSample_Spores",name:"Mollusc Spores",category:"Salvage"},{symbol:"S6_TissueSample_Mesoglea",name:"Pod Mesoglea",category:"Salvage"},{symbol:"S6_TissueSample_Cells",name:"Pod Outer Tissue",category:"Salvage"},{symbol:"S6_TissueSample_Coenosarc",name:"Pod Shell Tissue",category:"Salvage"},{symbol:"Rhodplumsite",name:"Rhodplumsite",category:"Minerals"},{symbol:"Serendibite",name:"Serendibite",category:"Minerals"},{symbol:"Monazite",name:"Monazite",category:"Minerals"},{symbol:"Musgravite",name:"Musgravite",category:"Minerals"},{symbol:"Benitoite",name:"Benitoite",category:"Minerals"},{symbol:"Grandidierite",name:"Grandidierite",category:"Minerals"},{symbol:"Alexandrite",name:"Alexandrite",category:"Minerals"},{symbol:"Opal",name:"Void Opal",category:"Minerals"},{symbol:"RockforthFertiliser",name:"Rockforth Fertiliser",category:"Chemicals"},{symbol:"AgronomicTreatment",name:"Agronomic Treatment",category:"Chemicals"},{symbol:"Tritium",name:"Tritium",category:"Chemicals"},{symbol:"OnionHeadC",name:"Onionhead Gamma Strain",category:"Legal Drugs"},{symbol:"AncientRelicTG",name:"Unclassified Relic",category:"Salvage"},{symbol:"ThargoidTissueSampleType5",name:"Thargoid Orthrus Tissue Sample",category:"Salvage"},{symbol:"ThargoidGeneratorTissueSample",name:"Caustic Tissue Sample",category:"Salvage"},{symbol:"UnocuppiedEscapePod",name:"Unoccupied Escape Pod",category:"Salvage"},{symbol:"ThargoidTissueSampleType6",name:"Thargoid Glaive Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType7",name:"Thargoid Scythe Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9a",name:"Titan Deep Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9b",name:"Titan Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9c",name:"Titan Partial Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10a",name:"Titan Maw Deep Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10b",name:"Titan Maw Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10c",name:"Titan Maw Partial Tissue Sample",category:"Salvage"},{symbol:"UnknownSack",name:"Protective Membrane Scrap",category:"Salvage"},{symbol:"ThargoidPod",name:"Xenobiological Prison Pod",category:"Salvage"},{symbol:"CoralSap",name:"Coral Sap",category:"Salvage"},{symbol:"UnknownMineral",name:"Impure Spire Mineral",category:"Salvage"},{symbol:"UnknownRefinedMineral",name:"Semi-Refined Spire Mineral",category:"Salvage"},{symbol:"ThargoidTitanDriveComponent",name:"Titan Drive Component",category:"Salvage"},{symbol:"ThargoidCystSpecimen",name:"Cyst Specimen",category:"Salvage"},{symbol:"ThargoidBoneFragments",name:"Bone Fragments",category:"Salvage"},{symbol:"ThargoidOrganSample",name:"Organ Sample",category:"Salvage"},{symbol:"Steel",name:"Steel",category:"Metals"},{symbol:"Haematite",name:"Haematite",category:"Minerals"},{symbol:"curatedcommodity",name:"Curated Commodity Package",category:"Industrial Materials"},{symbol:"Bastnasite",name:"Bastnasite",category:"Minerals"},{symbol:"Deuterium",name:"Deuterium",category:"Minerals"},{symbol:"Diamond",name:"Diamond",category:"Minerals"},{symbol:"Helium",name:"Helium",category:"Chemicals"},{symbol:"Helium3",name:"Helium-3",category:"Chemicals"},{symbol:"Iridium",name:"Iridium",category:"Minerals"},{symbol:"Magnesite",name:"Magnesite",category:"Minerals"},{symbol:"Olivine",name:"Olivine",category:"Minerals"},{symbol:"PericlaseDunite",name:"Periclase Dunite",category:"Minerals"},{symbol:"QuartzPyroxenite",name:"Quartz Pyroxenite",category:"Minerals"},{symbol:"Ruby",name:"Ruby",category:"Minerals"},{symbol:"Sapphire",name:"Sapphire",category:"Minerals"},{symbol:"Thortveitite",name:"Thortveitite",category:"Minerals"}];var COMMODITIES=buildCommodityCatalogue(commodities_default,false);export{COMMODITIES};//# sourceMappingURL=chunk-Q647OXON.js.map
|
|
1
|
+
import{buildCommodityCatalogue}from"./chunk-VQJXRPYI.js";var commodities_default=[{symbol:"Platinum",name:"Platinum",category:"Metals"},{symbol:"Palladium",name:"Palladium",category:"Metals"},{symbol:"Gold",name:"Gold",category:"Metals"},{symbol:"Silver",name:"Silver",category:"Metals"},{symbol:"Bertrandite",name:"Bertrandite",category:"Minerals"},{symbol:"Indite",name:"Indite",category:"Minerals"},{symbol:"Gallite",name:"Gallite",category:"Minerals"},{symbol:"Coltan",name:"Coltan",category:"Minerals"},{symbol:"Uraninite",name:"Uraninite",category:"Minerals"},{symbol:"Lepidolite",name:"Lepidolite",category:"Minerals"},{symbol:"Cobalt",name:"Cobalt",category:"Metals"},{symbol:"Rutile",name:"Rutile",category:"Minerals"},{symbol:"Bauxite",name:"Bauxite",category:"Minerals"},{symbol:"Water",name:"Water",category:"Chemicals"},{symbol:"Beryllium",name:"Beryllium",category:"Metals"},{symbol:"Indium",name:"Indium",category:"Metals"},{symbol:"Gallium",name:"Gallium",category:"Metals"},{symbol:"Tantalum",name:"Tantalum",category:"Metals"},{symbol:"Uranium",name:"Uranium",category:"Metals"},{symbol:"Lithium",name:"Lithium",category:"Metals"},{symbol:"Titanium",name:"Titanium",category:"Metals"},{symbol:"Copper",name:"Copper",category:"Metals"},{symbol:"Aluminium",name:"Aluminium",category:"Metals"},{symbol:"Algae",name:"Algae",category:"Foods"},{symbol:"FruitAndVegetables",name:"Fruit and Vegetables",category:"Foods"},{symbol:"Grain",name:"Grain",category:"Foods"},{symbol:"Animalmeat",name:"Animal Meat",category:"Foods"},{symbol:"Fish",name:"Fish",category:"Foods"},{symbol:"FoodCartridges",name:"Food Cartridges",category:"Foods"},{symbol:"SyntheticMeat",name:"Synthetic Meat",category:"Foods"},{symbol:"Tea",name:"Tea",category:"Foods"},{symbol:"Coffee",name:"Coffee",category:"Foods"},{symbol:"Leather",name:"Leather",category:"Textiles"},{symbol:"NaturalFabrics",name:"Natural Fabrics",category:"Textiles"},{symbol:"SyntheticFabrics",name:"Synthetic Fabrics",category:"Textiles"},{symbol:"Polymers",name:"Polymers",category:"Industrial Materials"},{symbol:"Semiconductors",name:"Semiconductors",category:"Industrial Materials"},{symbol:"Superconductors",name:"Superconductors",category:"Industrial Materials"},{symbol:"HydrogenFuel",name:"Hydrogen Fuel",category:"Chemicals"},{symbol:"MineralOil",name:"Mineral Oil",category:"Chemicals"},{symbol:"Explosives",name:"Explosives",category:"Chemicals"},{symbol:"Pesticides",name:"Pesticides",category:"Chemicals"},{symbol:"AgriculturalMedicines",name:"Agri-Medicines",category:"Medicines"},{symbol:"PerformanceEnhancers",name:"Performance Enhancers",category:"Medicines"},{symbol:"BasicMedicines",name:"Basic Medicines",category:"Medicines"},{symbol:"BasicNarcotics",name:"Narcotics",category:"Legal Drugs"},{symbol:"Tobacco",name:"Tobacco",category:"Legal Drugs"},{symbol:"Beer",name:"Beer",category:"Legal Drugs"},{symbol:"Wine",name:"Wine",category:"Legal Drugs"},{symbol:"Liquor",name:"Liquor",category:"Legal Drugs"},{symbol:"PowerGenerators",name:"Power Generators",category:"Machinery"},{symbol:"WaterPurifiers",name:"Water Purifiers",category:"Machinery"},{symbol:"HeliostaticFurnaces",name:"Microbial Furnaces",category:"Machinery"},{symbol:"MineralExtractors",name:"Mineral Extractors",category:"Machinery"},{symbol:"CropHarvesters",name:"Crop Harvesters",category:"Machinery"},{symbol:"MarineSupplies",name:"Marine Equipment",category:"Machinery"},{symbol:"ComputerComponents",name:"Computer Components",category:"Technology"},{symbol:"HazardousEnvironmentSuits",name:"H.E. Suits",category:"Technology"},{symbol:"Robotics",name:"Robotics",category:"Technology"},{symbol:"AutoFabricators",name:"Auto-Fabricators",category:"Technology"},{symbol:"AnimalMonitors",name:"Animal Monitors",category:"Technology"},{symbol:"AquaponicSystems",name:"Aquaponic Systems",category:"Technology"},{symbol:"AdvancedCatalysers",name:"Advanced Catalysers",category:"Technology"},{symbol:"TerrainEnrichmentSystems",name:"Land Enrichment Systems",category:"Technology"},{symbol:"PersonalWeapons",name:"Personal Weapons",category:"Weapons"},{symbol:"BattleWeapons",name:"Battle Weapons",category:"Weapons"},{symbol:"ReactiveArmour",name:"Reactive Armour",category:"Weapons"},{symbol:"NonLethalWeapons",name:"Non-Lethal Weapons",category:"Weapons"},{symbol:"DomesticAppliances",name:"Domestic Appliances",category:"Consumer Items"},{symbol:"ConsumerTechnology",name:"Consumer Technology",category:"Consumer Items"},{symbol:"Clothing",name:"Clothing",category:"Consumer Items"},{symbol:"Slaves",name:"Slaves",category:"Slavery"},{symbol:"Biowaste",name:"Biowaste",category:"Waste"},{symbol:"ToxicWaste",name:"Toxic Waste",category:"Waste"},{symbol:"ChemicalWaste",name:"Chemical Waste",category:"Waste"},{symbol:"Scrap",name:"Scrap",category:"Waste"},{symbol:"ProgenitorCells",name:"Progenitor Cells",category:"Medicines"},{symbol:"CombatStabilisers",name:"Combat Stabilisers",category:"Medicines"},{symbol:"ResonatingSeparators",name:"Resonating Separators",category:"Technology"},{symbol:"BioReducingLichen",name:"Bioreducing Lichen",category:"Technology"},{symbol:"AtmosphericExtractors",name:"Atmospheric Processors",category:"Machinery"},{symbol:"Drones",name:"Limpets",category:"NonMarketable"},{symbol:"USSCargoBlackBox",name:"Black Box",category:"Salvage"},{symbol:"USSCargoTradeData",name:"Trade Data",category:"Salvage"},{symbol:"USSCargoMilitaryPlans",name:"Military Plans",category:"Salvage"},{symbol:"USSCargoAncientArtefact",name:"Ancient Artefact",category:"Salvage"},{symbol:"USSCargoRareArtwork",name:"Rare Artwork",category:"Salvage"},{symbol:"USSCargoExperimentalChemicals",name:"Experimental Chemicals",category:"Salvage"},{symbol:"USSCargoRebelTransmissions",name:"Rebel Transmissions",category:"Salvage"},{symbol:"USSCargoPrototypeTech",name:"Prototype Tech",category:"Salvage"},{symbol:"USSCargoTechnicalBlueprints",name:"Technical Blueprints",category:"Salvage"},{symbol:"ImperialSlaves",name:"Imperial Slaves",category:"Slavery"},{symbol:"UnknownArtifact",name:"Thargoid Sensor",category:"Salvage"},{symbol:"AiRelics",name:"AI Relics",category:"Salvage"},{symbol:"Hafnium178",name:"Hafnium 178",category:"Metals"},{symbol:"Painite",name:"Painite",category:"Minerals"},{symbol:"Antiquities",name:"Antiquities",category:"Salvage"},{symbol:"MilitaryIntelligence",name:"Military Intelligence",category:"Salvage"},{symbol:"Osmium",name:"Osmium",category:"Metals"},{symbol:"SAP8CoreContainer",name:"SAP 8 Core Container",category:"Salvage"},{symbol:"TrinketsOfFortune",name:"Trinkets of Hidden Fortune",category:"Consumer Items"},{symbol:"WreckageComponents",name:"Wreckage Components",category:"Salvage"},{symbol:"EncriptedDataStorage",name:"Encrypted Data Storage",category:"Salvage"},{symbol:"OccupiedCryoPod",name:"Occupied Escape Pod",category:"Salvage"},{symbol:"PersonalEffects",name:"Personal Effects",category:"Salvage"},{symbol:"ComercialSamples",name:"Commercial Samples",category:"Salvage"},{symbol:"TacticalData",name:"Tactical Data",category:"Salvage"},{symbol:"AssaultPlans",name:"Assault Plans",category:"Salvage"},{symbol:"EncryptedCorrespondence",name:"Encrypted Correspondence",category:"Salvage"},{symbol:"DiplomaticBag",name:"Diplomatic Bag",category:"Salvage"},{symbol:"ScientificResearch",name:"Scientific Research",category:"Salvage"},{symbol:"ScientificSamples",name:"Scientific Samples",category:"Salvage"},{symbol:"PoliticalPrisoner",name:"Political Prisoners",category:"Salvage"},{symbol:"Hostage",name:"Hostages",category:"Salvage"},{symbol:"LargeExplorationDataCash",name:"Large Survey Data Cache",category:"Salvage"},{symbol:"SmallExplorationDataCash",name:"Small Survey Data Cache",category:"Salvage"},{symbol:"AntiqueJewellery",name:"Antique Jewellery",category:"Salvage"},{symbol:"PreciousGems",name:"Precious Gems",category:"Salvage"},{symbol:"EarthRelics",name:"Earth Relics",category:"Salvage"},{symbol:"GeneBank",name:"Gene Bank",category:"Salvage"},{symbol:"TimeCapsule",name:"Time Capsule",category:"Salvage"},{symbol:"Cryolite",name:"Cryolite",category:"Minerals"},{symbol:"Goslarite",name:"Goslarite",category:"Minerals"},{symbol:"Moissanite",name:"Moissanite",category:"Minerals"},{symbol:"Pyrophyllite",name:"Pyrophyllite",category:"Minerals"},{symbol:"Lanthanum",name:"Lanthanum",category:"Metals"},{symbol:"Thallium",name:"Thallium",category:"Metals"},{symbol:"Bismuth",name:"Bismuth",category:"Metals"},{symbol:"Thorium",name:"Thorium",category:"Metals"},{symbol:"CeramicComposites",name:"Ceramic Composites",category:"Industrial Materials"},{symbol:"SyntheticReagents",name:"Synthetic Reagents",category:"Chemicals"},{symbol:"NerveAgents",name:"Nerve Agents",category:"Chemicals"},{symbol:"SurfaceStabilisers",name:"Surface Stabilisers",category:"Chemicals"},{symbol:"BootlegLiquor",name:"Bootleg Liquor",category:"Legal Drugs"},{symbol:"GeologicalEquipment",name:"Geological Equipment",category:"Machinery"},{symbol:"ThermalCoolingUnits",name:"Thermal Cooling Units",category:"Machinery"},{symbol:"BuildingFabricators",name:"Building Fabricators",category:"Machinery"},{symbol:"MuTomImager",name:"Muon Imager",category:"Technology"},{symbol:"StructuralRegulators",name:"Structural Regulators",category:"Technology"},{symbol:"Landmines",name:"Landmines",category:"Weapons"},{symbol:"SkimerComponents",name:"Skimmer Components",category:"Machinery"},{symbol:"EvacuationShelter",name:"Evacuation Shelter",category:"Consumer Items"},{symbol:"GeologicalSamples",name:"Geological Samples",category:"Salvage"},{symbol:"MetaAlloys",name:"Meta-Alloys",category:"Industrial Materials"},{symbol:"Taaffeite",name:"Taaffeite",category:"Minerals"},{symbol:"Jadeite",name:"Jadeite",category:"Minerals"},{symbol:"UnstableDataCore",name:"Unstable Data Core",category:"Salvage"},{symbol:"DamagedEscapePod",name:"Damaged Escape Pod",category:"Salvage"},{symbol:"Praseodymium",name:"Praseodymium",category:"Metals"},{symbol:"Bromellite",name:"Bromellite",category:"Minerals"},{symbol:"Samarium",name:"Samarium",category:"Metals"},{symbol:"LowTemperatureDiamond",name:"Low Temperature Diamonds",category:"Minerals"},{symbol:"HydrogenPeroxide",name:"Hydrogen Peroxide",category:"Chemicals"},{symbol:"LiquidOxygen",name:"Liquid oxygen",category:"Chemicals"},{symbol:"MethanolMonohydrateCrystals",name:"Methanol Monohydrate Crystals",category:"Minerals"},{symbol:"LithiumHydroxide",name:"Lithium Hydroxide",category:"Minerals"},{symbol:"MethaneClathrate",name:"Methane Clathrate",category:"Minerals"},{symbol:"InsulatingMembrane",name:"Insulating Membrane",category:"Industrial Materials"},{symbol:"CMMComposite",name:"CMM Composite",category:"Industrial Materials"},{symbol:"CoolingHoses",name:"Micro-weave Cooling Hoses",category:"Industrial Materials"},{symbol:"NeofabricInsulation",name:"Neofabric Insulation",category:"Industrial Materials"},{symbol:"ArticulationMotors",name:"Articulation Motors",category:"Machinery"},{symbol:"HNShockMount",name:"HN Shock Mount",category:"Machinery"},{symbol:"EmergencyPowerCells",name:"Emergency Power Cells",category:"Machinery"},{symbol:"PowerConverter",name:"Power Converter",category:"Machinery"},{symbol:"PowerGridAssembly",name:"Energy Grid Assembly",category:"Machinery"},{symbol:"PowerTransferConduits",name:"Power Transfer Bus",category:"Machinery"},{symbol:"RadiationBaffle",name:"Radiation Baffle",category:"Machinery"},{symbol:"ExhaustManifold",name:"Exhaust Manifold",category:"Machinery"},{symbol:"ReinforcedMountingPlate",name:"Reinforced Mounting Plate",category:"Machinery"},{symbol:"HeatsinkInterlink",name:"Heatsink Interlink",category:"Machinery"},{symbol:"MagneticEmitterCoil",name:"Magnetic Emitter Coil",category:"Machinery"},{symbol:"ModularTerminals",name:"Modular Terminals",category:"Machinery"},{symbol:"Nanobreakers",name:"Nanobreakers",category:"Technology"},{symbol:"TelemetrySuite",name:"Telemetry Suite",category:"Technology"},{symbol:"MicroControllers",name:"Micro Controllers",category:"Technology"},{symbol:"IonDistributor",name:"Ion Distributor",category:"Machinery"},{symbol:"DiagnosticSensor",name:"Hardware Diagnostic Sensor",category:"Technology"},{symbol:"UnknownArtifact2",name:"Thargoid Probe",category:"Salvage"},{symbol:"ConductiveFabrics",name:"Conductive Fabrics",category:"Textiles"},{symbol:"MilitaryGradeFabrics",name:"Military Grade Fabrics",category:"Textiles"},{symbol:"AdvancedMedicines",name:"Advanced Medicines",category:"Medicines"},{symbol:"MedicalDiagnosticEquipment",name:"Medical Diagnostic Equipment",category:"Technology"},{symbol:"SurvivalEquipment",name:"Survival Equipment",category:"Consumer Items"},{symbol:"DataCore",name:"Data Core",category:"Salvage"},{symbol:"MysteriousIdol",name:"Mysterious Idol",category:"Salvage"},{symbol:"ProhibitedResearchMaterials",name:"Prohibited Research Materials",category:"Salvage"},{symbol:"AntimatterContainmentUnit",name:"Antimatter Containment Unit",category:"Salvage"},{symbol:"SpacePioneerRelics",name:"Space Pioneer Relics",category:"Salvage"},{symbol:"FossilRemnants",name:"Fossil Remnants",category:"Salvage"},{symbol:"AncientRelic",name:"Guardian Relic",category:"Salvage"},{symbol:"AncientOrb",name:"Guardian Orb",category:"Salvage"},{symbol:"AncientCasket",name:"Guardian Casket",category:"Salvage"},{symbol:"AncientTablet",name:"Guardian Tablet",category:"Salvage"},{symbol:"AncientUrn",name:"Guardian Urn",category:"Salvage"},{symbol:"AncientTotem",name:"Guardian Totem",category:"Salvage"},{symbol:"UnknownResin",name:"Thargoid Resin",category:"Salvage"},{symbol:"UnknownBiologicalMatter",name:"Thargoid Biological Matter",category:"Salvage"},{symbol:"UnknownTechnologySamples",name:"Thargoid Technology Samples",category:"Salvage"},{symbol:"UnknownArtifact3",name:"Thargoid Link",category:"Salvage"},{symbol:"ThargoidHeart",name:"Thargoid Heart",category:"Salvage"},{symbol:"ThargoidTissueSampleType1",name:"Thargoid Cyclops Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType2",name:"Thargoid Basilisk Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType3",name:"Thargoid Medusa Tissue Sample",category:"Salvage"},{symbol:"ThargoidScoutTissueSample",name:"Thargoid Scout Tissue Sample",category:"Salvage"},{symbol:"AncientKey",name:"Ancient Key",category:"Salvage"},{symbol:"ThargoidTissueSampleType4",name:"Thargoid Hydra Tissue Sample",category:"Salvage"},{symbol:"M_TissueSample_Fluid",name:"Mollusc Fluid",category:"Salvage"},{symbol:"M_TissueSample_Soft",name:"Mollusc Soft Tissue",category:"Salvage"},{symbol:"M_TissueSample_Nerves",name:"Mollusc Brain Tissue",category:"Salvage"},{symbol:"S_TissueSample_Cells",name:"Pod Core Tissue",category:"Salvage"},{symbol:"S_TissueSample_Surface",name:"Pod Dead Tissue",category:"Salvage"},{symbol:"S_TissueSample_Core",name:"Pod Surface Tissue",category:"Salvage"},{symbol:"P_ParticulateSample",name:"Anomaly Particles",category:"Salvage"},{symbol:"S9_TissueSample_Shell",name:"Pod Tissue",category:"Salvage"},{symbol:"M3_TissueSample_Membrane",name:"Mollusc Membrane",category:"Salvage"},{symbol:"M3_TissueSample_Mycelium",name:"Mollusc Mycelium",category:"Salvage"},{symbol:"M3_TissueSample_Spores",name:"Mollusc Spores",category:"Salvage"},{symbol:"S6_TissueSample_Mesoglea",name:"Pod Mesoglea",category:"Salvage"},{symbol:"S6_TissueSample_Cells",name:"Pod Outer Tissue",category:"Salvage"},{symbol:"S6_TissueSample_Coenosarc",name:"Pod Shell Tissue",category:"Salvage"},{symbol:"Rhodplumsite",name:"Rhodplumsite",category:"Minerals"},{symbol:"Serendibite",name:"Serendibite",category:"Minerals"},{symbol:"Monazite",name:"Monazite",category:"Minerals"},{symbol:"Musgravite",name:"Musgravite",category:"Minerals"},{symbol:"Benitoite",name:"Benitoite",category:"Minerals"},{symbol:"Grandidierite",name:"Grandidierite",category:"Minerals"},{symbol:"Alexandrite",name:"Alexandrite",category:"Minerals"},{symbol:"Opal",name:"Void Opal",category:"Minerals"},{symbol:"RockforthFertiliser",name:"Rockforth Fertiliser",category:"Chemicals"},{symbol:"AgronomicTreatment",name:"Agronomic Treatment",category:"Chemicals"},{symbol:"Tritium",name:"Tritium",category:"Chemicals"},{symbol:"OnionHeadC",name:"Onionhead Gamma Strain",category:"Legal Drugs"},{symbol:"AncientRelicTG",name:"Unclassified Relic",category:"Salvage"},{symbol:"ThargoidTissueSampleType5",name:"Thargoid Orthrus Tissue Sample",category:"Salvage"},{symbol:"ThargoidGeneratorTissueSample",name:"Caustic Tissue Sample",category:"Salvage"},{symbol:"UnocuppiedEscapePod",name:"Unoccupied Escape Pod",category:"Salvage"},{symbol:"ThargoidTissueSampleType6",name:"Thargoid Glaive Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType7",name:"Thargoid Scythe Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9a",name:"Titan Deep Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9b",name:"Titan Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9c",name:"Titan Partial Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10a",name:"Titan Maw Deep Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10b",name:"Titan Maw Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10c",name:"Titan Maw Partial Tissue Sample",category:"Salvage"},{symbol:"UnknownSack",name:"Protective Membrane Scrap",category:"Salvage"},{symbol:"ThargoidPod",name:"Xenobiological Prison Pod",category:"Salvage"},{symbol:"CoralSap",name:"Coral Sap",category:"Salvage"},{symbol:"UnknownMineral",name:"Impure Spire Mineral",category:"Salvage"},{symbol:"UnknownRefinedMineral",name:"Semi-Refined Spire Mineral",category:"Salvage"},{symbol:"ThargoidTitanDriveComponent",name:"Titan Drive Component",category:"Salvage"},{symbol:"ThargoidCystSpecimen",name:"Cyst Specimen",category:"Salvage"},{symbol:"ThargoidBoneFragments",name:"Bone Fragments",category:"Salvage"},{symbol:"ThargoidOrganSample",name:"Organ Sample",category:"Salvage"},{symbol:"Steel",name:"Steel",category:"Metals"},{symbol:"Haematite",name:"Haematite",category:"Minerals"},{symbol:"curatedcommodity",name:"Curated Commodity Package",category:"Industrial Materials"},{symbol:"Bastnasite",name:"Bastnasite",category:"Minerals"},{symbol:"Deuterium",name:"Deuterium",category:"Minerals"},{symbol:"Diamond",name:"Diamond",category:"Minerals"},{symbol:"Helium",name:"Helium",category:"Chemicals"},{symbol:"Helium3",name:"Helium-3",category:"Chemicals"},{symbol:"Iridium",name:"Iridium",category:"Metals"},{symbol:"Magnesite",name:"Magnesite",category:"Minerals"},{symbol:"Olivine",name:"Olivine",category:"Minerals"},{symbol:"PericlaseDunite",name:"Periclase Dunite",category:"Minerals"},{symbol:"QuartzPyroxenite",name:"Quartz Pyroxenite",category:"Minerals"},{symbol:"Ruby",name:"Ruby",category:"Minerals"},{symbol:"Sapphire",name:"Sapphire",category:"Minerals"},{symbol:"Thortveitite",name:"Thortveitite",category:"Minerals"}];var COMMODITIES=buildCommodityCatalogue(commodities_default,false);export{COMMODITIES};//# sourceMappingURL=chunk-LOWKWUNS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commodities/commodities-standard.ts"],"names":["buildCommodityCatalogue","commodities_default","COMMODITIES"],"mappings":"O,
|
|
1
|
+
{"version":3,"sources":["../src/commodities/commodities-standard.ts"],"names":["buildCommodityCatalogue","commodities_default","COMMODITIES"],"mappings":"O,i7kBAiCO,IAAME,YAAoCF,wBAC7CC,oBACA,cACJC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getLocalizedText}from"./chunk-RVIYOHYF.js";var codex_region_names_default={1:{en:"Galactic Centre",de:"Galaktisches Zentrum",es:"Centro galáctico",fr:"Centre galactique",pt:"Centro Galáctico",ru:"Галактический центр"},2:{en:"Empyrean Straits",de:"Empyrean Straits",es:"Empyrean Straits",fr:"Détroit Empyréen",pt:"Empyrean Straits",ru:"Empyrean Straits"},3:{en:"Ryker's Hope",de:"Ryker's Hope",es:"Ryker's Hope",fr:"Espérance de Ryker",pt:"Ryker's Hope",ru:"Ryker's Hope"},4:{en:"Odin's Hold",de:"Odin's Hold",es:"Odin's Hold",fr:"Forteresse d'Odin",pt:"Odin's Hold",ru:"Odin's Hold"},5:{en:"Norma Arm",de:"Norma Arm",es:"Norma Arm",fr:"Bras de la Règle",pt:"Norma Arm",ru:"Norma Arm"},6:{en:"Arcadian Stream",de:"Arcadian Stream",es:"Arcadian Stream",fr:"Courant Arcadien",pt:"Arcadian Stream",ru:"Arcadian Stream"},7:{en:"Izanami",de:"Izanami",es:"Izanami",fr:"Izanami",pt:"Izanami",ru:"Izanami"},8:{en:"Inner Orion-Perseus Conflux",de:"Inner Orion-Perseus Conflux",es:"Inner Orion-Perseus Conflux",fr:"Confluent Orio-Perse interne",pt:"Inner Orion-Perseus Conflux",ru:"Inner Orion-Perseus Conflux"},9:{en:"Inner Scutum-Centaurus Arm",de:"Inner Scutum-Centaurus Arm",es:"Inner Scutum-Centaurus Arm",fr:"Bras Écu-Croix interne",pt:"Inner Scutum-Centaurus Arm",ru:"Inner Scutum-Centaurus Arm"},10:{en:"Norma Expanse",de:"Norma Expanse",es:"Norma Expanse",fr:"Étendue de la Règle",pt:"Norma Expanse",ru:"Norma Expanse"},11:{en:"Trojan Belt",de:"Trojan Belt",es:"Trojan Belt",fr:"Ceinture Troyenne",pt:"Trojan Belt",ru:"Trojan Belt"},12:{en:"The Veils",de:"The Veils",es:"The Veils",fr:"Dentelles du Cygne",pt:"The Veils",ru:"The Veils"},13:{en:"Newton's Vault",de:"Newton’s Vault",es:"Newton’s Vault",fr:"Voûte de Newton",pt:"Newton’s Vault",ru:"Newton’s Vault"},14:{en:"The Conduit",de:"The Conduit",es:"The Conduit",fr:"Le Conduit",pt:"The Conduit",ru:"The Conduit"},15:{en:"Outer Orion-Perseus Conflux",de:"Outer Orion-Perseus Conflux",es:"Outer Orion-Perseus Conflux",fr:"Confluent Orio-Perse externe",pt:"Outer Orion-Perseus Conflux",ru:"Outer Orion-Perseus Conflux"},16:{en:"Orion-Cygnus Arm",de:"Orion-Cygnus Arm",es:"Orion-Cygnus Arm",fr:"Bras d'Orion",pt:"Orion-Cygnus Arm",ru:"Ori-Cygnus Arm"},17:{en:"Temple",de:"Temple",es:"Temple",fr:"Temple",pt:"Temple",ru:"Temple"},18:{en:"Inner Orion Spur",de:"Inner Orion Spur",es:"Inner Orion Spur",fr:"Boucle d'Orion interne",pt:"Inner Orion Spur",ru:"Inner Orion Spur"},19:{en:"Hawking's Gap",de:"Hawking's Gap",es:"Hawking's Gap",fr:"Brèche de Hawking",pt:"Hawking's Gap",ru:"Hawking's Gap"},20:{en:"Dryman's Point",de:"Dryman's Point",es:"Dryman's Point",fr:"Point de Dryman",pt:"Dryman's Point",ru:"Dryman's Point"},21:{en:"Sagittarius-Carina Arm",de:"Sagittarius-Carina Arm",es:"Sagittarius-Carina Arm",fr:"Bras Sagittaire-Carène",pt:"Sagittarius-Carina Arm",ru:"Sagittarius-Carina Arm"},22:{en:"Mare Somnia",de:"Mare Somnia",es:"Mare Somnia",fr:"Mare Somnia",pt:"Mare Somnia",ru:"Mare Somnia"},23:{en:"Acheron",de:"Acheron",es:"Acheron",fr:"Achéron",pt:"Acheron",ru:"Acheron"},24:{en:"Formorian Frontier",de:"Formorian Frontier",es:"Formorian Frontier",fr:"Frontière Formorienne",pt:"Formorian Frontier",ru:"Formorian Frontier"},25:{en:"Hieronymus Delta",de:"Hieronymus Delta",es:"Hieronymus Delta",fr:"Delta de Hieronymus",pt:"Hieronymus Delta",ru:"Hieronymus Delta"},26:{en:"Outer Scutum-Centaurus Arm",de:"Outer Scutum-Centaurus Arm",es:"Outer Scutum-Centaurus Arm",fr:"Bras Écu-Croix externe",pt:"Outer Scutum-Centaurus Arm",ru:"Outer Scutum-Centaurus Arm"},27:{en:"Outer Arm",de:"Outer Arm",es:"Outer Arm",fr:"Bras Extérieur",pt:"Outer Arm",ru:"Outer Arm"},28:{en:"Aquila's Halo",de:"Aquila’s Halo",es:"Aquila’s Halo",fr:"Halo de l'Aigle",pt:"Aquila’s Halo",ru:"Aquila’s Halo"},29:{en:"Errant Marches",de:"Errant Marches",es:"Errant Marches",fr:"Marches Errantes",pt:"Errant Marches",ru:"Errant Marches"},30:{en:"Perseus Arm",de:"Perseus Arm",es:"Perseus Arm",fr:"Bras de Persée",pt:"Perseus Arm",ru:"Perseus Arm"},31:{en:"The Formidine Rift",de:"The Formidine Rift",es:"Formidine Rift",fr:"Faille Formidine",pt:"The Formidine Rift",ru:"The Formidine Rift"},32:{en:"Vulcan Gate",de:"Vulcan Gate",es:"Vulcan Gate",fr:"Porte de Vulcain",pt:"Vulcan Gate",ru:"Vulcan Gate"},33:{en:"Elysian Shore",de:"Elysian Shore",es:"Elysian Shore",fr:"Rivage Élyséen",pt:"Elysian Shore",ru:"Elysian Shore"},34:{en:"Sanguineous Rim",de:"Sanguineous Rim",es:"Sanguineous Rim",fr:"Frontière Sanguine",pt:"Sanguineous Rim",ru:"Sanguineous Rim"},35:{en:"Outer Orion Spur",de:"Outer Orion Spur",es:"Outer Orion Spur",fr:"Boucle d'Orion externe",pt:"Outer Orion Spur",ru:"Outer Orion Spur"},36:{en:"Achilles's Altar",de:"Achilles’ Altar",es:"Achilles’ Altar",fr:"Autel d'Achille",pt:"Achilles’ Altar",ru:"Achilles’ Altar"},37:{en:"Xibalba",de:"Xibalba",es:"Xibalba",fr:"Xibalba",pt:"Xibalba",ru:"Xibalba"},38:{en:"Lyra's Song",de:"Lyra’s Song",es:"Lyra’s Song",fr:"Chant de la Lyre",pt:"Lyra’s Song",ru:"Lyra’s Song"},39:{en:"Tenebrae",de:"Tenebrae",es:"Tenebrae",fr:"Tenebrae",pt:"Tenebrae",ru:"Tenebrae"},40:{en:"The Abyss",de:"The Abyss",es:"The Abyss",fr:"L'Abysse",pt:"The Abyss",ru:"The Abyss"},41:{en:"Kepler's Crest",de:"Kepler’s Crest",es:"Kepler’s Crest",fr:"Crête de Kepler",pt:"Kepler’s Crest",ru:"Kepler’s Crest"},42:{en:"The Void",de:"The Void",es:"The Void",fr:"Le Néant",pt:"The Void",ru:"The Void"}};var CODEX_REGION_NAMES=codex_region_names_default;function getCodexRegionName(id,locale){const key=String(id);const record=Object.hasOwn(CODEX_REGION_NAMES,key)?CODEX_REGION_NAMES[key]:void 0;return getLocalizedText(record??null,locale,"getCodexRegionName")}export{getCodexRegionName};//# sourceMappingURL=chunk-O4NIJDL4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/i18n/codex-regions.ts"],"names":["getLocalizedText","codex_region_names_default","CODEX_REGION_NAMES","getCodexRegionName","id","locale","key","String","record","Object","hasOwn"],"mappings":"O,2uKAKA,IAAME,mBAAqBD,2BA+BpB,SAASE,mBAAmBC,GAAYC,QAE3C,MAAMC,IAAMC,OAAOH,IACnB,MAAMI,OAASC,OAAOC,OAAOR,mBAAoBI,KAAOJ,mBAAmBI,UAAO,EAClF,OAAON,iBAAiBQ,QAAU,KAAMH,OAAQ,qBACpD,QAAAF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getPreEngineeredVariants}from"./chunk-AUBV6S7V.js";import{builtInModuleBySymbol,getModuleBySymbol}from"./chunk-OSMBAFRW.js";import{ALL_MODULES}from"./chunk-UVX7RCMP.js";import{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"./chunk-77I24V6B.js";import{fieldForLabel,damageTypeForLabel,capabilityValueForLabel,baseStats,computeModifiers,labelsForDamageType,scaleForLabel}from"./chunk-U73MBQ45.js";import{round6,burstPartOrOne,float32FiringCycle,float32RateOfFire,preciseModifierValue,BURST_PATTERN_LABELS,journalRateOfFire,preciseValueFor}from"./chunk-EFQOUATZ.js";import{resolveBlueprintForModule}from"./chunk-2J6NNI3Y.js";import{getBlueprintsForModule,getExperimentalsForModule,getEngineeringGroup}from"./chunk-M4STXLXO.js";import{getBlueprintGrade,getBlueprint,BLUEPRINTS}from"./chunk-AYAKU4YA.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function scaleDamageComponents(components,baseDamage,effectiveDamage){const scale=baseDamage!==void 0&&baseDamage!==0&&effectiveDamage!==void 0?effectiveDamage/baseDamage:1;return{...components.kinetic===void 0?{}:{kinetic:components.kinetic*scale},...components.thermal===void 0?{}:{thermal:components.thermal*scale},...components.explosive===void 0?{}:{explosive:components.explosive*scale},...components.absolute===void 0?{}:{absolute:components.absolute*scale},...components.antiXeno===void 0?{}:{antiXeno:components.antiXeno*scale},...components.unclassified===void 0?{}:{unclassified:components.unclassified.map(value=>value*scale)}}}function fixedModifierFeatures(modifiers){return modifiers.map(modifier=>({label:modifier.label,method:modifier.method,min:modifier.value,max:modifier.value}))}var FITTED_ITEM="ShipLoadout: fitted module Item";function isNonOutfittingSlot(slotKey){return/^(paintjob|shipname\d+|shipid\d+|bobble\d+|decal\d+|shipkit.+|weaponcolour|enginecolour|vesselvoice|shipcockpit|stringlights)$/i.test(slotKey)}function isCargoHatchSlot(slotKey){return slotKey.toLowerCase()==="cargohatch"}var BUILT_IN_HULL_SYMBOL="ModularCargoBayDoor";function isBuiltInHullSymbol(symbol){return symbol.toLowerCase().startsWith(BUILT_IN_HULL_SYMBOL.toLowerCase())}function isBuiltInHullModule(module){return isCargoHatchSlot(module.Slot)&&isBuiltInHullSymbol(module.Item)}function cloneLoadoutModule(module){return{Slot:module.Slot,Item:module.Item,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health},...module.Value===void 0?{}:{Value:module.Value},...module.Engineering===void 0?{}:{Engineering:{BlueprintName:module.Engineering.BlueprintName,Level:module.Engineering.Level,Quality:module.Engineering.Quality,...module.Engineering.ExperimentalEffect===void 0?{}:{ExperimentalEffect:module.Engineering.ExperimentalEffect},...module.Engineering.ExperimentalEffect_Localised===void 0?{}:{ExperimentalEffect_Localised:module.Engineering.ExperimentalEffect_Localised},...module.Engineering.Modifiers===void 0?{}:{Modifiers:module.Engineering.Modifiers.map(modifier=>({...modifier}))}}}}}function matchingKeyIn(keyed,slotKey){if(keyed.has(slotKey))return slotKey;const wanted=slotKey.toLowerCase();for(const key of keyed.keys()){if(key.toLowerCase()===wanted)return key}return null}function ownKeyIn(keyed,canonicalKey){return matchingKeyIn(keyed,canonicalKey)??(keyed.size>0&&[...keyed.keys()].every(key=>key===key.toLowerCase())?canonicalKey.toLowerCase():canonicalKey)}function orderBySlotLayout(values,layout,slotOf){const order=new Map(layout.map((slot,index)=>[slot.key.toLowerCase(),index]));return[...values].sort((left,right)=>(order.get(slotOf(left).toLowerCase())??Number.MAX_SAFE_INTEGER)-(order.get(slotOf(right).toLowerCase())??Number.MAX_SAFE_INTEGER))}function cloneModuleStats(module){try{return deepFreeze(structuredClone(module))}catch(error){if(!(error instanceof Error&&error.name==="DataCloneError"))throw error;return deepFreeze({...module,...module.restrictedToShips===void 0?{}:{restrictedToShips:[...module.restrictedToShips]},...module.limitIncrease===void 0?{}:{limitIncrease:{...module.limitIncrease}},...module.damageDistribution===void 0?{}:{damageDistribution:{...module.damageDistribution}},...module.damageComponents===void 0?{}:{damageComponents:{...module.damageComponents,...module.damageComponents.unclassified===void 0?{}:{unclassified:[...module.damageComponents.unclassified]}}},...module.projectileRange===void 0?{}:{projectileRange:{...module.projectileRange}}})}}var GUARDIAN_WEAPON_GROUPS=/* @__PURE__ */new Set(["guardianGauss","guardianPlasma","guardianShard"]);function missingBaseLabels(stats,base,features,experimental){const contributions=[...features,...experimental??[]];return[...new Set(contributions.map(contribution=>contribution.label).filter(label=>{if(base[label]!==void 0)return false;return fieldForLabel(label,stats)===null}))]}function recipeSignature(blueprintSymbol){const blueprint=getBlueprint(blueprintSymbol);if(!blueprint)return null;const grades=Object.entries(blueprint.grades).map(([grade,{features:features}])=>`${grade}:${features.map(feature=>`${feature.label}/${feature.method??""}`).sort().join(",")}`).sort().join(";");return`${blueprint.name.toLowerCase()}|${grades}`}var isGenericSpelling=blueprintSymbol=>blueprintSymbol.toLowerCase().startsWith("misc_");function isSoldWithBlueprint(item,wanted){return getPreEngineeredVariants(item).some(variant=>variant.acquisition==="mercenary"&&variant.blueprintSymbol.toLowerCase()===wanted)}function blueprintRoutesFor(item){const routes=/* @__PURE__ */new Map;for(const blueprintSymbol of getBlueprintsForModule(item))routes.set(blueprintSymbol,"ordinary");for(const variant of getPreEngineeredVariants(item)){if(variant.acquisition==="mercenary"&&!routes.has(variant.blueprintSymbol)){routes.set(variant.blueprintSymbol,"mercenary")}}return routes}function blueprintAvailableFor(item,blueprintSymbol){const offered=getBlueprintsForModule(item);const asWritten=normalizeKey(blueprintSymbol,"ShipLoadout.applyBlueprint: blueprintSymbol");const resolved=resolveBlueprintForModule(item,blueprintSymbol).trim();const wanted=resolved.toLowerCase();if(offered.some(id=>id.toLowerCase()===wanted))return true;if(isSoldWithBlueprint(item,wanted)||isSoldWithBlueprint(item,asWritten))return true;if(!isGenericSpelling(wanted))return false;const signature=recipeSignature(resolved);if(signature===null)return false;return offered.some(id=>recipeSignature(id)===signature&&!isGenericSpelling(id))}function experimentalAvailableFor(item,experimentalEffectSymbol){const wanted=normalizeKey(experimentalEffectSymbol,"ShipLoadout.applyBlueprint: options.experimentalEffectSymbol");return getExperimentalsForModule(item).some(id=>id.toLowerCase()===wanted)}function primitiveLabelFor(stats,label){if(label==="MaximumRange"&&stats.maximumRange!==void 0)return"Range";if(label==="DamageFalloffRange"&&stats.falloffRange!==void 0){return"FalloffRange"}if(label==="Range"&&stats.scannerRange!==void 0)return"ScannerRange";if(label==="DSS_PatchRadius")return"ProbeRadius";if(label==="FuelScoopRate")return"RefuelRate";if(label==="EnergyPerRegen"&&stats.shieldRegenRate!==void 0){return"DistributorDraw"}return label}function primitiveEngineeringInputsFor(stats,grade,experimental){const canonicalGrade={...grade,features:grade.features.map(feature=>{const label=primitiveLabelFor(stats,feature.label);return label===feature.label?feature:{...feature,label:label}})};if(!experimental)return{grade:canonicalGrade};return{grade:canonicalGrade,experimental:{...experimental,modifiers:experimental.modifiers.map(modifier=>{const label=primitiveLabelFor(stats,modifier.label);return label===modifier.label?modifier:{...modifier,label:label}})}}}function matchesCalculatedModifiers(captured,calculated){if(!captured||captured.length!==calculated.length)return false;const byLabel=new Map(captured.map(modifier=>[modifier.Label.trim().toLowerCase(),modifier]));if(byLabel.size!==captured.length)return false;return calculated.every(expected=>{const actual=byLabel.get(expected.Label.trim().toLowerCase());if(!actual)return false;if(expected.Value!==void 0){return actual.Value!==void 0&&Math.abs(actual.Value-expected.Value)<=1e-5*Math.max(1,Math.abs(expected.Value))}return actual.ValueStr===expected.ValueStr})}function identityArticles(item,engineering){if(engineering.Modifiers!==void 0||typeof engineering.BlueprintName!=="string"){return[]}const wanted=engineering.BlueprintName.trim().toLowerCase();const experimental=engineering.ExperimentalEffect?.trim().toLowerCase();return getPreEngineeredVariants(item).filter(candidate=>candidate.blueprintSymbol.trim().toLowerCase()===wanted&&candidate.grade===engineering.Level&&(candidate.experimentalEffectSymbol===void 0?experimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimentalEffectSymbol.trim().toLowerCase()===experimental))}function unrollableFixedArticle(item,engineering){const matches=identityArticles(item,engineering).filter(candidate=>!blueprintAvailableFor(item,candidate.blueprintSymbol));return matches.length===1?matches[0]:null}function rolledOverFixedArticle(item,engineering){const matches=identityArticles(item,engineering).filter(candidate=>blueprintAvailableFor(item,candidate.blueprintSymbol));return matches.length===1?matches[0]:null}function statesInertModifiers(stats,modifiers){return modifiers.every(modifier=>{if(damageTypeForLabel(modifier.Label)!==null||capabilityValueForLabel(modifier.Label)!==null){return false}const field=fieldForLabel(modifier.Label,stats);return field===null||typeof stats[field]!=="number"})}function ordinaryEngineeringProof(item,engineering,experimental){const recipe=resolveBlueprintForModule(item,engineering.BlueprintName);const fixedCandidate=getPreEngineeredVariants(item).some(candidate=>candidate.acquisition!=="mercenary"&&candidate.blueprintSymbol.trim().toLowerCase()===recipe.trim().toLowerCase());if(!fixedCandidate)return"notFixedCandidate";const grade=getBlueprintGrade(recipe,engineering.Level);const quality=engineering.Quality;const stock=builtInModuleBySymbol(item,FITTED_ITEM);if(!stock||!grade||experimental===null||!Number.isFinite(quality)||quality<0||quality>1){return"unproven"}const current=primitiveEngineeringInputsFor(stock,grade,experimental);if(missingBaseLabels(stock,baseStats(stock),current.grade.features,current.experimental?.modifiers).length>0){return"unproven"}const calculated=journalModifiersFor(stock,computeModifiers(baseStats(stock),current.grade,quality,current.experimental));const damageDistribution=current.experimental?.damageDistribution??current.grade.damageDistribution;if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;calculated.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(stock.damageDistribution?.[type]??0)*scaleForLabel(label)})}}return matchesCalculatedModifiers(engineering.Modifiers,calculated)?"proven":"unproven"}function float32DamagePerSecond(damage,rounds,rate,burstRounds,cycle){if(cycle!==void 0&&(rounds!==1||burstRounds!==1)){const damagePerCycle=Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(burstRounds));return Math.fround(damagePerCycle/cycle)}return Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(rate))}var JOURNAL_MODIFIER_ORDER=["CargoCapacity","GuardianModuleResistance","Mass","Integrity","PowerDraw","BootTime","PowerCapacity","HeatEfficiency","FSDOptimalMass","MaxFuelPerJump","FSDHeatRate","EngineOptimalMass","EngineOptPerformance","EngineHeatRate","ShieldGenOptimalMass","ShieldGenStrength","DamagePerSecond","Damage","DistributorDraw","ThermalLoad","ArmourPenetration","MaximumRange","ShotSpeed","RateOfFire","DamageType","$Kinetic;","$Thermal;","$Explosive;","$Absolute;","AmmoClipSize","AmmoMaximum","ReloadTime","Jitter","DamageFalloffRange","DefenceModifierShieldMultiplier","DefenceModifierHealthMultiplier","DefenceModifierHealthAddition","DefenceModifierShieldAddition","RegenRate","BrokenRegenRate","EnergyPerRegen","KineticResistance","ThermicResistance","ExplosiveResistance","CausticResistance","DamageProtection","ModuleDefenceAbsorption","WeaponsCapacity","WeaponsRecharge","EnginesCapacity","EnginesRecharge","SystemsCapacity","SystemsRecharge","ShieldBankSpinUp","ShieldBankDuration","ShieldBankReinforcement","ShieldBankHeat","FSDInterdictorRange","FSDInterdictorFacingLimit","SensorTargetScanAngle","MaxAngle","ScannerTimeToScan","Range","DSS_PatchRadius","FuelScoopRate","FuelCapacity"];var JOURNAL_MODIFIER_RANK=new Map(JOURNAL_MODIFIER_ORDER.map((label,index)=>[label,index]));function sortJournalModifiers(modifiers){return modifiers.map((modifier,index)=>({modifier:modifier,index:index})).sort((a,b)=>(JOURNAL_MODIFIER_RANK.get(a.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)-(JOURNAL_MODIFIER_RANK.get(b.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)||a.index-b.index).map(({modifier:modifier})=>modifier)}function journalModifiersFor(stats,modifiers){const weapon=stats.damage!==void 0;const valueFor=(label,fallback)=>{const modifier=modifiers.find(candidate=>candidate.Label===label);return(modifier&&preciseModifierValue(modifier))??Math.fround(fallback)};const burstTouched=["BurstInterval","BurstSize","BurstRateOfFire"].some(label=>modifiers.some(modifier=>modifier.Label===label));const damageTouched=modifiers.some(modifier=>modifier.Label==="Damage");const rateTouched=burstTouched||modifiers.some(modifier=>modifier.Label==="RateOfFire");let damagePerSecond;let derivedRate;if(weapon&&(damageTouched||rateTouched)){const continuous=stats.burstInterval===void 0&&stats.rateOfFire===void 0;const baseDamage=Math.fround(stats.damage);const effectiveDamage=valueFor("Damage",stats.damage);if(continuous){damagePerSecond={Label:"DamagePerSecond",Value:round6(effectiveDamage),OriginalValue:round6(baseDamage)}}else{const burstRounds=burstPartOrOne(valueFor("BurstSize",stats.burstRounds??1));const burstRate=burstPartOrOne(valueFor("BurstRateOfFire",stats.burstRateOfFire??1));const baseBurstRounds=Math.fround(burstPartOrOne(stats.burstRounds));const baseBurstRate=Math.fround(burstPartOrOne(stats.burstRateOfFire));const baseInterval=stats.burstInterval===void 0?void 0:Math.fround(stats.burstInterval);const baseCycle=baseInterval===void 0?void 0:float32FiringCycle(baseInterval,baseBurstRounds,baseBurstRate);const baseRate=baseInterval!==void 0?float32RateOfFire(baseInterval,baseBurstRounds,baseBurstRate):stats.rateOfFire===void 0?void 0:Math.fround(stats.rateOfFire);const rateModifier=modifiers.find(modifier=>modifier.Label==="RateOfFire");const effectiveRate=rateModifier&&preciseModifierValue(rateModifier);const effectiveInterval=valueFor("BurstInterval",stats.burstInterval??0);const effectiveCycle=effectiveRate===void 0?float32FiringCycle(effectiveInterval,burstRounds,burstRate):void 0;const rate=effectiveRate??(effectiveCycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/effectiveCycle));if(baseRate!==void 0&&rate!==void 0){const stockRounds=Math.fround(stats.roundsPerShot??1);const effectiveRounds=Math.fround(modifiers.find(modifier=>modifier.Label==="Rounds"||modifier.Label==="RoundsPerShot")?.Value??stockRounds);damagePerSecond={Label:"DamagePerSecond",Value:round6(float32DamagePerSecond(effectiveDamage,effectiveRounds,rate,burstRounds,effectiveCycle)),OriginalValue:round6(float32DamagePerSecond(baseDamage,stockRounds,baseRate,baseBurstRounds,baseCycle))};if(burstTouched){derivedRate={Label:"RateOfFire",Value:round6(rate),OriginalValue:round6(baseRate)}}}}}const result=[];for(const modifier of modifiers){const label=modifier.Label;if(weapon&&["BurstInterval","BurstSize","BurstRateOfFire"].includes(label))continue;if(weapon&&label==="Damage"&&stats.rateOfFire===void 0)continue;let journalLabel=label;if(label==="Range"&&stats.maximumRange!==void 0)journalLabel="MaximumRange";else if(label==="FalloffRange"&&stats.falloffRange!==void 0){journalLabel="DamageFalloffRange"}else if(label==="ScannerRange"&&stats.scannerRange!==void 0){journalLabel="Range"}else if(label==="ProbeRadius")journalLabel="DSS_PatchRadius";else if(label==="RefuelRate")journalLabel="FuelScoopRate";else if(label==="DistributorDraw"&&stats.shieldRegenRate!==void 0){journalLabel="EnergyPerRegen"}result.push(journalLabel===label?modifier:{...modifier,Label:journalLabel})}if(damagePerSecond)result.push(damagePerSecond);if(derivedRate){const direct=result.findIndex(modifier=>modifier.Label==="RateOfFire");if(direct>=0)result[direct]=derivedRate;else result.push(derivedRate)}return sortJournalModifiers(result)}function isFinalGuardianWeaponEngineering(item,blueprint){const group=getEngineeringGroup(item);if(group===null||!GUARDIAN_WEAPON_GROUPS.has(group))return false;const resolved=resolveBlueprintForModule(item,blueprint);return getBlueprint(resolved)!==null&&!blueprintAvailableFor(item,blueprint)}function engineerableBase(item,statsOverride){const stats=statsOverride??builtInModuleBySymbol(item,FITTED_ITEM);if(!stats||stats.engineeringLocked)return null;return{stats:stats,base:baseStats(stats)}}function availableBlueprintsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;const available=[];for(const[blueprintSymbol,route]of blueprintRoutesFor(item)){const blueprint=BLUEPRINTS[blueprintSymbol];if(!blueprint)continue;const grades=Object.entries(blueprint.grades).filter(([,grade])=>missingBaseLabels(stats,base,grade.features).length===0).map(([grade])=>Number(grade)).filter(Number.isFinite).sort((a,b)=>a-b);if(grades.length>0)available.push({blueprintSymbol:blueprintSymbol,grades:grades,route:route})}return available}function availableExperimentalsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;return getExperimentalsForModule(item).filter(experimentalEffectSymbol=>{const effect=EXPERIMENTAL_EFFECTS[experimentalEffectSymbol];return effect!==void 0&&missingBaseLabels(stats,base,effect.modifiers).length===0})}var MAX_ENGINEERING_GRADE=5;function modifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;if(!module||!variant.modifiers?.length&&effectName==null)return null;const effect=effectName==null?void 0:getExperimentalEffect(effectName);if(effectName!==null&&effectName!==void 0&&!effect)return null;return computeModifiers(baseStats(module),fixedModifierFeatures(variant.modifiers??[]),1,effect??void 0)}function getPreEngineeredModifiers(variant){return modifiersWithExperimental(variant)??[]}function journalModifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return[];const modifiers=journalModifiersFor(module,modifiersWithExperimental(variant,experimental)??[]);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;const damageDistribution=effectName?getExperimentalEffect(effectName)?.damageDistribution:void 0;if(!damageDistribution)return modifiers;for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];const label=labelsForDamageType(type)[0];if(value===void 0||label===void 0)continue;modifiers.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(module.damageDistribution?.[type]??0)*scaleForLabel(label)})}return modifiers}function getPreEngineeredJournalModifiers(variant){return journalModifiersWithExperimental(variant)}function sameJournalNumber(actual,expected,base){return Math.abs(actual-expected)<=Math.max(1e-5,Math.abs(base)*1e-4,Math.abs(expected)*1e-6)}function modifierKey(modifier,module){return fieldForLabel(modifier.Label,module)??`label:${normalizeKey(modifier.Label,"identifyPreEngineeredVariant: module.Engineering.Modifiers[].Label")}`}function sameModifier(actual,expected){if(expected.Value!==void 0){return actual.Value!==void 0&&sameJournalNumber(actual.Value,expected.Value,expected.OriginalValue??expected.Value)}return expected.ValueStr!==void 0&&actual.ValueStr!==void 0}function matchesModifierSignature(actualByKey,expected,module){let matched=0;for(const predicted of expected){const actual=actualByKey.get(modifierKey(predicted,module));if(!actual)continue;if(!sameModifier(actual,predicted))return false;matched++}return matched>=Math.max(1,expected.length-1)}function identifyPreEngineeredVariant(module){const engineering=module.Engineering;if(!engineering)return null;requireStringIfPresent(module.Item,"identifyPreEngineeredVariant: module.Item");const stock=getModuleBySymbol(module.Item,ALL_MODULES);if(!stock)return null;const capturedBlueprint=normalizeKey(engineering.BlueprintName,"identifyPreEngineeredVariant: module.Engineering.BlueprintName");const variants=getPreEngineeredVariants(module.Item);const blueprintMatches=variants.filter(candidate=>candidate.blueprintSymbol.toLowerCase()===capturedBlueprint);const blueprintMatch=blueprintMatches.length===1?blueprintMatches[0]:null;const capturedGrade=engineering.Level;if(blueprintMatch?.acquisition==="mercenary"&&Number.isInteger(capturedGrade)&&capturedGrade>=blueprintMatch.grade&&capturedGrade<=MAX_ENGINEERING_GRADE){return blueprintMatch}if(engineering.Modifiers===void 0){const capturedExperimental=normalizeKey(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const identityMatches=blueprintMatches.filter(candidate=>candidate.engineeringLocked===true&&candidate.grade===capturedGrade&&(candidate.experimentalEffectSymbol===void 0?capturedExperimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimentalEffectSymbol.toLowerCase()===capturedExperimental));return identityMatches.length===1?identityMatches[0]:null}if(!engineering.Modifiers?.length)return null;const actualByKey=/* @__PURE__ */new Map;for(const modifier of engineering.Modifiers){actualByKey.set(modifierKey(modifier,stock),modifier)}requireStringIfPresent(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const matches=[];for(const candidate of variants){if(!candidate.modifiers?.length)continue;if(candidate.grade!==engineering.Level)continue;if(candidate.acquisition==="eventReward"&&(engineering.ExperimentalEffect!==void 0||engineering.ExperimentalEffect_Localised!==void 0||capturedBlueprint!==candidate.blueprintSymbol.toLowerCase())){continue}const primitive=modifiersWithExperimental(candidate,engineering.ExperimentalEffect??null);if(!primitive?.length)continue;const matched=matchesModifierSignature(actualByKey,primitive,stock)||matchesModifierSignature(actualByKey,journalModifiersWithExperimental(candidate,engineering.ExperimentalEffect??null),stock);if(matched)matches.push(candidate)}return matches.length===1?matches[0]:null}function unresolvedModifiers(variant){const resolved=new Set(getPreEngineeredModifiers(variant).map(modifier=>modifier.Label));return(variant.modifiers??[]).map(modifier=>modifier.label).filter(label=>!resolved.has(label))}function getPreEngineeredStats(variant){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return null;if(!variant.modifiers?.length&&!variant.engineeringLocked&&variant.experimentalEffectSymbol===void 0)return{...module};const applied=getPreEngineeredModifiers(variant);const resolved={...module,...variant.engineeringLocked?{engineeringLocked:true}:{}};for(const{Label:Label,Value:Value,ValueStr:ValueStr}of applied){const field=fieldForLabel(Label,module);if(field&&field!=="damageDistribution"&&Value!==void 0){Object.assign(resolved,{[field]:Value/scaleForLabel(Label)})}else if(field&&ValueStr!==void 0&&capabilityValueForLabel(Label)!==null){Object.assign(resolved,{[field]:true})}}const experimentalDamageDistribution=variant.experimentalEffectSymbol?getExperimentalEffect(variant.experimentalEffectSymbol)?.damageDistribution:void 0;if(experimentalDamageDistribution){resolved.damageDistribution={...experimentalDamageDistribution};delete resolved.damageComponents}if(resolved.rateOfFire!==void 0&&!applied.some(m=>m.Label==="RateOfFire")&&applied.some(m=>BURST_PATTERN_LABELS.some(label=>label===m.Label))){const rate=journalRateOfFire(preciseValueFor(applied,"BurstInterval")??resolved.burstInterval,preciseValueFor(applied,"BurstSize")??resolved.burstRounds,preciseValueFor(applied,"BurstRateOfFire")??resolved.burstRateOfFire);if(rate!==void 0)resolved.rateOfFire=rate}if(module.damageComponents&&!experimentalDamageDistribution){resolved.damageComponents=scaleDamageComponents(module.damageComponents,module.damage,resolved.damage)}return resolved}export{BUILT_IN_HULL_SYMBOL,FITTED_ITEM,availableBlueprintsFor,availableExperimentalsFor,blueprintAvailableFor,blueprintRoutesFor,cloneLoadoutModule,cloneModuleStats,experimentalAvailableFor,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,isBuiltInHullModule,isBuiltInHullSymbol,isCargoHatchSlot,isFinalGuardianWeaponEngineering,isNonOutfittingSlot,journalModifiersFor,matchingKeyIn,missingBaseLabels,orderBySlotLayout,ordinaryEngineeringProof,ownKeyIn,primitiveEngineeringInputsFor,rolledOverFixedArticle,scaleDamageComponents,statesInertModifiers,unresolvedModifiers,unrollableFixedArticle};//# sourceMappingURL=chunk-C3YZ5KTA.js.map
|
|
1
|
+
import{builtInModuleBySymbol,getModuleBySymbol}from"./chunk-OSMBAFRW.js";import{getPreEngineeredVariants}from"./chunk-EXHZ4CFB.js";import{ALL_MODULES}from"./chunk-UVX7RCMP.js";import{getBlueprintGrade,getBlueprint,BLUEPRINTS}from"./chunk-WDAYRHXR.js";import{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"./chunk-77I24V6B.js";import{fieldForLabel,damageTypeForLabel,capabilityValueForLabel,baseStats,computeModifiers,labelsForDamageType,scaleForLabel}from"./chunk-U73MBQ45.js";import{round6,burstPartOrOne,float32FiringCycle,float32RateOfFire,preciseModifierValue,BURST_PATTERN_LABELS,journalRateOfFire,preciseValueFor}from"./chunk-EFQOUATZ.js";import{resolveBlueprintForModule}from"./chunk-2J6NNI3Y.js";import{getBlueprintsForModule,getExperimentalsForModule,getEngineeringGroup}from"./chunk-M4STXLXO.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function scaleDamageComponents(components,baseDamage,effectiveDamage){const scale=baseDamage!==void 0&&baseDamage!==0&&effectiveDamage!==void 0?effectiveDamage/baseDamage:1;return{...components.kinetic===void 0?{}:{kinetic:components.kinetic*scale},...components.thermal===void 0?{}:{thermal:components.thermal*scale},...components.explosive===void 0?{}:{explosive:components.explosive*scale},...components.absolute===void 0?{}:{absolute:components.absolute*scale},...components.antiXeno===void 0?{}:{antiXeno:components.antiXeno*scale},...components.unclassified===void 0?{}:{unclassified:components.unclassified.map(value=>value*scale)}}}function fixedModifierFeatures(modifiers){return modifiers.map(modifier=>({label:modifier.label,method:modifier.method,min:modifier.value,max:modifier.value}))}var FITTED_ITEM="ShipLoadout: fitted module Item";function isNonOutfittingSlot(slotKey){return/^(paintjob|shipname\d+|shipid\d+|bobble\d+|decal\d+|shipkit.+|weaponcolour|enginecolour|vesselvoice|shipcockpit|stringlights)$/i.test(slotKey)}function isCargoHatchSlot(slotKey){return slotKey.toLowerCase()==="cargohatch"}var BUILT_IN_HULL_SYMBOL="ModularCargoBayDoor";function isBuiltInHullSymbol(symbol){return symbol.toLowerCase().startsWith(BUILT_IN_HULL_SYMBOL.toLowerCase())}function isBuiltInHullModule(module){return isCargoHatchSlot(module.Slot)&&isBuiltInHullSymbol(module.Item)}function cloneLoadoutModule(module){return{Slot:module.Slot,Item:module.Item,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health},...module.Value===void 0?{}:{Value:module.Value},...module.Engineering===void 0?{}:{Engineering:{BlueprintName:module.Engineering.BlueprintName,Level:module.Engineering.Level,Quality:module.Engineering.Quality,...module.Engineering.ExperimentalEffect===void 0?{}:{ExperimentalEffect:module.Engineering.ExperimentalEffect},...module.Engineering.ExperimentalEffect_Localised===void 0?{}:{ExperimentalEffect_Localised:module.Engineering.ExperimentalEffect_Localised},...module.Engineering.Modifiers===void 0?{}:{Modifiers:module.Engineering.Modifiers.map(modifier=>({...modifier}))}}}}}function matchingKeyIn(keyed,slotKey){if(keyed.has(slotKey))return slotKey;const wanted=slotKey.toLowerCase();for(const key of keyed.keys()){if(key.toLowerCase()===wanted)return key}return null}function ownKeyIn(keyed,canonicalKey){return matchingKeyIn(keyed,canonicalKey)??(keyed.size>0&&[...keyed.keys()].every(key=>key===key.toLowerCase())?canonicalKey.toLowerCase():canonicalKey)}function orderBySlotLayout(values,layout,slotOf){const order=new Map(layout.map((slot,index)=>[slot.key.toLowerCase(),index]));return[...values].sort((left,right)=>(order.get(slotOf(left).toLowerCase())??Number.MAX_SAFE_INTEGER)-(order.get(slotOf(right).toLowerCase())??Number.MAX_SAFE_INTEGER))}function cloneModuleStats(module){try{return deepFreeze(structuredClone(module))}catch(error){if(!(error instanceof Error&&error.name==="DataCloneError"))throw error;return deepFreeze({...module,...module.restrictedToShips===void 0?{}:{restrictedToShips:[...module.restrictedToShips]},...module.limitIncrease===void 0?{}:{limitIncrease:{...module.limitIncrease}},...module.damageDistribution===void 0?{}:{damageDistribution:{...module.damageDistribution}},...module.damageComponents===void 0?{}:{damageComponents:{...module.damageComponents,...module.damageComponents.unclassified===void 0?{}:{unclassified:[...module.damageComponents.unclassified]}}},...module.projectileRange===void 0?{}:{projectileRange:{...module.projectileRange}}})}}var GUARDIAN_WEAPON_GROUPS=/* @__PURE__ */new Set(["guardianGauss","guardianPlasma","guardianShard"]);function missingBaseLabels(stats,base,features,experimental){const contributions=[...features,...experimental??[]];return[...new Set(contributions.map(contribution=>contribution.label).filter(label=>{if(base[label]!==void 0)return false;return fieldForLabel(label,stats)===null}))]}function recipeSignature(blueprintSymbol){const blueprint=getBlueprint(blueprintSymbol);if(!blueprint)return null;const grades=Object.entries(blueprint.grades).map(([grade,{features:features}])=>`${grade}:${features.map(feature=>`${feature.label}/${feature.method??""}`).sort().join(",")}`).sort().join(";");return`${blueprint.name.toLowerCase()}|${grades}`}var isGenericSpelling=blueprintSymbol=>blueprintSymbol.toLowerCase().startsWith("misc_");function isSoldWithBlueprint(item,wanted){return getPreEngineeredVariants(item).some(variant=>variant.acquisition==="mercenary"&&variant.blueprintSymbol.toLowerCase()===wanted)}function blueprintRoutesFor(item){const routes=/* @__PURE__ */new Map;for(const blueprintSymbol of getBlueprintsForModule(item))routes.set(blueprintSymbol,"ordinary");for(const variant of getPreEngineeredVariants(item)){if(variant.acquisition==="mercenary"&&!routes.has(variant.blueprintSymbol)){routes.set(variant.blueprintSymbol,"mercenary")}}return routes}function blueprintAvailableFor(item,blueprintSymbol){const offered=getBlueprintsForModule(item);const asWritten=normalizeKey(blueprintSymbol,"ShipLoadout.applyBlueprint: blueprintSymbol");const resolved=resolveBlueprintForModule(item,blueprintSymbol).trim();const wanted=resolved.toLowerCase();if(offered.some(id=>id.toLowerCase()===wanted))return true;if(isSoldWithBlueprint(item,wanted)||isSoldWithBlueprint(item,asWritten))return true;if(!isGenericSpelling(wanted))return false;const signature=recipeSignature(resolved);if(signature===null)return false;return offered.some(id=>recipeSignature(id)===signature&&!isGenericSpelling(id))}function experimentalAvailableFor(item,experimentalEffectSymbol){const wanted=normalizeKey(experimentalEffectSymbol,"ShipLoadout.applyBlueprint: options.experimentalEffectSymbol");return getExperimentalsForModule(item).some(id=>id.toLowerCase()===wanted)}function primitiveLabelFor(stats,label){if(label==="MaximumRange"&&stats.maximumRange!==void 0)return"Range";if(label==="DamageFalloffRange"&&stats.falloffRange!==void 0){return"FalloffRange"}if(label==="Range"&&stats.scannerRange!==void 0)return"ScannerRange";if(label==="DSS_PatchRadius")return"ProbeRadius";if(label==="FuelScoopRate")return"RefuelRate";if(label==="EnergyPerRegen"&&stats.shieldRegenRate!==void 0){return"DistributorDraw"}return label}function primitiveEngineeringInputsFor(stats,grade,experimental){const canonicalGrade={...grade,features:grade.features.map(feature=>{const label=primitiveLabelFor(stats,feature.label);return label===feature.label?feature:{...feature,label:label}})};if(!experimental)return{grade:canonicalGrade};return{grade:canonicalGrade,experimental:{...experimental,modifiers:experimental.modifiers.map(modifier=>{const label=primitiveLabelFor(stats,modifier.label);return label===modifier.label?modifier:{...modifier,label:label}})}}}function matchesCalculatedModifiers(captured,calculated){if(!captured||captured.length!==calculated.length)return false;const byLabel=new Map(captured.map(modifier=>[modifier.Label.trim().toLowerCase(),modifier]));if(byLabel.size!==captured.length)return false;return calculated.every(expected=>{const actual=byLabel.get(expected.Label.trim().toLowerCase());if(!actual)return false;if(expected.Value!==void 0){return actual.Value!==void 0&&Math.abs(actual.Value-expected.Value)<=1e-5*Math.max(1,Math.abs(expected.Value))}return actual.ValueStr===expected.ValueStr})}function identityArticles(item,engineering){if(engineering.Modifiers!==void 0||typeof engineering.BlueprintName!=="string"){return[]}const wanted=engineering.BlueprintName.trim().toLowerCase();const experimental=engineering.ExperimentalEffect?.trim().toLowerCase();return getPreEngineeredVariants(item).filter(candidate=>candidate.blueprintSymbol.trim().toLowerCase()===wanted&&candidate.grade===engineering.Level&&(candidate.experimentalEffectSymbol===void 0?experimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimentalEffectSymbol.trim().toLowerCase()===experimental))}function unrollableFixedArticle(item,engineering){const matches=identityArticles(item,engineering).filter(candidate=>!blueprintAvailableFor(item,candidate.blueprintSymbol));return matches.length===1?matches[0]:null}function rolledOverFixedArticle(item,engineering){const matches=identityArticles(item,engineering).filter(candidate=>blueprintAvailableFor(item,candidate.blueprintSymbol));return matches.length===1?matches[0]:null}function statesInertModifiers(stats,modifiers){return modifiers.every(modifier=>{if(damageTypeForLabel(modifier.Label)!==null||capabilityValueForLabel(modifier.Label)!==null){return false}const field=fieldForLabel(modifier.Label,stats);return field===null||typeof stats[field]!=="number"})}function ordinaryEngineeringProof(item,engineering,experimental){const recipe=resolveBlueprintForModule(item,engineering.BlueprintName);const fixedCandidate=getPreEngineeredVariants(item).some(candidate=>candidate.acquisition!=="mercenary"&&candidate.blueprintSymbol.trim().toLowerCase()===recipe.trim().toLowerCase());if(!fixedCandidate)return"notFixedCandidate";const grade=getBlueprintGrade(recipe,engineering.Level);const quality=engineering.Quality;const stock=builtInModuleBySymbol(item,FITTED_ITEM);if(!stock||!grade||experimental===null||!Number.isFinite(quality)||quality<0||quality>1){return"unproven"}const current=primitiveEngineeringInputsFor(stock,grade,experimental);if(missingBaseLabels(stock,baseStats(stock),current.grade.features,current.experimental?.modifiers).length>0){return"unproven"}const calculated=journalModifiersFor(stock,computeModifiers(baseStats(stock),current.grade,quality,current.experimental));const damageDistribution=current.experimental?.damageDistribution??current.grade.damageDistribution;if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;calculated.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(stock.damageDistribution?.[type]??0)*scaleForLabel(label)})}}return matchesCalculatedModifiers(engineering.Modifiers,calculated)?"proven":"unproven"}function float32DamagePerSecond(damage,rounds,rate,burstRounds,cycle){if(cycle!==void 0&&(rounds!==1||burstRounds!==1)){const damagePerCycle=Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(burstRounds));return Math.fround(damagePerCycle/cycle)}return Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(rate))}var JOURNAL_MODIFIER_ORDER=["CargoCapacity","GuardianModuleResistance","Mass","Integrity","PowerDraw","BootTime","PowerCapacity","HeatEfficiency","FSDOptimalMass","MaxFuelPerJump","FSDHeatRate","EngineOptimalMass","EngineOptPerformance","EngineHeatRate","ShieldGenOptimalMass","ShieldGenStrength","DamagePerSecond","Damage","DistributorDraw","ThermalLoad","ArmourPenetration","MaximumRange","ShotSpeed","RateOfFire","DamageType","$Kinetic;","$Thermal;","$Explosive;","$Absolute;","AmmoClipSize","AmmoMaximum","ReloadTime","Jitter","DamageFalloffRange","DefenceModifierShieldMultiplier","DefenceModifierHealthMultiplier","DefenceModifierHealthAddition","DefenceModifierShieldAddition","RegenRate","BrokenRegenRate","EnergyPerRegen","KineticResistance","ThermicResistance","ExplosiveResistance","CausticResistance","DamageProtection","ModuleDefenceAbsorption","WeaponsCapacity","WeaponsRecharge","EnginesCapacity","EnginesRecharge","SystemsCapacity","SystemsRecharge","ShieldBankSpinUp","ShieldBankDuration","ShieldBankReinforcement","ShieldBankHeat","FSDInterdictorRange","FSDInterdictorFacingLimit","SensorTargetScanAngle","MaxAngle","ScannerTimeToScan","Range","DSS_PatchRadius","FuelScoopRate","FuelCapacity"];var JOURNAL_MODIFIER_RANK=new Map(JOURNAL_MODIFIER_ORDER.map((label,index)=>[label,index]));function sortJournalModifiers(modifiers){return modifiers.map((modifier,index)=>({modifier:modifier,index:index})).sort((a,b)=>(JOURNAL_MODIFIER_RANK.get(a.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)-(JOURNAL_MODIFIER_RANK.get(b.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)||a.index-b.index).map(({modifier:modifier})=>modifier)}function journalModifiersFor(stats,modifiers){const weapon=stats.damage!==void 0;const valueFor=(label,fallback)=>{const modifier=modifiers.find(candidate=>candidate.Label===label);return(modifier&&preciseModifierValue(modifier))??Math.fround(fallback)};const burstTouched=["BurstInterval","BurstSize","BurstRateOfFire"].some(label=>modifiers.some(modifier=>modifier.Label===label));const damageTouched=modifiers.some(modifier=>modifier.Label==="Damage");const rateTouched=burstTouched||modifiers.some(modifier=>modifier.Label==="RateOfFire");let damagePerSecond;let derivedRate;if(weapon&&(damageTouched||rateTouched)){const continuous=stats.burstInterval===void 0&&stats.rateOfFire===void 0;const baseDamage=Math.fround(stats.damage);const effectiveDamage=valueFor("Damage",stats.damage);if(continuous){damagePerSecond={Label:"DamagePerSecond",Value:round6(effectiveDamage),OriginalValue:round6(baseDamage)}}else{const burstRounds=burstPartOrOne(valueFor("BurstSize",stats.burstRounds??1));const burstRate=burstPartOrOne(valueFor("BurstRateOfFire",stats.burstRateOfFire??1));const baseBurstRounds=Math.fround(burstPartOrOne(stats.burstRounds));const baseBurstRate=Math.fround(burstPartOrOne(stats.burstRateOfFire));const baseInterval=stats.burstInterval===void 0?void 0:Math.fround(stats.burstInterval);const baseCycle=baseInterval===void 0?void 0:float32FiringCycle(baseInterval,baseBurstRounds,baseBurstRate);const baseRate=baseInterval!==void 0?float32RateOfFire(baseInterval,baseBurstRounds,baseBurstRate):stats.rateOfFire===void 0?void 0:Math.fround(stats.rateOfFire);const rateModifier=modifiers.find(modifier=>modifier.Label==="RateOfFire");const effectiveRate=rateModifier&&preciseModifierValue(rateModifier);const effectiveInterval=valueFor("BurstInterval",stats.burstInterval??0);const effectiveCycle=effectiveRate===void 0?float32FiringCycle(effectiveInterval,burstRounds,burstRate):void 0;const rate=effectiveRate??(effectiveCycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/effectiveCycle));if(baseRate!==void 0&&rate!==void 0){const stockRounds=Math.fround(stats.roundsPerShot??1);const effectiveRounds=Math.fround(modifiers.find(modifier=>modifier.Label==="Rounds"||modifier.Label==="RoundsPerShot")?.Value??stockRounds);damagePerSecond={Label:"DamagePerSecond",Value:round6(float32DamagePerSecond(effectiveDamage,effectiveRounds,rate,burstRounds,effectiveCycle)),OriginalValue:round6(float32DamagePerSecond(baseDamage,stockRounds,baseRate,baseBurstRounds,baseCycle))};if(burstTouched){derivedRate={Label:"RateOfFire",Value:round6(rate),OriginalValue:round6(baseRate)}}}}}const result=[];for(const modifier of modifiers){const label=modifier.Label;if(weapon&&["BurstInterval","BurstSize","BurstRateOfFire"].includes(label))continue;if(weapon&&label==="Damage"&&stats.rateOfFire===void 0)continue;let journalLabel=label;if(label==="Range"&&stats.maximumRange!==void 0)journalLabel="MaximumRange";else if(label==="FalloffRange"&&stats.falloffRange!==void 0){journalLabel="DamageFalloffRange"}else if(label==="ScannerRange"&&stats.scannerRange!==void 0){journalLabel="Range"}else if(label==="ProbeRadius")journalLabel="DSS_PatchRadius";else if(label==="RefuelRate")journalLabel="FuelScoopRate";else if(label==="DistributorDraw"&&stats.shieldRegenRate!==void 0){journalLabel="EnergyPerRegen"}result.push(journalLabel===label?modifier:{...modifier,Label:journalLabel})}if(damagePerSecond)result.push(damagePerSecond);if(derivedRate){const direct=result.findIndex(modifier=>modifier.Label==="RateOfFire");if(direct>=0)result[direct]=derivedRate;else result.push(derivedRate)}return sortJournalModifiers(result)}function isFinalGuardianWeaponEngineering(item,blueprint){const group=getEngineeringGroup(item);if(group===null||!GUARDIAN_WEAPON_GROUPS.has(group))return false;const resolved=resolveBlueprintForModule(item,blueprint);return getBlueprint(resolved)!==null&&!blueprintAvailableFor(item,blueprint)}function engineerableBase(item,statsOverride){const stats=statsOverride??builtInModuleBySymbol(item,FITTED_ITEM);if(!stats||stats.engineeringLocked)return null;return{stats:stats,base:baseStats(stats)}}function availableBlueprintsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;const available=[];for(const[blueprintSymbol,route]of blueprintRoutesFor(item)){const blueprint=BLUEPRINTS[blueprintSymbol];if(!blueprint)continue;const grades=Object.entries(blueprint.grades).filter(([,grade])=>missingBaseLabels(stats,base,grade.features).length===0).map(([grade])=>Number(grade)).filter(Number.isFinite).sort((a,b)=>a-b);if(grades.length>0)available.push({blueprintSymbol:blueprintSymbol,grades:grades,route:route})}return available}function availableExperimentalsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;return getExperimentalsForModule(item).filter(experimentalEffectSymbol=>{const effect=EXPERIMENTAL_EFFECTS[experimentalEffectSymbol];return effect!==void 0&&missingBaseLabels(stats,base,effect.modifiers).length===0})}var MAX_ENGINEERING_GRADE=5;function modifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;if(!module||!variant.modifiers?.length&&effectName==null)return null;const effect=effectName==null?void 0:getExperimentalEffect(effectName);if(effectName!==null&&effectName!==void 0&&!effect)return null;return computeModifiers(baseStats(module),fixedModifierFeatures(variant.modifiers??[]),1,effect??void 0)}function getPreEngineeredModifiers(variant){return modifiersWithExperimental(variant)??[]}function journalModifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return[];const modifiers=journalModifiersFor(module,modifiersWithExperimental(variant,experimental)??[]);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;const damageDistribution=(effectName?getExperimentalEffect(effectName)?.damageDistribution:void 0)??variant.damageDistribution;if(!damageDistribution)return modifiers;for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];const label=labelsForDamageType(type)[0];if(value===void 0||label===void 0)continue;modifiers.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(module.damageDistribution?.[type]??0)*scaleForLabel(label)})}return modifiers}function getPreEngineeredJournalModifiers(variant){return journalModifiersWithExperimental(variant)}function sameJournalNumber(actual,expected,base){return Math.abs(actual-expected)<=Math.max(1e-5,Math.abs(base)*1e-4,Math.abs(expected)*1e-6)}function modifierKey(modifier,module){return fieldForLabel(modifier.Label,module)??`label:${normalizeKey(modifier.Label,"identifyPreEngineeredVariant: module.Engineering.Modifiers[].Label")}`}function sameModifier(actual,expected){if(expected.Value!==void 0){return actual.Value!==void 0&&sameJournalNumber(actual.Value,expected.Value,expected.OriginalValue??expected.Value)}return expected.ValueStr!==void 0&&actual.ValueStr!==void 0}function matchesModifierSignature(actualByKey,expected,module){let matched=0;for(const predicted of expected){const actual=actualByKey.get(modifierKey(predicted,module));if(!actual)continue;if(!sameModifier(actual,predicted))return false;matched++}return matched>=Math.max(1,expected.length-1)}function identifyPreEngineeredVariant(module){const engineering=module.Engineering;if(!engineering)return null;requireStringIfPresent(module.Item,"identifyPreEngineeredVariant: module.Item");const stock=getModuleBySymbol(module.Item,ALL_MODULES);if(!stock)return null;const capturedBlueprint=normalizeKey(engineering.BlueprintName,"identifyPreEngineeredVariant: module.Engineering.BlueprintName");const variants=getPreEngineeredVariants(module.Item);const blueprintMatches=variants.filter(candidate=>candidate.blueprintSymbol.toLowerCase()===capturedBlueprint);const blueprintMatch=blueprintMatches.length===1?blueprintMatches[0]:null;const capturedGrade=engineering.Level;if(blueprintMatch?.acquisition==="mercenary"&&Number.isInteger(capturedGrade)&&capturedGrade>=blueprintMatch.grade&&capturedGrade<=MAX_ENGINEERING_GRADE){return blueprintMatch}if(engineering.Modifiers===void 0){const capturedExperimental=normalizeKey(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const identityMatches=blueprintMatches.filter(candidate=>candidate.engineeringLocked===true&&candidate.grade===capturedGrade&&(candidate.experimentalEffectSymbol===void 0?capturedExperimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimentalEffectSymbol.toLowerCase()===capturedExperimental));return identityMatches.length===1?identityMatches[0]:null}if(!engineering.Modifiers?.length)return null;const actualByKey=/* @__PURE__ */new Map;for(const modifier of engineering.Modifiers){actualByKey.set(modifierKey(modifier,stock),modifier)}requireStringIfPresent(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const matches=[];for(const candidate of variants){if(!candidate.modifiers?.length)continue;if(candidate.grade!==engineering.Level)continue;if(candidate.acquisition==="eventReward"&&(engineering.ExperimentalEffect!==void 0||engineering.ExperimentalEffect_Localised!==void 0||capturedBlueprint!==candidate.blueprintSymbol.toLowerCase())){continue}const primitive=modifiersWithExperimental(candidate,engineering.ExperimentalEffect??null);if(!primitive?.length)continue;const matched=matchesModifierSignature(actualByKey,primitive,stock)||matchesModifierSignature(actualByKey,journalModifiersWithExperimental(candidate,engineering.ExperimentalEffect??null),stock);if(matched)matches.push(candidate)}return matches.length===1?matches[0]:null}function unresolvedModifiers(variant){const resolved=new Set(getPreEngineeredModifiers(variant).map(modifier=>modifier.Label));return(variant.modifiers??[]).map(modifier=>modifier.label).filter(label=>!resolved.has(label))}function getPreEngineeredStats(variant){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return null;if(!variant.modifiers?.length&&!variant.engineeringLocked&&variant.experimentalEffectSymbol===void 0)return{...module};const applied=getPreEngineeredModifiers(variant);const resolved={...module,...variant.engineeringLocked?{engineeringLocked:true}:{}};for(const{Label:Label,Value:Value,ValueStr:ValueStr}of applied){const field=fieldForLabel(Label,module);if(field&&field!=="damageDistribution"&&Value!==void 0){Object.assign(resolved,{[field]:Value/scaleForLabel(Label)})}else if(field&&ValueStr!==void 0&&capabilityValueForLabel(Label)!==null){Object.assign(resolved,{[field]:true})}}const fixedDamageDistribution=(variant.experimentalEffectSymbol?getExperimentalEffect(variant.experimentalEffectSymbol)?.damageDistribution:void 0)??variant.damageDistribution;if(fixedDamageDistribution){resolved.damageDistribution={...fixedDamageDistribution};delete resolved.damageComponents}if(resolved.rateOfFire!==void 0&&!applied.some(m=>m.Label==="RateOfFire")&&applied.some(m=>BURST_PATTERN_LABELS.some(label=>label===m.Label))){const rate=journalRateOfFire(preciseValueFor(applied,"BurstInterval")??resolved.burstInterval,preciseValueFor(applied,"BurstSize")??resolved.burstRounds,preciseValueFor(applied,"BurstRateOfFire")??resolved.burstRateOfFire);if(rate!==void 0)resolved.rateOfFire=rate}if(module.damageComponents&&!fixedDamageDistribution){resolved.damageComponents=scaleDamageComponents(module.damageComponents,module.damage,resolved.damage)}return resolved}export{BUILT_IN_HULL_SYMBOL,FITTED_ITEM,availableBlueprintsFor,availableExperimentalsFor,blueprintAvailableFor,blueprintRoutesFor,cloneLoadoutModule,cloneModuleStats,experimentalAvailableFor,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,isBuiltInHullModule,isBuiltInHullSymbol,isCargoHatchSlot,isFinalGuardianWeaponEngineering,isNonOutfittingSlot,journalModifiersFor,matchingKeyIn,missingBaseLabels,orderBySlotLayout,ordinaryEngineeringProof,ownKeyIn,primitiveEngineeringInputsFor,rolledOverFixedArticle,scaleDamageComponents,statesInertModifiers,unresolvedModifiers,unrollableFixedArticle};//# sourceMappingURL=chunk-P6HCQ2YE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ships/internal/damage-components.ts","../src/ships/internal/fixed-modifier-features.ts","../src/ships/internal/loadout-state.ts","../src/ships/internal/loadout-engineering.ts","../src/ships/pre-engineered-stats.ts"],"names":["builtInModuleBySymbol","getModuleBySymbol","getPreEngineeredVariants","ALL_MODULES","getBlueprintGrade","getBlueprint","BLUEPRINTS","EXPERIMENTAL_EFFECTS","getExperimentalEffect","fieldForLabel","damageTypeForLabel","capabilityValueForLabel","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","round6","burstPartOrOne","float32FiringCycle","float32RateOfFire","preciseModifierValue","BURST_PATTERN_LABELS","journalRateOfFire","preciseValueFor","resolveBlueprintForModule","getBlueprintsForModule","getExperimentalsForModule","getEngineeringGroup","normalizeKey","requireStringIfPresent","deepFreeze","scaleDamageComponents","components","baseDamage","effectiveDamage","scale","kinetic","thermal","explosive","absolute","antiXeno","unclassified","map","value","fixedModifierFeatures","modifiers","modifier","label","method","min","max","FITTED_ITEM","isNonOutfittingSlot","slotKey","test","isCargoHatchSlot","toLowerCase","BUILT_IN_HULL_SYMBOL","isBuiltInHullSymbol","symbol","startsWith","isBuiltInHullModule","module","Slot","Item","cloneLoadoutModule","On","Priority","Health","Value","Engineering","BlueprintName","Level","Quality","ExperimentalEffect","ExperimentalEffect_Localised","Modifiers","matchingKeyIn","keyed","has","wanted","key","keys","ownKeyIn","canonicalKey","size","every","orderBySlotLayout","values","layout","slotOf","order","Map","slot","index","sort","left","right","get","Number","MAX_SAFE_INTEGER","cloneModuleStats","structuredClone","error","Error","name","restrictedToShips","limitIncrease","damageDistribution","damageComponents","projectileRange","GUARDIAN_WEAPON_GROUPS","Set","missingBaseLabels","stats","base","features","experimental","contributions","contribution","filter","recipeSignature","blueprintSymbol","blueprint","grades","Object","entries","grade","feature","join","isGenericSpelling","isSoldWithBlueprint","item","some","variant","acquisition","blueprintRoutesFor","routes","set","blueprintAvailableFor","offered","asWritten","resolved","trim","id","signature","experimentalAvailableFor","experimentalEffectSymbol","primitiveLabelFor","maximumRange","falloffRange","scannerRange","shieldRegenRate","primitiveEngineeringInputsFor","canonicalGrade","matchesCalculatedModifiers","captured","calculated","length","byLabel","Label","expected","actual","Math","abs","ValueStr","identityArticles","engineering","candidate","unrollableFixedArticle","matches","rolledOverFixedArticle","statesInertModifiers","field","ordinaryEngineeringProof","recipe","fixedCandidate","quality","stock","isFinite","current","journalModifiersFor","type","push","OriginalValue","float32DamagePerSecond","damage","rounds","rate","burstRounds","cycle","damagePerCycle","fround","JOURNAL_MODIFIER_ORDER","JOURNAL_MODIFIER_RANK","sortJournalModifiers","a","b","weapon","valueFor","fallback","find","burstTouched","damageTouched","rateTouched","damagePerSecond","derivedRate","continuous","burstInterval","rateOfFire","burstRate","burstRateOfFire","baseBurstRounds","baseBurstRate","baseInterval","baseCycle","baseRate","rateModifier","effectiveRate","effectiveInterval","effectiveCycle","stockRounds","roundsPerShot","effectiveRounds","result","includes","journalLabel","direct","findIndex","isFinalGuardianWeaponEngineering","group","engineerableBase","statsOverride","engineeringLocked","availableBlueprintsFor","engineerable","available","route","availableExperimentalsFor","effect","MAX_ENGINEERING_GRADE","modifiersWithExperimental","effectName","getPreEngineeredModifiers","journalModifiersWithExperimental","getPreEngineeredJournalModifiers","sameJournalNumber","modifierKey","sameModifier","matchesModifierSignature","actualByKey","matched","predicted","identifyPreEngineeredVariant","capturedBlueprint","variants","blueprintMatches","blueprintMatch","capturedGrade","isInteger","capturedExperimental","identityMatches","primitive","unresolvedModifiers","getPreEngineeredStats","applied","assign","fixedDamageDistribution","m"],"mappings":"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"}
|