@elite-dangerous-almanac/core 0.2.4 → 0.2.6

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.
Files changed (123) hide show
  1. package/PROVENANCE/i18n/SOURCES.md +118 -94
  2. package/PROVENANCE/materials/SOURCES.md +22 -0
  3. package/PROVENANCE/ships/SOURCES.md +33 -6
  4. package/README.md +14 -8
  5. package/assets/ships/LakonMiner/schematic-bottom.svg +5 -3
  6. package/assets/ships/LakonMiner/schematic-top.svg +2 -4
  7. package/dist/chunk-3CKWT2F3.js +1 -0
  8. package/dist/{chunk-7ZERP4TB.js.map → chunk-3CKWT2F3.js.map} +1 -1
  9. package/dist/{chunk-A7KNIFRU.js → chunk-3P455LF4.js} +1 -1
  10. package/dist/{chunk-A7KNIFRU.js.map → chunk-3P455LF4.js.map} +1 -1
  11. package/dist/chunk-5QSCLEEB.js +1 -0
  12. package/dist/chunk-5QSCLEEB.js.map +1 -0
  13. package/dist/{chunk-4TFAZX73.js → chunk-773VO2GK.js} +1 -1
  14. package/dist/{chunk-7EWZGDWY.js → chunk-7S7ZTZZY.js} +1 -1
  15. package/dist/chunk-A5TCT2AJ.js +1 -0
  16. package/dist/{chunk-AIEC3LBT.js.map → chunk-A5TCT2AJ.js.map} +1 -1
  17. package/dist/chunk-AAU7OM47.js +1 -0
  18. package/dist/chunk-AAU7OM47.js.map +1 -0
  19. package/dist/{chunk-3LZXB2MC.js → chunk-ABSDZINM.js} +1 -1
  20. package/dist/{chunk-DSMLYA2M.js → chunk-BMQM4JBL.js} +1 -1
  21. package/dist/{chunk-DSMLYA2M.js.map → chunk-BMQM4JBL.js.map} +1 -1
  22. package/dist/chunk-E3AUKPSQ.js +1 -0
  23. package/dist/{chunk-G2VSQFD6.js.map → chunk-E3AUKPSQ.js.map} +1 -1
  24. package/dist/chunk-EFQOUATZ.js +1 -0
  25. package/dist/chunk-EFQOUATZ.js.map +1 -0
  26. package/dist/chunk-GISL7YML.js +1 -0
  27. package/dist/chunk-GISL7YML.js.map +1 -0
  28. package/dist/chunk-IZIIGK3W.js +1 -0
  29. package/dist/{chunk-TW7LUBHD.js.map → chunk-IZIIGK3W.js.map} +1 -1
  30. package/dist/chunk-KBCA4GEZ.js +1 -0
  31. package/dist/chunk-KLC5XT6F.js +1 -0
  32. package/dist/chunk-KLC5XT6F.js.map +1 -0
  33. package/dist/chunk-LOWDDWDT.js +1 -0
  34. package/dist/{chunk-GLWPSVFV.js.map → chunk-LOWDDWDT.js.map} +1 -1
  35. package/dist/chunk-MRLUWHGI.js +1 -0
  36. package/dist/{chunk-FF2X4K5P.js.map → chunk-MRLUWHGI.js.map} +1 -1
  37. package/dist/chunk-NBLLW7TH.js +1 -0
  38. package/dist/chunk-NBLLW7TH.js.map +1 -0
  39. package/dist/{chunk-IWFQ4ZKF.js → chunk-OFZGNWBT.js} +1 -1
  40. package/dist/chunk-PF3HZ73R.js +1 -0
  41. package/dist/{chunk-ITKZKREP.js.map → chunk-PF3HZ73R.js.map} +1 -1
  42. package/dist/{chunk-KGJCTSVV.js → chunk-S3MONE55.js} +1 -1
  43. package/dist/chunk-S3MONE55.js.map +1 -0
  44. package/dist/{chunk-OLKNYGGT.js → chunk-SDXUPP4P.js} +1 -1
  45. package/dist/chunk-XFDMCPDW.js +1 -0
  46. package/dist/{chunk-GRSNX36B.js.map → chunk-XFDMCPDW.js.map} +1 -1
  47. package/dist/chunk-XSN53F7W.js +1 -0
  48. package/dist/{chunk-DBGXZF7O.js.map → chunk-XSN53F7W.js.map} +1 -1
  49. package/dist/{chunk-MTJ4MS7W.js → chunk-YCGISPDR.js} +1 -1
  50. package/dist/i18n/experimental-effect-descriptions.d.ts +21 -6
  51. package/dist/i18n/experimental-effect-descriptions.js +1 -1
  52. package/dist/i18n/experimental-effects.js +1 -1
  53. package/dist/i18n/index.d.ts +0 -2
  54. package/dist/i18n/index.js +1 -1
  55. package/dist/i18n/materials.d.ts +7 -6
  56. package/dist/i18n/materials.js +1 -1
  57. package/dist/i18n/micro-resources.d.ts +7 -6
  58. package/dist/i18n/micro-resources.js +1 -1
  59. package/dist/i18n/pre-engineered.js +1 -1
  60. package/dist/materials/index.js +1 -1
  61. package/dist/materials/materials-all.js +1 -1
  62. package/dist/materials/materials-encoded.js +1 -1
  63. package/dist/materials/materials-manufactured.js +1 -1
  64. package/dist/materials/materials.js +1 -1
  65. package/dist/materials/micro-resources-all.js +1 -1
  66. package/dist/materials/micro-resources.js +1 -1
  67. package/dist/ships/blueprint-costs.js +1 -1
  68. package/dist/ships/blueprint-journal.js +1 -1
  69. package/dist/ships/build-metrics.js +1 -1
  70. package/dist/ships/engineering-options.d.ts +10 -4
  71. package/dist/ships/engineering-options.js +1 -1
  72. package/dist/ships/engineering.js +1 -1
  73. package/dist/ships/gunsights.d.ts +2 -2
  74. package/dist/ships/gunsights.js +1 -1
  75. package/dist/ships/index.js +1 -1
  76. package/dist/ships/modules-all.js +1 -1
  77. package/dist/ships/modules-hardpoint.js +1 -1
  78. package/dist/ships/modules.js +1 -1
  79. package/dist/ships/pre-engineered-stats.d.ts +5 -0
  80. package/dist/ships/pre-engineered-stats.js +1 -1
  81. package/dist/ships/ship-loadout.d.ts +4 -1
  82. package/dist/ships/ship-loadout.js +1 -1
  83. package/dist/ships/weapons.d.ts +14 -4
  84. package/dist/ships/weapons.js +1 -1
  85. package/package.json +1 -9
  86. package/dist/chunk-37JIMWLK.js +0 -1
  87. package/dist/chunk-37JIMWLK.js.map +0 -1
  88. package/dist/chunk-5ZVYRX6Z.js +0 -1
  89. package/dist/chunk-5ZVYRX6Z.js.map +0 -1
  90. package/dist/chunk-7ZERP4TB.js +0 -1
  91. package/dist/chunk-AIEC3LBT.js +0 -1
  92. package/dist/chunk-CJQ37JII.js +0 -1
  93. package/dist/chunk-CJQ37JII.js.map +0 -1
  94. package/dist/chunk-DAQ3PJ4R.js +0 -1
  95. package/dist/chunk-DAQ3PJ4R.js.map +0 -1
  96. package/dist/chunk-DBGXZF7O.js +0 -1
  97. package/dist/chunk-FD74K27A.js +0 -1
  98. package/dist/chunk-FD74K27A.js.map +0 -1
  99. package/dist/chunk-FF2X4K5P.js +0 -1
  100. package/dist/chunk-G2VSQFD6.js +0 -1
  101. package/dist/chunk-GLWPSVFV.js +0 -1
  102. package/dist/chunk-GRSNX36B.js +0 -1
  103. package/dist/chunk-ITKZKREP.js +0 -1
  104. package/dist/chunk-JO52LYO3.js +0 -1
  105. package/dist/chunk-KGJCTSVV.js.map +0 -1
  106. package/dist/chunk-KJFUNIIY.js +0 -1
  107. package/dist/chunk-KJFUNIIY.js.map +0 -1
  108. package/dist/chunk-SC6Z2TV7.js +0 -1
  109. package/dist/chunk-SC6Z2TV7.js.map +0 -1
  110. package/dist/chunk-TW7LUBHD.js +0 -1
  111. package/dist/i18n/engineering-groups.d.ts +0 -21
  112. package/dist/i18n/engineering-groups.js +0 -1
  113. package/dist/i18n/engineering-groups.js.map +0 -1
  114. package/dist/i18n/ships.d.ts +0 -36
  115. package/dist/i18n/ships.js +0 -1
  116. package/dist/i18n/ships.js.map +0 -1
  117. /package/dist/{chunk-4TFAZX73.js.map → chunk-773VO2GK.js.map} +0 -0
  118. /package/dist/{chunk-7EWZGDWY.js.map → chunk-7S7ZTZZY.js.map} +0 -0
  119. /package/dist/{chunk-3LZXB2MC.js.map → chunk-ABSDZINM.js.map} +0 -0
  120. /package/dist/{chunk-JO52LYO3.js.map → chunk-KBCA4GEZ.js.map} +0 -0
  121. /package/dist/{chunk-IWFQ4ZKF.js.map → chunk-OFZGNWBT.js.map} +0 -0
  122. /package/dist/{chunk-OLKNYGGT.js.map → chunk-SDXUPP4P.js.map} +0 -0
  123. /package/dist/{chunk-MTJ4MS7W.js.map → chunk-YCGISPDR.js.map} +0 -0
@@ -9,12 +9,12 @@
9
9
  * hyphens. A regional or script subtag is dropped: every stored locale is a bare
10
10
  * language tag.
11
11
  * @returns The localized material name; the canonical `Material.name` for any English
12
- * tag; or `null` when the symbol is unknown, the locale is unsupported, or the pinned
13
- * source carries no value for that material and locale.
12
+ * tag; or `null` when the symbol is unknown or the locale is not one of the six this
13
+ * catalogue stores.
14
14
  * @remarks
15
- * This function bundles names only, not material grades, categories or engineering
16
- * costs. Missing translations never silently fall back to English. Odyssey micro
17
- * resources use {@link getMicroResourceName} instead.
15
+ * All six stored locales are complete for this dataset, so a supported locale always
16
+ * answers. This function bundles names only, not material grades, categories or
17
+ * engineering costs. Odyssey micro resources use {@link getMicroResourceName} instead.
18
18
  * @throws {TypeError} If `symbol` is present and not a string, or `locale` is not a
19
19
  * string. A nullish `symbol` is a lookup miss and returns `null`.
20
20
  * @example
@@ -22,7 +22,8 @@
22
22
  * import { getMaterialName } from '@elite-dangerous-almanac/core/i18n/materials';
23
23
  *
24
24
  * getMaterialName('GridResistors', 'de-DE'); // -> 'Gitterwiderstände'
25
- * getMaterialName('vanadium', 'de'); // -> null
25
+ * getMaterialName('vanadium', 'de'); // -> 'Vanadium'
26
+ * getMaterialName('vanadium', 'it'); // -> null
26
27
  * ```
27
28
  */
28
29
  declare function getMaterialName(symbol: string, locale: string): string | null;
@@ -1 +1 @@
1
- export{getMaterialName}from"../chunk-TW7LUBHD.js"; //# sourceMappingURL=materials.js.map
1
+ export{getMaterialName}from"../chunk-IZIIGK3W.js"; //# sourceMappingURL=materials.js.map
@@ -9,12 +9,12 @@
9
9
  * hyphens. A regional or script subtag is dropped: every stored locale is a bare
10
10
  * language tag.
11
11
  * @returns The localized micro-resource name; the canonical `MicroResource.name` for
12
- * any English tag; or `null` when the symbol is unknown, the locale is unsupported, or
13
- * the accepted sources carry no value for that micro resource and locale.
12
+ * any English tag; or `null` when the symbol is unknown or the locale is not one of the
13
+ * six this catalogue stores.
14
14
  * @remarks
15
- * This function bundles names only, not micro-resource categories or equipment costs.
16
- * Missing translations never silently fall back to English. Ship engineering materials
17
- * use {@link getMaterialName} instead.
15
+ * All six stored locales are complete for this dataset, so a supported locale always
16
+ * answers. This function bundles names only, not micro-resource categories or equipment
17
+ * costs. Ship engineering materials use {@link getMaterialName} instead.
18
18
  * @throws {TypeError} If `symbol` is present and not a string, or `locale` is not a
19
19
  * string. A nullish `symbol` is a lookup miss and returns `null`.
20
20
  * @example
@@ -22,7 +22,8 @@
22
22
  * import { getMicroResourceName } from '@elite-dangerous-almanac/core/i18n/micro-resources';
23
23
  *
24
24
  * getMicroResourceName('graphene', 'fr-FR'); // -> 'Graphène'
25
- * getMicroResourceName('aerogel', 'de'); // -> null
25
+ * getMicroResourceName('aerogel', 'de'); // -> 'Aerogel'
26
+ * getMicroResourceName('aerogel', 'it'); // -> null
26
27
  * ```
27
28
  */
28
29
  declare function getMicroResourceName(symbol: string, locale: string): string | null;
@@ -1 +1 @@
1
- export{getMicroResourceName}from"../chunk-GRSNX36B.js"; //# sourceMappingURL=micro-resources.js.map
1
+ export{getMicroResourceName}from"../chunk-XFDMCPDW.js"; //# sourceMappingURL=micro-resources.js.map
@@ -1 +1 @@
1
- export{getPreEngineeredVariantName}from"../chunk-G2VSQFD6.js"; //# sourceMappingURL=pre-engineered.js.map
1
+ export{getPreEngineeredVariantName}from"../chunk-E3AUKPSQ.js"; //# sourceMappingURL=pre-engineered.js.map
@@ -1 +1 @@
1
- export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7EWZGDWY.js";export{ALL_MICRO_RESOURCES}from"../chunk-DAQ3PJ4R.js";export{COMPONENT_MICRO_RESOURCES}from"../chunk-HTB52N6S.js";export{CONSUMABLE_MICRO_RESOURCES}from"../chunk-K7L7SMIR.js";export{DATA_MICRO_RESOURCES}from"../chunk-GVLDFJEY.js";export{ITEM_MICRO_RESOURCES}from"../chunk-WHWFKHV3.js"; export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-IWFQ4ZKF.js";export{ALL_MATERIALS}from"../chunk-JO52LYO3.js";export{ENCODED_MATERIALS}from"../chunk-AIEC3LBT.js";export{MANUFACTURED_MATERIALS}from"../chunk-ITKZKREP.js";export{RAW_MATERIALS}from"../chunk-Q6YDPREF.js"; //# sourceMappingURL=index.js.map
1
+ export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7S7ZTZZY.js";export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-OFZGNWBT.js";export{ALL_MATERIALS}from"../chunk-KBCA4GEZ.js";export{ENCODED_MATERIALS}from"../chunk-A5TCT2AJ.js";export{MANUFACTURED_MATERIALS}from"../chunk-PF3HZ73R.js";export{RAW_MATERIALS}from"../chunk-Q6YDPREF.js"; export{ALL_MICRO_RESOURCES}from"../chunk-KLC5XT6F.js";export{CONSUMABLE_MICRO_RESOURCES}from"../chunk-K7L7SMIR.js";export{DATA_MICRO_RESOURCES}from"../chunk-GVLDFJEY.js";export{ITEM_MICRO_RESOURCES}from"../chunk-WHWFKHV3.js";export{COMPONENT_MICRO_RESOURCES}from"../chunk-HTB52N6S.js"; //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export{ALL_MATERIALS}from"../chunk-JO52LYO3.js"; //# sourceMappingURL=materials-all.js.map
1
+ export{ALL_MATERIALS}from"../chunk-KBCA4GEZ.js"; //# sourceMappingURL=materials-all.js.map
@@ -1 +1 @@
1
- export{ENCODED_MATERIALS}from"../chunk-AIEC3LBT.js"; //# sourceMappingURL=materials-encoded.js.map
1
+ export{ENCODED_MATERIALS}from"../chunk-A5TCT2AJ.js"; //# sourceMappingURL=materials-encoded.js.map
@@ -1 +1 @@
1
- export{MANUFACTURED_MATERIALS}from"../chunk-ITKZKREP.js"; //# sourceMappingURL=materials-manufactured.js.map
1
+ export{MANUFACTURED_MATERIALS}from"../chunk-PF3HZ73R.js"; //# sourceMappingURL=materials-manufactured.js.map
@@ -1 +1 @@
1
- export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-IWFQ4ZKF.js"; //# sourceMappingURL=materials.js.map
1
+ export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-OFZGNWBT.js"; //# sourceMappingURL=materials.js.map
@@ -1 +1 @@
1
- export{ALL_MICRO_RESOURCES}from"../chunk-DAQ3PJ4R.js"; //# sourceMappingURL=micro-resources-all.js.map
1
+ export{ALL_MICRO_RESOURCES}from"../chunk-KLC5XT6F.js"; //# sourceMappingURL=micro-resources-all.js.map
@@ -1 +1 @@
1
- export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7EWZGDWY.js"; //# sourceMappingURL=micro-resources.js.map
1
+ export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7S7ZTZZY.js"; //# sourceMappingURL=micro-resources.js.map
@@ -1 +1 @@
1
- export{BLUEPRINT_COSTS,BLUEPRINT_MERC_COIN_COSTS,getBlueprintCost,getBlueprintCosts,getBlueprintGradeCost}from"../chunk-MTJ4MS7W.js"; //# sourceMappingURL=blueprint-costs.js.map
1
+ export{BLUEPRINT_COSTS,BLUEPRINT_MERC_COIN_COSTS,getBlueprintCost,getBlueprintCosts,getBlueprintGradeCost}from"../chunk-YCGISPDR.js"; //# sourceMappingURL=blueprint-costs.js.map
@@ -1 +1 @@
1
- export{resolveBlueprintForModule}from"../chunk-OLKNYGGT.js"; //# sourceMappingURL=blueprint-journal.js.map
1
+ export{resolveBlueprintForModule}from"../chunk-SDXUPP4P.js"; //# sourceMappingURL=blueprint-journal.js.map
@@ -1 +1 @@
1
- export{BuildMetrics}from"../chunk-KGJCTSVV.js"; //# sourceMappingURL=build-metrics.js.map
1
+ export{BuildMetrics}from"../chunk-S3MONE55.js"; //# sourceMappingURL=build-metrics.js.map
@@ -79,10 +79,16 @@
79
79
  * ```
80
80
  */
81
81
  type EngineeringGroupId = 'powerPlants' | 'guardianPowerPlants' | 'thrusters' | 'frameShiftDrives' | 'powerDistributors' | 'guardianPowerDistributors' | 'frameShiftDrivesSCO' | 'shieldGenerators' | 'shieldCellBanks' | 'hullReinforcements' | 'guardianHullReinforcements' | 'pulseLasers' | 'burstLasers' | 'beamLasers' | 'cannons' | 'fragmentCannons' | 'multiCannons' | 'plasmaAccelerators' | 'railGuns' | 'missiles' | 'mines' | 'torpedoes' | 'shieldBoosters' | 'bulkheads' | 'lifeSupports' | 'sensors' | 'autoFieldMaintenanceUnits' | 'collectionLimpets' | 'fsdBoosters' | 'fsdInterdictors' | 'fuelScoops' | 'fuelTransferLimpets' | 'hatchBreakerLimpets' | 'moduleReinforcements' | 'prospectingLimpets' | 'refineries' | 'shieldReinforcements' | 'surfaceScanners' | 'chaffLaunchers' | 'ecms' | 'heatSinkLaunchers' | 'killWarrantScanners' | 'manifestScanners' | 'pointDefence' | 'wakeScanners' | 'guardianGauss' | 'guardianPlasma' | 'guardianShard';
82
- /** What one group of modules can be engineered with. */
82
+ /**
83
+ * What one group of modules can be engineered with.
84
+ *
85
+ * @remarks
86
+ * A group carries no display name, because the game has no engineering-group label to
87
+ * carry: an engineering menu is headed by the module's own outfitting family. Name a
88
+ * group by naming that family — `getOutfittingFamilyName(module.familyId, locale)` in
89
+ * `i18n/module-families`.
90
+ */
83
91
  interface EngineeringOptionGroup {
84
- /** Display name of the module group, e.g. `"Beam Lasers"`. */
85
- readonly name: string;
86
92
  /** Blueprint ids the group accepts. Join to `BLUEPRINTS`. */
87
93
  readonly blueprints: readonly string[];
88
94
  /** Experimental-effect ids the group accepts. Join to `EXPERIMENTAL_EFFECTS`. */
@@ -96,8 +102,8 @@ interface EngineeringOptionGroup {
96
102
  * ```ts
97
103
  * import { ENGINEERING_OPTION_GROUPS } from '@elite-dangerous-almanac/core/ships/engineering-options';
98
104
  *
99
- * ENGINEERING_OPTION_GROUPS['beamLasers'].name; // -> 'Beam Lasers'
100
105
  * ENGINEERING_OPTION_GROUPS['beamLasers'].experimentals.length; // -> 9
106
+ * ENGINEERING_OPTION_GROUPS['beamLasers'].blueprints.length; // -> 7
101
107
  * ```
102
108
  */
103
109
  declare const ENGINEERING_OPTION_GROUPS: Readonly<Record<EngineeringGroupId, EngineeringOptionGroup>>;
@@ -1 +1 @@
1
- export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-GLWPSVFV.js"; //# sourceMappingURL=engineering-options.js.map
1
+ export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-LOWDDWDT.js"; //# sourceMappingURL=engineering-options.js.map
@@ -1 +1 @@
1
- export{computeModifiers,sumMaterials}from"../chunk-CJQ37JII.js";//# sourceMappingURL=engineering.js.map
1
+ export{computeModifiers,sumMaterials}from"../chunk-5QSCLEEB.js"; //# sourceMappingURL=engineering.js.map
@@ -58,7 +58,7 @@ type ShipGunsightCatalogue = Readonly<Record<string, ShipGunsight>>;
58
58
  * import { SHIP_GUNSIGHTS } from '@elite-dangerous-almanac/core/ships/gunsights';
59
59
  *
60
60
  * SHIP_GUNSIGHTS.SideWinder?.length; // -> 2
61
- * SHIP_GUNSIGHTS.SideWinder?.[0]; // -> [-2.1956754475, -1.166162014]
61
+ * SHIP_GUNSIGHTS.SideWinder?.[0]; // -> [-2.1956754, -1.166162]
62
62
  * ```
63
63
  */
64
64
  declare const SHIP_GUNSIGHTS: ShipGunsightCatalogue;
@@ -103,7 +103,7 @@ declare function getShipGunsight(shipSymbol: string): ShipGunsight | null;
103
103
  *
104
104
  * const gunsight = getShipGunsight('SideWinder')!;
105
105
  * projectGunsight(gunsight, 1000)[0];
106
- * // -> { horizontalTangent: -0.0021956754475, verticalTangent: -0.001166162014 }
106
+ * // -> { horizontalTangent: -0.0021956754, verticalTangent: -0.001166162 }
107
107
  * ```
108
108
  */
109
109
  declare function projectGunsight(gunsight: ShipGunsight, targetRangeMetres: number): readonly GunsightPoint[];
@@ -1 +1 @@
1
- export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-DBGXZF7O.js"; //# sourceMappingURL=gunsights.js.map
1
+ export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-XSN53F7W.js"; //# sourceMappingURL=gunsights.js.map
@@ -1 +1 @@
1
- export{LoadoutEditError,ShipLoadout}from"../chunk-A7KNIFRU.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-DBGXZF7O.js";export{validateLoadout}from"../chunk-OJC6AUL7.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{BuildMetrics}from"../chunk-KGJCTSVV.js";export{cellBankSummary,shieldRecovery}from"../chunk-JMAXSXXQ.js"; export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-5VWACBTN.js";export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-6UNAD74Z.js";export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-T4MKUKYS.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-NIURLW2F.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{powerBudget}from"../chunk-GGQMIQPC.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-SC6Z2TV7.js";export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-37JIMWLK.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-3LZXB2MC.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-KPJ77VPS.js";export{shieldCapacitorMetrics}from"../chunk-XQJERZUS.js";export{mobilityCapacitorMetrics}from"../chunk-VEEBJFJ7.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-A4QKXXZD.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-77I24V6B.js";export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-6HA2YIKW.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-VTMCSCXV.js";export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-DCB4COCL.js"; export{resolveBlueprintForModule}from"../chunk-OLKNYGGT.js";export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{distributorMetrics}from"../chunk-M2TCZKRT.js"; export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-GLWPSVFV.js";export{computeModifiers,sumMaterials}from"../chunk-CJQ37JII.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-Q5ALV3DI.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-F44QX47A.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
1
+ export{LoadoutEditError,ShipLoadout}from"../chunk-3P455LF4.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-XSN53F7W.js";export{validateLoadout}from"../chunk-OJC6AUL7.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{BuildMetrics}from"../chunk-S3MONE55.js"; export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-6UNAD74Z.js";export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-T4MKUKYS.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-NIURLW2F.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-AAU7OM47.js";export{powerBudget}from"../chunk-GGQMIQPC.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-NBLLW7TH.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-ABSDZINM.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-KPJ77VPS.js";export{shieldCapacitorMetrics}from"../chunk-XQJERZUS.js";export{cellBankSummary,shieldRecovery}from"../chunk-JMAXSXXQ.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-5VWACBTN.js"; export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-6HA2YIKW.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-VTMCSCXV.js";export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-DCB4COCL.js";export{mobilityCapacitorMetrics}from"../chunk-VEEBJFJ7.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-A4QKXXZD.js"; export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{distributorMetrics}from"../chunk-M2TCZKRT.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-77I24V6B.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-Q5ALV3DI.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-F44QX47A.js"; export{computeModifiers,sumMaterials}from"../chunk-5QSCLEEB.js"; export{resolveBlueprintForModule}from"../chunk-SDXUPP4P.js";export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-LOWDDWDT.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export{ALL_MODULES}from"../chunk-7ZERP4TB.js"; //# sourceMappingURL=modules-all.js.map
1
+ export{ALL_MODULES}from"../chunk-3CKWT2F3.js"; //# sourceMappingURL=modules-all.js.map
@@ -1 +1 @@
1
- export{HARDPOINT_MODULES}from"../chunk-4TFAZX73.js"; //# sourceMappingURL=modules-hardpoint.js.map
1
+ export{HARDPOINT_MODULES}from"../chunk-773VO2GK.js"; //# sourceMappingURL=modules-hardpoint.js.map
@@ -1 +1 @@
1
- export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-3LZXB2MC.js"; //# sourceMappingURL=modules.js.map
1
+ export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-ABSDZINM.js"; //# sourceMappingURL=modules.js.map
@@ -183,6 +183,11 @@ declare function unresolvedModifiers(variant: PreEngineeredVariant): string[];
183
183
  * the effect is published, the grade-1 pre-engineering those arrive with is not, so the
184
184
  * catalogue does not guess at it.
185
185
  *
186
+ * `rateOfFire` follows a moved firing cycle even though no recipe names it: an article
187
+ * whose burst interval, burst size or within-burst rate moves — by its own stat block or
188
+ * by the experimental effect baked into it — resolves the rate those parts produce, and
189
+ * it is the same figure {@link getPreEngineeredJournalModifiers} states for the article.
190
+ *
186
191
  * @param variant - A pre-engineered variant.
187
192
  * @returns The resolved module record, or `null` when the variant's symbol is not in the
188
193
  * module catalogues. It is always a record of your own — never the shared catalogue
@@ -1 +1 @@
1
- export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-SC6Z2TV7.js"; //# sourceMappingURL=pre-engineered-stats.js.map
1
+ export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-NBLLW7TH.js"; //# sourceMappingURL=pre-engineered-stats.js.map
@@ -1182,7 +1182,10 @@ declare class ShipLoadout {
1182
1182
  * modifiers. Because the variant names its base module, a decorative identity cannot
1183
1183
  * be applied to an unrelated damage-bearing module.
1184
1184
  * The block states exactly what the article moves, so it always agrees with
1185
- * {@link getPreEngineeredJournalModifiers} for the same variant. A Mercenary variant
1185
+ * {@link getPreEngineeredJournalModifiers} for the same variant, and the module's
1186
+ * {@link FittedModule.effectiveStats | effectiveStats} resolve to the figures it
1187
+ * states — including a rate of fire, which no recipe names and both the block and the
1188
+ * stats derive from the article's firing cycle. A Mercenary variant
1186
1189
  * publishes no fixed stat block of its own, so it keeps the stock catalogue stats
1187
1190
  * apart from its baked experimental effect, and states that effect's modifiers and
1188
1191
  * no others. An article that moves no stat at all carries no `Modifiers` key, rather
@@ -1 +1 @@
1
- export{LoadoutEditError,ShipLoadout}from"../chunk-A7KNIFRU.js"; //# sourceMappingURL=ship-loadout.js.map
1
+ export{LoadoutEditError,ShipLoadout}from"../chunk-3P455LF4.js"; //# sourceMappingURL=ship-loadout.js.map
@@ -242,19 +242,29 @@ interface WeaponTotals {
242
242
  * `burstInterval` before the next one. `chargeTime` is the delay before a shot lands,
243
243
  * not part of the cadence Frontier reports as `RateOfFire`.
244
244
  *
245
+ * The cycle is rebuilt the way the game builds it — a float stored after every operation,
246
+ * serialized to the six decimal places a journal writes — so the answer is the figure the
247
+ * game reports rather than one a little beside it. A small gimballed multi-cannon fires
248
+ * every 0.12 s and Frontier states `8.333334`, which exact arithmetic misses by a place.
249
+ * That is also why this is the rate a fitted module already carries: a weapon whose
250
+ * engineering moved the cycle resolves this exact figure into
251
+ * {@link ships!FittedModule.effectiveStats | effectiveStats}, and states it in the
252
+ * `Modifiers` block beside it.
253
+ *
245
254
  * @param weapon - The weapon's stats, post-engineering.
246
255
  * @returns Shots per second, or `undefined` for a continuous-fire weapon (no
247
256
  * `burstInterval`) or a cycle that does not resolve to a positive time.
248
257
  * @remarks
249
- * Use this after engineering has moved a burst stat: a recipe that gives a weapon a
250
- * two-round burst changes the rate of fire without naming it. `weaponMetrics` takes
251
- * `rateOfFire` as given, so recompute it first if you have changed the parts.
258
+ * Use this for parts you have changed by hand: a recipe that gives a weapon a two-round
259
+ * burst changes the rate of fire without naming it, and `weaponMetrics` takes
260
+ * `rateOfFire` as given. A weapon read from a build needs no recomputation — its rate is
261
+ * already this figure.
252
262
  * @example
253
263
  * ```ts
254
264
  * import { combinedRateOfFire } from '@elite-dangerous-almanac/core/ships/weapons';
255
265
  *
256
266
  * // A small burst laser: three shots at 15/s, then half a second's wait
257
- * combinedRateOfFire({ burstInterval: 0.5, burstRounds: 3, burstRateOfFire: 15 }); // -> 4.74
267
+ * combinedRateOfFire({ burstInterval: 0.5, burstRounds: 3, burstRateOfFire: 15 }); // -> 4.736842
258
268
  * ```
259
269
  */
260
270
  declare function combinedRateOfFire(weapon: WeaponStats): number | undefined;
@@ -1 +1 @@
1
- export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-37JIMWLK.js"; //# sourceMappingURL=weapons.js.map
1
+ export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-AAU7OM47.js"; //# sourceMappingURL=weapons.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elite-dangerous-almanac/core",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Elite Dangerous static data and calculations: astronomy, ships and outfitting, personal equipment and engineering, materials, and market commodities.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -215,10 +215,6 @@
215
215
  "types": "./dist/i18n/experimental-effect-descriptions.d.ts",
216
216
  "import": "./dist/i18n/experimental-effect-descriptions.js"
217
217
  },
218
- "./i18n/engineering-groups": {
219
- "types": "./dist/i18n/engineering-groups.d.ts",
220
- "import": "./dist/i18n/engineering-groups.js"
221
- },
222
218
  "./i18n/diagnostics": {
223
219
  "types": "./dist/i18n/diagnostics.d.ts",
224
220
  "import": "./dist/i18n/diagnostics.js"
@@ -244,10 +240,6 @@
244
240
  "types": "./dist/i18n/pre-engineered.d.ts",
245
241
  "import": "./dist/i18n/pre-engineered.js"
246
242
  },
247
- "./i18n/ships": {
248
- "types": "./dist/i18n/ships.d.ts",
249
- "import": "./dist/i18n/ships.js"
250
- },
251
243
  "./i18n/slots": {
252
244
  "types": "./dist/i18n/slots.d.ts",
253
245
  "import": "./dist/i18n/slots.js"
@@ -1 +0,0 @@
1
- import{requireFiniteNonNegative}from"./chunk-65FZECUX.js";function combinedRateOfFire(weapon){const interval=weapon.burstInterval;if(interval===void 0||interval<=0)return void 0;const burst=weapon.burstRounds&&weapon.burstRounds>0?weapon.burstRounds:1;const burstRate=weapon.burstRateOfFire&&weapon.burstRateOfFire>0?weapon.burstRateOfFire:1;const cycle=(burst>1?(burst-1)/burstRate:0)+interval;return cycle>0?burst/cycle:void 0}var ZERO_SPLIT={kinetic:0,thermal:0,explosive:0,absolute:0,antiXeno:0};function splitDamage(damage,distribution){if(!distribution)return Object.freeze({...ZERO_SPLIT,absolute:damage});return Object.freeze({kinetic:damage*(distribution.kinetic??0),thermal:damage*(distribution.thermal??0),explosive:damage*(distribution.explosive??0),absolute:damage*(distribution.absolute??0),...(distribution.unclassified??0)===0?{}:{unclassified:damage*distribution.unclassified},antiXeno:damage*(distribution.antiXeno??0)})}function splitComponents(damage,components){const unclassified=(components.unclassified??[]).reduce((sum,value)=>sum+value,0);const conventional=(components.kinetic??0)+(components.thermal??0)+(components.explosive??0)+(components.absolute??0)+unclassified;if(conventional<=0)return Object.freeze({...ZERO_SPLIT,absolute:damage});const scale=damage/conventional;return Object.freeze({kinetic:(components.kinetic??0)*scale,thermal:(components.thermal??0)*scale,explosive:(components.explosive??0)*scale,absolute:(components.absolute??0)*scale,...unclassified===0?{}:{unclassified:unclassified*scale},antiXeno:(components.antiXeno??0)*scale})}function sustainedFireFactor(weapon){const rateOfFire=weapon.rateOfFire;const clip=weapon.clipSize===void 0?void 0:Math.ceil(weapon.clipSize);if(!rateOfFire||!clip||clip<=0)return 1;const burst=weapon.burstRounds&&weapon.burstRounds>0?weapon.burstRounds:1;const burstRate=weapon.burstRateOfFire&&weapon.burstRateOfFire>0?weapon.burstRateOfFire:1;const reload=weapon.reloadTime??0;const cycle=(clip-burst)/rateOfFire+(burst-1)/burstRate+reload;if(cycle<=0)return 1;const sustainedRate=clip/cycle;return Math.min(1,sustainedRate/rateOfFire)}function damagePerSecond(weapon){const damage=weapon.damage??0;const rounds=weapon.roundsPerShot&&weapon.roundsPerShot>0?weapon.roundsPerShot:1;return damage*rounds*(weapon.rateOfFire??1)}function sustainedDamagePerSecond(weapon){return damagePerSecond(weapon)*sustainedFireFactor(weapon)}function energyPerSecond(weapon){return(weapon.distributorDraw??0)*(weapon.rateOfFire??1)}function heatPerSecond(weapon){return(weapon.thermalLoad??0)*(weapon.rateOfFire??1)}function damageFalloff(weapon,metres){const maximum=weapon.maximumRange;if(maximum!==void 0&&metres>maximum)return 0;const falloff=weapon.falloffRange;if(falloff===void 0||maximum===void 0||metres<=falloff)return 1;const taper=maximum-falloff;if(taper<=0)return 1;return Math.max(0,1-(metres-falloff)/taper)}function armourPiercingFactor(armourPiercing,hardness){requireFiniteNonNegative("armourPiercingFactor","armour piercing",armourPiercing);requireFiniteNonNegative("armourPiercingFactor","hardness",hardness);if(hardness===0)return 1;return Math.min(1,armourPiercing/hardness)}function weaponMetrics(weapon){const continuous=weapon.rateOfFire===void 0;const rateOfFire=weapon.rateOfFire??1;const factor=sustainedFireFactor(weapon);const dps=damagePerSecond(weapon);const sdps=dps*factor;const eps=energyPerSecond(weapon);const hps=heatPerSecond(weapon);const rounds=weapon.roundsPerShot&&weapon.roundsPerShot>0?weapon.roundsPerShot:1;return Object.freeze({damagePerShot:(weapon.damage??0)*rounds,rateOfFire:rateOfFire,sustainedRateOfFire:rateOfFire*factor,damagePerSecond:dps,sustainedDamagePerSecond:sdps,energyPerSecond:eps,sustainedEnergyPerSecond:eps*factor,heatPerSecond:hps,sustainedHeatPerSecond:hps*factor,thermalLoad:weapon.thermalLoad??0,powerDraw:weapon.powerDraw??0,damageByType:weapon.damageComponents?splitComponents(dps,weapon.damageComponents):splitDamage(dps,weapon.damageDistribution),sustainedDamageByType:weapon.damageComponents?splitComponents(sdps,weapon.damageComponents):splitDamage(sdps,weapon.damageDistribution),continuous:continuous})}function sumWeaponMetrics(metrics){const damageByType=emptyDamageSplitAccumulator();const sustainedDamageByType=emptyDamageSplitAccumulator();let damagePerSecond2=0;let sustainedDamagePerSecond2=0;let energyPerSecond2=0;let sustainedEnergyPerSecond=0;let heatPerSecond2=0;let sustainedHeatPerSecond=0;let thermalLoad=0;let powerDraw=0;for(const metric of metrics){damagePerSecond2+=metric.damagePerSecond;sustainedDamagePerSecond2+=metric.sustainedDamagePerSecond;energyPerSecond2+=metric.energyPerSecond;sustainedEnergyPerSecond+=metric.sustainedEnergyPerSecond;heatPerSecond2+=metric.heatPerSecond;sustainedHeatPerSecond+=metric.sustainedHeatPerSecond;thermalLoad+=metric.thermalLoad;powerDraw+=metric.powerDraw;addDamageSplit(damageByType,metric.damageByType);addDamageSplit(sustainedDamageByType,metric.sustainedDamageByType)}return Object.freeze({damagePerSecond:damagePerSecond2,sustainedDamagePerSecond:sustainedDamagePerSecond2,energyPerSecond:energyPerSecond2,sustainedEnergyPerSecond:sustainedEnergyPerSecond,heatPerSecond:heatPerSecond2,sustainedHeatPerSecond:sustainedHeatPerSecond,thermalLoad:thermalLoad,powerDraw:powerDraw,damageByType:finishDamageSplit(damageByType),sustainedDamageByType:finishDamageSplit(sustainedDamageByType)})}function emptyDamageSplitAccumulator(){return{kinetic:0,thermal:0,explosive:0,absolute:0,unclassified:0,antiXeno:0}}function addDamageSplit(total,split){total.kinetic+=split.kinetic;total.thermal+=split.thermal;total.explosive+=split.explosive;total.absolute+=split.absolute;total.unclassified+=split.unclassified??0;total.antiXeno+=split.antiXeno}function finishDamageSplit(total){const{unclassified:unclassified,...classified}=total;return Object.freeze(unclassified===0?classified:{...classified,unclassified:unclassified})}export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics};//# sourceMappingURL=chunk-37JIMWLK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ships/weapons.ts"],"names":["requireFiniteNonNegative","combinedRateOfFire","weapon","interval","burstInterval","burst","burstRounds","burstRate","burstRateOfFire","cycle","ZERO_SPLIT","kinetic","thermal","explosive","absolute","antiXeno","splitDamage","damage","distribution","Object","freeze","unclassified","splitComponents","components","reduce","sum","value","conventional","scale","sustainedFireFactor","rateOfFire","clip","clipSize","Math","ceil","reload","reloadTime","sustainedRate","min","damagePerSecond","rounds","roundsPerShot","sustainedDamagePerSecond","energyPerSecond","distributorDraw","heatPerSecond","thermalLoad","damageFalloff","metres","maximum","maximumRange","falloff","falloffRange","taper","max","armourPiercingFactor","armourPiercing","hardness","weaponMetrics","continuous","factor","dps","sdps","eps","hps","damagePerShot","sustainedRateOfFire","sustainedEnergyPerSecond","sustainedHeatPerSecond","powerDraw","damageByType","damageComponents","damageDistribution","sustainedDamageByType","sumWeaponMetrics","metrics","emptyDamageSplitAccumulator","metric","addDamageSplit","finishDamageSplit","total","split","classified"],"mappings":"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"}
@@ -1 +0,0 @@
1
- import{getLocalizedName,createLocalizedNameIndex}from"./chunk-RVIYOHYF.js";var engineering_group_names_default={powerPlants:{en:"Power Plants",pt:"Geradores de Energia",ru:"Силовые установки"},guardianPowerPlants:{en:"Guardian Power Plants"},thrusters:{en:"Thrusters",pt:"Propulsores",ru:"Маневровые двигатели"},frameShiftDrives:{en:"Frame Shift Drives",pt:"Motores de Distorção de Fase",ru:"Рамочно-сместительные двигатели"},powerDistributors:{en:"Power Distributors",pt:"Distribuidores de Energia",ru:"Распределители питания"},guardianPowerDistributors:{en:"Guardian Power Distributors"},frameShiftDrivesSCO:{en:"Frame Shift Drives (SCO)"},shieldGenerators:{en:"Shield Generators",pt:"Geradores de Escudo",ru:"Щитогенератор"},shieldCellBanks:{en:"Shield Cell Banks",pt:"Bancos de Célula de Escudo",ru:"Щитонакопитель"},hullReinforcements:{en:"Hull Reinforcements",pt:"Reforços de Casco",ru:"Наборы для усиления корпуса"},guardianHullReinforcements:{en:"Guardian Hull Reinforcements"},pulseLasers:{en:"Pulse Lasers",pt:"Lasers de Pulso",ru:"Импульсные лазеры"},burstLasers:{en:"Burst Lasers",pt:"Lasers de Rajada",ru:"Пульсирующие лазеры"},beamLasers:{en:"Beam Lasers",pt:"Lasers Contínuos",ru:"Пучковые лазеры"},cannons:{en:"Cannons",pt:"Canhões",ru:"Пушки"},fragmentCannons:{en:"Fragment Cannons",pt:"Canhões de Fragmentos",ru:"Залповые орудия"},multiCannons:{en:"Multi-Cannons",pt:"Canhões de Repetição",ru:"Многоствольные орудия"},plasmaAccelerators:{en:"Plasma Accelerators",pt:"Aceleradores de Plasma",ru:"Ускорители плазмы"},railGuns:{en:"Rail Guns",pt:"Canhões Elétricos",ru:"Рельсотроны"},missiles:{en:"Missiles",pt:"Mísseis",ru:"Ракеты"},mines:{en:"Mines",pt:"Minas",ru:"Мины"},torpedoes:{en:"Torpedoes",pt:"Torpedos",ru:"Торпеды"},shieldBoosters:{en:"Shield Boosters",pt:"Potenciadores de Escudo",ru:"Усилители щита"},bulkheads:{en:"Bulkheads",pt:"Blindagem",ru:"Переборки"},lifeSupports:{en:"Life Supports",pt:"Suportes de Vida",ru:"Системы жизнеобеспечения"},sensors:{en:"Sensors",pt:"Sensores",ru:"Сенсоры"},autoFieldMaintenanceUnits:{en:"Auto Field-Maintenance Units",pt:"Unidades de Automanutenção em Campo",ru:"Блоки АПР"},collectionLimpets:{en:"Collection Limpets",pt:"Drones Coletores",ru:"Контроллеры дронов-сборщиков"},fsdBoosters:{en:"FSD Boosters",pt:"Potenciadores de MDD",ru:"Ускорители FSD Стражей"},fsdInterdictors:{en:"FSD Interdictors",pt:"Interditores de MDD",ru:"Перехватчики FSD"},fuelScoops:{en:"Fuel Scoops",pt:"Coletores de Combustível",ru:"Топливозаборники"},fuelTransferLimpets:{en:"Fuel Transfer Limpets",pt:"Drones de Combustível",ru:"Контроллеры дронов-заправщиков"},hatchBreakerLimpets:{en:"Hatch Breaker Limpets",pt:"Drones Quebra-Escotilha",ru:"Контроллеры дронов-взломщиков трюмов"},moduleReinforcements:{en:"Module Reinforcements",pt:"Reforços de Módulo",ru:"Наборы для усиления модулей"},prospectingLimpets:{en:"Prospecting Limpets",pt:"Drones Prospectores",ru:"Контроллеры дронов-геологоразведчиков"},refineries:{en:"Refineries",pt:"Refinarias",ru:"Очистители"},shieldReinforcements:{en:"Shield Reinforcements",pt:"Reforços de Escudo",ru:"Усилители щита"},surfaceScanners:{en:"Surface Scanners",pt:"Scanners de Superfície",ru:"Подробные сканеры поверхности"},chaffLaunchers:{en:"Chaff Launchers",pt:"Lançadores de Chaff",ru:"Разбрасыватели дипольных отражателей"},ecms:{en:"ECMs",pt:"CMEs",ru:"ЭПД"},heatSinkLaunchers:{en:"Heat Sink Launchers",pt:"Lançadores de Dissapador Térmico",ru:"Теплоотводные катапульты"},killWarrantScanners:{en:"Kill Warrant Scanners",pt:"Scanners de Registro Criminal",ru:"Сканеры преступников"},manifestScanners:{en:"Manifest Scanners",pt:"Scanners de Manifesto",ru:"Сканеры содержимого"},pointDefence:{en:"Point Defence",pt:"Defesa de Ponto",ru:"Точечная оборона"},wakeScanners:{en:"Wake Scanners",pt:"Scanners de Rastro",ru:"Сканеры следа FSD"},guardianGauss:{en:"Exp - Guardian Gauss",pt:"Exp - Gauss Guardian",ru:"Экс - Пушки Гаусса Стражей"},guardianPlasma:{en:"Exp - Guardian Plasma",pt:"Exp - Plasma Guardian",ru:"Экс - Плазменные пушки Стражей"},guardianShard:{en:"Exp - Guardian Shard",pt:"Exp - Fragmentos Guardian",ru:"Экс - Осколочные орудия Стражей"}};var NAMES=/* @__PURE__ */createLocalizedNameIndex(engineering_group_names_default);function getEngineeringGroupName(groupId,locale){return getLocalizedName(NAMES,groupId,locale,"getEngineeringGroupName","groupId")}export{getEngineeringGroupName};//# sourceMappingURL=chunk-5ZVYRX6Z.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/i18n/engineering-groups.ts"],"names":["getLocalizedName","createLocalizedNameIndex","engineering_group_names_default","NAMES","getEngineeringGroupName","groupId","locale"],"mappings":"O,siIASA,IAAMG,qBAAAF,yBAAiDC,iCAmBhD,SAASE,wBAAwBC,QAAiBC,QACrD,OAAON,iBAAiBG,MAAOE,QAASC,OAAQ,0BAA2B,UAC/E,QAAAF"}
@@ -1 +0,0 @@
1
- import{INTERNAL_MODULES}from"./chunk-4CBMQULR.js";import{UTILITY_MODULES}from"./chunk-ELT3FEA4.js";import{CORE_MODULES}from"./chunk-FA5JVXVG.js";import{HARDPOINT_MODULES}from"./chunk-4TFAZX73.js";var ALL_MODULES=Object.freeze([...CORE_MODULES,...INTERNAL_MODULES,...HARDPOINT_MODULES,...UTILITY_MODULES]);export{ALL_MODULES};//# sourceMappingURL=chunk-7ZERP4TB.js.map
@@ -1 +0,0 @@
1
- import{buildMaterialCatalogue}from"./chunk-GTEHRZPN.js";var materials_encoded_default=[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",elementSymbol:null,grade:1,line:"Data Archives"},{symbol:"ScanArchives",name:"Unidentified Scan Archives",elementSymbol:null,grade:2,line:"Data Archives"},{symbol:"ScanDatabanks",name:"Classified Scan Databanks",elementSymbol:null,grade:3,line:"Data Archives"},{symbol:"EncodedScanData",name:"Divergent Scan Data",elementSymbol:null,grade:4,line:"Data Archives"},{symbol:"ClassifiedScanData",name:"Classified Scan Fragment",elementSymbol:null,grade:5,line:"Data Archives"},{symbol:"ScrambledEmissionData",name:"Exceptional Scrambled Emission Data",elementSymbol:null,grade:1,line:"Emission Data"},{symbol:"ArchivedEmissionData",name:"Irregular Emission Data",elementSymbol:null,grade:2,line:"Emission Data"},{symbol:"EmissionData",name:"Unexpected Emission Data",elementSymbol:null,grade:3,line:"Emission Data"},{symbol:"DecodedEmissionData",name:"Decoded Emission Data",elementSymbol:null,grade:4,line:"Emission Data"},{symbol:"CompactEmissionsData",name:"Abnormal Compact Emissions Data",elementSymbol:null,grade:5,line:"Emission Data"},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",elementSymbol:null,grade:1,line:"Encoded Firmware"},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",elementSymbol:null,grade:2,line:"Encoded Firmware"},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",elementSymbol:null,grade:3,line:"Encoded Firmware"},{symbol:"SecurityFirmware",name:"Security Firmware Patch",elementSymbol:null,grade:4,line:"Encoded Firmware"},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",elementSymbol:null,grade:5,line:"Encoded Firmware"},{symbol:"EncryptedFiles",name:"Unusual Encrypted Files",elementSymbol:null,grade:1,line:"Encryption Files"},{symbol:"EncryptionCodes",name:"Tagged Encryption Codes",elementSymbol:null,grade:2,line:"Encryption Files"},{symbol:"SymmetricKeys",name:"Open Symmetric Keys",elementSymbol:null,grade:3,line:"Encryption Files"},{symbol:"EncryptionArchives",name:"Atypical Encryption Archives",elementSymbol:null,grade:4,line:"Encryption Files"},{symbol:"AdaptiveEncryptors",name:"Adaptive Encryptors Capture",elementSymbol:null,grade:5,line:"Encryption Files"},{symbol:"Guardian_ModuleBlueprint",name:"Guardian Module Blueprint Segment",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"Guardian_WeaponBlueprint",name:"Guardian Weapon Blueprint Segment",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientBiologicalData",name:"Pattern Alpha Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientCulturalData",name:"Pattern Beta Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientLanguageData",name:"Pattern Delta Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientTechnologicalData",name:"Pattern Epsilon Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientHistoricalData",name:"Pattern Gamma Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"Guardian_VesselBlueprint",name:"Guardian Vessel Blueprint Segment",elementSymbol:null,grade:5,line:"Guardian"},{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",elementSymbol:null,grade:1,line:"Shield Data"},{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",elementSymbol:null,grade:2,line:"Shield Data"},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",elementSymbol:null,grade:3,line:"Shield Data"},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",elementSymbol:null,grade:4,line:"Shield Data"},{symbol:"ShieldFrequencyData",name:"Peculiar Shield Frequency Data",elementSymbol:null,grade:5,line:"Shield Data"},{symbol:"TG_StructuralData",name:"Thargoid Structural Data",elementSymbol:null,grade:2,line:"Thargoid"},{symbol:"tg_shutdowndata",name:"Massive Energy Surge Analytics",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"TG_ShipFlightData",name:"Ship Flight Data",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"tg_interdictiondata",name:"Thargoid Interdiction Telemetry",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"TG_CompositionData",name:"Thargoid Material Composition Data",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"UnknownShipSignature",name:"Thargoid Ship Signature",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"TG_ShipSystemsData",name:"Ship Systems Data",elementSymbol:null,grade:4,line:"Thargoid"},{symbol:"TG_ResidueData",name:"Thargoid Residue Data",elementSymbol:null,grade:4,line:"Thargoid"},{symbol:"UnknownWakeData",name:"Thargoid Wake Data",elementSymbol:null,grade:4,line:"Thargoid"},{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",elementSymbol:null,grade:1,line:"Wake Scans"},{symbol:"FSDTelemetry",name:"Anomalous FSD Telemetry",elementSymbol:null,grade:2,line:"Wake Scans"},{symbol:"WakeSolutions",name:"Strange Wake Solutions",elementSymbol:null,grade:3,line:"Wake Scans"},{symbol:"HyperspaceTrajectories",name:"Eccentric Hyperspace Trajectories",elementSymbol:null,grade:4,line:"Wake Scans"},{symbol:"DataminedWake",name:"Datamined Wake Exceptions",elementSymbol:null,grade:5,line:"Wake Scans"}];var ENCODED_MATERIALS=buildMaterialCatalogue(materials_encoded_default,"encoded");export{ENCODED_MATERIALS};//# sourceMappingURL=chunk-AIEC3LBT.js.map
@@ -1 +0,0 @@
1
- var percent=100;var STAT_LABELS=[{label:"Mass",field:"mass"},{label:"Integrity",field:"integrity"},{label:"PowerDraw",field:"powerDraw"},{label:"BootTime",field:"bootTime"},{label:"FSDOptimalMass",field:"optMass"},{label:"EngineOptimalMass",field:"optMass"},{label:"EngineMinimumMass",field:"minMass"},{label:"MaximumMass",field:"maxMass"},{label:"ShieldGenOptimalMass",field:"optMass"},{label:"ShieldGenMinimumMass",field:"minMass"},{label:"ShieldGenMaximumMass",field:"maxMass"},{label:"EngineOptPerformance",field:"optMultiplier",scale:percent},{label:"EngineMinPerformance",field:"minMultiplier",scale:percent},{label:"EngineMaxPerformance",field:"maxMultiplier",scale:percent},{label:"ShieldGenStrength",field:"optMultiplier",scale:percent},{label:"ShieldGenMinStrength",field:"minMultiplier",scale:percent},{label:"ShieldGenMaxStrength",field:"maxMultiplier",scale:percent},{label:"EngineHeatRate",field:"engineHeatRate"},{label:"FSDHeatRate",field:"fsdHeatRate"},{label:"MaxFuelPerJump",field:"maxFuel"},{label:"PowerCapacity",field:"powerCapacity"},{label:"HeatEfficiency",field:"heatEfficiency"},{label:"EnginesCapacity",field:"enginesCapacity"},{label:"EnginesRecharge",field:"enginesRecharge"},{label:"SystemsCapacity",field:"systemsCapacity"},{label:"SystemsRecharge",field:"systemsRecharge"},{label:"WeaponsCapacity",field:"weaponsCapacity"},{label:"WeaponsRecharge",field:"weaponsRecharge"},{label:"RefuelRate",field:"refuelRate"},{label:"FuelScoopRate",field:"refuelRate"},{label:"FuelCapacity",field:"fuelCapacity"},{label:"CargoCapacity",field:"cargoCapacity"},{label:"RegenRate",field:"shieldRegenRate"},{label:"BrokenRegenRate",field:"shieldBrokenRegenRate"},{label:"EnergyPerRegen",field:"distributorDraw"},{label:"ShieldBankReinforcement",field:"shieldBankReinforcement"},{label:"ShieldBankHeat",field:"shieldBankHeat"},{label:"ShieldBankHeat",field:"thermalLoad"},{label:"ShieldBankSpinUp",field:"shieldBankSpinUp"},{label:"ShieldBankDuration",field:"shieldBankDuration"},{label:"ScannerRange",field:"scannerRange"},{label:"SensorTargetScanAngle",field:"scanAngle"},{label:"MaxAngle",field:"scanAngle"},{label:"ScannerTimeToScan",field:"scanTime"},{label:"ProbeRadius",field:"probeRadius"},{label:"DSS_PatchRadius",field:"probeRadius"},{label:"FSDInterdictorFacingLimit",field:"interdictorFacingLimit"},{label:"FSDInterdictorRange",field:"interdictorRange"},{label:"DefenceModifierShieldMultiplier",field:"shieldBoost",scale:percent,multiplierBase:percent},{label:"DefenceModifierHealthMultiplier",field:"hullBoost",scale:percent,multiplierBase:percent},{label:"DefenceModifierHealthAddition",field:"hullReinforcement"},{label:"DefenceModifierShieldAddition",field:"shieldAddition"},{label:"GuardianModuleResistance",field:"guardianZoneResistance",capabilityValue:"Active"},{label:"KineticResistance",field:"kineticResistance",scale:percent,multiplierBase:-percent},{label:"ThermicResistance",field:"thermalResistance",scale:percent,multiplierBase:-percent},{label:"ExplosiveResistance",field:"explosiveResistance",scale:percent,multiplierBase:-percent},{label:"CausticResistance",field:"causticResistance",scale:percent,multiplierBase:-percent},{label:"DamageProtection",field:"moduleProtection",scale:percent},{label:"ModuleDefenceAbsorption",field:"moduleProtection",scale:percent},{label:"Damage",field:"damage"},{label:"Rounds",field:"roundsPerShot",defaultBase:1},{label:"RoundsPerShot",field:"roundsPerShot",defaultBase:1},{label:"RateOfFire",field:"rateOfFire"},{label:"BurstInterval",field:"burstInterval"},{label:"BurstSize",field:"burstRounds",defaultBase:1},{label:"BurstRateOfFire",field:"burstRateOfFire",defaultBase:1},{label:"AmmoClipSize",field:"clipSize"},{label:"AmmoMaximum",field:"ammoMaximum"},{label:"ReloadTime",field:"reloadTime"},{label:"DistributorDraw",field:"distributorDraw"},{label:"ThermalLoad",field:"thermalLoad"},{label:"ArmourPenetration",field:"armourPiercing"},{label:"Range",field:"maximumRange"},{label:"Range",field:"scannerRange"},{label:"MaximumRange",field:"maximumRange"},{label:"FalloffRange",field:"falloffRange"},{label:"DamageFalloffRange",field:"falloffRange"},{label:"ShotSpeed",field:"shotSpeed"},{label:"$Kinetic;",field:"damageDistribution",damageType:"kinetic",scale:percent,defaultBase:0},{label:"$Thermal;",field:"damageDistribution",damageType:"thermal",scale:percent,defaultBase:0},{label:"$Explosive;",field:"damageDistribution",damageType:"explosive",scale:percent,defaultBase:0},{label:"$Absolute;",field:"damageDistribution",damageType:"absolute",scale:percent,defaultBase:0},{label:"Jitter",field:"jitter",defaultBase:0}];var BY_LABEL=(()=>{const entries=/* @__PURE__ */new Map;for(const entry of STAT_LABELS){const forLabel=entries.get(entry.label)??[];forLabel.push(entry);entries.set(entry.label,forLabel)}return entries})();var LABELS_BY_FIELD=(()=>{const labels=/* @__PURE__ */new Map;for(const entry of STAT_LABELS){if(entry.damageType!==void 0)continue;const fieldLabels=labels.get(entry.field)??[];fieldLabels.push(entry.label);labels.set(entry.field,fieldLabels)}return labels})();function baseStats(stats){const base={};for(const{label:label,field:field,damageType:damageType,scale:scale,defaultBase:defaultBase}of STAT_LABELS){if(base[label]!==void 0)continue;const value=damageType===void 0?stats[field]:stats.damageDistribution?.[damageType];if(typeof value==="number")base[label]=value*(scale??1);else if(defaultBase!==void 0&&isWeapon(stats))base[label]=defaultBase}return base}function isWeapon(stats){return stats.damage!==void 0}function fieldForLabel(label,stats){const entries=BY_LABEL.get(label);if(!entries||entries.length===0)return null;if(stats&&entries.length>1){const carried=entries.find(entry=>typeof stats[entry.field]==="number");if(carried)return carried.field}return entries[0].field}function damageTypeForLabel(label){return BY_LABEL.get(label)?.[0]?.damageType??null}function labelsForDamageType(type){return STAT_LABELS.filter(entry=>entry.damageType===type).map(entry=>entry.label)}function scaleForLabel(label){return BY_LABEL.get(label)?.[0]?.scale??1}function multiplierBaseForLabel(label){return BY_LABEL.get(label)?.[0]?.multiplierBase??null}function capabilityValueForLabel(label){return BY_LABEL.get(label)?.[0]?.capabilityValue??null}function labelsForField(field){return LABELS_BY_FIELD.get(field)??[]}var PRECISE_VALUE=/* @__PURE__ */Symbol("precise engineering modifier value");function withPreciseModifierValue(modifier,value){Object.defineProperty(modifier,PRECISE_VALUE,{value:value});return modifier}function preciseModifierValue(modifier){return modifier[PRECISE_VALUE]??modifier.Value}var round6=n=>{const rounded=Math.round(n*1e6)/1e6;return Object.is(rounded,-0)?0:rounded};var FLOAT32_SCALED_BASE_LABELS=/* @__PURE__ */new Set(["EngineOptPerformance","EngineMinPerformance","EngineMaxPerformance","ShieldGenStrength","ShieldGenMinStrength","ShieldGenMaxStrength"]);function computeModifiers(base,grade,quality=1,experimental){if(!Number.isFinite(quality)||quality<0||quality>1){throw new RangeError(`computeModifiers: quality must be a finite number in [0, 1]`)}const f=Math.fround;const roll=f(quality);const byLabel=/* @__PURE__ */new Map;const add=(label,method,value,stated)=>{const list=byLabel.get(label)??[];list.push({method:method,value:value,stated:stated});byLabel.set(label,list)};const features="features"in grade?grade.features:grade;for(const feature of features){const rolledValue=roll===0?feature.min:roll===1?feature.max:feature.min+(feature.max-feature.min)*roll;const value=feature.method==="overwrite"?rolledValue:roll===0||roll===1?f(rolledValue):f(f(feature.min)+f(f(feature.max-feature.min)*roll));add(feature.label,feature.method,value,feature.min===feature.max||roll===0||roll===1)}const experimentalModifiers=experimental&&"modifiers"in experimental?experimental.modifiers:experimental;for(const e of experimentalModifiers??[]){add(e.label,e.method,e.method==="overwrite"?e.value:f(e.value),true)}const modifiers=[];let clipIsOverwritten=false;for(const[label,contributions]of byLabel){const capabilityValue=capabilityValueForLabel(label);if(capabilityValue!==null){modifiers.push({Label:label,ValueStr:capabilityValue});continue}const baseValue=base[label];const overwrite=contributions.find(c=>c.method==="overwrite");const multiplierBase=multiplierBaseForLabel(label);const original=baseValue===void 0?void 0:float32JournalValue(baseValue,multiplierBase,FLOAT32_SCALED_BASE_LABELS.has(label)?scaleForLabel(label):1);const baseless=original===void 0&&(multiplierBase!==null||overwrite!==void 0||contributions.some(c=>c.method==="additive"));if(original===void 0&&!baseless)continue;let value=original??0;if(multiplierBase===null){for(const c of contributions){if(c.method==="multiplicative")value=f(value*f(1+f(c.value)))}for(const c of contributions){if(c.method==="additive")value=f(value+f(c.value))}}else{let factor=f(1+value/multiplierBase);for(const c of contributions){if(c.method==="overwrite")continue;factor=f(factor*f(1+f(f(c.value)*100/multiplierBase)))}value=f(f(factor-1)*multiplierBase)}if(overwrite)value=overwrite.value;if(label==="AmmoClipSize"){if(overwrite)clipIsOverwritten=true;else if(original!==void 0&&contributions.every(c=>c.stated)){value=snapToStatedWhole(value,original)}}else if(label==="AmmoMaximum"&&!overwrite){value=Math.round(value)}modifiers.push(withPreciseModifierValue({Label:label,Value:round6(value),...original===void 0&&multiplierBase===null?{}:{OriginalValue:round6(original??0)}},value))}const resolved=resolveFalloffFromRange(modifiers,base);return clipIsOverwritten?resolved:roundClipToWholeBursts(resolved,base)}function float32JournalValue(value,multiplierBase,scale){if(multiplierBase===null){return Math.fround(Math.fround(value/scale)*scale)}const factor=Math.fround(1+value/multiplierBase);return Math.fround(Math.fround(factor-1)*multiplierBase)}function roundClipToWholeBursts(modifiers,base){const clip=modifiers.find(m=>m.Label==="AmmoClipSize");if(!clip?.Value||clip.Value===clip.OriginalValue)return modifiers;const burst=modifiers.find(m=>m.Label==="BurstSize")?.Value||base["BurstSize"]||1;const rounded=Math.ceil(clip.Value/burst)*burst;if(rounded===clip.Value)return modifiers;return modifiers.map(m=>m===clip?{...m,Value:rounded}:m)}function snapToStatedWhole(value,base){const whole=Math.round(value);return Math.abs(value-whole)<=Math.abs(base)*5e-4?whole:value}function resolveFalloffFromRange(modifiers,base){const falloff=modifiers.find(m=>m.Label==="FalloffRange");if(!falloff||falloff.Value===void 0)return modifiers;const range=modifiers.find(m=>m.Label==="Range"||m.Label==="MaximumRange")?.Value??base["Range"]??base["MaximumRange"];if(range===void 0){return falloff.Value<=1?modifiers.filter(m=>m!==falloff):modifiers}if(falloff.Value<=1||falloff.Value>range){return modifiers.map(m=>m===falloff?{...m,Value:round6(range)}:m)}return modifiers}function sumMaterials(...lists){const totals=/* @__PURE__ */new Map;for(const list of lists){for(const material of list){const key=material.symbol.toLowerCase();const previous=totals.get(key);totals.set(key,{symbol:previous?.symbol??material.symbol,name:previous?.name??material.name,count:(previous?.count??0)+material.count})}}return[...totals.values()]}export{baseStats,capabilityValueForLabel,computeModifiers,damageTypeForLabel,fieldForLabel,labelsForDamageType,labelsForField,preciseModifierValue,scaleForLabel,sumMaterials};//# sourceMappingURL=chunk-CJQ37JII.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ships/internal/module-stat-labels.ts","../src/ships/internal/engineering-precision.ts","../src/ships/engineering.ts"],"names":["percent","STAT_LABELS","label","field","scale","multiplierBase","capabilityValue","defaultBase","damageType","BY_LABEL","entries","Map","entry","forLabel","get","push","set","LABELS_BY_FIELD","labels","fieldLabels","baseStats","stats","base","value","damageDistribution","isWeapon","damage","fieldForLabel","length","carried","find","damageTypeForLabel","labelsForDamageType","type","filter","map","scaleForLabel","multiplierBaseForLabel","capabilityValueForLabel","labelsForField","PRECISE_VALUE","Symbol","withPreciseModifierValue","modifier","Object","defineProperty","preciseModifierValue","Value","round6","n","rounded","Math","round","is","FLOAT32_SCALED_BASE_LABELS","Set","computeModifiers","grade","quality","experimental","Number","isFinite","RangeError","f","fround","roll","byLabel","add","method","stated","list","features","feature","rolledValue","min","max","experimentalModifiers","modifiers","e","clipIsOverwritten","contributions","Label","ValueStr","baseValue","overwrite","c","original","float32JournalValue","has","baseless","some","factor","every","snapToStatedWhole","OriginalValue","resolved","resolveFalloffFromRange","roundClipToWholeBursts","clip","m","burst","ceil","whole","abs","falloff","range","sumMaterials","lists","totals","material","key","symbol","toLowerCase","previous","name","count","values"],"mappings":"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"}
@@ -1 +0,0 @@
1
- import{COMPONENT_MICRO_RESOURCES}from"./chunk-HTB52N6S.js";import{CONSUMABLE_MICRO_RESOURCES}from"./chunk-K7L7SMIR.js";import{DATA_MICRO_RESOURCES}from"./chunk-GVLDFJEY.js";import{ITEM_MICRO_RESOURCES}from"./chunk-WHWFKHV3.js";var ALL_MICRO_RESOURCES=Object.freeze([...COMPONENT_MICRO_RESOURCES,...CONSUMABLE_MICRO_RESOURCES,...DATA_MICRO_RESOURCES,...ITEM_MICRO_RESOURCES]);export{ALL_MICRO_RESOURCES};//# sourceMappingURL=chunk-DAQ3PJ4R.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/materials/micro-resources-all.ts"],"names":["COMPONENT_MICRO_RESOURCES","CONSUMABLE_MICRO_RESOURCES","DATA_MICRO_RESOURCES","ITEM_MICRO_RESOURCES","ALL_MICRO_RESOURCES","Object","freeze"],"mappings":"O,4NA6BO,IAAMI,oBAAgDC,OAAOC,OAAO,IACpEN,6BACAC,8BACAC,wBACAC,8BACNC"}
@@ -1 +0,0 @@
1
- import{findByRawKey}from"./chunk-BKWLI44T.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var gunsights_default={SideWinder:[[-2.1956754475,-1.166162014],[2.1971644611,-1.166162014]],Eagle:[[0,1.3350000381],[-.9999989867,-4.1649398804],[1,-4.1649999619]],Hauler:[[3.1238413122,-2.5036600828]],Adder:[[7.95e-8,2.4762201309],[4.8031108992,-3.3052899837],[-4.8107191904,-3.3051600456]],Viper:[[-4.4231422022,-3.1312600374],[4.4890677854,-3.120200038],[-2.2769222334,-1.7354830503],[2.3477876112,-1.7415840626]],CobraMkIII:[[-2.7252560258,-2.2194597721],[4.3004040122,-2.2194597721],[-18.1650753617,-4.2745628506],[19.6289233565,-4.2745628506]],Type6:[[-7.0000141919,-8.5942001343],[6.9999858081,-8.5942001343]],Dolphin:[[-1.4913898188,-1.4382200241],[1.4910102409,-1.437789917]],Type7:[[-4.0687398911,-14.1802290976],[4.0687398911,-14.1802290976],[-3.1221899986,-18.4825201035],[0,5.8422994614]],Asp:[[4.0197359264,-.2208419442],[-4.0197643102,-.2208419442],[4.3934255778,-3.8522120118],[-4.3930143178,-3.8522120118],[.8882707894,-5.8057618737],[-.8607862056,-5.8057618737]],Vulture:[[-6.0744804493,2.4356280565],[6.0739994892,2.43562603]],Empire_Trader:[[-46.5126991272,-1.456389904],[46.4147987366,-1.4596400261],[-21.093000412,-10.896999836],[20.9435005188,-10.896999836]],Federation_Dropship:[[-6.975e-7,-7.1524811387],[6.4999993996,-8.3645310998],[-6.5000006004,-8.421630919],[-12.2532001777,-5.5376310945],[12.252999659,-5.5425711274]],Orca:[[23787e-10,-11.1302399635],[7.5304622596,-11.1302700043],[-7.5304575021,-11.1302499771]],Type9:[[.0158350021,-10.8171396255],[-32.9438727051,14.1377997398],[32.9561250061,14.1377997398],[-4.472344175,-1.2836203575],[4.4973962158,-1.2836203575]],Python:[[9.2650003433,1.0571099818],[-9.2650003433,1.0573539734],[-104189e-9,-5.7930601835],[6.299369812,-.4728800058],[-6.2989997864,-.4728800058]],BelugaLiner:[[-3.8678876522,19.7454404831],[3.86789211,19.7454404831],[31204e-10,-12.5654602051],[9.9565022823,-13.0313596725],[-10.0456978443,-13.0313596725]],FerDeLance:[[-.5650237321,-9.5035099983],[3.1392460465,-5.2576601505],[-4.2803038955,-5.257529974],[-8.9795841575,-6.9344000816],[7.9933162332,-6.9040498734]],Anaconda:[[-.0500994027,-20.8516497612],[-.0676546022,-16.4927697182],[-6.3956546709,-6.0129098892],[6.2604951933,-6.012919426],[-8.3323144838,-10.4250597954],[8.1973457411,-10.4252595901],[-1.5326546356,-27.17029953],[1.396265395,-27.1728992462]],Federation_Corvette:[[-3.9228526003,-3.9520503628],[4.2232654743,-3.9520503628],[-.0482507162,-21.622590065],[-19.0490464792,-14.0605998039],[18.952551879,-14.0605998039],[-3.5523173437,-8.1903957129],[3.4558227435,-8.1903966665]],Cutter:[[-1.0698891692,-10.5712301731],[1.9353100061,8.357470274],[-4.2942000628,8.357470274],[5.604150176,-12.578029871],[-7.8722597361,-12.578029871],[48.7663916349,6.6569497585],[-51.335411191,6.6569497585]],DiamondBack:[[-4.0515280947,-2.5390116945],[4.0515316739,-2.5390116945],[1.4018517747,-2.5665118471],[-1.4018582091,-2.5665118471]],Empire_Courier:[[11.8377540655,-3.2956299782],[-11.8383466653,-3.2953501688],[-.0002514451,-3.2983777486]],DiamondBackXL:[[-3.8e-9,-5.4903216138],[-4.0515298843,-2.5390116945],[4.0515298843,-2.5390116945]],Empire_Eagle:[[0,1.158190012],[-.9999989867,-4.1649398804],[1,-4.1649999619]],Federation_Dropship_MkII:[[-6.975e-7,-7.1524811387],[-8.388e-7,6.2918891311],[-6.5000006004,-8.421630919],[6.4999993996,-8.3645310998]],Federation_Gunship:[[-6.975e-7,-7.1524811387],[7.4685991959,-6.1059408784],[-7.5166708274,-6.1010008454],[-6.5000006004,-8.421630919],[6.4999993996,-8.3645310998],[-2.0145705982,6.9536890388],[2.0064393239,6.9536890388]],Viper_MkIV:[[-5.2282078192,-3.557543993],[5.2982223108,-3.5579299927],[-2.2769176885,-1.7354899645],[2.3477823809,-1.741590023]],CobraMkIV:[[-2.7252560258,-2.2194597721],[4.3004040122,-2.2194597721],[-2.1642358899,1.6537399292],[3.6279239058,1.6537399292],[.7319211364,1.5309801102]],Independant_Trader:[[-6.4588040173,-.3966100216],[6.4619156062,-.3966100216],[-7.0000141919,-8.5942001343],[6.9999858081,-8.5942001343]],Asp_Scout:[[4.0197359264,-.2208419442],[-4.0197643102,-.2208419442],[.8882707894,-5.8057618737],[-.8607862056,-5.8057618737]],Type9_Military:[[-45.9827164114,12.8247699738],[46.1578818858,12.8248000145],[-35.7242172658,-5.8927402496],[35.789683491,-5.8927402496],[.0158349872,-10.9025392532],[-32.9439171255,14.0823497772],[32.9560805857,14.0823497772],[-31.7180183828,14.461810112],[31.7231818736,14.4618396759]],Krait_MkII:[[-.0051161051,4.72419101],[6.5335155488,3.6496010423],[-6.5342449188,3.6496010423],[5.5368453026,.8744730204],[-5.487834835,.8744730204]],TypeX:[[.0162672093,13.6527097225],[.0074073989,8.286440134],[.0078854002,-2.0069200993],[.0039364994,6.8665499687],[-4.1265390068,10.0820600986],[4.1602909416,10.0874998569]],TypeX_2:[[.0074063987,8.2878696918],[.0161828697,13.6526801586],[.0078854002,-2.0069200993],[.0041333996,6.8272798061],[-4.1265289932,10.0600898266],[4.1603109688,10.0655200481]],TypeX_3:[[.0073715989,8.3409497738],[-4.5380389839,-3.9696199894],[.0078854002,-2.0069200993],[4.5610411018,-3.9636600018],[.0040766001,6.8395199776],[-4.1265089661,10.0326097012],[4.1603309959,10.0380399227]],Krait_Light:[[-6.5342449188,4.1638610959],[6.5335155488,4.1638610959],[5.5368453026,.652011021],[-5.487834835,.652011021]],Mamba:[[.00432313,.835559845],[-16.6398762413,-.8341600895],[16.5986224464,-.8341600895],[-10.7312773415,-1.4244301319],[10.740323191,-1.4244401455]],Python_NX:[[9.2650003433,1.0571099818],[-9.2650003433,1.0568399727],[-104189e-9,-5.7930601835],[0,3.4936000109],[6.4427800179,-.1121799946],[-6.4429998398,-.1121799946]],Type8:[[0,-12.1037597656],[-4.015999794,-7.7543688715],[4.0157799721,-7.7543688715],[0,4.098760128],[-11.9879999161,-3.7318696976],[11.9879999161,-3.7318696976]],Mandalay:[[-4.99567687,2.401819706],[5.00432313,2.401819706],[-10.5496767708,-2.8439302444],[10.5583230308,-2.8439302444],[-3.7202469059,-.0611701012],[3.7293230346,-.0611701012]],CobraMkV:[[-6.0253000259,-2.7495419383],[6.0253000259,-2.7495419383],[0,3.0864198208],[-8.1576700211,-1.0310399532],[8.1579999924,-1.0310399532]],Corsair:[[-246232e-9,1.9287400246],[-3.8475562982,-5.660593912],[3.8467536517,-5.660593912],[3.8953037806,.2843203545],[-3.8957962446,.2843203545],[-246232e-9,-12.9786396027]],PantherMkII:[[0,-16.1954603195],[0,-22.501200676],[29.7259998322,8.7797994614],[-29.7262001038,8.7797994614],[33.6498985291,-2.9535703659],[-33.6515007019,-2.9495506287],[18.0830001831,6.2904005051],[-18.0830001831,6.2904005051],[10.7854003906,-22.5706005096],[-10.7849998474,-22.5706005096]],LakonMiner:[[3.4014891237,-7.2467298508],[-5.9021710306,-8.9939498901],[-1.4037310034,-8.9939498901],[-.1419609934,-1.4792003632],[-3.6419609934,-10.8120200634],[-.1419609934,-2.0740003586],[3.3580390066,-18.2151401043],[-3.6419609934,-18.2149801254]],Explorer_NX:[[-.0009805651,7.4557856917],[22.3390128736,5.1527962089],[-22.3404877062,5.1527962089],[-4.1629874583,-4.175993979],[4.1610129003,-4.1762040257],[-14.1689875002,7.1313461661],[14.1670129423,7.1317958236]],SmallCombat01_NX:[[0,.829210043],[-4.7786197662,-4.3692798615],[4.7789998055,-4.368999958],[1.8267500401,-1.6154369712],[-1.8270000219,-1.6149999648]],MediumTransport01:[[-324325e-10,5.9589700699],[-8.1420001984,-4.0403298438],[8.1420001984,-4.0408278406],[-22.3405990601,-4.0403298438],[22.3593006134,-4.0408278406]]};var SHIP_GUNSIGHTS=deepFreeze(gunsights_default);function getShipGunsight(shipSymbol){return findByRawKey(SHIP_GUNSIGHTS,shipSymbol,"getShipGunsight: shipSymbol")}function projectGunsight(gunsight,targetRangeMetres){if(!Number.isFinite(targetRangeMetres)||targetRangeMetres<=0){throw new RangeError("projectGunsight: targetRangeMetres must be a finite positive number")}return gunsight.map(([horizontalOffsetMetres,verticalOffsetMetres])=>({horizontalTangent:horizontalOffsetMetres/targetRangeMetres,verticalTangent:verticalOffsetMetres/targetRangeMetres}))}export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight};//# sourceMappingURL=chunk-DBGXZF7O.js.map