@elite-dangerous-almanac/core 0.1.0-beta.9 → 0.1.2

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 (239) hide show
  1. package/PROVENANCE/i18n/SOURCES.md +71 -12
  2. package/PROVENANCE/ships/SOURCES.md +74 -48
  3. package/README.md +34 -2
  4. package/THIRD_PARTY_NOTICES.md +3 -3
  5. package/dist/astro/codex-region-lookup.js +1 -1
  6. package/dist/astro/codex-region.js +1 -1
  7. package/dist/astro/galaxy-grid.js +1 -1
  8. package/dist/astro/index.js +1 -1
  9. package/dist/astro/mass-code.js +1 -1
  10. package/dist/astro/naming-region-origins.js +1 -1
  11. package/dist/astro/nebulae.js +1 -1
  12. package/dist/astro/permit-locked-regions.js +1 -1
  13. package/dist/astro/permit-locked-systems.js +1 -1
  14. package/dist/astro/permit-locks.js +1 -1
  15. package/dist/astro/procedural-system.js +1 -1
  16. package/dist/astro/sector-name.js +1 -1
  17. package/dist/astro/system-address-input.js +1 -1
  18. package/dist/astro/system-address.js +1 -1
  19. package/dist/astro/system-name.js +1 -1
  20. package/dist/{chunk-KQDJTDLV.js → chunk-2J2UV4ZX.js} +1 -1
  21. package/dist/{chunk-DB54PH3X.js → chunk-6EPYVBAX.js} +1 -1
  22. package/dist/{chunk-U6TMCYA6.js → chunk-6EUVIZAS.js} +1 -1
  23. package/dist/chunk-6RLMBSXE.js +1 -0
  24. package/dist/chunk-6RLMBSXE.js.map +1 -0
  25. package/dist/{chunk-NWPK6Q3S.js → chunk-ADLVPKUV.js} +1 -1
  26. package/dist/{chunk-S4DBNX2B.js → chunk-BKWLI44T.js} +1 -1
  27. package/dist/chunk-BMM6GQAU.js +1 -0
  28. package/dist/chunk-BMM6GQAU.js.map +1 -0
  29. package/dist/{chunk-WV5YM7H5.js → chunk-BMT3U46U.js} +1 -1
  30. package/dist/chunk-CTJQPQRA.js +1 -0
  31. package/dist/{chunk-NSSWYRHN.js.map → chunk-CTJQPQRA.js.map} +1 -1
  32. package/dist/chunk-DAQ3PJ4R.js +1 -0
  33. package/dist/chunk-DAQ3PJ4R.js.map +1 -0
  34. package/dist/{chunk-BTPV5CIF.js → chunk-DI5RXSJR.js} +1 -1
  35. package/dist/{chunk-YDBRGW4G.js → chunk-DLLBARN5.js} +1 -1
  36. package/dist/{chunk-J2PNZQY4.js → chunk-DVL5RBKX.js} +1 -1
  37. package/dist/{chunk-VXVUEF5U.js → chunk-E3BRVGJJ.js} +1 -1
  38. package/dist/{chunk-MFV4VZFP.js → chunk-EBAHNZ36.js} +1 -1
  39. package/dist/{chunk-BSOIPL4A.js → chunk-EJMNNQIS.js} +1 -1
  40. package/dist/{chunk-BSOIPL4A.js.map → chunk-EJMNNQIS.js.map} +1 -1
  41. package/dist/{chunk-QF3NYGUJ.js → chunk-EKWLAHRG.js} +1 -1
  42. package/dist/chunk-EU42PAV4.js +1 -0
  43. package/dist/{chunk-32PVERNH.js.map → chunk-EU42PAV4.js.map} +1 -1
  44. package/dist/{chunk-Q22LXT53.js → chunk-FEER4ERG.js} +1 -1
  45. package/dist/{chunk-G3AMKCOE.js → chunk-FGNJ7EVM.js} +1 -1
  46. package/dist/{chunk-JWJ7RSZC.js → chunk-G3265B27.js} +1 -1
  47. package/dist/chunk-GKDEI2SQ.js +1 -0
  48. package/dist/chunk-GKDEI2SQ.js.map +1 -0
  49. package/dist/chunk-GOMBLS2T.js +1 -0
  50. package/dist/chunk-GOMBLS2T.js.map +1 -0
  51. package/dist/{chunk-V3DW67W2.js → chunk-GRIK3EDH.js} +1 -1
  52. package/dist/chunk-H3HMVGEY.js +1 -0
  53. package/dist/chunk-H3HMVGEY.js.map +1 -0
  54. package/dist/{chunk-UXZJMZEU.js → chunk-HRVIHQ4A.js} +1 -1
  55. package/dist/{chunk-QTDBO7R2.js → chunk-IYU4WLFM.js} +1 -1
  56. package/dist/{chunk-5EUX3L76.js → chunk-JWWYAMGD.js} +1 -1
  57. package/dist/chunk-KAA4VOOB.js +1 -0
  58. package/dist/chunk-KAA4VOOB.js.map +1 -0
  59. package/dist/{chunk-ZFT56QFR.js → chunk-L7CLUYZ6.js} +1 -1
  60. package/dist/{chunk-4AE22CHV.js → chunk-M5IBENCW.js} +1 -1
  61. package/dist/chunk-M5IBENCW.js.map +1 -0
  62. package/dist/{chunk-IH4NXKVW.js → chunk-NEEFT7WH.js} +1 -1
  63. package/dist/{chunk-VZXL5KBR.js → chunk-NLBUKXNV.js} +1 -1
  64. package/dist/{chunk-4OSCSACF.js → chunk-OCND33TO.js} +1 -1
  65. package/dist/{chunk-PMJG7PHU.js → chunk-PHPLZEFS.js} +1 -1
  66. package/dist/chunk-PKWVG2JY.js +1 -0
  67. package/dist/chunk-PKWVG2JY.js.map +1 -0
  68. package/dist/chunk-PNZCLQDJ.js +1 -0
  69. package/dist/{chunk-53ERRGPM.js.map → chunk-PNZCLQDJ.js.map} +1 -1
  70. package/dist/{chunk-DACZE3HX.js → chunk-POZTXBSN.js} +1 -1
  71. package/dist/chunk-Q4E2V6RE.js +1 -0
  72. package/dist/chunk-Q4E2V6RE.js.map +1 -0
  73. package/dist/{chunk-DNTN34M4.js → chunk-QI22FKBG.js} +1 -1
  74. package/dist/chunk-QTZPA2FR.js +1 -0
  75. package/dist/{chunk-TH4S5MVD.js.map → chunk-QTZPA2FR.js.map} +1 -1
  76. package/dist/{chunk-MNXWK7PA.js → chunk-R26GVRMI.js} +1 -1
  77. package/dist/{chunk-I7PIDRMU.js → chunk-RAO35XDF.js} +1 -1
  78. package/dist/chunk-TFPIPIMU.js +1 -0
  79. package/dist/chunk-TFPIPIMU.js.map +1 -0
  80. package/dist/chunk-TLA6LHLN.js +1 -0
  81. package/dist/{chunk-V4C6FIE2.js.map → chunk-TLA6LHLN.js.map} +1 -1
  82. package/dist/{chunk-JYQE53FL.js → chunk-TMMGS6TC.js} +1 -1
  83. package/dist/{chunk-ZAHNOQGG.js → chunk-UBYO7VZR.js} +1 -1
  84. package/dist/{chunk-Z4GTTB7I.js → chunk-UXBCLFGU.js} +1 -1
  85. package/dist/{chunk-RKLJ7EEE.js → chunk-UXFMVZAY.js} +1 -1
  86. package/dist/chunk-VB3XZGIB.js +1 -0
  87. package/dist/chunk-VB3XZGIB.js.map +1 -0
  88. package/dist/chunk-VKN65H2U.js +1 -0
  89. package/dist/chunk-VKN65H2U.js.map +1 -0
  90. package/dist/chunk-VSNS7Y3M.js +1 -0
  91. package/dist/chunk-VSNS7Y3M.js.map +1 -0
  92. package/dist/{chunk-MPZGCTRG.js → chunk-VZZUNSDF.js} +1 -1
  93. package/dist/chunk-VZZUNSDF.js.map +1 -0
  94. package/dist/{chunk-ZJB5UYNE.js → chunk-W5G2NUCZ.js} +1 -1
  95. package/dist/{chunk-ZJB5UYNE.js.map → chunk-W5G2NUCZ.js.map} +1 -1
  96. package/dist/{chunk-IJRKEODR.js → chunk-WNGQ3IAM.js} +1 -1
  97. package/dist/{chunk-VARPO47V.js → chunk-XN6Q7LWU.js} +1 -1
  98. package/dist/chunk-XT6KKGSE.js +1 -0
  99. package/dist/chunk-XT6KKGSE.js.map +1 -0
  100. package/dist/{chunk-KMFUCORC.js → chunk-Y6UZWNP4.js} +1 -1
  101. package/dist/{chunk-QMQHIZGS.js → chunk-YU5GND2Q.js} +1 -1
  102. package/dist/chunk-YU5GND2Q.js.map +1 -0
  103. package/dist/commodities/commodities.js +1 -1
  104. package/dist/commodities/index.js +1 -1
  105. package/dist/equipment/index.js +1 -1
  106. package/dist/equipment/modification-costs.js +1 -1
  107. package/dist/equipment/modification-journal.js +1 -1
  108. package/dist/equipment/modifications.js +1 -1
  109. package/dist/equipment/suits.js +1 -1
  110. package/dist/equipment/upgrade-costs.js +1 -1
  111. package/dist/equipment/weapons.js +1 -1
  112. package/dist/i18n/blueprints.js +1 -1
  113. package/dist/i18n/diagnostics.d.ts +62 -0
  114. package/dist/i18n/diagnostics.js +1 -0
  115. package/dist/i18n/diagnostics.js.map +1 -0
  116. package/dist/i18n/engineering-groups.d.ts +20 -0
  117. package/dist/i18n/engineering-groups.js +1 -0
  118. package/dist/i18n/engineering-groups.js.map +1 -0
  119. package/dist/i18n/experimental-effect-descriptions.d.ts +20 -0
  120. package/dist/i18n/experimental-effect-descriptions.js +1 -0
  121. package/dist/i18n/experimental-effect-descriptions.js.map +1 -0
  122. package/dist/i18n/experimental-effects.js +1 -1
  123. package/dist/i18n/index.d.ts +27 -0
  124. package/dist/i18n/index.js +1 -1
  125. package/dist/i18n/materials.js +1 -1
  126. package/dist/i18n/micro-resources.js +1 -1
  127. package/dist/i18n/modules.js +1 -1
  128. package/dist/i18n/pre-engineered.d.ts +39 -0
  129. package/dist/i18n/pre-engineered.js +1 -0
  130. package/dist/i18n/pre-engineered.js.map +1 -0
  131. package/dist/i18n/ships.d.ts +36 -0
  132. package/dist/i18n/ships.js +1 -0
  133. package/dist/i18n/ships.js.map +1 -0
  134. package/dist/i18n/slots.d.ts +42 -0
  135. package/dist/i18n/slots.js +1 -0
  136. package/dist/i18n/slots.js.map +1 -0
  137. package/dist/materials/index.js +1 -1
  138. package/dist/materials/materials-all.js +1 -1
  139. package/dist/materials/materials.js +1 -1
  140. package/dist/materials/micro-resources-all.js +1 -1
  141. package/dist/materials/micro-resources.js +1 -1
  142. package/dist/ships/blueprint-costs.d.ts +13 -11
  143. package/dist/ships/blueprint-costs.js +1 -1
  144. package/dist/ships/blueprint-costs.js.map +1 -1
  145. package/dist/ships/blueprint-journal.d.ts +6 -7
  146. package/dist/ships/blueprint-journal.js +1 -1
  147. package/dist/ships/blueprints.js +1 -1
  148. package/dist/ships/default-loadouts.js +1 -1
  149. package/dist/ships/engineering-options.d.ts +28 -29
  150. package/dist/ships/engineering-options.js +1 -1
  151. package/dist/ships/experimental-effect-costs.js +1 -1
  152. package/dist/ships/experimental-effects.js +1 -1
  153. package/dist/ships/gunsights.js +1 -1
  154. package/dist/ships/heat.d.ts +22 -0
  155. package/dist/ships/heat.js +1 -1
  156. package/dist/ships/index.d.ts +6 -5
  157. package/dist/ships/index.js +1 -1
  158. package/dist/ships/loadout-calculations.d.ts +21 -11
  159. package/dist/ships/loadout-calculations.js +1 -1
  160. package/dist/ships/loadout-validation.d.ts +7 -6
  161. package/dist/ships/loadout-validation.js +1 -1
  162. package/dist/ships/modules-all.js +1 -1
  163. package/dist/ships/modules-hardpoint.js +1 -1
  164. package/dist/ships/modules-internal.js +1 -1
  165. package/dist/ships/modules.d.ts +5 -5
  166. package/dist/ships/modules.js +1 -1
  167. package/dist/ships/power.d.ts +39 -11
  168. package/dist/ships/power.js +1 -1
  169. package/dist/ships/pre-engineered-stats.d.ts +20 -4
  170. package/dist/ships/pre-engineered-stats.js +1 -1
  171. package/dist/ships/pre-engineered.d.ts +7 -8
  172. package/dist/ships/pre-engineered.js +1 -1
  173. package/dist/ships/shield-recovery.d.ts +12 -6
  174. package/dist/ships/shield-recovery.js +1 -1
  175. package/dist/ships/ship-loadout.d.ts +1793 -19
  176. package/dist/ships/ship-loadout.js +1 -1
  177. package/dist/ships/ships.js +1 -1
  178. package/dist/ships/slef.js +1 -1
  179. package/dist/ships/slots.js +1 -1
  180. package/dist/ships/source-purchase.js +1 -1
  181. package/package.json +26 -2
  182. package/dist/chunk-32PVERNH.js +0 -1
  183. package/dist/chunk-4AE22CHV.js.map +0 -1
  184. package/dist/chunk-4WC5NHBJ.js +0 -1
  185. package/dist/chunk-4WC5NHBJ.js.map +0 -1
  186. package/dist/chunk-53ERRGPM.js +0 -1
  187. package/dist/chunk-5W43EQEQ.js +0 -1
  188. package/dist/chunk-5W43EQEQ.js.map +0 -1
  189. package/dist/chunk-76XKY2Y2.js +0 -1
  190. package/dist/chunk-76XKY2Y2.js.map +0 -1
  191. package/dist/chunk-B5TT26XE.js +0 -1
  192. package/dist/chunk-B5TT26XE.js.map +0 -1
  193. package/dist/chunk-BYBT5XSW.js +0 -1
  194. package/dist/chunk-BYBT5XSW.js.map +0 -1
  195. package/dist/chunk-KLIYDSYF.js +0 -1
  196. package/dist/chunk-KLIYDSYF.js.map +0 -1
  197. package/dist/chunk-MPZGCTRG.js.map +0 -1
  198. package/dist/chunk-NSSWYRHN.js +0 -1
  199. package/dist/chunk-QMQHIZGS.js.map +0 -1
  200. package/dist/chunk-RF2IKLWQ.js +0 -1
  201. package/dist/chunk-RF2IKLWQ.js.map +0 -1
  202. package/dist/chunk-TH4S5MVD.js +0 -1
  203. package/dist/chunk-V4C6FIE2.js +0 -1
  204. package/dist/ship-loadout-BsfKbvKe.d.ts +0 -1455
  205. /package/dist/{chunk-KQDJTDLV.js.map → chunk-2J2UV4ZX.js.map} +0 -0
  206. /package/dist/{chunk-DB54PH3X.js.map → chunk-6EPYVBAX.js.map} +0 -0
  207. /package/dist/{chunk-U6TMCYA6.js.map → chunk-6EUVIZAS.js.map} +0 -0
  208. /package/dist/{chunk-NWPK6Q3S.js.map → chunk-ADLVPKUV.js.map} +0 -0
  209. /package/dist/{chunk-S4DBNX2B.js.map → chunk-BKWLI44T.js.map} +0 -0
  210. /package/dist/{chunk-WV5YM7H5.js.map → chunk-BMT3U46U.js.map} +0 -0
  211. /package/dist/{chunk-BTPV5CIF.js.map → chunk-DI5RXSJR.js.map} +0 -0
  212. /package/dist/{chunk-YDBRGW4G.js.map → chunk-DLLBARN5.js.map} +0 -0
  213. /package/dist/{chunk-J2PNZQY4.js.map → chunk-DVL5RBKX.js.map} +0 -0
  214. /package/dist/{chunk-VXVUEF5U.js.map → chunk-E3BRVGJJ.js.map} +0 -0
  215. /package/dist/{chunk-MFV4VZFP.js.map → chunk-EBAHNZ36.js.map} +0 -0
  216. /package/dist/{chunk-QF3NYGUJ.js.map → chunk-EKWLAHRG.js.map} +0 -0
  217. /package/dist/{chunk-Q22LXT53.js.map → chunk-FEER4ERG.js.map} +0 -0
  218. /package/dist/{chunk-G3AMKCOE.js.map → chunk-FGNJ7EVM.js.map} +0 -0
  219. /package/dist/{chunk-JWJ7RSZC.js.map → chunk-G3265B27.js.map} +0 -0
  220. /package/dist/{chunk-V3DW67W2.js.map → chunk-GRIK3EDH.js.map} +0 -0
  221. /package/dist/{chunk-UXZJMZEU.js.map → chunk-HRVIHQ4A.js.map} +0 -0
  222. /package/dist/{chunk-QTDBO7R2.js.map → chunk-IYU4WLFM.js.map} +0 -0
  223. /package/dist/{chunk-5EUX3L76.js.map → chunk-JWWYAMGD.js.map} +0 -0
  224. /package/dist/{chunk-ZFT56QFR.js.map → chunk-L7CLUYZ6.js.map} +0 -0
  225. /package/dist/{chunk-IH4NXKVW.js.map → chunk-NEEFT7WH.js.map} +0 -0
  226. /package/dist/{chunk-VZXL5KBR.js.map → chunk-NLBUKXNV.js.map} +0 -0
  227. /package/dist/{chunk-4OSCSACF.js.map → chunk-OCND33TO.js.map} +0 -0
  228. /package/dist/{chunk-PMJG7PHU.js.map → chunk-PHPLZEFS.js.map} +0 -0
  229. /package/dist/{chunk-DACZE3HX.js.map → chunk-POZTXBSN.js.map} +0 -0
  230. /package/dist/{chunk-DNTN34M4.js.map → chunk-QI22FKBG.js.map} +0 -0
  231. /package/dist/{chunk-MNXWK7PA.js.map → chunk-R26GVRMI.js.map} +0 -0
  232. /package/dist/{chunk-I7PIDRMU.js.map → chunk-RAO35XDF.js.map} +0 -0
  233. /package/dist/{chunk-JYQE53FL.js.map → chunk-TMMGS6TC.js.map} +0 -0
  234. /package/dist/{chunk-ZAHNOQGG.js.map → chunk-UBYO7VZR.js.map} +0 -0
  235. /package/dist/{chunk-Z4GTTB7I.js.map → chunk-UXBCLFGU.js.map} +0 -0
  236. /package/dist/{chunk-RKLJ7EEE.js.map → chunk-UXFMVZAY.js.map} +0 -0
  237. /package/dist/{chunk-IJRKEODR.js.map → chunk-WNGQ3IAM.js.map} +0 -0
  238. /package/dist/{chunk-VARPO47V.js.map → chunk-XN6Q7LWU.js.map} +0 -0
  239. /package/dist/{chunk-KMFUCORC.js.map → chunk-Y6UZWNP4.js.map} +0 -0
@@ -8,20 +8,20 @@
8
8
  * this module?" is the question the game actually answers. So modules are grouped, and
9
9
  * each group lists what it offers.
10
10
  *
11
- * The catalogue groups 1026 of the 1199 modules — every stock module with an ordinary
12
- * engineering menu. The other 173 have no ordinary menu: whole families (fuel tanks, passenger cabins,
13
- * the repair, recon, research, decontamination and multi-limpet controllers, meta-alloy
14
- * and ordinary module reinforcement, the Pulse Wave Analyser, the mining launchers, Shock
15
- * Cannons, Nanite Torpedo Pylons, fighter and vehicle hangars, docking computers and
16
- * Supercruise Assist, the module stabilisers, the planetary approach suites, the cargo
17
- * hatch and the AX utility modules), plus the individual
18
- * modules denied every ordinary blueprint — every anti-xeno multi-cannon but the two
19
- * gimballed, both Enhanced anti-xeno missile racks and every turreted plain one, all seven
20
- * mining tools, the remote-release launchers and the Mk II Plasma Shock
21
- * Accelerator. Three modules without a menu still have a purchase-specific route: the
22
- * fixed Mining Laser, fixed Abrasion Blaster and size-5 class-2 Module Reinforcement
23
- * Package are sold as grade-1 Mercenary articles that can take grades 2–5 of their
24
- * bespoke recipes through `ships/pre-engineered`.
11
+ * The catalogue groups 1005 of the 1199 modules — every stock module with an ordinary
12
+ * engineering menu. The other 194 have no ordinary menu: whole families (fuel tanks,
13
+ * cargo racks, passenger cabins, the repair, recon, research, decontamination and
14
+ * multi-limpet controllers, meta-alloy and ordinary module reinforcement, the Pulse Wave
15
+ * Analyser, the mining launchers, Shock Cannons, Nanite Torpedo Pylons, fighter and vehicle
16
+ * hangars, docking computers and Supercruise Assist, the module stabilisers, the planetary
17
+ * approach suites, the cargo hatch and the AX utility modules), plus the individual
18
+ * modules denied every ordinary blueprint — every anti-xeno multi-cannon and missile rack,
19
+ * the Enzyme Missile Rack, all seven mining tools, the remote-release launchers and the Mk II
20
+ * Plasma Shock Accelerator. Six module symbols without a menu still have a Mercenary upgrade
21
+ * route: the Enzyme Missile Rack, fixed Mining Laser, fixed Abrasion Blaster, size-5 class-2
22
+ * Module Reinforcement Package, and size-5 and size-6 cargo racks. Their qualifying articles can
23
+ * take grades 2–5 of their bespoke recipes through
24
+ * `ships/pre-engineered`; fixed community-goal cargo racks remain final articles.
25
25
  *
26
26
  * **A group is one menu.** Where the same kind of module comes in two flavours with
27
27
  * different menus, they are two groups: a Guardian Power Plant takes only Anti-Guardian
@@ -78,7 +78,7 @@
78
78
  * const family: EngineeringGroupId = 'frameShiftDrives';
79
79
  * ```
80
80
  */
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' | 'antiXenoMultiCannons' | 'shieldBoosters' | 'bulkheads' | 'lifeSupports' | 'sensors' | 'autoFieldMaintenanceUnits' | 'cargoRacks' | 'collectionLimpets' | 'fsdBoosters' | 'fsdInterdictors' | 'fuelScoops' | 'fuelTransferLimpets' | 'hatchBreakerLimpets' | 'moduleReinforcements' | 'prospectingLimpets' | 'refineries' | 'shieldReinforcements' | 'surfaceScanners' | 'chaffLaunchers' | 'ecms' | 'heatSinkLaunchers' | 'killWarrantScanners' | 'manifestScanners' | 'pointDefence' | 'wakeScanners' | 'experimentalWeapons' | 'antiXenoMissileRacks' | 'guardianGauss' | 'guardianPlasma' | 'guardianShard';
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
82
  /** What one group of modules can be engineered with. */
83
83
  interface EngineeringOptionGroup {
84
84
  /** Display name of the module group, e.g. `"Beam Lasers"`. */
@@ -105,12 +105,11 @@ declare const ENGINEERING_OPTION_GROUPS: Readonly<Record<EngineeringGroupId, Eng
105
105
  * The group id a module is engineered as, or `null` when this catalogue does not group
106
106
  * it.
107
107
  *
108
- * `null` means **"this stock module has no ordinary engineering menu"**. For 170 of the
109
- * 173 ungrouped modules that is the same as "cannot be engineered" — the families and the
110
- * individually denied modules listed in the module overview above. The fixed Mining
111
- * Laser, fixed Abrasion Blaster and size-5 class-2 Module Reinforcement Package are the
112
- * exceptions: their stock articles take nothing, but their grade-1 Mercenary articles can
113
- * be upgraded through the bespoke recipes recorded in `ships/pre-engineered`.
108
+ * `null` means **"this stock module has no ordinary engineering menu"**. For 188 of the
109
+ * 194 ungrouped modules that is the same as "has no engineering route". Six instead
110
+ * retain Mercenary upgrade routes: the Enzyme Missile Rack, fixed Mining Laser and Abrasion
111
+ * Blaster, size-5 and size-6 cargo racks, and size-5 class-2 Module Reinforcement Package
112
+ * have no stock menu while their qualifying Mercenary articles retain bespoke upgrade routes.
114
113
  * The build corpus also contains an unsupported declaration on the Mk II Plasma Shock
115
114
  * Accelerator, which upstream denies every blueprint.
116
115
  *
@@ -124,7 +123,7 @@ declare const ENGINEERING_OPTION_GROUPS: Readonly<Record<EngineeringGroupId, Eng
124
123
  * import { getEngineeringGroup } from '@elite-dangerous-almanac/core/ships/engineering-options';
125
124
  *
126
125
  * getEngineeringGroup('Hpt_BeamLaser_Fixed_Small'); // -> 'beamLasers'
127
- * getEngineeringGroup('Int_CargoRack_Size2_Class1'); // -> 'cargoRacks'
126
+ * getEngineeringGroup('Int_CargoRack_Size2_Class1'); // -> null
128
127
  *
129
128
  * // Not listed — no registry gives a fuel tank a blueprint.
130
129
  * getEngineeringGroup('Int_FuelTank_Size3_Class3'); // -> null
@@ -149,7 +148,7 @@ declare function getEngineeringGroup(symbol: string): EngineeringGroupId | null;
149
148
  * `Sensor_LongRange` for both all the same, so a journal id has to be read against the
150
149
  * module it sits on: `resolveBlueprintForModule` in `ships/blueprint-journal` is that
151
150
  * lookup. `MC_Overcharged` is the third of that kind and the one most consumers will meet:
152
- * the multi-cannon menus — ordinary and anti-xeno — list it rather than the
151
+ * the ordinary multi-cannon menu lists it rather than the
153
152
  * `Weapon_Overcharged` every other weapon menu lists, because a multi-cannon's Overcharged
154
153
  * also cuts the clip by 3–15% — and the game writes `Weapon_Overcharged` for both.
155
154
  *
@@ -183,8 +182,8 @@ declare function getBlueprintsForModule(symbol: string): readonly string[];
183
182
  * missile racks are short of Penetrator Munitions or FSD Interrupt. Those are applied
184
183
  * here, so the result is the exact set for this module.
185
184
  *
186
- * **An empty array is the common answer, and it usually means "blueprints only".** 387
187
- * of the 1026 grouped modules have no experimental slot; all sit in the 30 of 52 groups
185
+ * **An empty array is the common answer, and it usually means "blueprints only".** 368
186
+ * of the 1005 grouped modules have no experimental slot; all sit in the 27 of 48 groups
188
187
  * that offer none — life support, sensors, the limpet controllers, the utility scanners,
189
188
  * and every Guardian group, weapons and modules alike. An ungrouped module answers empty
190
189
  * too; {@link getEngineeringGroup} tells the two apart.
@@ -216,10 +215,10 @@ declare function getExperimentalsForModule(symbol: string): readonly string[];
216
215
  * `Weapon_LongRange` does not offer every effect listed here, only its own group's. Use
217
216
  * {@link getExperimentalsForModule} once you know the module — that is the exact answer.
218
217
  *
219
- * The groups name 86 of the 107 blueprints in `BLUEPRINTS`, and the other 21 are all
220
- * accounted for: they are the Operations keys of modules sold already engineered rather
221
- * than offered in a menu (see `ships/pre-engineered`). All 21 answer `[]` here exactly
222
- * as an unknown id would, so read this function's empty answer with
218
+ * The groups name 85 of the 107 blueprints in `BLUEPRINTS`. Of the other 22, 21 are
219
+ * Operations keys of modules sold already engineered rather than offered in a menu (see
220
+ * `ships/pre-engineered`); the last is the fixed Expanded Cargo Rack reward identity.
221
+ * All 22 answer `[]` here exactly as an unknown id would, so read this function's empty answer with
223
222
  * {@link getExperimentalsForModule} rather than as a claim about the recipe.
224
223
  *
225
224
  * Four Operations keys **are** named by a group, because they are recipes a player applies
@@ -1 +1 @@
1
- export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-TH4S5MVD.js"; //# sourceMappingURL=engineering-options.js.map
1
+ export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-QTZPA2FR.js"; //# sourceMappingURL=engineering-options.js.map
@@ -1 +1 @@
1
- import{findByRawKey}from"../chunk-S4DBNX2B.js"; import{deepFreeze}from"../chunk-DURKO7JU.js";var experimental_effect_costs_default={special_concordant_sequence:[{symbol:"FocusCrystals",name:"Focus Crystals",count:5},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:3},{symbol:"Zirconium",name:"Zirconium",count:1}],special_weapon_toughened:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"Vanadium",name:"Vanadium",count:3}],special_emissive_munitions:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:4},{symbol:"EmissionData",name:"Unexpected Emission Data",count:3},{symbol:"HeatExchangers",name:"Heat Exchangers",count:3},{symbol:"Manganese",name:"Manganese",count:3}],special_feedback_cascade_cooled:[{symbol:"SymmetricKeys",name:"Open Symmetric Keys",count:5},{symbol:"ShieldEmitters",name:"Shield Emitters",count:5},{symbol:"FilamentComposites",name:"Filament Composites",count:5}],special_weapon_efficient:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1}],special_incendiary_rounds:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"Sulphur",name:"Sulphur",count:5},{symbol:"PhaseAlloys",name:"Phase Alloys",count:3}],special_weapon_rateoffire:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"FocusCrystals",name:"Focus Crystals",count:4},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:2},{symbol:"ConfigurableComponents",name:"Configurable Components",count:2}],special_weapon_damage:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"MechanicalComponents",name:"Mechanical Components",count:3},{symbol:"Ruthenium",name:"Ruthenium",count:1}],special_plasma_slug_cooled:[{symbol:"HeatExchangers",name:"Heat Exchangers",count:3},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:2},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:2},{symbol:"Mercury",name:"Mercury",count:4}],special_weapon_lightweight:[{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:5},{symbol:"Carbon",name:"Carbon",count:5},{symbol:"Tin",name:"Tin",count:1}],special_super_penetrator_cooled:[{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:3},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:3},{symbol:"Zirconium",name:"Zirconium",count:3},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:5}],special_shieldbooster_explosive:[{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:3},{symbol:"Selenium",name:"Selenium",count:2}],special_shieldbooster_toughened:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"ShieldEmitters",name:"Shield Emitters",count:3}],special_shieldbooster_efficient:[{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",count:5},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:3},{symbol:"FocusCrystals",name:"Focus Crystals",count:3},{symbol:"Niobium",name:"Niobium",count:3}],special_shieldbooster_kinetic:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:5},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:3},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:2}],special_shieldbooster_chunky:[{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:3},{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"Cadmium",name:"Cadmium",count:2}],special_shieldbooster_thermic:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:5},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:3}],special_armour_kinetic:[{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"HighDensityComposites",name:"High Density Composites",count:3},{symbol:"Zirconium",name:"Zirconium",count:3}],special_armour_chunky:[{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:3},{symbol:"Molybdenum",name:"Molybdenum",count:2}],special_armour_explosive:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"HighDensityComposites",name:"High Density Composites",count:3},{symbol:"Niobium",name:"Niobium",count:1}],special_armour_thermic:[{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:3},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:2}],special_powerplant_toughened:[{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Vanadium",name:"Vanadium",count:3},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}],special_powerplant_highcharge:[{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Vanadium",name:"Vanadium",count:3},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],special_powerplant_lightweight:[{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Vanadium",name:"Vanadium",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_powerplant_cooled:[{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Vanadium",name:"Vanadium",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:1}],special_engine_toughened:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}],special_engine_overloaded:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:1}],special_engine_haulage:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:1}],special_engine_lightweight:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_engine_cooled:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:1}],special_fsd_fuelcapacity:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"HyperspaceTrajectories",name:"Eccentric Hyperspace Trajectories",count:1}],special_fsd_toughened:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1}],special_fsd_heavy:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"HyperspaceTrajectories",name:"Eccentric Hyperspace Trajectories",count:1}],special_fsd_lightweight:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_fsd_cooled:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:1},{symbol:"GridResistors",name:"Grid Resistors",count:3}],special_powerdistributor_capacity:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"Cadmium",name:"Cadmium",count:1}],special_powerdistributor_toughened:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}],special_powerdistributor_efficient:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1}],special_powerdistributor_lightweight:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_powerdistributor_fast:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:1}],special_hullreinforcement_kinetic:[{symbol:"TemperedAlloys",name:"Tempered Alloys",count:5},{symbol:"Zirconium",name:"Zirconium",count:3},{symbol:"Carbon",name:"Carbon",count:5},{symbol:"HighDensityComposites",name:"High Density Composites",count:3}],special_hullreinforcement_chunky:[{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"Molybdenum",name:"Molybdenum",count:3},{symbol:"Ruthenium",name:"Ruthenium",count:2}],special_hullreinforcement_explosive:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:3},{symbol:"Tungsten",name:"Tungsten",count:3}],special_hullreinforcement_thermic:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"Zinc",name:"Zinc",count:4}],special_shieldcell_oversized:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],special_shieldcell_toughened:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"Yttrium",name:"Yttrium",count:1}],special_shieldcell_efficient:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1}],special_shieldcell_gradual:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1}],special_shieldcell_lightweight:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_shield_toughened:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1}],special_shield_regenerative:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"CompoundShielding",name:"Compound Shielding",count:1}],special_shield_kinetic:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"DecodedEmissionData",name:"Decoded Emission Data",count:1}],special_shield_health:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1}],special_shield_efficient:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1}],special_shield_resistive:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:1}],special_shield_lightweight:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_shield_thermic:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:1}],special_auto_loader:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:4},{symbol:"MechanicalComponents",name:"Mechanical Components",count:3},{symbol:"HighDensityComposites",name:"High Density Composites",count:3}],special_corrosive_shell:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:4},{symbol:"Arsenic",name:"Arsenic",count:3}],special_blinding_shell:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"Manganese",name:"Manganese",count:4},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:5},{symbol:"MechanicalComponents",name:"Mechanical Components",count:5}],special_dispersal_field:[{symbol:"ConductiveComponents",name:"Conductive Components",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:5},{symbol:"ArchivedEmissionData",name:"Irregular Emission Data",count:5},{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5}],special_drag_munitions:[{symbol:"Carbon",name:"Carbon",count:5},{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Molybdenum",name:"Molybdenum",count:2}],special_force_shell:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"Zinc",name:"Zinc",count:5},{symbol:"PhaseAlloys",name:"Phase Alloys",count:3},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:3}],special_fsd_interrupt:[{symbol:"WakeSolutions",name:"Strange Wake Solutions",count:3},{symbol:"FSDTelemetry",name:"Anomalous FSD Telemetry",count:5},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:5},{symbol:"ConfigurableComponents",name:"Configurable Components",count:3}],special_high_yield_shell:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:3},{symbol:"ChemicalManipulators",name:"Chemical Manipulators",count:3},{symbol:"Nickel",name:"Nickel",count:5}],special_distortion_field:[{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:5},{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:5},{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5}],special_choke_canister:[{symbol:"Sulphur",name:"Sulphur",count:5},{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"ChemicalDistillery",name:"Chemical Distillery",count:3},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:3}],special_mass_lock:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:5},{symbol:"HighDensityComposites",name:"High Density Composites",count:3},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:3}],special_overload_munitions:[{symbol:"FilamentComposites",name:"Filament Composites",count:5},{symbol:"EncryptionCodes",name:"Tagged Encryption Codes",count:4},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:2},{symbol:"Germanium",name:"Germanium",count:3}],special_penetrator_munitions:[{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:5},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:3},{symbol:"Zirconium",name:"Zirconium",count:3}],special_deep_cut_payload:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:3},{symbol:"Tungsten",name:"Tungsten",count:3},{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:5},{symbol:"Selenium",name:"Selenium",count:3}],special_phasing_sequence:[{symbol:"FocusCrystals",name:"Focus Crystals",count:5},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:3},{symbol:"Niobium",name:"Niobium",count:3},{symbol:"ConfigurableComponents",name:"Configurable Components",count:3}],special_plasma_slug:[{symbol:"HeatExchangers",name:"Heat Exchangers",count:3},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:2},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:2},{symbol:"Mercury",name:"Mercury",count:4}],special_radiant_canister:[{symbol:"Polonium",name:"Polonium",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:3},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:4}],special_regeneration_sequence:[{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:3},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:4},{symbol:"ShieldFrequencyData",name:"Peculiar Shield Frequency Data",count:1}],special_reverberating_cascade:[{symbol:"ConfigurableComponents",name:"Configurable Components",count:2},{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:3},{symbol:"FilamentComposites",name:"Filament Composites",count:4},{symbol:"Chromium",name:"Chromium",count:4}],special_scramble_spectrum:[{symbol:"CrystalShards",name:"Crystal Shards",count:5},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:3},{symbol:"ScrambledEmissionData",name:"Exceptional Scrambled Emission Data",count:5}],special_screening_shell:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:5},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:5},{symbol:"Niobium",name:"Niobium",count:3}],special_shiftlock_canister:[{symbol:"TemperedAlloys",name:"Tempered Alloys",count:5},{symbol:"WakeSolutions",name:"Strange Wake Solutions",count:3},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:5}],special_smart_rounds:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:3},{symbol:"DecodedEmissionData",name:"Decoded Emission Data",count:3},{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:3}],special_super_penetrator:[{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:3},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:3},{symbol:"Zirconium",name:"Zirconium",count:3},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:5}],special_lock_breaker:[{symbol:"Selenium",name:"Selenium",count:5},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:3},{symbol:"AdaptiveEncryptors",name:"Adaptive Encryptors Capture",count:1}],special_thermal_cascade:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:4},{symbol:"HighDensityComposites",name:"High Density Composites",count:3},{symbol:"Phosphorus",name:"Phosphorus",count:5}],special_thermal_conduit:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:5},{symbol:"Sulphur",name:"Sulphur",count:5},{symbol:"TemperedAlloys",name:"Tempered Alloys",count:5}],special_thermalshock:[{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"ConductiveComponents",name:"Conductive Components",count:3},{symbol:"Tungsten",name:"Tungsten",count:3}],special_thermal_vent:[{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:5},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:3},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:3}]};var EXPERIMENTAL_EFFECT_COSTS=deepFreeze(experimental_effect_costs_default);function getExperimentalEffectCost(fdname){return findByRawKey(EXPERIMENTAL_EFFECT_COSTS,fdname,"getExperimentalEffectCost: fdname")}export{EXPERIMENTAL_EFFECT_COSTS,getExperimentalEffectCost};//# sourceMappingURL=experimental-effect-costs.js.map
1
+ import{findByRawKey}from"../chunk-BKWLI44T.js"; import{deepFreeze}from"../chunk-DURKO7JU.js";var experimental_effect_costs_default={special_concordant_sequence:[{symbol:"FocusCrystals",name:"Focus Crystals",count:5},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:3},{symbol:"Zirconium",name:"Zirconium",count:1}],special_weapon_toughened:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"Vanadium",name:"Vanadium",count:3}],special_emissive_munitions:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:4},{symbol:"EmissionData",name:"Unexpected Emission Data",count:3},{symbol:"HeatExchangers",name:"Heat Exchangers",count:3},{symbol:"Manganese",name:"Manganese",count:3}],special_feedback_cascade_cooled:[{symbol:"SymmetricKeys",name:"Open Symmetric Keys",count:5},{symbol:"ShieldEmitters",name:"Shield Emitters",count:5},{symbol:"FilamentComposites",name:"Filament Composites",count:5}],special_weapon_efficient:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1}],special_incendiary_rounds:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"Sulphur",name:"Sulphur",count:5},{symbol:"PhaseAlloys",name:"Phase Alloys",count:3}],special_weapon_rateoffire:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"FocusCrystals",name:"Focus Crystals",count:4},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:2},{symbol:"ConfigurableComponents",name:"Configurable Components",count:2}],special_weapon_damage:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"MechanicalComponents",name:"Mechanical Components",count:3},{symbol:"Ruthenium",name:"Ruthenium",count:1}],special_plasma_slug_cooled:[{symbol:"HeatExchangers",name:"Heat Exchangers",count:3},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:2},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:2},{symbol:"Mercury",name:"Mercury",count:4}],special_weapon_lightweight:[{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:5},{symbol:"Carbon",name:"Carbon",count:5},{symbol:"Tin",name:"Tin",count:1}],special_super_penetrator_cooled:[{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:3},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:3},{symbol:"Zirconium",name:"Zirconium",count:3},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:5}],special_shieldbooster_explosive:[{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:3},{symbol:"Selenium",name:"Selenium",count:2}],special_shieldbooster_toughened:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"ShieldEmitters",name:"Shield Emitters",count:3}],special_shieldbooster_efficient:[{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",count:5},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:3},{symbol:"FocusCrystals",name:"Focus Crystals",count:3},{symbol:"Niobium",name:"Niobium",count:3}],special_shieldbooster_kinetic:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:5},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:3},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:2}],special_shieldbooster_chunky:[{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:3},{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"Cadmium",name:"Cadmium",count:2}],special_shieldbooster_thermic:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:5},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:3}],special_armour_kinetic:[{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"HighDensityComposites",name:"High Density Composites",count:3},{symbol:"Zirconium",name:"Zirconium",count:3}],special_armour_chunky:[{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:3},{symbol:"Molybdenum",name:"Molybdenum",count:2}],special_armour_explosive:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"HighDensityComposites",name:"High Density Composites",count:3},{symbol:"Niobium",name:"Niobium",count:1}],special_armour_thermic:[{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:3},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:2}],special_powerplant_toughened:[{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Vanadium",name:"Vanadium",count:3},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}],special_powerplant_highcharge:[{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Vanadium",name:"Vanadium",count:3},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],special_powerplant_lightweight:[{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Vanadium",name:"Vanadium",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_powerplant_cooled:[{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Vanadium",name:"Vanadium",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:1}],special_engine_toughened:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}],special_engine_overloaded:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:1}],special_engine_haulage:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:1}],special_engine_lightweight:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_engine_cooled:[{symbol:"Iron",name:"Iron",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:1}],special_fsd_fuelcapacity:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"HyperspaceTrajectories",name:"Eccentric Hyperspace Trajectories",count:1}],special_fsd_toughened:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1}],special_fsd_heavy:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"HyperspaceTrajectories",name:"Eccentric Hyperspace Trajectories",count:1}],special_fsd_lightweight:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_fsd_cooled:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:1},{symbol:"GridResistors",name:"Grid Resistors",count:3}],special_powerdistributor_capacity:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"Cadmium",name:"Cadmium",count:1}],special_powerdistributor_toughened:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}],special_powerdistributor_efficient:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1}],special_powerdistributor_lightweight:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_powerdistributor_fast:[{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:1}],special_hullreinforcement_kinetic:[{symbol:"TemperedAlloys",name:"Tempered Alloys",count:5},{symbol:"Zirconium",name:"Zirconium",count:3},{symbol:"Carbon",name:"Carbon",count:5},{symbol:"HighDensityComposites",name:"High Density Composites",count:3}],special_hullreinforcement_chunky:[{symbol:"CompactComposites",name:"Compact Composites",count:5},{symbol:"Molybdenum",name:"Molybdenum",count:3},{symbol:"Ruthenium",name:"Ruthenium",count:2}],special_hullreinforcement_explosive:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:3},{symbol:"Tungsten",name:"Tungsten",count:3}],special_hullreinforcement_thermic:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"Zinc",name:"Zinc",count:4}],special_shieldcell_oversized:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],special_shieldcell_toughened:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"Yttrium",name:"Yttrium",count:1}],special_shieldcell_efficient:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1}],special_shieldcell_gradual:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1}],special_shieldcell_lightweight:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"Chromium",name:"Chromium",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_shield_toughened:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1}],special_shield_regenerative:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"CompoundShielding",name:"Compound Shielding",count:1}],special_shield_kinetic:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"DecodedEmissionData",name:"Decoded Emission Data",count:1}],special_shield_health:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1}],special_shield_efficient:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1}],special_shield_resistive:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:1}],special_shield_lightweight:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],special_shield_thermic:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:3},{symbol:"HeatVanes",name:"Heat Vanes",count:1}],special_auto_loader:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:4},{symbol:"MechanicalComponents",name:"Mechanical Components",count:3},{symbol:"HighDensityComposites",name:"High Density Composites",count:3}],special_corrosive_shell:[{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",count:5},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:4},{symbol:"Arsenic",name:"Arsenic",count:3}],special_blinding_shell:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"Manganese",name:"Manganese",count:4},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:5},{symbol:"MechanicalComponents",name:"Mechanical Components",count:5}],special_dispersal_field:[{symbol:"ConductiveComponents",name:"Conductive Components",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:5},{symbol:"ArchivedEmissionData",name:"Irregular Emission Data",count:5},{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:5}],special_drag_munitions:[{symbol:"Carbon",name:"Carbon",count:5},{symbol:"GridResistors",name:"Grid Resistors",count:5},{symbol:"Molybdenum",name:"Molybdenum",count:2}],special_force_shell:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"Zinc",name:"Zinc",count:5},{symbol:"PhaseAlloys",name:"Phase Alloys",count:3},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:3}],special_fsd_interrupt:[{symbol:"WakeSolutions",name:"Strange Wake Solutions",count:3},{symbol:"FSDTelemetry",name:"Anomalous FSD Telemetry",count:5},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:5},{symbol:"ConfigurableComponents",name:"Configurable Components",count:3}],special_high_yield_shell:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:3},{symbol:"ChemicalManipulators",name:"Chemical Manipulators",count:3},{symbol:"Nickel",name:"Nickel",count:5}],special_distortion_field:[{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:5},{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:5},{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:5}],special_choke_canister:[{symbol:"Sulphur",name:"Sulphur",count:5},{symbol:"Phosphorus",name:"Phosphorus",count:5},{symbol:"ChemicalDistillery",name:"Chemical Distillery",count:3},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:3}],special_mass_lock:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:5},{symbol:"HighDensityComposites",name:"High Density Composites",count:3},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:3}],special_overload_munitions:[{symbol:"FilamentComposites",name:"Filament Composites",count:5},{symbol:"EncryptionCodes",name:"Tagged Encryption Codes",count:4},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:2},{symbol:"Germanium",name:"Germanium",count:3}],special_penetrator_munitions:[{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:5},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:3},{symbol:"Zirconium",name:"Zirconium",count:3}],special_deep_cut_payload:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:3},{symbol:"Tungsten",name:"Tungsten",count:3},{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:5},{symbol:"Selenium",name:"Selenium",count:3}],special_phasing_sequence:[{symbol:"FocusCrystals",name:"Focus Crystals",count:5},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:3},{symbol:"Niobium",name:"Niobium",count:3},{symbol:"ConfigurableComponents",name:"Configurable Components",count:3}],special_plasma_slug:[{symbol:"HeatExchangers",name:"Heat Exchangers",count:3},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:2},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:2},{symbol:"Mercury",name:"Mercury",count:4}],special_radiant_canister:[{symbol:"Polonium",name:"Polonium",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:3},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:4}],special_regeneration_sequence:[{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:3},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:4},{symbol:"ShieldFrequencyData",name:"Peculiar Shield Frequency Data",count:1}],special_reverberating_cascade:[{symbol:"ConfigurableComponents",name:"Configurable Components",count:2},{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:3},{symbol:"FilamentComposites",name:"Filament Composites",count:4},{symbol:"Chromium",name:"Chromium",count:4}],special_scramble_spectrum:[{symbol:"CrystalShards",name:"Crystal Shards",count:5},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:3},{symbol:"ScrambledEmissionData",name:"Exceptional Scrambled Emission Data",count:5}],special_screening_shell:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:5},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:5},{symbol:"Niobium",name:"Niobium",count:3}],special_shiftlock_canister:[{symbol:"TemperedAlloys",name:"Tempered Alloys",count:5},{symbol:"WakeSolutions",name:"Strange Wake Solutions",count:3},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:5}],special_smart_rounds:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:5},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:3},{symbol:"DecodedEmissionData",name:"Decoded Emission Data",count:3},{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:3}],special_super_penetrator:[{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:3},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:3},{symbol:"Zirconium",name:"Zirconium",count:3},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:5}],special_lock_breaker:[{symbol:"Selenium",name:"Selenium",count:5},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:3},{symbol:"AdaptiveEncryptors",name:"Adaptive Encryptors Capture",count:1}],special_thermal_cascade:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:5},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:4},{symbol:"HighDensityComposites",name:"High Density Composites",count:3},{symbol:"Phosphorus",name:"Phosphorus",count:5}],special_thermal_conduit:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:5},{symbol:"Sulphur",name:"Sulphur",count:5},{symbol:"TemperedAlloys",name:"Tempered Alloys",count:5}],special_thermalshock:[{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:5},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",count:3},{symbol:"ConductiveComponents",name:"Conductive Components",count:3},{symbol:"Tungsten",name:"Tungsten",count:3}],special_thermal_vent:[{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:5},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:3},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:3}]};var EXPERIMENTAL_EFFECT_COSTS=deepFreeze(experimental_effect_costs_default);function getExperimentalEffectCost(fdname){return findByRawKey(EXPERIMENTAL_EFFECT_COSTS,fdname,"getExperimentalEffectCost: fdname")}export{EXPERIMENTAL_EFFECT_COSTS,getExperimentalEffectCost};//# sourceMappingURL=experimental-effect-costs.js.map
@@ -1 +1 @@
1
- export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-PMJG7PHU.js"; //# sourceMappingURL=experimental-effects.js.map
1
+ export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-PHPLZEFS.js"; //# sourceMappingURL=experimental-effects.js.map
@@ -1 +1 @@
1
- export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-ZAHNOQGG.js"; //# sourceMappingURL=gunsights.js.map
1
+ export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-UBYO7VZR.js"; //# sourceMappingURL=gunsights.js.map
@@ -167,6 +167,15 @@ interface HeatInput {
167
167
  * states what goes wrong and in which directions.
168
168
  */
169
169
  readonly unknownDraws?: readonly string[];
170
+ /**
171
+ * Enabled, powered hardpoints whose weapon stats could not be resolved, named.
172
+ * Defaults to none.
173
+ *
174
+ * @remarks
175
+ * Passing them does not change a figure; it carries the omitted heat sources into
176
+ * {@link HeatMetrics.unknownWeaponHeat}. Only the two firing scenarios are affected.
177
+ */
178
+ readonly unknownWeaponHeat?: readonly string[];
170
179
  }
171
180
  /** A build's heat under one set of circumstances. */
172
181
  interface HeatState {
@@ -248,6 +257,19 @@ interface HeatMetrics {
248
257
  * settled level. A caller showing these figures should say what they are.
249
258
  */
250
259
  readonly unknownDraws: readonly string[];
260
+ /**
261
+ * Enabled, powered hardpoints omitted because their weapon heat could not be
262
+ * resolved, named by slot. Normally empty.
263
+ *
264
+ * @remarks
265
+ * While this is not empty, {@link firingSustained} and {@link firingDrained} are
266
+ * projections over the weapons that did resolve. Taken alone, the missing
267
+ * contribution is non-negative, so their thermal loads are lower bounds, but their
268
+ * heat levels, `overheats` flags and overheating times are not complete answers for
269
+ * the build. If {@link unknownDraws} is also non-empty, its priority-group uncertainty
270
+ * means no bound holds. The non-firing scenarios are unaffected.
271
+ */
272
+ readonly unknownWeaponHeat: readonly string[];
251
273
  }
252
274
  /**
253
275
  * The heat level a thermal load settles at.
@@ -1 +1 @@
1
- export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-QMQHIZGS.js";//# sourceMappingURL=heat.js.map
1
+ export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-YU5GND2Q.js";//# sourceMappingURL=heat.js.map
@@ -12,8 +12,9 @@
12
12
  * modules and apply engineering, and
13
13
  * answers the questions apps actually ask ({@link ShipLoadout.maxJumpRange},
14
14
  * {@link ShipLoadout.powerBudget}, {@link ShipLoadout.shieldMetrics}, `unladenMass`,
15
- * `rebuy`) — and keeps what a capture said it *paid* apart from what the build is worth
16
- * at retail ({@link ShipLoadout.sourcePurchase}, a {@link SourcePurchaseRecord}). It is
15
+ * `rebuy`, {@link ShipLoadout.mercCoinCost}) — and keeps what a capture said it *paid*
16
+ * apart from what the build is worth at retail ({@link ShipLoadout.sourcePurchase}, a
17
+ * {@link SourcePurchaseRecord}). It is
17
18
  * the batteries-included facade and pulls in every catalogue;
18
19
  * everything below is what it is built from, so drop to the pieces when you
19
20
  * need one answer rather than a whole ship.
@@ -193,11 +194,11 @@ export { ModuleLimitEntry, ModuleLimitUsage, SHIP_MODULE_LIMITS, calculateModule
193
194
  export { FrameShiftDriveJumpStats, MassCurveStats, PowerDistributorStats, PowerGenerationStats, ShieldRegenerationStats, WeaponDamageStats, hasFrameShiftDriveJumpStats, hasMassCurveStats, hasPowerDistributorStats, hasPowerGenerationStats, hasShieldRegenerationStats, hasWeaponDamageStats } from './module-capabilities.js';
194
195
  export { BlueprintModuleEngineering, EngineeringModifier, LoadoutEvent, LoadoutModule, ModuleEngineering, Slef, SlefConstraint, SlefDiagnostic, SlefDiagnosticCode, SlefEntry, SlefHeader, SlefInspection, SlefStringifyOptions, getLoadoutModifier, inspectSlef, parseSlef, stringifySlef, toSlef } from './slef.js';
195
196
  export { FrameShiftDriveParams, TotalRangeDetails, frameShiftDriveMassFactor, fuelPerJump, singleJumpRange, totalRange } from './jump-range.js';
196
- export { A as ApplyBlueprintOptions, a as AvailableBlueprint, B as BuildWeaponMetrics, D as DefenceOptions, b as DistributorOptions, F as FittedModule, c as FittedWeaponMetrics, I as ImmovableReason, J as JumpOptions, d as JumpRangeSummary, L as LoadoutEditError, e as LoadoutEditErrorCode, f as LoadoutExportOptions, g as LoadoutSlot, M as MobilityOptions, R as RetailCredits, S as ShipLoadout, h as SlefExportOptions, W as WeaponsOptions } from '../ship-loadout-BsfKbvKe.js';
197
- export { CalculationIssue, CalculationResult, FuelCapacity, LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculateUnladenMass } from './loadout-calculations.js';
197
+ export { ApplyBlueprintOptions, AvailableBlueprint, BuildWeaponMetrics, DefenceOptions, DistributorOptions, EngineeringNormalizationCode, EngineeringNormalizationResult, EngineeringNormalizationUnchanged, EngineeringNormalizationUnsupported, EngineeringNormalized, ExperimentalEffectMutationCode, ExperimentalEffectMutationResult, ExperimentalEffectUnchanged, ExperimentalEffectUnsupported, ExperimentalEffectUpdated, FittedModule, FittedWeaponMetrics, FixedMountRepairResult, ImmovableReason, JumpOptions, JumpRangeSummary, LoadoutEditError, LoadoutEditErrorCode, LoadoutExportOptions, LoadoutSlot, MobilityOptions, RetailCredits, ShipLoadout, SlefExportOptions, StandardLoad, StandardLoadInputs, WeaponsOptions } from './ship-loadout.js';
198
+ export { CalculationIssue, CalculationIssueReason, CalculationResult, FuelCapacity, LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculateUnladenMass } from './loadout-calculations.js';
198
199
  export { LoadoutIssue, LoadoutIssueCode, LoadoutIssueParam, LoadoutIssueParams, LoadoutValidation, LoadoutValidationInput, ModuleFitConstraint, ValidationModule, validateLoadout } from './loadout-validation.js';
199
200
  export { SourceModuleValue, SourcePurchaseRecord, getSourceModuleValue, sourcePurchaseFromLoadout, sumSourceModuleValues } from './source-purchase.js';
200
- export { PowerBand, PowerBudget, PowerConsumer, powerBudget } from './power.js';
201
+ export { PowerBand, PowerBudget, PowerConsumer, PowerConsumerResult, powerBudget } from './power.js';
201
202
  export { DamageResistanceParams, DamageResistances, DamageType, DamageTypeValues, effectiveHitPoints, mapDamageTypes, stackArmourResistance, stackShieldResistance, systemsResistance } from './resistances.js';
202
203
  export { ShieldBoosterParams, ShieldGeneratorParams, ShieldInput, ShieldMetrics, shieldMassCurveMultiplier, shieldMetrics, shieldStrength } from './shields.js';
203
204
  export { MobilityInput, MobilityMetrics, ThrusterCurveParams, ThrusterParams, mobilityMetrics, thrusterMassCurveMultiplier } from './mobility.js';
@@ -1 +1 @@
1
- export{LoadoutEditError,ShipLoadout}from"../chunk-BYBT5XSW.js";export{weaponsCapacitorMetrics}from"../chunk-FMPRCYKY.js";export{cellBankSummary,shieldRecovery}from"../chunk-MPZGCTRG.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-2FHHMYDC.js";export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-IJRKEODR.js";export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-RKLJ7EEE.js";export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-I7PIDRMU.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-QTDBO7R2.js";export{powerBudget}from"../chunk-76XKY2Y2.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-KLIYDSYF.js";export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-LJI7VXJD.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-MNXWK7PA.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-32PVERNH.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-GQ5GX5TB.js";export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-RF2IKLWQ.js";export{validateLoadout}from"../chunk-5W43EQEQ.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-24INI4U7.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js"; export{distributorMetrics}from"../chunk-P2QOL63K.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-PMJG7PHU.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-ZAHNOQGG.js";export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-QMQHIZGS.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-FGXWVFN6.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-ZNCXENNB.js";export{computeModifiers,rollsForGrade,sumMaterials}from"../chunk-SVZARHWP.js";export{resolveBlueprintForModule}from"../chunk-ZJB5UYNE.js";export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-TH4S5MVD.js";export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-DNTN34M4.js"; //# sourceMappingURL=index.js.map
1
+ export{LoadoutEditError,ShipLoadout}from"../chunk-VSNS7Y3M.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-2FHHMYDC.js";export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-WNGQ3IAM.js";export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-UXFMVZAY.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-IYU4WLFM.js";export{weaponsCapacitorMetrics}from"../chunk-FMPRCYKY.js";export{powerBudget}from"../chunk-BMM6GQAU.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-Q4E2V6RE.js";export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-LJI7VXJD.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-R26GVRMI.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-EU42PAV4.js";export{cellBankSummary,shieldRecovery}from"../chunk-VZZUNSDF.js";export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-GOMBLS2T.js";export{validateLoadout}from"../chunk-VKN65H2U.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-24INI4U7.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-PHPLZEFS.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-UBYO7VZR.js";export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-YU5GND2Q.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-GQ5GX5TB.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-FGXWVFN6.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-ZNCXENNB.js";export{computeModifiers,rollsForGrade,sumMaterials}from"../chunk-SVZARHWP.js";export{resolveBlueprintForModule}from"../chunk-W5G2NUCZ.js";export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-QTZPA2FR.js";export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-QI22FKBG.js"; export{distributorMetrics}from"../chunk-P2QOL63K.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
@@ -9,10 +9,20 @@
9
9
  *
10
10
  * @packageDocumentation
11
11
  */
12
- /** A dependency that prevented a loadout calculation from producing a complete value. */
12
+ /**
13
+ * Stable reason a loadout calculation could not produce a value.
14
+ *
15
+ * `missing` means no required module is fitted; `unresolved` means a fitted module or
16
+ * numeric dependency is absent from the supplied data; `disabled` is the module switch;
17
+ * `shed` is the priority budget; and `invalid` identifies a non-physical known value.
18
+ */
19
+ type CalculationIssueReason = 'missing' | 'unresolved' | 'disabled' | 'shed' | 'invalid';
20
+ /** An input or fitted-module state that prevented a complete loadout calculation. */
13
21
  interface CalculationIssue {
14
- /** Field whose value is missing, using the public catalogue spelling. */
15
- readonly field: 'hullMass' | 'mass' | 'cargoCapacity' | 'fuelCapacity' | 'reserveFuelCapacity';
22
+ /** Calculation input that is missing or unavailable. */
23
+ readonly field: 'mass' | 'cargoCapacity' | 'fuelCapacity' | 'frameShiftDrive' | 'powerCapacity' | 'powerDraw' | 'thrusters' | 'shieldGenerator';
24
+ /** Machine-readable unavailable-state discriminator. */
25
+ readonly reason: CalculationIssueReason;
16
26
  /** Slot containing the incomplete module, when the dependency belongs to a module. */
17
27
  readonly slot?: string;
18
28
  /** Module symbol, when the dependency belongs to a module. */
@@ -32,14 +42,14 @@ type CalculationResult<T> = {
32
42
  readonly value: T;
33
43
  /** Discriminator for a complete calculation. */
34
44
  readonly complete: true;
35
- /** Complete calculations have no missing inputs. */
45
+ /** Complete calculations have no blocking issues. */
36
46
  readonly issues: readonly [];
37
47
  } | {
38
- /** Incomplete calculations never expose a misleading partial value. */
48
+ /** Unavailable calculations never expose a misleading partial value. */
39
49
  readonly value: null;
40
50
  /** Discriminator for an incomplete calculation. */
41
51
  readonly complete: false;
42
- /** One or more missing inputs. */
52
+ /** One or more missing or unavailable dependencies. */
43
53
  readonly issues: readonly [CalculationIssue, ...CalculationIssue[]];
44
54
  };
45
55
  /** One fitted module reduced to the contributions aggregate calculations need. */
@@ -65,7 +75,7 @@ interface FuelCapacity {
65
75
  /**
66
76
  * Sum hull and fitted-module mass.
67
77
  *
68
- * @param hullMass - Empty-hull mass in tonnes, or `null` when unknown.
78
+ * @param hullMass - Empty-hull mass in tonnes.
69
79
  * @param modules - Resolved fitted-module contributions.
70
80
  * @returns Mass in tonnes, or a result listing every missing dependency.
71
81
  * @example
@@ -76,7 +86,7 @@ interface FuelCapacity {
76
86
  * if (result.complete) result.value; // -> 27 tonnes; narrowed to number
77
87
  * ```
78
88
  */
79
- declare function calculateUnladenMass(hullMass: number | null, modules: readonly LoadoutCalculationModule[]): CalculationResult<number>;
89
+ declare function calculateUnladenMass(hullMass: number, modules: readonly LoadoutCalculationModule[]): CalculationResult<number>;
80
90
  /**
81
91
  * Sum fitted cargo racks.
82
92
  *
@@ -93,7 +103,7 @@ declare function calculateCargoCapacity(modules: readonly LoadoutCalculationModu
93
103
  /**
94
104
  * Sum fitted fuel tanks and the hull reserve.
95
105
  *
96
- * @param reserveFuelCapacity - Hull reserve in tonnes, or `null` when unknown.
106
+ * @param reserveFuelCapacity - Hull reserve in tonnes.
97
107
  * @param modules - Resolved fitted-module contributions.
98
108
  * @returns Main and reserve capacity. No fitted tank is the complete main value `0`.
99
109
  * @example
@@ -106,6 +116,6 @@ declare function calculateCargoCapacity(modules: readonly LoadoutCalculationModu
106
116
  * if (result.complete) result.value.main; // -> 4 tonnes
107
117
  * ```
108
118
  */
109
- declare function calculateFuelCapacity(reserveFuelCapacity: number | null, modules: readonly LoadoutCalculationModule[]): CalculationResult<FuelCapacity>;
119
+ declare function calculateFuelCapacity(reserveFuelCapacity: number, modules: readonly LoadoutCalculationModule[]): CalculationResult<FuelCapacity>;
110
120
 
111
- export { type CalculationIssue, type CalculationResult, type FuelCapacity, type LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculateUnladenMass };
121
+ export { type CalculationIssue, type CalculationIssueReason, type CalculationResult, type FuelCapacity, type LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculateUnladenMass };
@@ -1 +1 @@
1
- export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-RF2IKLWQ.js"; //# sourceMappingURL=loadout-calculations.js.map
1
+ export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-GOMBLS2T.js"; //# sourceMappingURL=loadout-calculations.js.map
@@ -18,7 +18,7 @@ import './engineering-options.js';
18
18
  * `TypeError` on a duplicate, and every edit is keyed by slot. Switch on it when you
19
19
  * validate your own list; skip it when the input came from a build.
20
20
  */
21
- type LoadoutIssueCode = 'unknownHull' | 'duplicateSlot' | 'unknownSlot' | 'missingRequiredSlot' | 'unknownModule' | 'incompatibleModule' | 'duplicateExclusiveModule' | 'moduleLimitExceeded';
21
+ type LoadoutIssueCode = 'duplicateSlot' | 'unknownSlot' | 'missingRequiredSlot' | 'unknownModule' | 'incompatibleModule' | 'duplicateExclusiveModule' | 'moduleLimitExceeded';
22
22
  /** Stable machine-readable constraint behind an `incompatibleModule` issue. */
23
23
  type ModuleFitConstraint = 'immutableSlot' | 'armourRequired' | 'wrongHullArmour' | 'restrictedHull' | 'restrictedMount' | 'wrongCoreType' | 'hardpointRequired' | 'utilityRequired' | 'optionalInternalRequired' | 'coreModuleInOptionalSlot' | 'oversized' | 'unknownConstraint';
24
24
  /**
@@ -83,8 +83,8 @@ interface ValidationModule {
83
83
  interface LoadoutValidationInput {
84
84
  /** Hull symbol. */
85
85
  readonly shipSymbol: string;
86
- /** Expanded hull layout, or `null` for an unknown hull. */
87
- readonly slots: readonly BuildSlot[] | null;
86
+ /** Expanded hull layout. */
87
+ readonly slots: readonly BuildSlot[];
88
88
  /** Fitted modules. Duplicate keys must be retained here so they can be diagnosed. */
89
89
  readonly modules: readonly ValidationModule[];
90
90
  }
@@ -97,10 +97,11 @@ interface LoadoutValidationInput {
97
97
  * ```ts
98
98
  * import { validateLoadout } from '@elite-dangerous-almanac/core/ships/loadout-validation';
99
99
  *
100
- * const result = validateLoadout({ shipSymbol: 'FutureShip', slots: null, modules: [] });
101
- * result.valid; // -> true: no impossible fit was claimed
102
- * result.complete; // -> false: the hull layout is unknown
100
+ * const result = validateLoadout({ shipSymbol: 'CustomHull', slots: [], modules: [] });
101
+ * result.valid; // -> true: no impossible fit was claimed
102
+ * result.complete; // -> true: the supplied layout has no required mounts
103
103
  * ```
104
+ * @throws {TypeError} If `input.slots` is not an array.
104
105
  */
105
106
  declare function validateLoadout(input: LoadoutValidationInput): LoadoutValidation;
106
107
 
@@ -1 +1 @@
1
- export{validateLoadout}from"../chunk-5W43EQEQ.js"; //# sourceMappingURL=loadout-validation.js.map
1
+ export{validateLoadout}from"../chunk-VKN65H2U.js"; //# sourceMappingURL=loadout-validation.js.map
@@ -1 +1 @@
1
- export{ALL_MODULES}from"../chunk-53ERRGPM.js"; //# sourceMappingURL=modules-all.js.map
1
+ export{ALL_MODULES}from"../chunk-PNZCLQDJ.js"; //# sourceMappingURL=modules-all.js.map
@@ -1 +1 @@
1
- export{HARDPOINT_MODULES}from"../chunk-BSOIPL4A.js"; //# sourceMappingURL=modules-hardpoint.js.map
1
+ export{HARDPOINT_MODULES}from"../chunk-EJMNNQIS.js"; //# sourceMappingURL=modules-hardpoint.js.map
@@ -1 +1 @@
1
- export{INTERNAL_MODULES}from"../chunk-NSSWYRHN.js"; //# sourceMappingURL=modules-internal.js.map
1
+ export{INTERNAL_MODULES}from"../chunk-CTJQPQRA.js"; //# sourceMappingURL=modules-internal.js.map
@@ -210,12 +210,12 @@ interface ProjectileRangeBoundaries {
210
210
  * import type { OutfittingModuleIdentity } from '@elite-dangerous-almanac/core/ships/modules';
211
211
  *
212
212
  * const identity: OutfittingModuleIdentity = {
213
- * symbol: 'CustomCargoRack',
214
- * category: 'internal',
215
- * engineeringGroup: 'cargoRacks',
216
- * name: 'Custom Cargo Rack',
213
+ * symbol: 'CustomBeamLaser',
214
+ * category: 'hardpoint',
215
+ * engineeringGroup: 'beamLasers',
216
+ * name: 'Custom Beam Laser',
217
217
  * class: 2,
218
- * rating: 'E',
218
+ * rating: 'D',
219
219
  * };
220
220
  * ```
221
221
  */
@@ -1 +1 @@
1
- export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-MNXWK7PA.js"; //# sourceMappingURL=modules.js.map
1
+ export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-R26GVRMI.js"; //# sourceMappingURL=modules.js.map
@@ -52,12 +52,13 @@ interface PowerConsumer {
52
52
  /**
53
53
  * `true` for a module that only draws while the hardpoints are deployed — every
54
54
  * weapon, and the utility fittings that are not
55
- * {@link OutfittingModule.alwaysPowered | always powered}. Defaults to `false` for
56
- * a known draw. An unresolved utility consumer may omit this along with `draw`,
57
- * because whether that fitting is always powered cannot be determined either;
58
- * {@link powerBudget} ignores both fields when {@link drawUnknown} is `true`.
55
+ * {@link OutfittingModule.alwaysPowered | always powered}. An omitted value defaults
56
+ * to `false` for a known draw and normalizes to `null` when {@link drawUnknown} is
57
+ * `true`. An explicit `null` preserves an unavailable classification; known totals
58
+ * conservatively count that draw in both retracted and deployed states. An unknown
59
+ * draw is excluded from every total regardless.
59
60
  */
60
- readonly deployedOnly?: boolean;
61
+ readonly deployedOnly?: boolean | null;
61
62
  /**
62
63
  * `true` when the module's power draw cannot be determined. Its
63
64
  * {@link PowerConsumer.draw | draw} is ignored and the consumer is named in
@@ -70,6 +71,23 @@ interface PowerConsumer {
70
71
  * is how a consumer reported in {@link PowerBudget.unknownDraws} names itself.
71
72
  */
72
73
  readonly label?: string;
74
+ /** Optional module symbol retained in {@link PowerBudget.consumers}. */
75
+ readonly symbol?: string;
76
+ }
77
+ /** One power consumer as normalized for presentation and reconciliation. */
78
+ interface PowerConsumerResult {
79
+ /** Caller label, normally the fitted module's exact journal slot key. */
80
+ readonly label?: string;
81
+ /** Module symbol when the caller supplied one. */
82
+ readonly symbol?: string;
83
+ /** Post-engineering draw in megawatts, or `null` when unavailable. */
84
+ readonly draw: number | null;
85
+ /** Whether the module is switched on. Only known enabled draws contribute to totals. */
86
+ readonly enabled: boolean;
87
+ /** Effective outfitting-panel priority group, `1`–`5`. */
88
+ readonly priority: number;
89
+ /** Whether it draws only with hardpoints deployed, or `null` when unavailable. */
90
+ readonly deployedOnly: boolean | null;
73
91
  }
74
92
  /** One priority group's share of the power budget. */
75
93
  interface PowerBand {
@@ -114,6 +132,13 @@ interface PowerBudget {
114
132
  * its own draw plus every higher-priority group's — fits in `available`.
115
133
  */
116
134
  readonly bands: readonly PowerBand[];
135
+ /**
136
+ * Every supplied consumer in source order, including switched-off and unresolved
137
+ * entries. Known enabled entries reconcile with the band and aggregate totals.
138
+ * {@link ShipLoadout.powerBudget} supplies only modules with a positive or unknown
139
+ * draw; passive and zero-draw fittings are absent.
140
+ */
141
+ readonly consumers: readonly PowerConsumerResult[];
117
142
  /**
118
143
  * The **enabled** consumers whose draw is unknown ({@link PowerConsumer.drawUnknown}),
119
144
  * handed straight back so a caller can name them — by
@@ -122,6 +147,9 @@ interface PowerBudget {
122
147
  * hand-assembled one. A switched-off module is skipped before the flag is read, so
123
148
  * it never appears here. Normally empty.
124
149
  *
150
+ * Entries retain the caller's original fields; unlike {@link consumers}, their
151
+ * priority and optional flags are not normalized.
152
+ *
125
153
  * **While it is not empty, every other figure here is a lower bound.** The unknown
126
154
  * draws contribute nothing to `retracted`, `deployed` or the bands, so `headroom`
127
155
  * and `utilisation` read too favourably and `withinBudget` and `poweredDeployed`
@@ -137,12 +165,12 @@ interface PowerBudget {
137
165
  *
138
166
  * @param available - Power the plant generates, in megawatts (`0` when no plant is
139
167
  * fitted — every group then reads as unpowered). Must be finite and non-negative.
140
- * @param consumers - One entry per fitted module. Modules with `enabled: false` are
141
- * skipped; the rest fall into their {@link PowerConsumer.priority | priority} group.
168
+ * @param consumers - Power consumers to include. Modules with `enabled: false` are
169
+ * skipped from totals; the rest fall into their {@link PowerConsumer.priority | priority}
170
+ * group. {@link ShipLoadout.powerBudget} omits passive and zero-draw fittings.
142
171
  * @returns The {@link PowerBudget}.
143
- * @throws {RangeError} If `available`, or an enabled known consumer's `draw`, is not a
144
- * finite non-negative number. Disabled consumers and consumers marked `drawUnknown`
145
- * are skipped before their placeholder draw is validated.
172
+ * @throws {RangeError} If `available` or any known consumer's `draw` is not a finite
173
+ * non-negative number. A consumer marked `drawUnknown` ignores its placeholder draw.
146
174
  * @remarks
147
175
  * A group that draws *exactly* the power available stays online, matching the game —
148
176
  * only going over shuts anything down.
@@ -165,4 +193,4 @@ interface PowerBudget {
165
193
  */
166
194
  declare function powerBudget(available: number, consumers: readonly PowerConsumer[]): PowerBudget;
167
195
 
168
- export { type PowerBand, type PowerBudget, type PowerConsumer, powerBudget };
196
+ export { type PowerBand, type PowerBudget, type PowerConsumer, type PowerConsumerResult, powerBudget };
@@ -1 +1 @@
1
- export{powerBudget}from"../chunk-76XKY2Y2.js";//# sourceMappingURL=power.js.map
1
+ export{powerBudget}from"../chunk-BMM6GQAU.js";//# sourceMappingURL=power.js.map