@elite-dangerous-almanac/core 0.1.8 → 0.2.0

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 (261) hide show
  1. package/PROVENANCE/i18n/SOURCES.md +2 -2
  2. package/PROVENANCE/ships/SOURCES.md +11 -9
  3. package/README.md +54 -40
  4. package/dist/astro/galaxy-grid.js +1 -1
  5. package/dist/astro/index.d.ts +1 -1
  6. package/dist/astro/index.js +1 -1
  7. package/dist/astro/naming-region-origins.d.ts +1 -1
  8. package/dist/astro/naming-region-origins.js +1 -1
  9. package/dist/astro/nebulae.d.ts +2 -2
  10. package/dist/astro/permit-locks.d.ts +2 -1
  11. package/dist/astro/permit-locks.js +1 -1
  12. package/dist/astro/procedural-system.d.ts +2 -1
  13. package/dist/astro/procedural-system.js +1 -1
  14. package/dist/astro/sector-name.d.ts +2 -1
  15. package/dist/astro/sector-name.js +1 -1
  16. package/dist/astro/system-address.d.ts +1 -1
  17. package/dist/astro/system-name.d.ts +14 -9
  18. package/dist/astro/system-name.js +1 -1
  19. package/dist/chunk-2W5MW376.js +1 -0
  20. package/dist/chunk-2W5MW376.js.map +1 -0
  21. package/dist/{chunk-VZZUNSDF.js → chunk-4KJ7CR74.js} +1 -1
  22. package/dist/{chunk-VZZUNSDF.js.map → chunk-4KJ7CR74.js.map} +1 -1
  23. package/dist/{chunk-6EUVIZAS.js → chunk-4QYTVSNR.js} +1 -1
  24. package/dist/{chunk-EKQCVCMK.js → chunk-5ZVYRX6Z.js} +1 -1
  25. package/dist/{chunk-EKQCVCMK.js.map → chunk-5ZVYRX6Z.js.map} +1 -1
  26. package/dist/chunk-6GJHUWMO.js +1 -0
  27. package/dist/chunk-6GJHUWMO.js.map +1 -0
  28. package/dist/chunk-6L56LWTT.js +1 -0
  29. package/dist/chunk-6L56LWTT.js.map +1 -0
  30. package/dist/{chunk-GQ5GX5TB.js → chunk-6O4NRRSB.js} +1 -1
  31. package/dist/chunk-6O4NRRSB.js.map +1 -0
  32. package/dist/{chunk-WNGQ3IAM.js → chunk-6UNAD74Z.js} +1 -1
  33. package/dist/{chunk-WNGQ3IAM.js.map → chunk-6UNAD74Z.js.map} +1 -1
  34. package/dist/{chunk-JPBMRJFC.js → chunk-77I24V6B.js} +1 -1
  35. package/dist/chunk-77I24V6B.js.map +1 -0
  36. package/dist/chunk-7ATBEOVC.js +1 -0
  37. package/dist/chunk-7ATBEOVC.js.map +1 -0
  38. package/dist/chunk-7TQ2X6Q3.js +1 -0
  39. package/dist/chunk-7TQ2X6Q3.js.map +1 -0
  40. package/dist/{chunk-6EPYVBAX.js → chunk-A6OINYNP.js} +1 -1
  41. package/dist/{chunk-Q3QCLNVG.js → chunk-AYAKU4YA.js} +1 -1
  42. package/dist/chunk-AYAKU4YA.js.map +1 -0
  43. package/dist/chunk-B7EYTZRK.js +1 -0
  44. package/dist/chunk-B7EYTZRK.js.map +1 -0
  45. package/dist/{chunk-EBAHNZ36.js → chunk-CIULJH3G.js} +1 -1
  46. package/dist/{chunk-EBAHNZ36.js.map → chunk-CIULJH3G.js.map} +1 -1
  47. package/dist/{chunk-SNADUQSJ.js → chunk-CJK2IBI2.js} +1 -1
  48. package/dist/{chunk-SNADUQSJ.js.map → chunk-CJK2IBI2.js.map} +1 -1
  49. package/dist/{chunk-DYPOL3CI.js → chunk-CJQ37JII.js} +1 -1
  50. package/dist/chunk-CJQ37JII.js.map +1 -0
  51. package/dist/chunk-D6YEHR5S.js +1 -0
  52. package/dist/chunk-D6YEHR5S.js.map +1 -0
  53. package/dist/{chunk-Z6XMXMVI.js → chunk-DBDCOHI4.js} +1 -1
  54. package/dist/chunk-DBDCOHI4.js.map +1 -0
  55. package/dist/{chunk-AFVYCQWL.js → chunk-DCB4COCL.js} +1 -1
  56. package/dist/{chunk-AFVYCQWL.js.map → chunk-DCB4COCL.js.map} +1 -1
  57. package/dist/{chunk-CJWFY6OX.js → chunk-DSMLYA2M.js} +1 -1
  58. package/dist/{chunk-CJWFY6OX.js.map → chunk-DSMLYA2M.js.map} +1 -1
  59. package/dist/{chunk-UXBCLFGU.js → chunk-DWRNXUAX.js} +1 -1
  60. package/dist/{chunk-UXBCLFGU.js.map → chunk-DWRNXUAX.js.map} +1 -1
  61. package/dist/chunk-EVW4Z4CB.js +1 -0
  62. package/dist/chunk-EVW4Z4CB.js.map +1 -0
  63. package/dist/{chunk-4S6WB7QR.js → chunk-FF2X4K5P.js} +1 -1
  64. package/dist/chunk-FF2X4K5P.js.map +1 -0
  65. package/dist/chunk-FYVPZBXN.js +1 -0
  66. package/dist/chunk-FYVPZBXN.js.map +1 -0
  67. package/dist/{chunk-QTZPA2FR.js → chunk-GLWPSVFV.js} +1 -1
  68. package/dist/chunk-GLWPSVFV.js.map +1 -0
  69. package/dist/chunk-GZYPQIO2.js +1 -0
  70. package/dist/chunk-GZYPQIO2.js.map +1 -0
  71. package/dist/chunk-H47K3UWG.js +1 -0
  72. package/dist/chunk-H47K3UWG.js.map +1 -0
  73. package/dist/chunk-JGOAQLYW.js +1 -0
  74. package/dist/chunk-JGOAQLYW.js.map +1 -0
  75. package/dist/{chunk-JWWYAMGD.js → chunk-MGRDB2BZ.js} +1 -1
  76. package/dist/{chunk-JWWYAMGD.js.map → chunk-MGRDB2BZ.js.map} +1 -1
  77. package/dist/{chunk-MKGJPVPS.js → chunk-MRTTQYT5.js} +1 -1
  78. package/dist/{chunk-MKGJPVPS.js.map → chunk-MRTTQYT5.js.map} +1 -1
  79. package/dist/chunk-MTJ4MS7W.js +1 -0
  80. package/dist/chunk-MTJ4MS7W.js.map +1 -0
  81. package/dist/chunk-NIURLW2F.js +1 -0
  82. package/dist/chunk-NIURLW2F.js.map +1 -0
  83. package/dist/chunk-OLKNYGGT.js +1 -0
  84. package/dist/chunk-OLKNYGGT.js.map +1 -0
  85. package/dist/chunk-OYFMHDYT.js +1 -0
  86. package/dist/chunk-OYFMHDYT.js.map +1 -0
  87. package/dist/chunk-OYR5HUQZ.js +1 -0
  88. package/dist/chunk-OYR5HUQZ.js.map +1 -0
  89. package/dist/chunk-PL75RTA2.js +1 -0
  90. package/dist/{chunk-2VPVZELZ.js.map → chunk-PL75RTA2.js.map} +1 -1
  91. package/dist/chunk-PY5L6WC5.js +1 -0
  92. package/dist/chunk-PY5L6WC5.js.map +1 -0
  93. package/dist/{chunk-W6EPHHTS.js → chunk-Q2L75GSI.js} +1 -1
  94. package/dist/chunk-Q2L75GSI.js.map +1 -0
  95. package/dist/chunk-QJ7GB6FF.js +1 -0
  96. package/dist/chunk-QJ7GB6FF.js.map +1 -0
  97. package/dist/chunk-QTAMQ6ME.js +1 -0
  98. package/dist/chunk-QTAMQ6ME.js.map +1 -0
  99. package/dist/{chunk-FMPRCYKY.js → chunk-RRYBSAPX.js} +1 -1
  100. package/dist/chunk-RRYBSAPX.js.map +1 -0
  101. package/dist/{chunk-J42ZXLBL.js → chunk-T62GO4AA.js} +1 -1
  102. package/dist/chunk-T62GO4AA.js.map +1 -0
  103. package/dist/{chunk-E3BRVGJJ.js → chunk-TBZJIQ5P.js} +1 -1
  104. package/dist/{chunk-E3BRVGJJ.js.map → chunk-TBZJIQ5P.js.map} +1 -1
  105. package/dist/chunk-V3AEUBHV.js +1 -0
  106. package/dist/chunk-V3AEUBHV.js.map +1 -0
  107. package/dist/chunk-VYDQHPY2.js +1 -0
  108. package/dist/chunk-VYDQHPY2.js.map +1 -0
  109. package/dist/chunk-XUHAPOM6.js +1 -0
  110. package/dist/chunk-XUHAPOM6.js.map +1 -0
  111. package/dist/chunk-Y6KJJMIM.js +1 -0
  112. package/dist/chunk-Y6KJJMIM.js.map +1 -0
  113. package/dist/chunk-YXPZ7QQB.js +1 -0
  114. package/dist/chunk-YXPZ7QQB.js.map +1 -0
  115. package/dist/{chunk-Y6UZWNP4.js → chunk-ZCEAPJDH.js} +1 -1
  116. package/dist/{chunk-Y6UZWNP4.js.map → chunk-ZCEAPJDH.js.map} +1 -1
  117. package/dist/commodities/commodities.d.ts +20 -10
  118. package/dist/commodities/commodities.js +1 -1
  119. package/dist/commodities/index.d.ts +15 -4
  120. package/dist/commodities/index.js +1 -1
  121. package/dist/equipment/index.js +1 -1
  122. package/dist/equipment/modification-costs.d.ts +2 -1
  123. package/dist/equipment/modification-costs.js.map +1 -1
  124. package/dist/equipment/modification-journal.js +1 -1
  125. package/dist/equipment/modifications.d.ts +2 -1
  126. package/dist/equipment/modifications.js +1 -1
  127. package/dist/equipment/suits.d.ts +6 -3
  128. package/dist/equipment/suits.js +1 -1
  129. package/dist/equipment/upgrade-costs.d.ts +8 -4
  130. package/dist/equipment/upgrade-costs.js +1 -1
  131. package/dist/equipment/upgrade-costs.js.map +1 -1
  132. package/dist/equipment/weapons.d.ts +13 -5
  133. package/dist/equipment/weapons.js +1 -1
  134. package/dist/i18n/blueprints.d.ts +6 -6
  135. package/dist/i18n/blueprints.js +1 -1
  136. package/dist/i18n/diagnostics.d.ts +1 -13
  137. package/dist/i18n/engineering-groups.d.ts +1 -0
  138. package/dist/i18n/engineering-groups.js +1 -1
  139. package/dist/i18n/experimental-effect-descriptions.d.ts +4 -3
  140. package/dist/i18n/experimental-effect-descriptions.js +1 -1
  141. package/dist/i18n/experimental-effects.d.ts +5 -4
  142. package/dist/i18n/experimental-effects.js +1 -1
  143. package/dist/i18n/index.d.ts +1 -13
  144. package/dist/i18n/index.js +1 -1
  145. package/dist/i18n/pre-engineered.d.ts +7 -6
  146. package/dist/i18n/pre-engineered.js +1 -1
  147. package/dist/materials/index.d.ts +16 -4
  148. package/dist/materials/index.js +1 -1
  149. package/dist/materials/materials.d.ts +36 -19
  150. package/dist/materials/materials.js +1 -1
  151. package/dist/materials/micro-resources.d.ts +18 -7
  152. package/dist/materials/micro-resources.js +1 -1
  153. package/dist/ships/armour.d.ts +20 -4
  154. package/dist/ships/armour.js +1 -1
  155. package/dist/ships/blueprint-costs.d.ts +20 -17
  156. package/dist/ships/blueprint-costs.js +1 -1
  157. package/dist/ships/blueprint-journal.d.ts +9 -8
  158. package/dist/ships/blueprint-journal.js +1 -1
  159. package/dist/ships/blueprints.d.ts +14 -12
  160. package/dist/ships/blueprints.js +1 -1
  161. package/dist/ships/build-metrics.d.ts +1061 -0
  162. package/dist/ships/build-metrics.js +1 -0
  163. package/dist/ships/build-metrics.js.map +1 -0
  164. package/dist/ships/distributor.d.ts +10 -3
  165. package/dist/ships/distributor.js +1 -1
  166. package/dist/ships/engineering-options.d.ts +8 -6
  167. package/dist/ships/engineering-options.js +1 -1
  168. package/dist/ships/engineering.d.ts +2 -16
  169. package/dist/ships/engineering.js +1 -1
  170. package/dist/ships/experimental-effect-costs.d.ts +5 -5
  171. package/dist/ships/experimental-effect-costs.js +1 -1
  172. package/dist/ships/experimental-effects.d.ts +9 -8
  173. package/dist/ships/experimental-effects.js +1 -1
  174. package/dist/ships/heat.d.ts +7 -2
  175. package/dist/ships/heat.js +1 -1
  176. package/dist/ships/index.d.ts +34 -22
  177. package/dist/ships/index.js +1 -1
  178. package/dist/ships/jump-range.d.ts +10 -3
  179. package/dist/ships/jump-range.js +1 -1
  180. package/dist/ships/loadout-calculations.d.ts +1 -1
  181. package/dist/ships/loadout-calculations.js +1 -1
  182. package/dist/ships/mobility-capacitor.d.ts +90 -0
  183. package/dist/ships/mobility-capacitor.js +1 -0
  184. package/dist/ships/mobility-capacitor.js.map +1 -0
  185. package/dist/ships/mobility.d.ts +29 -17
  186. package/dist/ships/mobility.js +1 -1
  187. package/dist/ships/power.d.ts +12 -5
  188. package/dist/ships/power.js +1 -1
  189. package/dist/ships/pre-engineered-stats.d.ts +10 -8
  190. package/dist/ships/pre-engineered-stats.js +1 -1
  191. package/dist/ships/pre-engineered.d.ts +6 -6
  192. package/dist/ships/pre-engineered.js +1 -1
  193. package/dist/ships/resistances.d.ts +2 -2
  194. package/dist/ships/resistances.js +1 -1
  195. package/dist/ships/shield-capacitor.d.ts +133 -0
  196. package/dist/ships/shield-capacitor.js +1 -0
  197. package/dist/ships/shield-capacitor.js.map +1 -0
  198. package/dist/ships/shield-recovery.d.ts +16 -2
  199. package/dist/ships/shield-recovery.js +1 -1
  200. package/dist/ships/shields.d.ts +86 -28
  201. package/dist/ships/shields.js +1 -1
  202. package/dist/ships/ship-loadout.d.ts +91 -797
  203. package/dist/ships/ship-loadout.js +1 -1
  204. package/dist/ships/ships.d.ts +7 -6
  205. package/dist/ships/ships.js +1 -1
  206. package/dist/ships/slef.d.ts +1 -1
  207. package/dist/ships/source-purchase.d.ts +2 -1
  208. package/dist/ships/source-purchase.js +1 -1
  209. package/dist/ships/weapons-capacitor.d.ts +10 -3
  210. package/dist/ships/weapons-capacitor.js +1 -1
  211. package/dist/ships/weapons.d.ts +22 -6
  212. package/dist/ships/weapons.js +1 -1
  213. package/dist/{system-address-DYsN1qOT.d.ts → system-address-cyJaeZIS.d.ts} +2 -1
  214. package/package.json +17 -2
  215. package/dist/chunk-2FHHMYDC.js +0 -1
  216. package/dist/chunk-2FHHMYDC.js.map +0 -1
  217. package/dist/chunk-2TW4ZBI3.js +0 -1
  218. package/dist/chunk-2TW4ZBI3.js.map +0 -1
  219. package/dist/chunk-2VPVZELZ.js +0 -1
  220. package/dist/chunk-3BM5BHI3.js +0 -1
  221. package/dist/chunk-3BM5BHI3.js.map +0 -1
  222. package/dist/chunk-4S6WB7QR.js.map +0 -1
  223. package/dist/chunk-6BO5JJNI.js +0 -1
  224. package/dist/chunk-6BO5JJNI.js.map +0 -1
  225. package/dist/chunk-CX7B67OI.js +0 -1
  226. package/dist/chunk-CX7B67OI.js.map +0 -1
  227. package/dist/chunk-DVL5RBKX.js +0 -1
  228. package/dist/chunk-DVL5RBKX.js.map +0 -1
  229. package/dist/chunk-DYPOL3CI.js.map +0 -1
  230. package/dist/chunk-FGXWVFN6.js +0 -1
  231. package/dist/chunk-FGXWVFN6.js.map +0 -1
  232. package/dist/chunk-FMPRCYKY.js.map +0 -1
  233. package/dist/chunk-G3265B27.js +0 -1
  234. package/dist/chunk-G3265B27.js.map +0 -1
  235. package/dist/chunk-GQ5GX5TB.js.map +0 -1
  236. package/dist/chunk-IOJXLDJN.js +0 -1
  237. package/dist/chunk-IOJXLDJN.js.map +0 -1
  238. package/dist/chunk-IYU4WLFM.js +0 -1
  239. package/dist/chunk-IYU4WLFM.js.map +0 -1
  240. package/dist/chunk-J42ZXLBL.js.map +0 -1
  241. package/dist/chunk-JPBMRJFC.js.map +0 -1
  242. package/dist/chunk-LJI7VXJD.js +0 -1
  243. package/dist/chunk-LJI7VXJD.js.map +0 -1
  244. package/dist/chunk-OCND33TO.js +0 -1
  245. package/dist/chunk-OCND33TO.js.map +0 -1
  246. package/dist/chunk-P2QOL63K.js +0 -1
  247. package/dist/chunk-P2QOL63K.js.map +0 -1
  248. package/dist/chunk-Q3QCLNVG.js.map +0 -1
  249. package/dist/chunk-QTZPA2FR.js.map +0 -1
  250. package/dist/chunk-RLUS76LZ.js +0 -1
  251. package/dist/chunk-RLUS76LZ.js.map +0 -1
  252. package/dist/chunk-TEOJCBSG.js +0 -1
  253. package/dist/chunk-TEOJCBSG.js.map +0 -1
  254. package/dist/chunk-TMMGS6TC.js +0 -1
  255. package/dist/chunk-TMMGS6TC.js.map +0 -1
  256. package/dist/chunk-W6EPHHTS.js.map +0 -1
  257. package/dist/chunk-Z6XMXMVI.js.map +0 -1
  258. package/dist/chunk-ZNCXENNB.js +0 -1
  259. package/dist/chunk-ZNCXENNB.js.map +0 -1
  260. /package/dist/{chunk-6EUVIZAS.js.map → chunk-4QYTVSNR.js.map} +0 -0
  261. /package/dist/{chunk-6EPYVBAX.js.map → chunk-A6OINYNP.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/internal/loadout-fitting.ts","../src/ships/internal/loadout-export.ts","../src/ships/internal/loadout-import.ts","../src/ships/ship-loadout.ts"],"names":["sourcePurchaseFromLoadout","getSourceModuleValue","getShipBySymbol","getShipByName","getShipSlots","fixedSlotReason","validateLoadout","calculateModuleLimits","getDefaultLoadout","publishLoadoutInternals","effectiveModule","parseSlef","toSlef","stringifySlef","getLoadoutModifier","isNonOutfittingSlot","isBuiltInHullModule","cloneLoadoutModule","identifyPreEngineeredVariant","cloneModuleStats","availableBlueprintsFor","availableExperimentalsFor","ownKeyIn","FITTED_ITEM","blueprintAvailableFor","blueprintRoutesFor","experimentalAvailableFor","primitiveEngineeringInputsFor","missingBaseLabels","journalModifiersFor","getPreEngineeredStats","getPreEngineeredJournalModifiers","getPreEngineeredModifiers","ordinaryEngineeringProof","unresolvedModifiers","matchingKeyIn","isCargoHatchSlot","isFinalGuardianWeaponEngineering","orderBySlotLayout","getPreEngineeredVariants","builtInModuleBySymbol","ALL_MODULES","singleJumpRange","calculateUnladenMass","calculateCargoCapacity","calculateFuelCapacity","getExperimentalEffect","ammunitionCapacity","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","resolveBlueprintForModule","getExperimentalsForModule","getBlueprintGrade","loadoutSlotName","parseSlotName","enumerateSlots","SLOT_RESTRICTION_LABELS","normalizeKey","CATALOGUE_KEY","truncate","describeValue","requireString","requireStringIfPresent","deepFreeze","MILITARY_PREFIXES","MINING_PREFIXES","CARGO_PREFIXES","RESTRICTED_SLOT_PREFIXES","mining","military","cargo","limpetController","vesselHangar","passenger","planetaryApproachSuite","problem","constraint","message","params","restrictionProblem","slot","symbol","restriction","some","prefix","startsWith","moduleSlotProblem","module","required","restrictedToSlot","moduleFitProblem","shipSymbol","kind","hull","ship","toLowerCase","name","armourHull","armourShipName","armourShipSymbol","shipName","restricted","restrictedToShips","allowedShipNames","map","labels","index","join","allowedShipSymbols","wrongMount","moduleSlot","core","requiredCore","category","isFuelTank","class","size","moduleClass","slotSize","moduleFitError","REBUY_FRACTION","exportLoadoutEvent","input","options","fromSource","credits","source","sourcePurchase","totals","sourceTotalsVoided","sourceTotalsHold","modules","hullValue","retailHullValue","modulesValue","computedModulesValue","statsFor","rebuy","Math","trunc","Ship","ShipName","shipIdent","ShipIdent","HullValue","ModulesValue","UnladenMass","unladenMass","CargoCapacity","cargoCapacity","maxJumpRange","MaxJumpRange","FuelCapacity","Main","fuelCapacity","main","Reserve","reserve","Rebuy","Modules","exportModules","ordered","moduleOrder","slotOrderedModules","layout","values","on","On","explicitPower","priority","Priority","value","sourceModuleValue","moduleValue","Slot","Item","Health","Value","Engineering","sum","stats","cost","SOURCE_ITEM","entry","item","moduleValues","key","fitted","get","captureLoadoutEvent","event","Array","isArray","captureEach","captureModule","capture","captured","length","push","health","engineering","captureEngineering","experimental","ExperimentalEffect","experimentalLocalised","ExperimentalEffect_Localised","modifiers","Modifiers","BlueprintName","Level","Quality","modifier","hullLayout","slots","fixedMountRejects","mount","find","candidate","normalizeLoadoutEvent","rawEvent","TypeError","Map","Set","entries","Label","normalizedSlot","has","add","set","top","invalidatesAggregates","outcomes","defaults","slotKind","fallback","rejected","action","sourceSymbol","replacementSymbol","delete","moduleStats","primitiveModifiers","variant","catalogueVariantStats","variantStats","retainsBakedExperimental","experimentalEffectSymbol","trim","engineeringLocked","originalExperimental","withoutExperimental","currentExperimental","currentVariant","guardianFinal","normalizedBlueprint","normalizedExperimental","variants","exact","blueprintSymbol","grade","guardianBase","SLOT_KEY","FITTED_SLOT","LoadoutEditError","code","constructor","super","this","structuredClone","experimentalEffectUnsupported","engineeringNormalizationUnsupported","AGGREGATE_STATS","ShipLoadout","_ShipLoadout","importOutcomes","slotCache","layoutCache","effectiveModules","modulesForEffectiveStats","moduleForEffectiveStats","resolveDrive","frameShiftDriveModule","frameShiftDrive","calculationModules","statedMainFuel","fromSlef","imported","data","fromImported","fromLoadout","empty","requested","filter","parsed","loadout","computedUnladenMass","hullMass","cap","Object","freeze","computed","computedFuelCapacity","computedCargoCapacity","reserveFuelCapacity","validation","byKey","builtIn","fitProblem","requiresKnownSlot","fitError","fitConstraint","fitParams","exclusionGroup","limitGroup","limitIncrease","cached","currentLimits","moduleLimits","moduleStatsAt","fixedReason","immovableReason","moduleLimitRegression","fittedModuleAt","removable","slotKey","fittedModuleFor","raw","effective","effectiveStats","ammunition","preEngineeredVariant","fittedModules","keys","flatMap","availableBlueprints","availableExperimentalEffects","modulesForSlot","requireSlot","occupied","group","currentStats","repairFixedMount","wanted","fittedKey","resultSlot","canonicalKey","status","reason","current","valid","defaultModule","ownKey","replacement","replacementStats","replaceModule","setModule","catalogued","field","stated","Number","isFinite","conflict","previousSlot","previousSymbol","limitProblem","count","limit","removeModule","applyBlueprint","wantedGrade","wantedQuality","quality","wantedExperimental","RangeError","fittedStats","recipe","named","written","resolved","acquisition","isInteger","offered","blueprint","route","engineeringBaseStats","base","canonical","missing","features","damageDistribution","type","label","damageModifier","OriginalValue","setExperimentalEffect","previous","effect","restoresBakedEffect","stock","originalEffect","withoutEffect","adjusted","currentEffect","blueprintGrade","previousExperimentalEffectSymbol","completeEngineeringGrade","previousQuality","proof","setPreEngineeredVariant","known","unresolved","clearEngineering","bare","setModuleEnabled","patchModule","setModulePriority","patch","clear","toLoadoutEvent","fuel","exportableJumpRange","hullCost","outcome","header","toSlefString","indent","drive","tank","min","maxFuel","s","mass","moduleMass","moduleCapacity","usage","increase","amount","baseLimit","excess","max","adjustImportedFigures","next","nextStats","statsOverride","modified","modifierLabel","m","fsd","fsdModule","fuelMul","fuelPower","optMass","jumpBoost","resolveJumpBoost","engineeringGroup"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{ALL_MATERIALS}from"./chunk-V4C6FIE2.js";import{findInKeyIndex,findByKey,filterByKey,createKeyIndex}from"./chunk-BKWLI44T.js";import{describeValue}from"./chunk-PKWVG2JY.js";var MaterialGrade=/* @__PURE__ */(MaterialGrade2=>{MaterialGrade2[MaterialGrade2["VeryCommon"]=1]="VeryCommon";MaterialGrade2[MaterialGrade2["Common"]=2]="Common";MaterialGrade2[MaterialGrade2["Standard"]=3]="Standard";MaterialGrade2[MaterialGrade2["Rare"]=4]="Rare";MaterialGrade2[MaterialGrade2["VeryRare"]=5]="VeryRare";return MaterialGrade2})(MaterialGrade||{});var MaterialLine=/* @__PURE__ */(MaterialLine2=>{MaterialLine2["Carbon"]="Carbon";MaterialLine2["Phosphorus"]="Phosphorus";MaterialLine2["Sulphur"]="Sulphur";MaterialLine2["Iron"]="Iron";MaterialLine2["Nickel"]="Nickel";MaterialLine2["Rhenium"]="Rhenium";MaterialLine2["Lead"]="Lead";MaterialLine2["Chemical"]="Chemical";MaterialLine2["Thermic"]="Thermic";MaterialLine2["Heat"]="Heat";MaterialLine2["Conductive"]="Conductive";MaterialLine2["MechanicalComponents"]="Mechanical Components";MaterialLine2["Capacitors"]="Capacitors";MaterialLine2["Shielding"]="Shielding";MaterialLine2["Composite"]="Composite";MaterialLine2["Crystals"]="Crystals";MaterialLine2["Alloys"]="Alloys";MaterialLine2["EmissionData"]="Emission Data";MaterialLine2["WakeScans"]="Wake Scans";MaterialLine2["ShieldData"]="Shield Data";MaterialLine2["EncryptionFiles"]="Encryption Files";MaterialLine2["DataArchives"]="Data Archives";MaterialLine2["EncodedFirmware"]="Encoded Firmware";MaterialLine2["Guardian"]="Guardian";MaterialLine2["Thargoid"]="Thargoid";return MaterialLine2})(MaterialLine||{});var MATERIALS_BY_SYMBOL=/* @__PURE__ */createKeyIndex(ALL_MATERIALS,"symbol");var MATERIALS_BY_NAME=/* @__PURE__ */createKeyIndex(ALL_MATERIALS,"name");var MATERIALS_BY_ELEMENT=/* @__PURE__ */createKeyIndex(ALL_MATERIALS,"elementSymbol");function getMaterialBySymbol(symbol,materials=ALL_MATERIALS){return materials===ALL_MATERIALS?findInKeyIndex(MATERIALS_BY_SYMBOL,symbol,"getMaterialBySymbol: symbol"):findByKey(materials,"symbol",symbol,"getMaterialBySymbol: symbol")}function getMaterialByName(name,materials=ALL_MATERIALS){return materials===ALL_MATERIALS?findInKeyIndex(MATERIALS_BY_NAME,name,"getMaterialByName: name"):findByKey(materials,"name",name,"getMaterialByName: name")}function getMaterialByElementSymbol(elementSymbol,materials=ALL_MATERIALS){return materials===ALL_MATERIALS?findInKeyIndex(MATERIALS_BY_ELEMENT,elementSymbol,"getMaterialByElementSymbol: elementSymbol"):findByKey(materials,"elementSymbol",elementSymbol,"getMaterialByElementSymbol: elementSymbol")}function materialsByGrade(grade){if(grade==null)return[];if(typeof grade!=="number"){throw new TypeError(`materialsByGrade: grade must be a number, received ${describeValue(grade)}`)}return ALL_MATERIALS.filter(material=>material.grade===grade)}function materialsInLine(line){return filterByKey(ALL_MATERIALS,"line",line,"materialsInLine: line")}function materialsInCategory(category){return filterByKey(ALL_MATERIALS,"category",category,"materialsInCategory: category")}export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine};//# sourceMappingURL=chunk-OYR5HUQZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/materials/materials.ts"],"names":["ALL_MATERIALS","findInKeyIndex","findByKey","filterByKey","createKeyIndex","describeValue","MaterialGrade","MaterialLine","MATERIALS_BY_SYMBOL","MATERIALS_BY_NAME","MATERIALS_BY_ELEMENT","getMaterialBySymbol","symbol","materials","getMaterialByName","name","getMaterialByElementSymbol","elementSymbol","materialsByGrade","grade","TypeError","filter","material","materialsInLine","line","materialsInCategory","category"],"mappings":"O,4KAgFO,IAAKM,6BAAA,CAAAA,iBAERA,eAAAA,eAAA,cAAa,GAAb,aAEAA,eAAAA,eAAA,UAAS,GAAT,SAEAA,eAAAA,eAAA,YAAW,GAAX,WAEAA,eAAAA,eAAA,QAAO,GAAP,OAEAA,eAAAA,eAAA,YAAW,GAAX,WAVQ,OAAAA,cAAA,EAAA,CAAAA,eAAA,CAAA,GAuBL,IAAKC,4BAAA,CAAAA,gBAERA,cAAA,UAAS,SAETA,cAAA,cAAa,aAEbA,cAAA,WAAU,UAEVA,cAAA,QAAO,OAEPA,cAAA,UAAS,SAETA,cAAA,WAAU,UAEVA,cAAA,QAAO,OAEPA,cAAA,YAAW,WAEXA,cAAA,WAAU,UAEVA,cAAA,QAAO,OAEPA,cAAA,cAAa,aAEbA,cAAA,wBAAuB,wBAEvBA,cAAA,cAAa,aAEbA,cAAA,aAAY,YAEZA,cAAA,aAAY,YAEZA,cAAA,YAAW,WAEXA,cAAA,UAAS,SAETA,cAAA,gBAAe,gBAEfA,cAAA,aAAY,aAEZA,cAAA,cAAa,cAEbA,cAAA,mBAAkB,mBAElBA,cAAA,gBAAe,gBAEfA,cAAA,mBAAkB,mBAElBA,cAAA,YAAW,WAEXA,cAAA,YAAW,WAlDH,OAAAA,aAAA,EAAA,CAAAA,cAAA,CAAA,GAsFZ,IAAMC,mCAAsCJ,eAAeJ,cAAe,UAC1E,IAAMS,iCAAoCL,eAAeJ,cAAe,QACxE,IAAMU,oCAAuCN,eAAeJ,cAAe,iBA0BpE,SAASW,oBACZC,OACAC,UAAiCb,eAEjC,OAAOa,YAAcb,cACfC,eAAeO,oBAAqBI,OAAQ,+BAC5CV,UAAUW,UAAW,SAAUD,OAAQ,8BACjD,CAkBO,SAASE,kBACZC,KACAF,UAAiCb,eAEjC,OAAOa,YAAcb,cACfC,eAAeQ,kBAAmBM,KAAM,2BACxCb,UAAUW,UAAW,OAAQE,KAAM,0BAC7C,CAmBO,SAASC,2BACZC,cACAJ,UAAiCb,eAEjC,OAAOa,YAAcb,cACfC,eACIS,qBACAO,cACA,6CAEJf,UACIW,UACA,gBACAI,cACA,4CAEd,CAmBO,SAASC,iBAAiBC,OAC7B,GAAIA,OAAS,KAAM,MAAO,GAC1B,UAAWA,QAAU,SAAU,CAC3B,MAAM,IAAIC,UACN,sDAAsDf,cAAcc,SAE5E,CACA,OAAOnB,cAAcqB,OAAQC,UAAaA,SAASH,QAAUA,MACjE,CAkBO,SAASI,gBAAgBC,MAC5B,OAAOrB,YAAYH,cAAe,OAAQwB,KAAM,wBACpD,CAuBO,SAASC,oBAAoBC,UAChC,OAAOvB,YAAYH,cAAe,WAAY0B,SAAU,gCAC5D,QAAApB,cAAAC,aAAAS,2BAAAF,kBAAAH,oBAAAO,iBAAAO,oBAAAF"}
@@ -0,0 +1 @@
1
+ import{filterByKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var pre_engineered_default=[{symbol:"Hpt_Mining_AbrBlstr_Fixed_Small",name:"Far-Reaching Abrasion Blaster",blueprintSymbol:"AbrasionBlaster_FarReaching",grade:1,acquisition:"mercenary",mercCoinCost:400},{symbol:"Hpt_CausticMissile_Fixed_Medium",name:"High-Yield Enzyme Missile Rack",blueprintSymbol:"EnzymeMissileRack_HighYield",grade:1,acquisition:"mercenary",mercCoinCost:850},{symbol:"Hpt_Slugshot_Gimbal_Small",name:"Double Screaming Fragment Cannon",blueprintSymbol:"FragmentCannonSmall_DoubleScreaming",grade:1,acquisition:"mercenary",mercCoinCost:800},{symbol:"Hpt_Slugshot_Gimbal_Large",name:"Double Screaming Fragment Cannon",blueprintSymbol:"FragmentCannonLarge_DoubleScreaming",grade:1,acquisition:"mercenary",mercCoinCost:950},{symbol:"Hpt_MiningLaser_Fixed_Small",name:"Long Range Mining Laser",blueprintSymbol:"MiningLaser_LongRange",grade:1,acquisition:"mercenary",mercCoinCost:450},{symbol:"Hpt_MultiCannon_Fixed_Medium",name:"Rapid Phase Multi-Cannon",blueprintSymbol:"MultiCannon_Rapid",grade:1,acquisition:"mercenary",mercCoinCost:850},{symbol:"Hpt_Railgun_Fixed_Medium",name:"Enduring Feedback Rail Gun",blueprintSymbol:"RailGun_LongShot",grade:1,acquisition:"mercenary",mercCoinCost:950},{symbol:"Hpt_BasicMissileRack_Fixed_Medium",name:"Drag Seeker Missile Rack",blueprintSymbol:"SeekerMissileRack_Drag",grade:1,acquisition:"mercenary",mercCoinCost:800},{symbol:"Hpt_BasicMissileRack_Fixed_Large",name:"Drag Seeker Missile Rack",blueprintSymbol:"SeekerMissileRack_Drag",grade:1,acquisition:"mercenary",mercCoinCost:900},{symbol:"Hpt_BasicMissileRack_Fixed_Medium",name:"Lightweight Thermal Seeker Missile Rack",blueprintSymbol:"SeekerMissileRack_LightWeightThermal",grade:1,acquisition:"mercenary",mercCoinCost:800},{symbol:"Hpt_BasicMissileRack_Fixed_Medium",name:"Lockdown Seeker Missile Rack",blueprintSymbol:"SeekerMissileRackMedium_Lockdown",grade:1,acquisition:"mercenary",mercCoinCost:800},{symbol:"Hpt_BasicMissileRack_Fixed_Large",name:"Lockdown Seeker Missile Rack",blueprintSymbol:"SeekerMissileRackLarge_Lockdown",grade:1,acquisition:"mercenary",mercCoinCost:900},{symbol:"Int_CargoRack_Size5_Class1",name:"Extended Cargo Rack",blueprintSymbol:"CargoRackS5C1_Extended",grade:1,acquisition:"mercenary",mercCoinCost:550},{symbol:"Int_CargoRack_Size6_Class1",name:"Extended Cargo Rack",blueprintSymbol:"CargoRackS6C1_Extended",grade:1,acquisition:"mercenary",mercCoinCost:550},{symbol:"Int_DetailedSurfaceScanner_Tiny",name:"Long Range Detailed Surface Scanner",blueprintSymbol:"DetailedSurfaceScanner_LongRange",grade:1,acquisition:"mercenary",mercCoinCost:350},{symbol:"Int_ModuleReinforcement_Size5_Class2",name:"Heavy Duty Module Reinforcement Package",blueprintSymbol:"ModuleReinforcement_HeavyDuty",grade:1,acquisition:"mercenary",mercCoinCost:450},{symbol:"Int_PowerDistributor_Size3_Class2",name:"Support Focused Power Distributor",blueprintSymbol:"PowerDistributorS3C2_SupportFocused",grade:1,acquisition:"mercenary",mercCoinCost:300},{symbol:"Int_PowerDistributor_Size3_Class5",name:"Support Focused Power Distributor",blueprintSymbol:"PowerDistributorS3C5_SupportFocused",grade:1,acquisition:"mercenary",mercCoinCost:350},{symbol:"Int_PowerDistributor_Size4_Class2",name:"Support Focused Power Distributor",blueprintSymbol:"PowerDistributorS4C2_SupportFocused",grade:1,acquisition:"mercenary",mercCoinCost:400},{symbol:"Int_PowerDistributor_Size4_Class5",name:"Support Focused Power Distributor",blueprintSymbol:"PowerDistributorS4C5_SupportFocused",grade:1,acquisition:"mercenary",mercCoinCost:450},{symbol:"Int_PowerDistributor_Size5_Class5",name:"Balanced Power Distributor",blueprintSymbol:"PowerDistributor_Balanced",grade:1,acquisition:"mercenary",mercCoinCost:500},{symbol:"Int_PowerDistributor_Size6_Class5",name:"Support Focused Power Distributor",blueprintSymbol:"PowerDistributorS6C5_SupportFocused",grade:1,acquisition:"mercenary",mercCoinCost:550},{symbol:"Hpt_Mining_AbrBlstr_Fixed_Small",name:"Abrasion Blaster",blueprintSymbol:"Weapon_LongRange",grade:5,acquisition:"communityGoal",modifiers:[{label:"DistributorDraw",method:"multiplicative",value:-.5},{label:"FalloffRange",method:"multiplicative",value:4},{label:"Integrity",method:"multiplicative",value:-.5},{label:"MaximumRange",method:"multiplicative",value:4},{label:"PowerDraw",method:"multiplicative",value:-.5},{label:"ThermalLoad",method:"multiplicative",value:-.5}]},{symbol:"Hpt_CausticMissile_Fixed_Medium",name:"Enzyme Missile Rack",blueprintSymbol:"Weapon_HighCapacity",grade:5,acquisition:"communityGoal",engineeringLocked:true,modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:.75},{label:"AmmoMaximum",method:"multiplicative",value:.25},{label:"Damage",method:"multiplicative",value:.5},{label:"Mass",method:"multiplicative",value:.6},{label:"PowerDraw",method:"multiplicative",value:.2}]},{symbol:"Hpt_Slugshot_Gimbal_Small",name:"Fragment Cannon",blueprintSymbol:"Weapon_DoubleShot",grade:5,acquisition:"communityGoal",experimentalEffectSymbol:"special_screening_shell",modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:1.6667},{label:"AmmoMaximum",method:"multiplicative",value:.67776},{label:"BurstInterval",method:"multiplicative",value:-.06},{label:"BurstSize",method:"overwrite",value:2},{label:"Mass",method:"multiplicative",value:.6},{label:"MaximumRange",method:"multiplicative",value:-.1},{label:"PowerDraw",method:"multiplicative",value:.2}]},{symbol:"Hpt_Slugshot_Gimbal_Large",name:"Fragment Cannon",blueprintSymbol:"Weapon_DoubleShot",grade:5,acquisition:"communityGoal",experimentalEffectSymbol:"special_screening_shell",modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:1.6667},{label:"AmmoMaximum",method:"multiplicative",value:.67776},{label:"BurstInterval",method:"multiplicative",value:-.06},{label:"BurstSize",method:"overwrite",value:2},{label:"Mass",method:"multiplicative",value:.6},{label:"MaximumRange",method:"multiplicative",value:-.1},{label:"PowerDraw",method:"multiplicative",value:.2}]},{symbol:"Hpt_Guardian_ShardCannon_Fixed_Medium",name:"Guardian Shard Cannon",blueprintSymbol:"Weapon_LongRange",grade:5,acquisition:"communityGoal",engineeringLocked:true,modifiers:[{label:"ArmourPenetration",method:"multiplicative",value:1.02},{label:"DistributorDraw",method:"multiplicative",value:5.05},{label:"Jitter",method:"additive",value:-3.5},{label:"Mass",method:"multiplicative",value:.5},{label:"MaximumRange",method:"multiplicative",value:4},{label:"PowerDraw",method:"multiplicative",value:1.3},{label:"ShotSpeed",method:"overwrite",value:1258.89},{label:"ThermalLoad",method:"multiplicative",value:15.5}]},{symbol:"Hpt_MultiCannon_Fixed_Medium",name:"Multi-Cannon",blueprintSymbol:"Weapon_RapidFire",grade:1,acquisition:"communityGoal",experimentalEffectSymbol:"special_phasing_sequence",modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:3},{label:"AmmoMaximum",method:"overwrite",value:6400},{label:"BurstInterval",method:"overwrite",value:.1},{label:"FalloffRange",method:"multiplicative",value:-.1},{label:"Jitter",method:"additive",value:3},{label:"MaximumRange",method:"multiplicative",value:-.5},{label:"RoundsPerShot",method:"additive",value:2}]},{symbol:"Hpt_Railgun_Fixed_Medium",name:"Rail Gun",blueprintSymbol:"Weapon_HighCapacity",grade:5,acquisition:"communityGoal",experimentalEffectSymbol:"special_feedback_cascade_cooled",modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:1},{label:"AmmoMaximum",method:"multiplicative",value:1},{label:"BurstInterval",method:"multiplicative",value:-.61145},{label:"FalloffRange",method:"multiplicative",value:5},{label:"Mass",method:"multiplicative",value:.9},{label:"MaximumRange",method:"multiplicative",value:1},{label:"PowerDraw",method:"multiplicative",value:.65},{label:"ReloadTime",method:"multiplicative",value:.25}]},{symbol:"Hpt_Railgun_Fixed_Medium_Burst",name:"Imperial Hammer Rail Gun",blueprintSymbol:"Weapon_HighCapacity",grade:5,acquisition:"communityGoal",experimentalEffectSymbol:"special_super_penetrator",modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:1},{label:"AmmoMaximum",method:"multiplicative",value:1},{label:"BurstInterval",method:"multiplicative",value:-.2635},{label:"Damage",method:"multiplicative",value:-.2},{label:"Mass",method:"multiplicative",value:.7},{label:"PowerDraw",method:"multiplicative",value:.25}]},{symbol:"Hpt_BasicMissileRack_Fixed_Medium",name:"Seeker Missile Rack",blueprintSymbol:"Weapon_HighCapacity",grade:1,acquisition:"communityGoal",experimentalEffectSymbol:"special_drag_munitions",modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:2},{label:"AmmoMaximum",method:"multiplicative",value:2},{label:"BurstInterval",method:"multiplicative",value:-.2},{label:"DistributorDraw",method:"overwrite",value:.34},{label:"Mass",method:"multiplicative",value:1.5},{label:"PowerDraw",method:"multiplicative",value:.25}]},{symbol:"Hpt_BasicMissileRack_Fixed_Medium",name:"Seeker Missile Rack",blueprintSymbol:"Weapon_HighCapacity",grade:5,acquisition:"communityGoal",experimentalEffectSymbol:"special_fsd_interrupt",modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:1},{label:"AmmoMaximum",method:"multiplicative",value:1},{label:"ArmourPenetration",method:"multiplicative",value:.4},{label:"BurstInterval",method:"multiplicative",value:-.1},{label:"Damage",method:"multiplicative",value:.35},{label:"Integrity",method:"multiplicative",value:1},{label:"Mass",method:"multiplicative",value:1.2},{label:"PowerDraw",method:"multiplicative",value:.3},{label:"ThermalLoad",method:"multiplicative",value:-.1}]},{symbol:"Hpt_BasicMissileRack_Fixed_Large",name:"Seeker Missile Rack",blueprintSymbol:"Weapon_HighCapacity",grade:5,acquisition:"communityGoal",experimentalEffectSymbol:"special_fsd_interrupt",modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:1},{label:"AmmoMaximum",method:"multiplicative",value:1},{label:"ArmourPenetration",method:"multiplicative",value:.4},{label:"BurstInterval",method:"multiplicative",value:-.1},{label:"Damage",method:"multiplicative",value:.35},{label:"Integrity",method:"multiplicative",value:1},{label:"Mass",method:"multiplicative",value:1.2},{label:"PowerDraw",method:"multiplicative",value:.3},{label:"ThermalLoad",method:"multiplicative",value:-.1}]},{symbol:"Hpt_ElectronicCountermeasure_Tiny",name:"Electronic Countermeasure",blueprintSymbol:"Misc_LightWeight",grade:5,acquisition:"communityGoal",modifiers:[{label:"Integrity",method:"multiplicative",value:1},{label:"Mass",method:"multiplicative",value:-.85},{label:"PowerDraw",method:"multiplicative",value:1}]},{symbol:"Hpt_CrimeScanner_Size0_Class5",name:"Kill Warrant Scanner",blueprintSymbol:"Sensor_FastScan",grade:5,acquisition:"communityGoal",modifiers:[{label:"Integrity",method:"multiplicative",value:-.5},{label:"MaxAngle",method:"multiplicative",value:-.3},{label:"PowerDraw",method:"multiplicative",value:.5},{label:"ScannerRange",method:"multiplicative",value:.65},{label:"ScannerTimeToScan",method:"multiplicative",value:-.8}]},{symbol:"Hpt_CrimeScanner_Size0_Class3",name:"Kill Warrant Scanner",blueprintSymbol:"Sensor_FastScan",grade:5,acquisition:"communityGoal",modifiers:[{label:"Integrity",method:"multiplicative",value:-.5},{label:"MaxAngle",method:"multiplicative",value:-.3},{label:"PowerDraw",method:"multiplicative",value:.5},{label:"ScannerRange",method:"multiplicative",value:.65},{label:"ScannerTimeToScan",method:"multiplicative",value:-.8}]},{symbol:"Hpt_PlasmaPointDefence_Turret_Tiny",name:"Point Defence",blueprintSymbol:"Misc_LightWeight",grade:5,acquisition:"communityGoal",modifiers:[{label:"Integrity",method:"multiplicative",value:-.5},{label:"Mass",method:"multiplicative",value:-.85},{label:"MaximumRange",method:"multiplicative",value:1},{label:"ThermalLoad",method:"multiplicative",value:.05}]},{symbol:"Int_PowerDistributor_Size3_Class5",name:"Power Distributor",blueprintSymbol:"PowerDistributor_PrioritySystems",grade:5,acquisition:"communityGoal",modifiers:[{label:"EnginesCapacity",method:"multiplicative",value:.45},{label:"EnginesRecharge",method:"multiplicative",value:.4},{label:"SystemsCapacity",method:"multiplicative",value:.45},{label:"SystemsRecharge",method:"multiplicative",value:.4},{label:"WeaponsCapacity",method:"multiplicative",value:-.25},{label:"WeaponsRecharge",method:"multiplicative",value:-.2}]},{symbol:"Int_PowerDistributor_Size3_Class2",name:"Power Distributor",blueprintSymbol:"PowerDistributor_PrioritySystems",grade:5,acquisition:"communityGoal",modifiers:[{label:"EnginesCapacity",method:"multiplicative",value:.45},{label:"EnginesRecharge",method:"multiplicative",value:.4},{label:"SystemsCapacity",method:"multiplicative",value:.45},{label:"SystemsRecharge",method:"multiplicative",value:.4},{label:"WeaponsCapacity",method:"multiplicative",value:-.25},{label:"WeaponsRecharge",method:"multiplicative",value:-.2}]},{symbol:"Int_PowerDistributor_Size4_Class5",name:"Power Distributor",blueprintSymbol:"PowerDistributor_PrioritySystems",grade:5,acquisition:"communityGoal",modifiers:[{label:"EnginesCapacity",method:"multiplicative",value:.45},{label:"EnginesRecharge",method:"multiplicative",value:.4},{label:"SystemsCapacity",method:"multiplicative",value:.45},{label:"SystemsRecharge",method:"multiplicative",value:.4},{label:"WeaponsCapacity",method:"multiplicative",value:-.25},{label:"WeaponsRecharge",method:"multiplicative",value:-.2}]},{symbol:"Int_PowerDistributor_Size4_Class2",name:"Power Distributor",blueprintSymbol:"PowerDistributor_PrioritySystems",grade:5,acquisition:"communityGoal",modifiers:[{label:"EnginesCapacity",method:"multiplicative",value:.45},{label:"EnginesRecharge",method:"multiplicative",value:.4},{label:"SystemsCapacity",method:"multiplicative",value:.45},{label:"SystemsRecharge",method:"multiplicative",value:.4},{label:"WeaponsCapacity",method:"multiplicative",value:-.25},{label:"WeaponsRecharge",method:"multiplicative",value:-.2}]},{symbol:"Int_PowerDistributor_Size6_Class5",name:"Power Distributor",blueprintSymbol:"PowerDistributor_PrioritySystems",grade:5,acquisition:"communityGoal",modifiers:[{label:"EnginesCapacity",method:"multiplicative",value:.45},{label:"EnginesRecharge",method:"multiplicative",value:.4},{label:"SystemsCapacity",method:"multiplicative",value:.45},{label:"SystemsRecharge",method:"multiplicative",value:.4},{label:"WeaponsCapacity",method:"multiplicative",value:-.25},{label:"WeaponsRecharge",method:"multiplicative",value:-.2}]},{symbol:"Int_Powerplant_Size3_Class5",name:"Power Plant",blueprintSymbol:"PowerPlant_Armoured",grade:5,acquisition:"communityGoal",modifiers:[{label:"HeatEfficiency",method:"multiplicative",value:.13},{label:"Integrity",method:"multiplicative",value:.95},{label:"Mass",method:"multiplicative",value:.2},{label:"PowerCapacity",method:"multiplicative",value:.52}]},{symbol:"Int_Powerplant_Size3_Class5",name:"Power Plant",blueprintSymbol:"PowerPlant_Boosted",grade:5,acquisition:"communityGoal",modifiers:[{label:"HeatEfficiency",method:"multiplicative",value:.35},{label:"Integrity",method:"multiplicative",value:-.3},{label:"PowerCapacity",method:"multiplicative",value:.6}]},{symbol:"Int_Powerplant_Size4_Class5",name:"Power Plant",blueprintSymbol:"PowerPlant_Boosted",grade:5,acquisition:"communityGoal",modifiers:[{label:"HeatEfficiency",method:"multiplicative",value:.35},{label:"Integrity",method:"multiplicative",value:-.3},{label:"PowerCapacity",method:"multiplicative",value:.6}]},{symbol:"Int_Powerplant_Size5_Class5",name:"Power Plant",blueprintSymbol:"PowerPlant_Boosted",grade:5,acquisition:"communityGoal",modifiers:[{label:"HeatEfficiency",method:"multiplicative",value:.35},{label:"Integrity",method:"overwrite",value:74},{label:"PowerCapacity",method:"multiplicative",value:.6}]},{symbol:"Int_Hyperdrive_Size3_Class5",name:"Frame Shift Drive",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"communityGoal",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_Hyperdrive_Size4_Class5",name:"Frame Shift Drive",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"communityGoal",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_Hyperdrive_Size6_Class5",name:"Frame Shift Drive",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"communityGoal",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_CargoRack_Size5_Class1",name:"Cargo Rack",blueprintSymbol:"CargoRack_IncreasedCapacity",grade:5,acquisition:"communityGoal",modifiers:[{label:"CargoCapacity",method:"multiplicative",value:.34375}]},{symbol:"Int_CargoRack_Size6_Class1",name:"Cargo Rack",blueprintSymbol:"CargoRack_IncreasedCapacity",grade:5,acquisition:"communityGoal",modifiers:[{label:"CargoCapacity",method:"multiplicative",value:.34375}]},{symbol:"Int_ShieldGenerator_Size3_Class5",name:"Shield Generator",blueprintSymbol:"ShieldGenerator_Kinetic",grade:5,acquisition:"communityGoal",modifiers:[{label:"Integrity",method:"multiplicative",value:.2},{label:"KineticResistance",method:"additive",value:.18},{label:"PowerDraw",method:"multiplicative",value:.4},{label:"ThermicResistance",method:"additive",value:.42}]},{symbol:"Hpt_ATDumbfireMissile_Fixed_Medium",name:"AX Missile Rack",blueprintSymbol:"Weapon_HighCapacity",grade:5,acquisition:"techBroker",engineeringLocked:true,modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:1},{label:"AmmoMaximum",method:"multiplicative",value:1},{label:"BurstInterval",method:"multiplicative",value:-.3},{label:"Damage",method:"multiplicative",value:-.03},{label:"DistributorDraw",method:"multiplicative",value:-.2},{label:"Jitter",method:"additive",value:.5},{label:"Mass",method:"multiplicative",value:.7},{label:"PowerDraw",method:"multiplicative",value:.2},{label:"ReloadTime",method:"multiplicative",value:-.45}]},{symbol:"Hpt_ATDumbfireMissile_Fixed_Large",name:"AX Missile Rack",blueprintSymbol:"Weapon_HighCapacity",grade:5,acquisition:"techBroker",engineeringLocked:true,modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:1},{label:"AmmoMaximum",method:"multiplicative",value:1},{label:"BurstInterval",method:"multiplicative",value:-.3},{label:"Damage",method:"multiplicative",value:-.03},{label:"DistributorDraw",method:"multiplicative",value:-.2},{label:"Jitter",method:"additive",value:.5},{label:"Mass",method:"multiplicative",value:.7},{label:"PowerDraw",method:"multiplicative",value:.2},{label:"ReloadTime",method:"multiplicative",value:-.45}]},{symbol:"Hpt_ATMultiCannon_Gimbal_Medium",name:"Enhanced AX Multi-Cannon",blueprintSymbol:"Weapon_Overcharged",grade:5,acquisition:"techBroker",experimentalEffectSymbol:"special_auto_loader",engineeringLocked:true,modifiers:[{label:"Damage",method:"multiplicative",value:.1},{label:"PowerDraw",method:"multiplicative",value:.75},{label:"ThermalLoad",method:"multiplicative",value:3}]},{symbol:"Hpt_ATMultiCannon_Gimbal_Large",name:"Enhanced AX Multi-Cannon",blueprintSymbol:"Weapon_Overcharged",grade:5,acquisition:"techBroker",experimentalEffectSymbol:"special_auto_loader",engineeringLocked:true,modifiers:[{label:"Damage",method:"multiplicative",value:.1},{label:"PowerDraw",method:"multiplicative",value:.75},{label:"ThermalLoad",method:"multiplicative",value:3}]},{symbol:"Hpt_Guardian_GaussCannon_Fixed_Small",name:"Guardian Gauss Cannon",blueprintSymbol:"Weapon_RapidFire",grade:1,acquisition:"techBroker",engineeringLocked:true,modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:3},{label:"AmmoMaximum",method:"multiplicative",value:4},{label:"BurstInterval",method:"multiplicative",value:-.38237},{label:"BurstRateOfFire",method:"overwrite",value:10},{label:"BurstSize",method:"overwrite",value:4},{label:"Damage",method:"multiplicative",value:-.75214},{label:"DistributorDraw",method:"multiplicative",value:-.75},{label:"FalloffRange",method:"multiplicative",value:-.2},{label:"ThermalLoad",method:"multiplicative",value:-.75}]},{symbol:"Hpt_Guardian_GaussCannon_Fixed_Medium",name:"Guardian Gauss Cannon",blueprintSymbol:"Weapon_RapidFire",grade:1,acquisition:"techBroker",engineeringLocked:true,modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:3},{label:"AmmoMaximum",method:"multiplicative",value:4},{label:"BurstInterval",method:"multiplicative",value:-.38237},{label:"BurstRateOfFire",method:"overwrite",value:10},{label:"BurstSize",method:"overwrite",value:4},{label:"Damage",method:"multiplicative",value:-.75214},{label:"DistributorDraw",method:"multiplicative",value:-.75},{label:"FalloffRange",method:"multiplicative",value:-.2},{label:"ThermalLoad",method:"multiplicative",value:-.75}]},{symbol:"Hpt_Guardian_PlasmaLauncher_Fixed_Small",name:"Guardian Plasma Charger",blueprintSymbol:"Weapon_Overcharged",grade:1,acquisition:"techBroker",engineeringLocked:true,modifiers:[{label:"AmmoClipSize",method:"overwrite",value:20},{label:"ArmourPenetration",method:"multiplicative",value:.375},{label:"Damage",method:"multiplicative",value:.66},{label:"PowerDraw",method:"multiplicative",value:.3239},{label:"ShotSpeed",method:"multiplicative",value:4},{label:"ThermalLoad",method:"multiplicative",value:.5}]},{symbol:"Hpt_Guardian_PlasmaLauncher_Fixed_Medium",name:"Guardian Plasma Charger",blueprintSymbol:"Weapon_Overcharged",grade:1,acquisition:"techBroker",engineeringLocked:true,modifiers:[{label:"AmmoClipSize",method:"overwrite",value:20},{label:"ArmourPenetration",method:"multiplicative",value:.375},{label:"Damage",method:"multiplicative",value:.66},{label:"PowerDraw",method:"multiplicative",value:.3239},{label:"ShotSpeed",method:"multiplicative",value:4},{label:"ThermalLoad",method:"multiplicative",value:.5}]},{symbol:"Hpt_Guardian_ShardCannon_Fixed_Small",name:"Guardian Shard Cannon",blueprintSymbol:"Weapon_LongRange",grade:1,acquisition:"techBroker",engineeringLocked:true,modifiers:[{label:"ArmourPenetration",method:"multiplicative",value:1.02},{label:"DistributorDraw",method:"multiplicative",value:4.2769},{label:"FalloffRange",method:"overwrite",value:1500},{label:"Jitter",method:"additive",value:-3.5},{label:"Mass",method:"multiplicative",value:.5},{label:"MaximumRange",method:"overwrite",value:3e3},{label:"PowerDraw",method:"multiplicative",value:1.3},{label:"ShotSpeed",method:"overwrite",value:3568.6},{label:"ThermalLoad",method:"multiplicative",value:15.5}]},{symbol:"Hpt_Guardian_ShardCannon_Fixed_Medium",name:"Guardian Shard Cannon",blueprintSymbol:"Weapon_LongRange",grade:1,acquisition:"techBroker",engineeringLocked:true,modifiers:[{label:"ArmourPenetration",method:"multiplicative",value:1.02},{label:"DistributorDraw",method:"overwrite",value:3.43},{label:"FalloffRange",method:"overwrite",value:1500},{label:"Jitter",method:"additive",value:-3.5},{label:"Mass",method:"multiplicative",value:.5},{label:"MaximumRange",method:"overwrite",value:3e3},{label:"PowerDraw",method:"multiplicative",value:1.3},{label:"ShotSpeed",method:"overwrite",value:6299.209},{label:"ThermalLoad",method:"multiplicative",value:15.5}]},{symbol:"Hpt_MiningLaser_Fixed_Small",name:"Mining Laser",blueprintSymbol:"Weapon_LongRange",grade:5,acquisition:"techBroker",experimentalEffectSymbol:"special_incendiary_rounds",modifiers:[{label:"Damage",method:"multiplicative",value:-.05},{label:"DistributorDraw",method:"multiplicative",value:-.5},{label:"FalloffRange",method:"multiplicative",value:7.3333},{label:"Integrity",method:"multiplicative",value:-.5},{label:"MaximumRange",method:"multiplicative",value:4},{label:"PowerDraw",method:"multiplicative",value:-.5},{label:"ThermalLoad",method:"multiplicative",value:-.83}]},{symbol:"Hpt_BasicMissileRack_Fixed_Medium",name:"Seeker Missile Rack",blueprintSymbol:"Weapon_HighCapacity",grade:5,acquisition:"techBroker",experimentalEffectSymbol:"special_thermal_cascade",modifiers:[{label:"AmmoClipSize",method:"multiplicative",value:1},{label:"AmmoMaximum",method:"multiplicative",value:1},{label:"BurstInterval",method:"multiplicative",value:-.1},{label:"DistributorDraw",method:"multiplicative",value:-.4},{label:"Integrity",method:"multiplicative",value:-.6},{label:"Mass",method:"multiplicative",value:-.9},{label:"PowerDraw",method:"multiplicative",value:-.2}]},{symbol:"Hpt_HeatSinkLauncher_Turret_Tiny",name:"Heat Sink Launcher",blueprintSymbol:"Misc_HeatSinkCapacity",grade:1,acquisition:"techBroker",modifiers:[{label:"AmmoMaximum",method:"multiplicative",value:1},{label:"ReloadTime",method:"multiplicative",value:.75}]},{symbol:"Int_Hyperdrive_Size5_Class5",name:"Frame Shift Drive",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"techBroker",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_Hyperdrive_Overcharge_Size2_Class5",name:"Frame Shift Drive (SCO)",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"techBroker",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_Hyperdrive_Overcharge_Size3_Class5",name:"Frame Shift Drive (SCO)",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"techBroker",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_Hyperdrive_Overcharge_Size4_Class5",name:"Frame Shift Drive (SCO)",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"techBroker",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_Hyperdrive_Overcharge_Size5_Class5",name:"Frame Shift Drive (SCO)",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"techBroker",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_Hyperdrive_Overcharge_Size6_Class5",name:"Frame Shift Drive (SCO)",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"techBroker",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_Hyperdrive_Overcharge_Size7_Class5",name:"Frame Shift Drive (SCO)",blueprintSymbol:"FSD_LongRange",grade:5,acquisition:"techBroker",modifiers:[{label:"BootTime",method:"multiplicative",value:-.8},{label:"FSDHeatRate",method:"multiplicative",value:.2},{label:"FSDOptimalMass",method:"multiplicative",value:.7},{label:"Integrity",method:"multiplicative",value:-.3},{label:"Mass",method:"multiplicative",value:.3},{label:"PowerDraw",method:"multiplicative",value:.15}]},{symbol:"Int_DetailedSurfaceScanner_Tiny",name:"Detailed Surface Scanner",blueprintSymbol:"Sensor_Expanded",grade:5,acquisition:"techBroker",modifiers:[{label:"DSS_PatchRadius",method:"multiplicative",value:1}]},{symbol:"Hpt_FlakMortar_Turret_Medium",name:"Festive Green Remote Release Flak Launcher",blueprintSymbol:"Decorative_Green",grade:5,acquisition:"eventReward",modifiers:[{label:"Damage",method:"multiplicative",value:-.99}]},{symbol:"Hpt_FlakMortar_Turret_Medium",name:"Festive Red Remote Release Flak Launcher",blueprintSymbol:"Decorative_Red",grade:5,acquisition:"eventReward",modifiers:[{label:"Damage",method:"multiplicative",value:-.99}]},{symbol:"Hpt_FlakMortar_Turret_Medium",name:"Festive Yellow Remote Release Flak Launcher",blueprintSymbol:"Decorative_Yellow",grade:5,acquisition:"eventReward",modifiers:[{label:"Damage",method:"multiplicative",value:-.99}]}];var PRE_ENGINEERED_MODULES=deepFreeze(pre_engineered_default);function getPreEngineeredVariants(symbol){return filterByKey(PRE_ENGINEERED_MODULES,"symbol",symbol,"getPreEngineeredVariants: symbol")}function isPreEngineered(symbol){requireStringIfPresent(symbol,"isPreEngineered: symbol");return getPreEngineeredVariants(symbol).length>0}export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered};//# sourceMappingURL=chunk-PL75RTA2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ships/pre-engineered.ts"],"names":["filterByKey","requireStringIfPresent","deepFreeze","pre_engineered_default","symbol","PRE_ENGINEERED_MODULES","getPreEngineeredVariants","isPreEngineered","length"],"mappings":"O,2w4BAuKO,IAAMK,uBAA0DH,WACnEC,wBA4BG,SAASG,yBAAyBF,QACrC,OAAOJ,YACHK,uBACA,SACAD,OACA,mCAER,CAkBO,SAASG,gBAAgBH,QAC5BH,uBAAuBG,OAAQ,2BAC/B,OAAOE,yBAAyBF,QAAQI,OAAS,CACrD,QAAAH,uBAAAC,yBAAAC"}
1
+ {"version":3,"sources":["../src/ships/pre-engineered.ts"],"names":["filterByKey","requireStringIfPresent","deepFreeze","pre_engineered_default","symbol","PRE_ENGINEERED_MODULES","getPreEngineeredVariants","isPreEngineered","length"],"mappings":"O,m25BAuKO,IAAMK,uBAA0DH,WACnEC,wBA4BG,SAASG,yBAAyBF,QACrC,OAAOJ,YACHK,uBACA,SACAD,OACA,mCAER,CAkBO,SAASG,gBAAgBH,QAC5BH,uBAAuBG,OAAQ,2BAC/B,OAAOE,yBAAyBF,QAAQI,OAAS,CACrD,QAAAH,uBAAAC,yBAAAC"}
@@ -0,0 +1 @@
1
+ import{weaponsCapacitorMetrics}from"./chunk-RRYBSAPX.js";import{shieldCapacitorMetrics}from"./chunk-6L56LWTT.js";import{cellBankSummary,shieldRecovery}from"./chunk-4KJ7CR74.js";import{loadoutInternals,fittedThrusterParamsFor,powerConsumerFor,powerAvailable,heatInputResultFor,completeResult,cellBankInputsFor,armourInputFor,weaponStatsFor,weaponsCapacitorInputFor,mobilityInputResultFor,shieldInputResultFor,shieldCapacitorInputResultFor,shieldRecoveryInputResultFor,distributorInputResultFor,incompleteResult}from"./chunk-VYDQHPY2.js";import{isNonOutfittingSlot,isBuiltInHullModule,identifyPreEngineeredVariant,orderBySlotLayout}from"./chunk-GZYPQIO2.js";import{weaponMetrics,sumWeaponMetrics}from"./chunk-7TQ2X6Q3.js";import{shieldMetrics}from"./chunk-QTAMQ6ME.js";import{powerBudget}from"./chunk-D6YEHR5S.js";import{frameShiftDriveMassFactor,singleJumpRange,fuelPerJump,totalRange}from"./chunk-6O4NRRSB.js";import{calculateUnladenMass}from"./chunk-DCB4COCL.js";import{mobilityCapacitorMetrics}from"./chunk-XUHAPOM6.js";import{mobilityMetrics}from"./chunk-Y6KJJMIM.js";import{distributorMetrics}from"./chunk-YXPZ7QQB.js";import{getExperimentalEffectCost}from"./chunk-CJK2IBI2.js";import{heatMetrics}from"./chunk-Q2L75GSI.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{armourMetrics}from"./chunk-FYVPZBXN.js";import{getBlueprintCost}from"./chunk-MTJ4MS7W.js";import{sumMaterials}from"./chunk-CJQ37JII.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var FACADE="BuildMetrics";function requireLoadOptions(scope,options){for(const field of["fuel","cargo"]){const value=options[field];if(value!==void 0&&(!Number.isFinite(value)||value<0)){throw new RangeError(`${scope}: ${field} must be a finite non-negative number`)}}}function requirePipAllocation(scope,name,value){if(!Number.isFinite(value)||value<0||value>4){throw new RangeError(`${scope}: ${name} must be a finite number from 0 to 4`)}return value}var BuildMetrics=class _BuildMetrics{#build;#state;constructor(build,state){this.#build=build;this.#state=state}static of(build){return new _BuildMetrics(build,loadoutInternals(build,`${FACADE}.of: build`))}loadout(){return this.#build}frameShiftDrive(){const drive=this.#state.resolveDrive();if(drive===null){throw new TypeError(`${FACADE}: build has no frame shift drive`)}return drive}thrusters(){return fittedThrusterParamsFor(this.#state.modules(),this.#state.statsFor)}frameShiftDriveMassFactor(options={}){requireLoadOptions(`${FACADE}.frameShiftDriveMassFactor`,options);return frameShiftDriveMassFactor(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}maxJumpRange(){const fsd=this.frameShiftDrive();return singleJumpRange(this.#loadedMass(0),this.#maxJumpFuel(fsd),fsd)}jumpRange(options={}){requireLoadOptions(`${FACADE}.jumpRange`,options);return singleJumpRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}ladenJumpRange(){return this.jumpRange({cargo:this.#build.cargoCapacity})}fuelPerJump(distance,options={}){requireLoadOptions(`${FACADE}.fuelPerJump`,options);return fuelPerJump(distance,this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}totalRange(options={}){requireLoadOptions(`${FACADE}.totalRange`,options);return totalRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}standardLoad(load){return this.#standardLoad("standardLoad",load).value}standardLoadResult(load){return this.#standardLoad("standardLoadResult",load)}jumpRangeSummary(){const maximum=this.#require(this.standardLoadResult("maximum"),"maximum load");const unladen=this.#require(this.standardLoadResult("unladen"),"unladen load");const laden=this.#require(this.standardLoadResult("laden"),"laden load");return{max:this.jumpRange(maximum),unladen:this.jumpRange(unladen),laden:this.jumpRange(laden),totalMax:this.totalRange(maximum),totalUnladen:this.totalRange(unladen),totalLaden:this.totalRange(laden)}}buildMass(options={}){requireLoadOptions(`${FACADE}.buildMass`,options);const unladen=this.#build.unladenMass;const fuel=options.fuel??this.#build.fuelCapacity.main;const cargo=options.cargo??0;return Object.freeze({hull:this.#state.ship.hullMass,modules:calculateUnladenMass(0,this.#state.calculationModules()),unladen:unladen,fuel:fuel,cargo:cargo,total:unladen+fuel+cargo})}buildCost(){const hull=this.#state.ship.hullCost;let modules=0;let mercCoins=0;const unpriced=[];const materials=[];for(const module of this.#state.modules()){const stats=this.#state.statsFor(module);if(stats?.cost!==void 0){modules+=stats.cost}else if(stats!==null||!isNonOutfittingSlot(module.Slot)&&!isBuiltInHullModule(module)){unpriced.push({slot:module.Slot,symbol:module.Item})}const variant=identifyPreEngineeredVariant(module);mercCoins+=variant?.mercCoinCost??0;const engineering=module.Engineering;if(!engineering)continue;const grade=engineering.Level;const bought=variant?.grade??0;if(Number.isInteger(grade)&&grade>bought&&grade<=5){const climb=getBlueprintCost(engineering.BlueprintName,grade,bought);if(climb){materials.push(climb.materials);mercCoins+=climb.mercCoins}}const experimental=engineering.ExperimentalEffect;if(experimental!==void 0&&experimental.toLowerCase()!==variant?.experimentalEffectSymbol?.toLowerCase()){const cost=getExperimentalEffectCost(experimental);if(cost)materials.push(cost)}}return deepFreeze({credits:{total:hull+modules,hull:hull,modules:modules,rebuy:Math.trunc((hull+modules)*.05),unpriced:unpriced},mercCoins:mercCoins,materials:sumMaterials(...materials)})}powerBudget(){const modules=this.#state.modules();const consumers=[];for(const module of modules){const consumer=powerConsumerFor(module,this.#state.statsFor(module));if(consumer)consumers.push(consumer)}return powerBudget(powerAvailable(modules,this.#state.statsFor),consumers)}heatMetrics(){return this.heatMetricsResult().value}heatMetricsResult(){const input=heatInputResultFor(this.#state.ship,this.#state.effectiveModules(),this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(heatMetrics(input.value)):input}mobilityMetrics(options={}){return this.#mobility("mobilityMetrics",options).value}mobilityMetricsResult(options={}){return this.#mobility("mobilityMetricsResult",options)}mobilityCapacitorMetrics(options={}){return this.#mobilityCapacitor("mobilityCapacitorMetrics",options).value}mobilityCapacitorMetricsResult(options={}){return this.#mobilityCapacitor("mobilityCapacitorMetricsResult",options)}shieldMetrics(){return this.#shields().value}shieldMetricsResult(){return this.#shields()}shieldCapacitorMetrics(options={}){return this.#shieldCapacitor("shieldCapacitorMetrics",options).value}shieldCapacitorMetricsResult(options={}){return this.#shieldCapacitor("shieldCapacitorMetricsResult",options)}shieldRecovery(options={}){return this.#recovery("shieldRecovery",options).value}shieldRecoveryResult(options={}){return this.#recovery("shieldRecoveryResult",options)}cellBanks(){return cellBankSummary(orderBySlotLayout(cellBankInputsFor(this.#state.modules(),this.powerBudget(),this.#state.statsFor),this.#state.layout(),bank=>bank.slot))}armourMetrics(){return armourMetrics(armourInputFor(this.#state.ship,this.#state.modules(),this.#state.statsFor))}weaponMetrics(){const weapons=[];for(const module of this.#state.modules()){const record=this.#state.statsFor(module);const stats=weaponStatsFor(this.#state.effectiveModule(module),record);if(!stats)continue;weapons.push({slot:module.Slot,symbol:module.Item,name:record?.name??module.Item,enabled:module.On!==false,metrics:weaponMetrics(stats),ammunition:ammunitionCapacity(stats),...stats.maximumRange===void 0?{}:{maximumRange:stats.maximumRange},...stats.falloffRange===void 0?{}:{falloffRange:stats.falloffRange},...stats.projectileRange===void 0?{}:{projectileRange:{...stats.projectileRange}},...stats.armourPiercing===void 0?{}:{armourPiercing:stats.armourPiercing}})}const orderedWeapons=orderBySlotLayout(weapons,this.#state.layout(),weapon=>weapon.slot);return{weapons:orderedWeapons,total:sumWeaponMetrics(orderedWeapons.filter(weapon=>weapon.enabled).map(weapon=>weapon.metrics))}}weaponsCapacitorMetrics(options={}){const weaponsPips=requirePipAllocation(`${FACADE}.weaponsCapacitorMetrics`,"weaponsPips",options.weaponsPips??4);return weaponsCapacitorMetrics(weaponsCapacitorInputFor(this.#state.effectiveModules(),weaponsPips,this.powerBudget(),this.#state.statsFor))}distributorMetrics(options={}){return this.#distributor("distributorMetrics",options).value}distributorMetricsResult(options={}){return this.#distributor("distributorMetricsResult",options)}#mobility(method,options){const input=this.#mobilityInput(`${FACADE}.${method}`,options);return input.complete?completeResult(mobilityMetrics(input.value)):input}#mobilityCapacitor(method,options){const scope=`${FACADE}.${method}`;const enginesPips=requirePipAllocation(scope,"enginesPips",options.enginesPips??4);const input=this.#mobilityInput(scope,options);return input.complete?completeResult(mobilityCapacitorMetrics({...input.value,enginesPips:enginesPips})):input}#mobilityInput(scope,options){requireLoadOptions(scope,options);return mobilityInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),()=>this.#loadedMass(options.cargo??0)+(options.fuel??this.#state.statedMainFuel()??this.#build.fuelCapacity.main),this.#state.statsFor)}#shields(){const input=shieldInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(shieldMetrics(input.value)):input}#shieldCapacitor(method,options){const systemsPips=requirePipAllocation(`${FACADE}.${method}`,"systemsPips",options.systemsPips??4);const input=shieldCapacitorInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldCapacitorMetrics(input.value)):input}#recovery(method,options){const systemsPips=requirePipAllocation(`${FACADE}.${method}`,"systemsPips",options.systemsPips??4);const input=shieldRecoveryInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldRecovery(input.value)):input}#distributor(method,options){const scope=`${FACADE}.${method}`;const pips={systemsPips:requirePipAllocation(scope,"systemsPips",options.systemsPips??4),enginesPips:requirePipAllocation(scope,"enginesPips",options.enginesPips??4),weaponsPips:requirePipAllocation(scope,"weaponsPips",options.weaponsPips??4)};const input=distributorInputResultFor(this.#state.effectiveModules(),pips,this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(distributorMetrics(input.value)):input}#standardLoad(method,load){if(load!=="maximum"&&load!=="unladen"&&load!=="laden"){throw new RangeError(`${FACADE}.${method}: load must be 'maximum', 'unladen', or 'laden'`)}const fuel=this.#build.fuelCapacity;const cargo=load==="laden"?this.#build.cargoCapacity:0;const mass=load==="maximum"?this.#build.unladenMass:0;let drive=null;let maximumFuel=null;if(load==="maximum"){const fitted=this.#state.frameShiftDriveModule();let driveError=null;try{drive=this.#state.resolveDrive();maximumFuel=drive?.maxFuel??null}catch(error){if(!(error instanceof Error))throw error;driveError=error}if(maximumFuel===null){return incompleteResult([{field:"frameShiftDrive",reason:fitted?"unresolved":"missing",slot:fitted?.Slot??"FrameShiftDrive",...fitted?{symbol:fitted.Item}:{},message:driveError?.message??"FrameShiftDrive: no frame shift drive is fitted",params:fitted?{field:"frameShiftDrive",reason:"unresolved",slot:fitted.Slot,symbol:fitted.Item}:{field:"frameShiftDrive",reason:"missing",slot:"FrameShiftDrive"}}])}}const carriedFuel=load==="maximum"?Math.min(fuel.main,maximumFuel):fuel.main;const value=Object.freeze({fuel:carriedFuel,cargo:cargo,mass:this.#build.unladenMass+carriedFuel+cargo});if(load==="maximum"){try{this.jumpRange(value)}catch(error){if(!(error instanceof RangeError))throw error;const fitted=this.#state.frameShiftDriveModule();const field=drive!==null&&(!Number.isFinite(drive.maxFuel)||drive.maxFuel<0)?"frameShiftDrive":!Number.isFinite(value.fuel)||value.fuel<0?"fuelCapacity":!Number.isFinite(mass)||mass<0?"mass":"frameShiftDrive";const driveParams=field==="frameShiftDrive"&&fitted?{slot:fitted.Slot,symbol:fitted.Item}:{};return incompleteResult([{field:field,reason:"invalid",...driveParams,message:error.message,params:{field:field,reason:"invalid",...driveParams}}])}}return completeResult(value)}#require(result,what){if(result.value===null){throw new TypeError(`${FACADE}: cannot determine ${what} (${result.issues.map(issue=>issue.message).join("; ")})`)}return result.value}#loadedMass(cargo){return this.#build.unladenMass+cargo}#maxJumpFuel(fsd){return Math.min(this.#build.fuelCapacity.main,fsd.maxFuel)}};export{BuildMetrics};//# sourceMappingURL=chunk-PY5L6WC5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/build-metrics.ts"],"names":["weaponsCapacitorMetrics","shieldCapacitorMetrics","cellBankSummary","shieldRecovery","loadoutInternals","fittedThrusterParamsFor","powerConsumerFor","powerAvailable","heatInputResultFor","completeResult","cellBankInputsFor","armourInputFor","weaponStatsFor","weaponsCapacitorInputFor","mobilityInputResultFor","shieldInputResultFor","shieldCapacitorInputResultFor","shieldRecoveryInputResultFor","distributorInputResultFor","incompleteResult","isNonOutfittingSlot","isBuiltInHullModule","identifyPreEngineeredVariant","orderBySlotLayout","weaponMetrics","sumWeaponMetrics","shieldMetrics","powerBudget","frameShiftDriveMassFactor","singleJumpRange","fuelPerJump","totalRange","calculateUnladenMass","mobilityCapacitorMetrics","mobilityMetrics","distributorMetrics","getExperimentalEffectCost","heatMetrics","ammunitionCapacity","armourMetrics","getBlueprintCost","sumMaterials","deepFreeze","FACADE","requireLoadOptions","scope","options","field","value","Number","isFinite","RangeError","requirePipAllocation","name","BuildMetrics","_BuildMetrics","build","state","constructor","this","of","loadout","frameShiftDrive","drive","resolveDrive","TypeError","thrusters","modules","statsFor","loadedMass","cargo","fuel","fuelCapacity","main","maxJumpRange","fsd","maxJumpFuel","jumpRange","ladenJumpRange","cargoCapacity","distance","standardLoad","load","standardLoadResult","jumpRangeSummary","maximum","require","unladen","laden","max","totalMax","totalUnladen","totalLaden","buildMass","unladenMass","Object","freeze","hull","ship","hullMass","calculationModules","total","buildCost","hullCost","mercCoins","unpriced","materials","module","stats","cost","Slot","push","slot","symbol","Item","variant","mercCoinCost","engineering","Engineering","grade","Level","bought","isInteger","climb","BlueprintName","experimental","ExperimentalEffect","toLowerCase","experimentalEffectSymbol","credits","rebuy","Math","trunc","consumers","consumer","heatMetricsResult","input","effectiveModules","complete","mobility","mobilityMetricsResult","mobilityCapacitor","mobilityCapacitorMetricsResult","shields","shieldMetricsResult","shieldCapacitor","shieldCapacitorMetricsResult","recovery","shieldRecoveryResult","cellBanks","layout","bank","weapons","record","effectiveModule","enabled","On","metrics","ammunition","maximumRange","falloffRange","projectileRange","armourPiercing","orderedWeapons","weapon","filter","map","weaponsPips","distributor","distributorMetricsResult","method","mobilityInput","enginesPips","statedMainFuel","systemsPips","pips","mass","maximumFuel","fitted","frameShiftDriveModule","driveError","maxFuel","error","Error","reason","message","params","carriedFuel","min","driveParams","result","what","issues","issue","join"],"mappings":"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"}
@@ -1 +1 @@
1
- var OVERHEAT_HEAT_LEVEL=1.5;var DRAINED_CAPACITOR_MULTIPLIER=5;function equilibriumHeatLevel(dissipation,thermalLoad){requireNonNegative("equilibriumHeatLevel","dissipation",dissipation);requireNonNegative("equilibriumHeatLevel","thermal load",thermalLoad);if(dissipation===0)return thermalLoad===0?0:Infinity;return Math.sqrt(thermalLoad/dissipation)}function effectiveWeaponThermalLoad(thermalLoad,distributorDraw,weaponsCapacity,capacitorLevel){requireNonNegative("effectiveWeaponThermalLoad","thermal load",thermalLoad);requireNonNegative("effectiveWeaponThermalLoad","distributor draw",distributorDraw);requireNonNegative("effectiveWeaponThermalLoad","weapons capacity",weaponsCapacity);requireNonNegative("effectiveWeaponThermalLoad","capacitor level",capacitorLevel);if(capacitorLevel>1){throw new RangeError("effectiveWeaponThermalLoad: capacitor level must be at most 1")}if(weaponsCapacity===0){return thermalLoad*(distributorDraw>0?DRAINED_CAPACITOR_MULTIPLIER:1)}const shortfall=clamp(1-(weaponsCapacity*capacitorLevel-distributorDraw)/weaponsCapacity);return thermalLoad*(1+(DRAINED_CAPACITOR_MULTIPLIER-1)*shortfall)}function heatLevelAtTime(params){const{heatCapacity:heatCapacity,heatDissipation:heatDissipation,thermalLoad:thermalLoad,startLevel:startLevel,seconds:seconds}=params;validateHeatParams("heatLevelAtTime",heatCapacity,heatDissipation,thermalLoad,startLevel);requireNonNegative("heatLevelAtTime","seconds",seconds);if(seconds===0)return startLevel;const linearRate=(thermalLoad-heatDissipation)/heatCapacity;if(startLevel>=1){if(linearRate>=0)return startLevel+linearRate*seconds;const secondsToOne=(startLevel-1)/-linearRate;if(seconds<=secondsToOne)return startLevel+linearRate*seconds;return belowOneLevelAtTime(heatCapacity,heatDissipation,thermalLoad,1,seconds-secondsToOne)}if(thermalLoad>heatDissipation){const secondsToOne=belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,startLevel,1);if(seconds>secondsToOne)return 1+linearRate*(seconds-secondsToOne)}return belowOneLevelAtTime(heatCapacity,heatDissipation,thermalLoad,startLevel,seconds)}function secondsToHeatLevel(params){const{heatCapacity:heatCapacity,heatDissipation:heatDissipation,thermalLoad:thermalLoad,startLevel:startLevel,targetLevel:targetLevel}=params;validateHeatParams("secondsToHeatLevel",heatCapacity,heatDissipation,thermalLoad,startLevel);requireNonNegative("secondsToHeatLevel","target level",targetLevel);if(targetLevel===startLevel)return 0;const linearRate=(thermalLoad-heatDissipation)/heatCapacity;if(targetLevel>startLevel){let seconds2=0;let level2=startLevel;if(level2<1){const to=Math.min(targetLevel,1);seconds2=belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,level2,to);if(!Number.isFinite(seconds2)||targetLevel<=1)return seconds2;level2=1}if(linearRate<=0)return Infinity;return seconds2+(targetLevel-level2)/linearRate}let seconds=0;let level=startLevel;if(level>1){if(linearRate>=0)return Infinity;const to=Math.max(targetLevel,1);seconds=(level-to)/-linearRate;if(targetLevel>=1)return seconds;level=1}return seconds+belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,level,targetLevel)}function heatMetrics(input){const{heatCapacity:heatCapacity,heatDissipation:heatDissipation,heatEfficiency:heatEfficiency}=input;requireNonNegative("heatMetrics","heat capacity",heatCapacity);requireNonNegative("heatMetrics","heat dissipation",heatDissipation);if(heatCapacity===0)throw new RangeError("heatMetrics: heat capacity must be above 0");requireNonNegative("heatMetrics","heat efficiency",heatEfficiency);const retracted=requireNonNegative("heatMetrics","retracted power draw",input.retractedPowerDraw??0);const deployed=requireNonNegative("heatMetrics","deployed power draw",input.deployedPowerDraw??retracted);const thrusterHeat=requireNonNegative("heatMetrics","thruster heat rate",input.thrusterHeatRate??0);const deployedThrusterHeat=requireNonNegative("heatMetrics","deployed thruster heat rate",input.deployedThrusterHeatRate??thrusterHeat);const fsdHeat=requireNonNegative("heatMetrics","FSD heat rate",input.fsdHeatRate??0);const weaponsCapacity=requireNonNegative("heatMetrics","weapons capacity",input.weaponsCapacity??0);const idleLoad=retracted*heatEfficiency;const deployedLoad=deployed*heatEfficiency;const weaponHeat=capacitorLevel=>(input.weapons??[]).reduce((total,weapon)=>total+effectiveWeaponThermalLoad(weapon.heatPerSecond??0,weapon.distributorDraw??0,weaponsCapacity,capacitorLevel),0);const firingBase=deployedLoad+deployedThrusterHeat;const state=(load,base)=>heatState(heatCapacity,heatDissipation,load,base);return{heatEfficiency:heatEfficiency,hullHeatCapacity:heatCapacity,hullHeatDissipation:heatDissipation,idle:state(idleLoad,0),thrusters:state(idleLoad+thrusterHeat,idleLoad),fsdCharging:state(idleLoad+thrusterHeat+fsdHeat,idleLoad+thrusterHeat),firingSustained:state(firingBase+weaponHeat(1),firingBase),firingDrained:state(firingBase+weaponHeat(0),firingBase)}}function heatState(heatCapacity,heatDissipation,thermalLoad,baseLoad){const overheats=thermalLoad>heatDissipation;const heatLevel=overheats?Infinity:equilibriumHeatLevel(heatDissipation,thermalLoad);const baseLevel=baseLoad>heatDissipation?1:equilibriumHeatLevel(heatDissipation,baseLoad);return{thermalLoad:thermalLoad,heatLevel:heatLevel,gauge:heatLevel/OVERHEAT_HEAT_LEVEL,overheats:overheats,secondsToOverheat:overheats?secondsToHeatLevel({heatCapacity:heatCapacity,heatDissipation:heatDissipation,thermalLoad:thermalLoad,startLevel:baseLevel,targetLevel:OVERHEAT_HEAT_LEVEL}):null}}function belowOneLevelAtTime(heatCapacity,heatDissipation,thermalLoad,startLevel,seconds){const dissipationRate=heatDissipation/heatCapacity;if(heatDissipation===0)return startLevel+thermalLoad/heatCapacity*seconds;if(thermalLoad===0){if(startLevel===0)return 0;return 1/(1/startLevel+dissipationRate*seconds)}const loadRate=thermalLoad/heatCapacity;const settled=Math.sqrt(loadRate/dissipationRate);const rate=Math.sqrt(dissipationRate*loadRate);if(startLevel===settled)return settled;if(startLevel<settled){return settled*Math.tanh(rate*seconds+Math.atanh(startLevel/settled))}return settled/Math.tanh(rate*seconds+Math.atanh(settled/startLevel))}function belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,startLevel,targetLevel){const dissipationRate=heatDissipation/heatCapacity;if(heatDissipation===0){if(targetLevel<startLevel||thermalLoad===0)return Infinity;return(targetLevel-startLevel)*heatCapacity/thermalLoad}if(thermalLoad===0){if(targetLevel>startLevel)return Infinity;if(targetLevel===0)return Infinity;return(1/targetLevel-1/startLevel)/dissipationRate}const loadRate=thermalLoad/heatCapacity;const settled=Math.sqrt(loadRate/dissipationRate);const rate=Math.sqrt(dissipationRate*loadRate);if(targetLevel>startLevel?targetLevel>=settled:targetLevel<=settled)return Infinity;const from=startLevel<settled?startLevel/settled:settled/startLevel;const to=startLevel<settled?targetLevel/settled:settled/targetLevel;return(Math.atanh(to)-Math.atanh(from))/rate}function clamp(value){return Math.min(Math.max(value,0),1)}function requireNonNegative(caller,what,value){if(!Number.isFinite(value)||value<0){throw new RangeError(`${caller}: ${what} must be a finite non-negative number`)}return value}function validateHeatParams(caller,heatCapacity,heatDissipation,thermalLoad,startLevel){requireNonNegative(caller,"heat capacity",heatCapacity);requireNonNegative(caller,"heat dissipation",heatDissipation);requireNonNegative(caller,"thermal load",thermalLoad);requireNonNegative(caller,"start level",startLevel);if(heatCapacity===0)throw new RangeError(`${caller}: heat capacity must be above 0`)}export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel};//# sourceMappingURL=chunk-W6EPHHTS.js.map
1
+ var OVERHEAT_HEAT_LEVEL=1.5;var DRAINED_CAPACITOR_MULTIPLIER=5;function equilibriumHeatLevel(dissipation,thermalLoad){requireNonNegative("equilibriumHeatLevel","dissipation",dissipation);requireNonNegative("equilibriumHeatLevel","thermal load",thermalLoad);if(dissipation===0)return thermalLoad===0?0:Infinity;return Math.sqrt(thermalLoad/dissipation)}function effectiveWeaponThermalLoad(thermalLoad,distributorDraw,weaponsCapacity,capacitorLevel){requireNonNegative("effectiveWeaponThermalLoad","thermal load",thermalLoad);requireNonNegative("effectiveWeaponThermalLoad","distributor draw",distributorDraw);requireNonNegative("effectiveWeaponThermalLoad","weapons capacity",weaponsCapacity);requireNonNegative("effectiveWeaponThermalLoad","capacitor level",capacitorLevel);if(capacitorLevel>1){throw new RangeError("effectiveWeaponThermalLoad: capacitor level must be at most 1")}if(weaponsCapacity===0){return thermalLoad*(distributorDraw>0?DRAINED_CAPACITOR_MULTIPLIER:1)}const shortfall=clamp(1-(weaponsCapacity*capacitorLevel-distributorDraw)/weaponsCapacity);return thermalLoad*(1+(DRAINED_CAPACITOR_MULTIPLIER-1)*shortfall)}function heatLevelAtTime(params){const{heatCapacity:heatCapacity,heatDissipation:heatDissipation,thermalLoad:thermalLoad,startLevel:startLevel,seconds:seconds}=params;validateHeatParams("heatLevelAtTime",heatCapacity,heatDissipation,thermalLoad,startLevel);requireNonNegative("heatLevelAtTime","seconds",seconds);if(seconds===0)return startLevel;const linearRate=(thermalLoad-heatDissipation)/heatCapacity;if(startLevel>=1){if(linearRate>=0)return startLevel+linearRate*seconds;const secondsToOne=(startLevel-1)/-linearRate;if(seconds<=secondsToOne)return startLevel+linearRate*seconds;return belowOneLevelAtTime(heatCapacity,heatDissipation,thermalLoad,1,seconds-secondsToOne)}if(thermalLoad>heatDissipation){const secondsToOne=belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,startLevel,1);if(seconds>secondsToOne)return 1+linearRate*(seconds-secondsToOne)}return belowOneLevelAtTime(heatCapacity,heatDissipation,thermalLoad,startLevel,seconds)}function secondsToHeatLevel(params){const{heatCapacity:heatCapacity,heatDissipation:heatDissipation,thermalLoad:thermalLoad,startLevel:startLevel,targetLevel:targetLevel}=params;validateHeatParams("secondsToHeatLevel",heatCapacity,heatDissipation,thermalLoad,startLevel);requireNonNegative("secondsToHeatLevel","target level",targetLevel);if(targetLevel===startLevel)return 0;const linearRate=(thermalLoad-heatDissipation)/heatCapacity;if(targetLevel>startLevel){let seconds2=0;let level2=startLevel;if(level2<1){const to=Math.min(targetLevel,1);seconds2=belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,level2,to);if(!Number.isFinite(seconds2)||targetLevel<=1)return seconds2;level2=1}if(linearRate<=0)return Infinity;return seconds2+(targetLevel-level2)/linearRate}let seconds=0;let level=startLevel;if(level>1){if(linearRate>=0)return Infinity;const to=Math.max(targetLevel,1);seconds=(level-to)/-linearRate;if(targetLevel>=1)return seconds;level=1}return seconds+belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,level,targetLevel)}function heatMetrics(input){const{heatCapacity:heatCapacity,heatDissipation:heatDissipation,heatEfficiency:heatEfficiency}=input;requireNonNegative("heatMetrics","heat capacity",heatCapacity);requireNonNegative("heatMetrics","heat dissipation",heatDissipation);if(heatCapacity===0)throw new RangeError("heatMetrics: heat capacity must be above 0");requireNonNegative("heatMetrics","heat efficiency",heatEfficiency);const retracted=requireNonNegative("heatMetrics","retracted power draw",input.retractedPowerDraw??0);const deployed=requireNonNegative("heatMetrics","deployed power draw",input.deployedPowerDraw??retracted);const thrusterHeat=requireNonNegative("heatMetrics","thruster heat rate",input.thrusterHeatRate??0);const deployedThrusterHeat=requireNonNegative("heatMetrics","deployed thruster heat rate",input.deployedThrusterHeatRate??thrusterHeat);const fsdHeat=requireNonNegative("heatMetrics","FSD heat rate",input.fsdHeatRate??0);const weaponsCapacity=requireNonNegative("heatMetrics","weapons capacity",input.weaponsCapacity??0);const idleLoad=retracted*heatEfficiency;const deployedLoad=deployed*heatEfficiency;const weaponHeat=capacitorLevel=>(input.weapons??[]).reduce((total,weapon)=>total+effectiveWeaponThermalLoad(weapon.heatPerSecond??0,weapon.distributorDraw??0,weaponsCapacity,capacitorLevel),0);const firingBase=deployedLoad+deployedThrusterHeat;const state=(load,base)=>heatState(heatCapacity,heatDissipation,load,base);return Object.freeze({heatEfficiency:heatEfficiency,hullHeatCapacity:heatCapacity,hullHeatDissipation:heatDissipation,idle:state(idleLoad,0),thrusters:state(idleLoad+thrusterHeat,idleLoad),fsdCharging:state(idleLoad+thrusterHeat+fsdHeat,idleLoad+thrusterHeat),firingSustained:state(firingBase+weaponHeat(1),firingBase),firingDrained:state(firingBase+weaponHeat(0),firingBase)})}function heatState(heatCapacity,heatDissipation,thermalLoad,baseLoad){const overheats=thermalLoad>heatDissipation;const heatLevel=overheats?Infinity:equilibriumHeatLevel(heatDissipation,thermalLoad);const baseLevel=baseLoad>heatDissipation?1:equilibriumHeatLevel(heatDissipation,baseLoad);return Object.freeze({thermalLoad:thermalLoad,heatLevel:heatLevel,gauge:heatLevel/OVERHEAT_HEAT_LEVEL,overheats:overheats,secondsToOverheat:overheats?secondsToHeatLevel({heatCapacity:heatCapacity,heatDissipation:heatDissipation,thermalLoad:thermalLoad,startLevel:baseLevel,targetLevel:OVERHEAT_HEAT_LEVEL}):null})}function belowOneLevelAtTime(heatCapacity,heatDissipation,thermalLoad,startLevel,seconds){const dissipationRate=heatDissipation/heatCapacity;if(heatDissipation===0)return startLevel+thermalLoad/heatCapacity*seconds;if(thermalLoad===0){if(startLevel===0)return 0;return 1/(1/startLevel+dissipationRate*seconds)}const loadRate=thermalLoad/heatCapacity;const settled=Math.sqrt(loadRate/dissipationRate);const rate=Math.sqrt(dissipationRate*loadRate);if(startLevel===settled)return settled;if(startLevel<settled){return settled*Math.tanh(rate*seconds+Math.atanh(startLevel/settled))}return settled/Math.tanh(rate*seconds+Math.atanh(settled/startLevel))}function belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,startLevel,targetLevel){const dissipationRate=heatDissipation/heatCapacity;if(heatDissipation===0){if(targetLevel<startLevel||thermalLoad===0)return Infinity;return(targetLevel-startLevel)*heatCapacity/thermalLoad}if(thermalLoad===0){if(targetLevel>startLevel)return Infinity;if(targetLevel===0)return Infinity;return(1/targetLevel-1/startLevel)/dissipationRate}const loadRate=thermalLoad/heatCapacity;const settled=Math.sqrt(loadRate/dissipationRate);const rate=Math.sqrt(dissipationRate*loadRate);if(targetLevel>startLevel?targetLevel>=settled:targetLevel<=settled)return Infinity;const from=startLevel<settled?startLevel/settled:settled/startLevel;const to=startLevel<settled?targetLevel/settled:settled/targetLevel;return(Math.atanh(to)-Math.atanh(from))/rate}function clamp(value){return Math.min(Math.max(value,0),1)}function requireNonNegative(caller,what,value){if(!Number.isFinite(value)||value<0){throw new RangeError(`${caller}: ${what} must be a finite non-negative number`)}return value}function validateHeatParams(caller,heatCapacity,heatDissipation,thermalLoad,startLevel){requireNonNegative(caller,"heat capacity",heatCapacity);requireNonNegative(caller,"heat dissipation",heatDissipation);requireNonNegative(caller,"thermal load",thermalLoad);requireNonNegative(caller,"start level",startLevel);if(heatCapacity===0)throw new RangeError(`${caller}: heat capacity must be above 0`)}export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel};//# sourceMappingURL=chunk-Q2L75GSI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/heat.ts"],"names":["OVERHEAT_HEAT_LEVEL","DRAINED_CAPACITOR_MULTIPLIER","equilibriumHeatLevel","dissipation","thermalLoad","requireNonNegative","Infinity","Math","sqrt","effectiveWeaponThermalLoad","distributorDraw","weaponsCapacity","capacitorLevel","RangeError","shortfall","clamp","heatLevelAtTime","params","heatCapacity","heatDissipation","startLevel","seconds","validateHeatParams","linearRate","secondsToOne","belowOneLevelAtTime","belowOneSecondsToLevel","secondsToHeatLevel","targetLevel","level","to","min","Number","isFinite","max","heatMetrics","input","heatEfficiency","retracted","retractedPowerDraw","deployed","deployedPowerDraw","thrusterHeat","thrusterHeatRate","deployedThrusterHeat","deployedThrusterHeatRate","fsdHeat","fsdHeatRate","idleLoad","deployedLoad","weaponHeat","weapons","reduce","total","weapon","heatPerSecond","firingBase","state","load","base","heatState","Object","freeze","hullHeatCapacity","hullHeatDissipation","idle","thrusters","fsdCharging","firingSustained","firingDrained","baseLoad","overheats","heatLevel","baseLevel","gauge","secondsToOverheat","dissipationRate","loadRate","settled","rate","tanh","atanh","from","value","caller","what"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ function requirePips(scope,name,value){if(!Number.isFinite(value)||value<0||value>4){throw new RangeError(`${scope}: ${name} must be a finite number from 0 to 4`)}}export{requirePips};//# sourceMappingURL=chunk-QJ7GB6FF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/internal/pips.ts"],"names":["requirePips","scope","name","value","Number","isFinite","RangeError"],"mappings":"AAqBO,SAASA,YAAYC,MAAeC,KAAcC,OACrD,IAAKC,OAAOC,SAASF,QAAUA,MAAQ,GAAKA,MAAQ,EAAG,CACnD,MAAM,IAAIG,WAAW,GAAGL,UAAUC,2CACtC,CACJ,QAAAF"}
@@ -0,0 +1 @@
1
+ import{massCurveMultiplier}from"./chunk-EVW4Z4CB.js";import{mapDamageTypes,effectiveHitPoints,stackShieldResistance}from"./chunk-JGOAQLYW.js";var curveLabels=scope=>({scope:scope,mass:"hullMass",curve:"generator"});function generatorCurveMultiplier(scope,hullMass,generator){const{minMass:minMass,optMass:optMass,maxMass:maxMass,minMultiplier:minMultiplier,optMultiplier:optMultiplier,maxMultiplier:maxMultiplier}=generator;if(minMass===void 0||optMass===void 0||maxMass===void 0||minMultiplier===void 0||optMultiplier===void 0||maxMultiplier===void 0){return 0}return massCurveMultiplier(curveLabels(scope),hullMass,{minMass:minMass,optMass:optMass,maxMass:maxMass,minMultiplier:minMultiplier,optMultiplier:optMultiplier,maxMultiplier:maxMultiplier})}function shieldMassCurveMultiplier(hullMass,generator){return generatorCurveMultiplier("shieldMassCurveMultiplier",hullMass,generator)}function shieldStrength(hullMass,baseShieldStrength,generator,boostMultiplier=1){return baseShieldStrength*generatorCurveMultiplier("shieldStrength",hullMass,generator)*boostMultiplier}var boosterResistances=(boosters,type)=>boosters.map(booster=>booster[`${type}Resistance`]??0);function shieldMetrics(input){const boosters=input.boosters??[];const reinforcement=input.reinforcement??0;const generator=input.generator??null;if(!generator){const none=Object.freeze(mapDamageTypes(()=>0));return Object.freeze({strength:0,generator:0,boosters:0,reinforcement:0,massCurveMultiplier:0,boostMultiplier:1,resistances:none,effectiveHitPoints:Object.freeze(effectiveHitPoints(0,none))})}const massCurveMultiplier2=generatorCurveMultiplier("shieldMetrics",input.hullMass,generator);const boostMultiplier=1+boosters.reduce((sum,booster)=>sum+(booster.shieldBoost??0),0);const generatorStrength=input.baseShieldStrength*massCurveMultiplier2;const boostersStrength=generatorStrength*(boostMultiplier-1);const strength=generatorStrength+boostersStrength+reinforcement;const resistances=Object.freeze(mapDamageTypes(type=>stackShieldResistance(generator[`${type}Resistance`]??0,boosterResistances(boosters,type))));return Object.freeze({strength:strength,generator:generatorStrength,boosters:boostersStrength,reinforcement:reinforcement,massCurveMultiplier:massCurveMultiplier2,boostMultiplier:boostMultiplier,resistances:resistances,effectiveHitPoints:Object.freeze(effectiveHitPoints(strength,resistances))})}export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength};//# sourceMappingURL=chunk-QTAMQ6ME.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/shields.ts"],"names":["massCurveMultiplier","mapDamageTypes","effectiveHitPoints","stackShieldResistance","curveLabels","scope","mass","curve","generatorCurveMultiplier","hullMass","generator","minMass","optMass","maxMass","minMultiplier","optMultiplier","maxMultiplier","shieldMassCurveMultiplier","shieldStrength","baseShieldStrength","boostMultiplier","boosterResistances","boosters","type","map","booster","shieldMetrics","input","reinforcement","none","Object","freeze","strength","resistances","reduce","sum","shieldBoost","generatorStrength","boostersStrength"],"mappings":"O,uIAmLA,IAAMI,YAAeC,QAAA,CACjBA,YACAC,KAAM,WACNC,MAAO,cAQX,SAASC,yBACLH,MACAI,SACAC,WAEA,MAAMC,QAAEA,QAAAC,QAASA,QAAAC,QAASA,QAAAC,cAASA,cAAAC,cAAeA,cAAAC,cAAeA,eAAkBN,UACnF,GACIC,eAAY,GACZC,eAAY,GACZC,eAAY,GACZC,qBAAkB,GAClBC,qBAAkB,GAClBC,qBAAkB,EACpB,CAGE,OAAO,CACX,CAGA,OAAOhB,oBAAoBI,YAAYC,OAAQI,SAAU,CACrDE,gBACAC,gBACAC,gBACAC,4BACAC,4BACAC,6BAER,CA2DO,SAASC,0BACZR,SACAC,WAEA,OAAOF,yBAAyB,4BAA6BC,SAAUC,UAC3E,CAiBO,SAASQ,eACZT,SACAU,mBACAT,UACAU,gBAAkB,GAElB,OACID,mBACAX,yBAAyB,iBAAkBC,SAAUC,WACrDU,eAER,CAGA,IAAMC,mBAAqB,CAACC,SAA0CC,OAClED,SAASE,IAAKC,SAAYA,QAAQ,GAAGF,mBAAqB,GA2CvD,SAASG,cAAcC,OAC1B,MAAML,SAAWK,MAAML,UAAY,GACnC,MAAMM,cAAgBD,MAAMC,eAAiB,EAC7C,MAAMlB,UAAYiB,MAAMjB,WAAa,KAErC,IAAKA,UAAW,CACZ,MAAMmB,KAAOC,OAAOC,OAAO9B,eAAe,IAAM,IAChD,OAAO6B,OAAOC,OAAO,CACjBC,SAAU,EACVtB,UAAW,EACXY,SAAU,EACVM,cAAe,EACf5B,oBAAqB,EACrBoB,gBAAiB,EACjBa,YAAaJ,KACb3B,mBAAoB4B,OAAOC,OAAO7B,mBAAmB,EAAG2B,QAEhE,CAEA,MAAM7B,qBAAsBQ,yBACxB,gBACAmB,MAAMlB,SACNC,WAEJ,MAAMU,gBACF,EAAIE,SAASY,OAAO,CAACC,IAAKV,UAAYU,KAAOV,QAAQW,aAAe,GAAI,GAC5E,MAAMC,kBAAoBV,MAAMR,mBAAqBnB,qBACrD,MAAMsC,iBAAmBD,mBAAqBjB,gBAAkB,GAChE,MAAMY,SAAWK,kBAAoBC,iBAAmBV,cAExD,MAAMK,YAAiCH,OAAOC,OAC1C9B,eAAgBsB,MACZpB,sBACIO,UAAU,GAAGa,mBAAqB,EAClCF,mBAAmBC,SAAUC,SAKzC,OAAOO,OAAOC,OAAO,CACjBC,kBACAtB,UAAW2B,kBACXf,SAAUgB,iBACVV,4BACA5B,oBAAAA,qBACAoB,gCACAa,wBACA/B,mBAAoB4B,OAAOC,OAAO7B,mBAAmB8B,SAAUC,eAEvE,QAAAhB,0BAAAS,cAAAR"}
@@ -1 +1 @@
1
- import{capacitorRechargeAtPips}from"./chunk-JOTAOI5T.js";function requireFiniteNonNegative(scope,name,value){if(!Number.isFinite(value)||value<0){throw new RangeError(`${scope}: ${name} must be a finite non-negative number`)}}function weaponsCapacitorMetrics(input){const scope="weaponsCapacitorMetrics";const weaponsPips=input.weaponsPips??4;if(!Number.isFinite(weaponsPips)||weaponsPips<0||weaponsPips>4){throw new RangeError(`${scope}: weaponsPips must be a finite number from 0 to 4`)}for(const field of["weaponsCapacity","weaponsRecharge","sustainedEnergyPerSecond"]){requireFiniteNonNegative(scope,field,input[field])}const rechargeRate=capacitorRechargeAtPips(input.weaponsRecharge,weaponsPips);const netDrainRate=Math.max(0,input.sustainedEnergyPerSecond-rechargeRate);return{weaponsPips:weaponsPips,capacity:input.weaponsCapacity,rechargeRate:rechargeRate,sustainedEnergyPerSecond:input.sustainedEnergyPerSecond,netDrainRate:netDrainRate,timeToDrain:netDrainRate===0?Infinity:input.weaponsCapacity/netDrainRate}}export{weaponsCapacitorMetrics};//# sourceMappingURL=chunk-FMPRCYKY.js.map
1
+ import{capacitorRechargeAtPips}from"./chunk-JOTAOI5T.js";function requireFiniteNonNegative(scope,name,value){if(!Number.isFinite(value)||value<0){throw new RangeError(`${scope}: ${name} must be a finite non-negative number`)}}function weaponsCapacitorMetrics(input){const scope="weaponsCapacitorMetrics";const weaponsPips=input.weaponsPips??4;if(!Number.isFinite(weaponsPips)||weaponsPips<0||weaponsPips>4){throw new RangeError(`${scope}: weaponsPips must be a finite number from 0 to 4`)}for(const field of["weaponsCapacity","weaponsRecharge","sustainedEnergyPerSecond"]){requireFiniteNonNegative(scope,field,input[field])}const rechargeRate=capacitorRechargeAtPips(input.weaponsRecharge,weaponsPips);const netDrainRate=Math.max(0,input.sustainedEnergyPerSecond-rechargeRate);return Object.freeze({weaponsPips:weaponsPips,capacity:input.weaponsCapacity,rechargeRate:rechargeRate,sustainedEnergyPerSecond:input.sustainedEnergyPerSecond,netDrainRate:netDrainRate,timeToDrain:netDrainRate===0?Infinity:input.weaponsCapacity/netDrainRate})}export{weaponsCapacitorMetrics};//# sourceMappingURL=chunk-RRYBSAPX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/weapons-capacitor.ts"],"names":["capacitorRechargeAtPips","requireFiniteNonNegative","scope","name","value","Number","isFinite","RangeError","weaponsCapacitorMetrics","input","weaponsPips","field","rechargeRate","weaponsRecharge","netDrainRate","Math","max","sustainedEnergyPerSecond","Object","freeze","capacity","weaponsCapacity","timeToDrain","Infinity"],"mappings":"O,kDA0DA,SAASC,yBAAyBC,MAAeC,KAAcC,OAC3D,IAAKC,OAAOC,SAASF,QAAUA,MAAQ,EAAG,CACtC,MAAM,IAAIG,WAAW,GAAGL,UAAUC,4CACtC,CACJ,CAwBO,SAASK,wBAAwBC,OACpC,MAAMP,MAAQ,0BACd,MAAMQ,YAAcD,MAAMC,aAAe,EACzC,IAAKL,OAAOC,SAASI,cAAgBA,YAAc,GAAKA,YAAc,EAAG,CACrE,MAAM,IAAIH,WAAW,GAAGL,yDAC5B,CACA,IAAA,MAAWS,QAAS,CAChB,kBACA,kBACA,4BACQ,CACRV,yBAAyBC,MAAOS,MAAOF,MAAME,OACjD,CAEA,MAAMC,aAAeZ,wBAAwBS,MAAMI,gBAAiBH,aACpE,MAAMI,aAAeC,KAAKC,IAAI,EAAGP,MAAMQ,yBAA2BL,cAClE,OAAOM,OAAOC,OAAO,CACjBT,wBACAU,SAAUX,MAAMY,gBAChBT,0BACAK,yBAA0BR,MAAMQ,yBAChCH,0BACAQ,YAAaR,eAAiB,EAAIS,SAAWd,MAAMY,gBAAkBP,cAE7E,QAAAN"}
@@ -1 +1 @@
1
- import{getLocalizedName,createDeduplicatedLocalizedNameIndex}from"./chunk-RVIYOHYF.js";import{requireObject,requireString,requireStringIfPresent}from"./chunk-PKWVG2JY.js";var pre_engineered_variant_names_default={nameKeys:{"Hpt_Mining_AbrBlstr_Fixed_Small|AbrasionBlaster_FarReaching||mercenary":"Far-Reaching Abrasion Blaster","Hpt_CausticMissile_Fixed_Medium|EnzymeMissileRack_HighYield||mercenary":"High-Yield Enzyme Missile Rack","Hpt_Slugshot_Gimbal_Small|FragmentCannonSmall_DoubleScreaming||mercenary":"Double Screaming Fragment Cannon","Hpt_Slugshot_Gimbal_Large|FragmentCannonLarge_DoubleScreaming||mercenary":"Double Screaming Fragment Cannon","Hpt_MiningLaser_Fixed_Small|MiningLaser_LongRange||mercenary":"Long Range Mining Laser","Hpt_MultiCannon_Fixed_Medium|MultiCannon_Rapid||mercenary":"Rapid Phase Multi-Cannon","Hpt_Railgun_Fixed_Medium|RailGun_LongShot||mercenary":"Enduring Feedback Rail Gun","Hpt_BasicMissileRack_Fixed_Medium|SeekerMissileRack_Drag||mercenary":"Drag Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Large|SeekerMissileRack_Drag||mercenary":"Drag Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Medium|SeekerMissileRack_LightWeightThermal||mercenary":"Lightweight Thermal Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Medium|SeekerMissileRackMedium_Lockdown||mercenary":"Lockdown Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Large|SeekerMissileRackLarge_Lockdown||mercenary":"Lockdown Seeker Missile Rack","Int_CargoRack_Size5_Class1|CargoRackS5C1_Extended||mercenary":"Extended Cargo Rack","Int_CargoRack_Size6_Class1|CargoRackS6C1_Extended||mercenary":"Extended Cargo Rack","Int_DetailedSurfaceScanner_Tiny|DetailedSurfaceScanner_LongRange||mercenary":"Long Range Detailed Surface Scanner","Int_ModuleReinforcement_Size5_Class2|ModuleReinforcement_HeavyDuty||mercenary":"Heavy Duty Module Reinforcement Package","Int_PowerDistributor_Size3_Class2|PowerDistributorS3C2_SupportFocused||mercenary":"Support Focused Power Distributor","Int_PowerDistributor_Size3_Class5|PowerDistributorS3C5_SupportFocused||mercenary":"Support Focused Power Distributor","Int_PowerDistributor_Size4_Class2|PowerDistributorS4C2_SupportFocused||mercenary":"Support Focused Power Distributor","Int_PowerDistributor_Size4_Class5|PowerDistributorS4C5_SupportFocused||mercenary":"Support Focused Power Distributor","Int_PowerDistributor_Size5_Class5|PowerDistributor_Balanced||mercenary":"Balanced Power Distributor","Int_PowerDistributor_Size6_Class5|PowerDistributorS6C5_SupportFocused||mercenary":"Support Focused Power Distributor","Hpt_Mining_AbrBlstr_Fixed_Small|Weapon_LongRange||communityGoal":"Abrasion Blaster","Hpt_CausticMissile_Fixed_Medium|Weapon_HighCapacity||communityGoal":"Enzyme Missile Rack","Hpt_Slugshot_Gimbal_Small|Weapon_DoubleShot|special_screening_shell|communityGoal":"Fragment Cannon","Hpt_Slugshot_Gimbal_Large|Weapon_DoubleShot|special_screening_shell|communityGoal":"Fragment Cannon","Hpt_Guardian_ShardCannon_Fixed_Medium|Weapon_LongRange||communityGoal":"Guardian Shard Cannon","Hpt_MultiCannon_Fixed_Medium|Weapon_RapidFire|special_phasing_sequence|communityGoal":"Multi-Cannon","Hpt_Railgun_Fixed_Medium|Weapon_HighCapacity|special_feedback_cascade_cooled|communityGoal":"Rail Gun","Hpt_Railgun_Fixed_Medium_Burst|Weapon_HighCapacity|special_super_penetrator|communityGoal":"Imperial Hammer Rail Gun","Hpt_BasicMissileRack_Fixed_Medium|Weapon_HighCapacity|special_drag_munitions|communityGoal":"Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Medium|Weapon_HighCapacity|special_fsd_interrupt|communityGoal":"Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Large|Weapon_HighCapacity|special_fsd_interrupt|communityGoal":"Seeker Missile Rack","Hpt_ElectronicCountermeasure_Tiny|Misc_LightWeight||communityGoal":"Electronic Countermeasure","Hpt_CrimeScanner_Size0_Class5|Sensor_FastScan||communityGoal":"Kill Warrant Scanner","Hpt_CrimeScanner_Size0_Class3|Sensor_FastScan||communityGoal":"Kill Warrant Scanner","Hpt_PlasmaPointDefence_Turret_Tiny|Misc_LightWeight||communityGoal":"Point Defence","Int_PowerDistributor_Size3_Class5|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_PowerDistributor_Size3_Class2|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_PowerDistributor_Size4_Class5|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_PowerDistributor_Size4_Class2|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_PowerDistributor_Size6_Class5|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_Powerplant_Size3_Class5|PowerPlant_Armoured||communityGoal":"Power Plant","Int_Powerplant_Size3_Class5|PowerPlant_Boosted||communityGoal":"Power Plant","Int_Powerplant_Size4_Class5|PowerPlant_Boosted||communityGoal":"Power Plant","Int_Powerplant_Size5_Class5|PowerPlant_Boosted||communityGoal":"Power Plant","Int_Hyperdrive_Size3_Class5|FSD_LongRange||communityGoal":"Frame Shift Drive","Int_Hyperdrive_Size4_Class5|FSD_LongRange||communityGoal":"Frame Shift Drive","Int_Hyperdrive_Size6_Class5|FSD_LongRange||communityGoal":"Frame Shift Drive","Int_CargoRack_Size5_Class1|CargoRack_IncreasedCapacity||communityGoal":"Cargo Rack","Int_CargoRack_Size6_Class1|CargoRack_IncreasedCapacity||communityGoal":"Cargo Rack","Int_ShieldGenerator_Size3_Class5|ShieldGenerator_Kinetic||communityGoal":"Shield Generator","Hpt_ATDumbfireMissile_Fixed_Medium|Weapon_HighCapacity||techBroker":"AX Missile Rack","Hpt_ATDumbfireMissile_Fixed_Large|Weapon_HighCapacity||techBroker":"AX Missile Rack","Hpt_ATMultiCannon_Gimbal_Medium|Weapon_Overcharged|special_auto_loader|techBroker":"Enhanced AX Multi-Cannon","Hpt_ATMultiCannon_Gimbal_Large|Weapon_Overcharged|special_auto_loader|techBroker":"Enhanced AX Multi-Cannon","Hpt_Guardian_GaussCannon_Fixed_Small|Weapon_RapidFire||techBroker":"Guardian Gauss Cannon","Hpt_Guardian_GaussCannon_Fixed_Medium|Weapon_RapidFire||techBroker":"Guardian Gauss Cannon","Hpt_Guardian_PlasmaLauncher_Fixed_Small|Weapon_Overcharged||techBroker":"Guardian Plasma Charger","Hpt_Guardian_PlasmaLauncher_Fixed_Medium|Weapon_Overcharged||techBroker":"Guardian Plasma Charger","Hpt_Guardian_ShardCannon_Fixed_Small|Weapon_LongRange||techBroker":"Guardian Shard Cannon","Hpt_Guardian_ShardCannon_Fixed_Medium|Weapon_LongRange||techBroker":"Guardian Shard Cannon","Hpt_MiningLaser_Fixed_Small|Weapon_LongRange|special_incendiary_rounds|techBroker":"Mining Laser","Hpt_BasicMissileRack_Fixed_Medium|Weapon_HighCapacity|special_thermal_cascade|techBroker":"Seeker Missile Rack","Hpt_HeatSinkLauncher_Turret_Tiny|Misc_HeatSinkCapacity||techBroker":"Heat Sink Launcher","Int_Hyperdrive_Size5_Class5|FSD_LongRange||techBroker":"Frame Shift Drive","Int_Hyperdrive_Overcharge_Size2_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size3_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size4_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size5_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size6_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size7_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_DetailedSurfaceScanner_Tiny|Sensor_Expanded||techBroker":"Detailed Surface Scanner","Hpt_FlakMortar_Turret_Medium|Decorative_Green||eventReward":"Festive Green Remote Release Flak Launcher","Hpt_FlakMortar_Turret_Medium|Decorative_Red||eventReward":"Festive Red Remote Release Flak Launcher","Hpt_FlakMortar_Turret_Medium|Decorative_Yellow||eventReward":"Festive Yellow Remote Release Flak Launcher"},names:{"Far-Reaching Abrasion Blaster":{en:"Far-Reaching Abrasion Blaster",de:"Abrasionsblaster mit großer Reichweite",es:"Destructor de abrasión de largo alcance",fr:"Surfaceur abrasif longue portée",ru:"Абразивный бластер с увеличенной дальностью"},"High-Yield Enzyme Missile Rack":{en:"High-Yield Enzyme Missile Rack",de:"Enzymraketenrampe mit hohen Erträgen",es:"Lanzamisiles de enzimas de alto rendimiento",fr:"Batterie de missiles enzymatiques à hauts rendements",ru:"Блок энзимных ракет высокой мощности"},"Double Screaming Fragment Cannon":{en:"Double Screaming Fragment Cannon",de:"Doppelschrei-Splitterkanone",es:"Cañón de fragmentación doble con proyectil de pantalla",fr:"Double canon à fragmentation Screaming",ru:"Залповое орудие «Двойной вой»"},"Long Range Mining Laser":{en:"Long Range Mining Laser",de:"Ferndistanz-Abbaulaser",es:"Láser de minería de largo alcance",fr:"Laser minier longue portée",ru:"Проходочный лазер с увеличенной дальностью"},"Rapid Phase Multi-Cannon":{en:"Rapid Phase Multi-Cannon",de:"Schnellfeuer-Mehrfachgeschütz",es:"Multicañón de fase con disparo rápido",fr:"Multi-canon à phase rapide",ru:"Скорострельное фазовое многоствольное орудие"},"Enduring Feedback Rail Gun":{en:"Enduring Feedback Rail Gun",de:"Robuste Feedback-Schienenkanone",es:"Cañón de riel Retroalimentación Soportable",fr:"Canon électrique énergétique résistant",ru:"Электромагнитная пушка с постоянным откликом"},"Drag Seeker Missile Rack":{en:"Drag Seeker Missile Rack",de:"Suchraketenrampe ziehen",es:"Lanzamisiles guiado con lastre",fr:"Batterie de missiles TC à inertie",ru:"Блок ракет с самонаведением и замедляющими боеприпасами"},"Lightweight Thermal Seeker Missile Rack":{en:"Lightweight Thermal Seeker Missile Rack",de:"Leichte thermische Suchraketenrampe",es:"Lanzamisiles guiado térmico ligero",fr:"Batterie de missiles TC thermiques légers",ru:"Легкий блок тепловых ракет с самонаведением"},"Lockdown Seeker Missile Rack":{en:"Lockdown Seeker Missile Rack",de:"Abriegelung-Suchraketenrampe",es:"Lanzamisiles guiado con bloqueo",fr:"Batterie de missiles TC à verrouillage",ru:"Блок ракет с самонаведением и блокировкой"},"Extended Cargo Rack":{en:"Extended Cargo Rack",de:"Erweitertes Frachtgestell",es:"Bodega de carga extendida",fr:"Compartiment soute agrandi",ru:"Увеличенный грузовой стеллаж"},"Long Range Detailed Surface Scanner":{en:"Long Range Detailed Surface Scanner",de:"Ferndistanz-Detail-Oberflächenscanner",es:"Escáner de análisis de superficie detallado de largo alcance",fr:"Détecteur de surface détaillé longue portée",ru:"Подробный сканер поверхностей с увеличенной дальностью"},"Heavy Duty Module Reinforcement Package":{en:"Heavy Duty Module Reinforcement Package",de:"Schwere Modulverstärkung (Paket)",es:"Paquete de refuerzo de módulo de alta resistencia",fr:"Pack de renforcement de modules lourds",ru:"Укрепленный набор для усиления модуля"},"Support Focused Power Distributor":{en:"Support Focused Power Distributor",de:"Unterstützungsfokussierter Energieverteiler",es:"Distribuidor de energía orientado al apoyo",fr:"Répartiteur de puissance optimisé Survie",ru:"Вспомогательный распределитель питания"},"Balanced Power Distributor":{en:"Balanced Power Distributor",de:"Abgeglichener Energieverteiler",es:"Distribuidor de energía equilibrado",fr:"Répartiteur de puissance équilibré",ru:"Сбалансированный распределитель энергии"},"Abrasion Blaster":{en:"Abrasion Blaster",de:"Abrasionsblaster",es:"Destructor de abrasión",fr:"Surfaceur abrasif",pt:"Detonador de Abrasão",ru:"Шлифовальный бластер"},"Enzyme Missile Rack":{en:"Enzyme Missile Rack",de:"Enzymraketenwerfer",es:"Lanzamisiles de Enzimas",fr:"Batterie de missile enzymatique",pt:"Estante de Míssel Enzimático",ru:"Пусковая энзимных ракет"},"Fragment Cannon":{en:"Fragment Cannon",de:"Splitterkanone",es:"Cañón de fragmentación",fr:"Canon à fragmentation",pt:"Canhão de Fragmentação",ru:"Залповое орудие"},"Mining Laser":{en:"Mining Laser",de:"Abbaulaser",es:"Láser de minería",fr:"Laser Minier",pt:"Laser de Mineração",ru:"Проходочный лазер"},"Multi-Cannon":{en:"Multi-Cannon",de:"Mehrfachgeschütz",es:"Multicañón",fr:"Multi-canon",pt:"Canhão de Repetição",ru:"Многоствольное орудие"},"Rail Gun":{en:"Rail Gun",de:"Schienenkanone",es:"Cañón de riel",fr:"Canon électrique",pt:"Canhão Elétrico",ru:"Электромагнитная пушка"},"Seeker Missile Rack":{en:"Seeker Missile Rack",de:"Suchraketenrampe",es:"Lanzamisiles guiados",fr:"Missiles TC",pt:"Estante de Míssil Guiado",ru:"Блок ракет с самонаведением"},"Cargo Rack":{en:"Cargo Rack",de:"Frachtgestell",es:"Bodega de carga",fr:"Compartiment de soute",pt:"Estante de Carga",ru:"Грузовой стеллаж"},"Detailed Surface Scanner":{en:"Detailed Surface Scanner",de:"Detail-Oberflächenscanner",es:"Escáner de superficie detallado",fr:"Détecteur de surface détaillé",pt:"Scanner de Superfície",ru:"Сканер поверхностей"},"Power Distributor":{en:"Power Distributor",de:"Energieverteiler",es:"Distribuidor de energía",fr:"Répartiteur de puissance",pt:"Distribuidor de Energia",ru:"Распределитель питания"},"Guardian Shard Cannon":{en:"Guardian Shard Cannon",de:"Fragmentkanone",es:"Cañón de esquirlas",fr:"Canon à éclats",pt:"Canhão de fragmentos",ru:"Осколочное орудие"},"Imperial Hammer Rail Gun":{en:"Imperial Hammer Rail Gun",de:"Hammer",es:"Martillo",fr:"Marteleur",pt:"Martelo",ru:"«Молот»"},"Electronic Countermeasure":{en:"Electronic Countermeasure",de:"Elektronische Gegenmaßnahme",es:"Contramedidas electrónicas",fr:"Contre-mesures électroniques",pt:"Contramedida Eletrônica",ru:"Электр. противодействие"},"Kill Warrant Scanner":{en:"Kill Warrant Scanner",de:"Tötungsbefehl-Scanner",es:"Escáner de recompensas",fr:"Détecteur d'avis de recherche",pt:"Scanner de Registro Criminal",ru:"Сканер преступников"},"Point Defence":{en:"Point Defence",de:"Punktverteidigung",es:"Defensa de punto",fr:"Défense ponctuelle",pt:"Defesa de Ponto",ru:"Точечная оборона"},"Power Plant":{en:"Power Plant",de:"Kraftwerk",es:"Núcleo de energía",fr:"Générateur",pt:"Gerador de Energia",ru:"Силовая установка"},"Frame Shift Drive":{en:"Frame Shift Drive",de:"Frameshiftantrieb",es:"Motor de salto",fr:"Réacteur FSD",pt:"Motor de Distorção de Fase",ru:"Рамочно Сместительный двигатель"},"Shield Generator":{en:"Shield Generator",de:"Schildgenerator",es:"Generador de escudos",fr:"Générateur de bouclier",pt:"Gerador de Escudo",ru:"Щитогенератор"},"AX Missile Rack":{en:"AX Missile Rack",de:"AX-Raketenrampe",es:"Lanzamisiles AX",fr:"Batterie de missiles AX",pt:"Estante de Mísseis AX",ru:"Блок ракет АИ"},"Enhanced AX Multi-Cannon":{en:"Enhanced AX Multi-Cannon",de:"Fortschrittliches AX Mehrfachgeschütz",pt:"Canhão de Repetição AX Melhorado",ru:"Улучш. многоствольное орудие АИ"},"Guardian Gauss Cannon":{en:"Guardian Gauss Cannon",de:"Guardian-Gausskanone",es:"Cañón Gauss Guardián",fr:"Canon de Gauss - Guardians",pt:"Canhão Gauss Guardian",ru:"Пушка Гаусса"},"Guardian Plasma Charger":{en:"Guardian Plasma Charger",de:"Guardian-Plasmalader",es:"Cargador de Plasma Guardián",fr:"Chargeur à Plasma - Guardians",pt:"Carregador de Plasma Guardian",ru:"Плазменная пушка"},"Heat Sink Launcher":{en:"Heat Sink Launcher",de:"Kühlkörperabwurf",es:"Eyector térmico",fr:"Éjecteur de dissipateur thermique",pt:"Lançador de Dissipador Térmico",ru:"Теплоотводная катапульта"},"Frame Shift Drive (SCO)":{en:"Frame Shift Drive (SCO)",pt:"Motor de Distorção de Fase (SSV)",ru:"Двигатель FSD (ПГР)"},"Festive Green Remote Release Flak Launcher":{en:"Festive Green Remote Release Flak Launcher"},"Festive Red Remote Release Flak Launcher":{en:"Festive Red Remote Release Flak Launcher"},"Festive Yellow Remote Release Flak Launcher":{en:"Festive Yellow Remote Release Flak Launcher"}}};var NAMES=/* @__PURE__ */createDeduplicatedLocalizedNameIndex(pre_engineered_variant_names_default);function identityKey(identity){const prefix="getPreEngineeredVariantName: variant";requireObject(identity,prefix);const symbol=requireString(identity.symbol,`${prefix}.symbol`).trim();const blueprint=requireString(identity.blueprint,`${prefix}.blueprint`).trim();requireStringIfPresent(identity.experimental,`${prefix}.experimental`);const experimental=identity.experimental?.trim()??"";const acquisition=requireString(identity.acquisition,`${prefix}.acquisition`).trim();return`${symbol}|${blueprint}|${experimental}|${acquisition}`}function getPreEngineeredVariantName(variant,locale){return getLocalizedName(NAMES,identityKey(variant),locale,"getPreEngineeredVariantName","variant")}export{getPreEngineeredVariantName};//# sourceMappingURL=chunk-J42ZXLBL.js.map
1
+ import{getLocalizedName,createDeduplicatedLocalizedNameIndex}from"./chunk-RVIYOHYF.js";import{requireObject,requireString,requireStringIfPresent}from"./chunk-PKWVG2JY.js";var pre_engineered_variant_names_default={nameKeys:{"Hpt_Mining_AbrBlstr_Fixed_Small|AbrasionBlaster_FarReaching||mercenary":"Far-Reaching Abrasion Blaster","Hpt_CausticMissile_Fixed_Medium|EnzymeMissileRack_HighYield||mercenary":"High-Yield Enzyme Missile Rack","Hpt_Slugshot_Gimbal_Small|FragmentCannonSmall_DoubleScreaming||mercenary":"Double Screaming Fragment Cannon","Hpt_Slugshot_Gimbal_Large|FragmentCannonLarge_DoubleScreaming||mercenary":"Double Screaming Fragment Cannon","Hpt_MiningLaser_Fixed_Small|MiningLaser_LongRange||mercenary":"Long Range Mining Laser","Hpt_MultiCannon_Fixed_Medium|MultiCannon_Rapid||mercenary":"Rapid Phase Multi-Cannon","Hpt_Railgun_Fixed_Medium|RailGun_LongShot||mercenary":"Enduring Feedback Rail Gun","Hpt_BasicMissileRack_Fixed_Medium|SeekerMissileRack_Drag||mercenary":"Drag Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Large|SeekerMissileRack_Drag||mercenary":"Drag Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Medium|SeekerMissileRack_LightWeightThermal||mercenary":"Lightweight Thermal Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Medium|SeekerMissileRackMedium_Lockdown||mercenary":"Lockdown Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Large|SeekerMissileRackLarge_Lockdown||mercenary":"Lockdown Seeker Missile Rack","Int_CargoRack_Size5_Class1|CargoRackS5C1_Extended||mercenary":"Extended Cargo Rack","Int_CargoRack_Size6_Class1|CargoRackS6C1_Extended||mercenary":"Extended Cargo Rack","Int_DetailedSurfaceScanner_Tiny|DetailedSurfaceScanner_LongRange||mercenary":"Long Range Detailed Surface Scanner","Int_ModuleReinforcement_Size5_Class2|ModuleReinforcement_HeavyDuty||mercenary":"Heavy Duty Module Reinforcement Package","Int_PowerDistributor_Size3_Class2|PowerDistributorS3C2_SupportFocused||mercenary":"Support Focused Power Distributor","Int_PowerDistributor_Size3_Class5|PowerDistributorS3C5_SupportFocused||mercenary":"Support Focused Power Distributor","Int_PowerDistributor_Size4_Class2|PowerDistributorS4C2_SupportFocused||mercenary":"Support Focused Power Distributor","Int_PowerDistributor_Size4_Class5|PowerDistributorS4C5_SupportFocused||mercenary":"Support Focused Power Distributor","Int_PowerDistributor_Size5_Class5|PowerDistributor_Balanced||mercenary":"Balanced Power Distributor","Int_PowerDistributor_Size6_Class5|PowerDistributorS6C5_SupportFocused||mercenary":"Support Focused Power Distributor","Hpt_Mining_AbrBlstr_Fixed_Small|Weapon_LongRange||communityGoal":"Abrasion Blaster","Hpt_CausticMissile_Fixed_Medium|Weapon_HighCapacity||communityGoal":"Enzyme Missile Rack","Hpt_Slugshot_Gimbal_Small|Weapon_DoubleShot|special_screening_shell|communityGoal":"Fragment Cannon","Hpt_Slugshot_Gimbal_Large|Weapon_DoubleShot|special_screening_shell|communityGoal":"Fragment Cannon","Hpt_Guardian_ShardCannon_Fixed_Medium|Weapon_LongRange||communityGoal":"Guardian Shard Cannon","Hpt_MultiCannon_Fixed_Medium|Weapon_RapidFire|special_phasing_sequence|communityGoal":"Multi-Cannon","Hpt_Railgun_Fixed_Medium|Weapon_HighCapacity|special_feedback_cascade_cooled|communityGoal":"Rail Gun","Hpt_Railgun_Fixed_Medium_Burst|Weapon_HighCapacity|special_super_penetrator|communityGoal":"Imperial Hammer Rail Gun","Hpt_BasicMissileRack_Fixed_Medium|Weapon_HighCapacity|special_drag_munitions|communityGoal":"Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Medium|Weapon_HighCapacity|special_fsd_interrupt|communityGoal":"Seeker Missile Rack","Hpt_BasicMissileRack_Fixed_Large|Weapon_HighCapacity|special_fsd_interrupt|communityGoal":"Seeker Missile Rack","Hpt_ElectronicCountermeasure_Tiny|Misc_LightWeight||communityGoal":"Electronic Countermeasure","Hpt_CrimeScanner_Size0_Class5|Sensor_FastScan||communityGoal":"Kill Warrant Scanner","Hpt_CrimeScanner_Size0_Class3|Sensor_FastScan||communityGoal":"Kill Warrant Scanner","Hpt_PlasmaPointDefence_Turret_Tiny|Misc_LightWeight||communityGoal":"Point Defence","Int_PowerDistributor_Size3_Class5|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_PowerDistributor_Size3_Class2|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_PowerDistributor_Size4_Class5|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_PowerDistributor_Size4_Class2|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_PowerDistributor_Size6_Class5|PowerDistributor_PrioritySystems||communityGoal":"Power Distributor","Int_Powerplant_Size3_Class5|PowerPlant_Armoured||communityGoal":"Power Plant","Int_Powerplant_Size3_Class5|PowerPlant_Boosted||communityGoal":"Power Plant","Int_Powerplant_Size4_Class5|PowerPlant_Boosted||communityGoal":"Power Plant","Int_Powerplant_Size5_Class5|PowerPlant_Boosted||communityGoal":"Power Plant","Int_Hyperdrive_Size3_Class5|FSD_LongRange||communityGoal":"Frame Shift Drive","Int_Hyperdrive_Size4_Class5|FSD_LongRange||communityGoal":"Frame Shift Drive","Int_Hyperdrive_Size6_Class5|FSD_LongRange||communityGoal":"Frame Shift Drive","Int_CargoRack_Size5_Class1|CargoRack_IncreasedCapacity||communityGoal":"Cargo Rack","Int_CargoRack_Size6_Class1|CargoRack_IncreasedCapacity||communityGoal":"Cargo Rack","Int_ShieldGenerator_Size3_Class5|ShieldGenerator_Kinetic||communityGoal":"Shield Generator","Hpt_ATDumbfireMissile_Fixed_Medium|Weapon_HighCapacity||techBroker":"AX Missile Rack","Hpt_ATDumbfireMissile_Fixed_Large|Weapon_HighCapacity||techBroker":"AX Missile Rack","Hpt_ATMultiCannon_Gimbal_Medium|Weapon_Overcharged|special_auto_loader|techBroker":"Enhanced AX Multi-Cannon","Hpt_ATMultiCannon_Gimbal_Large|Weapon_Overcharged|special_auto_loader|techBroker":"Enhanced AX Multi-Cannon","Hpt_Guardian_GaussCannon_Fixed_Small|Weapon_RapidFire||techBroker":"Guardian Gauss Cannon","Hpt_Guardian_GaussCannon_Fixed_Medium|Weapon_RapidFire||techBroker":"Guardian Gauss Cannon","Hpt_Guardian_PlasmaLauncher_Fixed_Small|Weapon_Overcharged||techBroker":"Guardian Plasma Charger","Hpt_Guardian_PlasmaLauncher_Fixed_Medium|Weapon_Overcharged||techBroker":"Guardian Plasma Charger","Hpt_Guardian_ShardCannon_Fixed_Small|Weapon_LongRange||techBroker":"Guardian Shard Cannon","Hpt_Guardian_ShardCannon_Fixed_Medium|Weapon_LongRange||techBroker":"Guardian Shard Cannon","Hpt_MiningLaser_Fixed_Small|Weapon_LongRange|special_incendiary_rounds|techBroker":"Mining Laser","Hpt_BasicMissileRack_Fixed_Medium|Weapon_HighCapacity|special_thermal_cascade|techBroker":"Seeker Missile Rack","Hpt_HeatSinkLauncher_Turret_Tiny|Misc_HeatSinkCapacity||techBroker":"Heat Sink Launcher","Int_Hyperdrive_Size5_Class5|FSD_LongRange||techBroker":"Frame Shift Drive","Int_Hyperdrive_Overcharge_Size2_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size3_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size4_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size5_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size6_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_Hyperdrive_Overcharge_Size7_Class5|FSD_LongRange||techBroker":"Frame Shift Drive (SCO)","Int_DetailedSurfaceScanner_Tiny|Sensor_Expanded||techBroker":"Detailed Surface Scanner","Hpt_FlakMortar_Turret_Medium|Decorative_Green||eventReward":"Festive Green Remote Release Flak Launcher","Hpt_FlakMortar_Turret_Medium|Decorative_Red||eventReward":"Festive Red Remote Release Flak Launcher","Hpt_FlakMortar_Turret_Medium|Decorative_Yellow||eventReward":"Festive Yellow Remote Release Flak Launcher"},names:{"Far-Reaching Abrasion Blaster":{en:"Far-Reaching Abrasion Blaster",de:"Abrasionsblaster mit großer Reichweite",es:"Destructor de abrasión de largo alcance",fr:"Surfaceur abrasif longue portée",ru:"Абразивный бластер с увеличенной дальностью"},"High-Yield Enzyme Missile Rack":{en:"High-Yield Enzyme Missile Rack",de:"Enzymraketenrampe mit hohen Erträgen",es:"Lanzamisiles de enzimas de alto rendimiento",fr:"Batterie de missiles enzymatiques à hauts rendements",ru:"Блок энзимных ракет высокой мощности"},"Double Screaming Fragment Cannon":{en:"Double Screaming Fragment Cannon",de:"Doppelschrei-Splitterkanone",es:"Cañón de fragmentación doble con proyectil de pantalla",fr:"Double canon à fragmentation Screaming",ru:"Залповое орудие «Двойной вой»"},"Long Range Mining Laser":{en:"Long Range Mining Laser",de:"Ferndistanz-Abbaulaser",es:"Láser de minería de largo alcance",fr:"Laser minier longue portée",ru:"Проходочный лазер с увеличенной дальностью"},"Rapid Phase Multi-Cannon":{en:"Rapid Phase Multi-Cannon",de:"Schnellfeuer-Mehrfachgeschütz",es:"Multicañón de fase con disparo rápido",fr:"Multi-canon à phase rapide",ru:"Скорострельное фазовое многоствольное орудие"},"Enduring Feedback Rail Gun":{en:"Enduring Feedback Rail Gun",de:"Robuste Feedback-Schienenkanone",es:"Cañón de riel Retroalimentación Soportable",fr:"Canon électrique énergétique résistant",ru:"Электромагнитная пушка с постоянным откликом"},"Drag Seeker Missile Rack":{en:"Drag Seeker Missile Rack",de:"Suchraketenrampe ziehen",es:"Lanzamisiles guiado con lastre",fr:"Batterie de missiles TC à inertie",ru:"Блок ракет с самонаведением и замедляющими боеприпасами"},"Lightweight Thermal Seeker Missile Rack":{en:"Lightweight Thermal Seeker Missile Rack",de:"Leichte thermische Suchraketenrampe",es:"Lanzamisiles guiado térmico ligero",fr:"Batterie de missiles TC thermiques légers",ru:"Легкий блок тепловых ракет с самонаведением"},"Lockdown Seeker Missile Rack":{en:"Lockdown Seeker Missile Rack",de:"Abriegelung-Suchraketenrampe",es:"Lanzamisiles guiado con bloqueo",fr:"Batterie de missiles TC à verrouillage",ru:"Блок ракет с самонаведением и блокировкой"},"Extended Cargo Rack":{en:"Extended Cargo Rack",de:"Erweitertes Frachtgestell",es:"Bodega de carga extendida",fr:"Compartiment soute agrandi",ru:"Увеличенный грузовой стеллаж"},"Long Range Detailed Surface Scanner":{en:"Long Range Detailed Surface Scanner",de:"Ferndistanz-Detail-Oberflächenscanner",es:"Escáner de análisis de superficie detallado de largo alcance",fr:"Détecteur de surface détaillé longue portée",ru:"Подробный сканер поверхностей с увеличенной дальностью"},"Heavy Duty Module Reinforcement Package":{en:"Heavy Duty Module Reinforcement Package",de:"Schwere Modulverstärkung (Paket)",es:"Paquete de refuerzo de módulo de alta resistencia",fr:"Pack de renforcement de modules lourds",ru:"Укрепленный набор для усиления модуля"},"Support Focused Power Distributor":{en:"Support Focused Power Distributor",de:"Unterstützungsfokussierter Energieverteiler",es:"Distribuidor de energía orientado al apoyo",fr:"Répartiteur de puissance optimisé Survie",ru:"Вспомогательный распределитель питания"},"Balanced Power Distributor":{en:"Balanced Power Distributor",de:"Abgeglichener Energieverteiler",es:"Distribuidor de energía equilibrado",fr:"Répartiteur de puissance équilibré",ru:"Сбалансированный распределитель энергии"},"Abrasion Blaster":{en:"Abrasion Blaster",de:"Abrasionsblaster",es:"Destructor de abrasión",fr:"Surfaceur abrasif",pt:"Detonador de Abrasão",ru:"Шлифовальный бластер"},"Enzyme Missile Rack":{en:"Enzyme Missile Rack",de:"Enzymraketenwerfer",es:"Lanzamisiles de Enzimas",fr:"Batterie de missile enzymatique",pt:"Estante de Míssel Enzimático",ru:"Пусковая энзимных ракет"},"Fragment Cannon":{en:"Fragment Cannon",de:"Splitterkanone",es:"Cañón de fragmentación",fr:"Canon à fragmentation",pt:"Canhão de Fragmentação",ru:"Залповое орудие"},"Mining Laser":{en:"Mining Laser",de:"Abbaulaser",es:"Láser de minería",fr:"Laser Minier",pt:"Laser de Mineração",ru:"Проходочный лазер"},"Multi-Cannon":{en:"Multi-Cannon",de:"Mehrfachgeschütz",es:"Multicañón",fr:"Multi-canon",pt:"Canhão de Repetição",ru:"Многоствольное орудие"},"Rail Gun":{en:"Rail Gun",de:"Schienenkanone",es:"Cañón de riel",fr:"Canon électrique",pt:"Canhão Elétrico",ru:"Электромагнитная пушка"},"Seeker Missile Rack":{en:"Seeker Missile Rack",de:"Suchraketenrampe",es:"Lanzamisiles guiados",fr:"Missiles TC",pt:"Estante de Míssil Guiado",ru:"Блок ракет с самонаведением"},"Cargo Rack":{en:"Cargo Rack",de:"Frachtgestell",es:"Bodega de carga",fr:"Compartiment de soute",pt:"Estante de Carga",ru:"Грузовой стеллаж"},"Detailed Surface Scanner":{en:"Detailed Surface Scanner",de:"Detail-Oberflächenscanner",es:"Escáner de superficie detallado",fr:"Détecteur de surface détaillé",pt:"Scanner de Superfície",ru:"Сканер поверхностей"},"Power Distributor":{en:"Power Distributor",de:"Energieverteiler",es:"Distribuidor de energía",fr:"Répartiteur de puissance",pt:"Distribuidor de Energia",ru:"Распределитель питания"},"Guardian Shard Cannon":{en:"Guardian Shard Cannon",de:"Fragmentkanone",es:"Cañón de esquirlas",fr:"Canon à éclats",pt:"Canhão de fragmentos",ru:"Осколочное орудие"},"Imperial Hammer Rail Gun":{en:"Imperial Hammer Rail Gun",de:"Hammer",es:"Martillo",fr:"Marteleur",pt:"Martelo",ru:"«Молот»"},"Electronic Countermeasure":{en:"Electronic Countermeasure",de:"Elektronische Gegenmaßnahme",es:"Contramedidas electrónicas",fr:"Contre-mesures électroniques",pt:"Contramedida Eletrônica",ru:"Электр. противодействие"},"Kill Warrant Scanner":{en:"Kill Warrant Scanner",de:"Tötungsbefehl-Scanner",es:"Escáner de recompensas",fr:"Détecteur d'avis de recherche",pt:"Scanner de Registro Criminal",ru:"Сканер преступников"},"Point Defence":{en:"Point Defence",de:"Punktverteidigung",es:"Defensa de punto",fr:"Défense ponctuelle",pt:"Defesa de Ponto",ru:"Точечная оборона"},"Power Plant":{en:"Power Plant",de:"Kraftwerk",es:"Núcleo de energía",fr:"Générateur",pt:"Gerador de Energia",ru:"Силовая установка"},"Frame Shift Drive":{en:"Frame Shift Drive",de:"Frameshiftantrieb",es:"Motor de salto",fr:"Réacteur FSD",pt:"Motor de Distorção de Fase",ru:"Рамочно Сместительный двигатель"},"Shield Generator":{en:"Shield Generator",de:"Schildgenerator",es:"Generador de escudos",fr:"Générateur de bouclier",pt:"Gerador de Escudo",ru:"Щитогенератор"},"AX Missile Rack":{en:"AX Missile Rack",de:"AX-Raketenrampe",es:"Lanzamisiles AX",fr:"Batterie de missiles AX",pt:"Estante de Mísseis AX",ru:"Блок ракет АИ"},"Enhanced AX Multi-Cannon":{en:"Enhanced AX Multi-Cannon",de:"Fortschrittliches AX Mehrfachgeschütz",pt:"Canhão de Repetição AX Melhorado",ru:"Улучш. многоствольное орудие АИ"},"Guardian Gauss Cannon":{en:"Guardian Gauss Cannon",de:"Guardian-Gausskanone",es:"Cañón Gauss Guardián",fr:"Canon de Gauss - Guardians",pt:"Canhão Gauss Guardian",ru:"Пушка Гаусса"},"Guardian Plasma Charger":{en:"Guardian Plasma Charger",de:"Guardian-Plasmalader",es:"Cargador de Plasma Guardián",fr:"Chargeur à Plasma - Guardians",pt:"Carregador de Plasma Guardian",ru:"Плазменная пушка"},"Heat Sink Launcher":{en:"Heat Sink Launcher",de:"Kühlkörperabwurf",es:"Eyector térmico",fr:"Éjecteur de dissipateur thermique",pt:"Lançador de Dissipador Térmico",ru:"Теплоотводная катапульта"},"Frame Shift Drive (SCO)":{en:"Frame Shift Drive (SCO)",pt:"Motor de Distorção de Fase (SSV)",ru:"Двигатель FSD (ПГР)"},"Festive Green Remote Release Flak Launcher":{en:"Festive Green Remote Release Flak Launcher"},"Festive Red Remote Release Flak Launcher":{en:"Festive Red Remote Release Flak Launcher"},"Festive Yellow Remote Release Flak Launcher":{en:"Festive Yellow Remote Release Flak Launcher"}}};var NAMES=/* @__PURE__ */createDeduplicatedLocalizedNameIndex(pre_engineered_variant_names_default);function identityKey(identity){const prefix="getPreEngineeredVariantName: variant";requireObject(identity,prefix);const symbol=requireString(identity.symbol,`${prefix}.symbol`).trim();const blueprint=requireString(identity.blueprintSymbol,`${prefix}.blueprintSymbol`).trim();requireStringIfPresent(identity.experimentalEffectSymbol,`${prefix}.experimentalEffectSymbol`);const experimental=identity.experimentalEffectSymbol?.trim()??"";const acquisition=requireString(identity.acquisition,`${prefix}.acquisition`).trim();return`${symbol}|${blueprint}|${experimental}|${acquisition}`}function getPreEngineeredVariantName(variant,locale){return getLocalizedName(NAMES,identityKey(variant),locale,"getPreEngineeredVariantName","variant")}export{getPreEngineeredVariantName};//# sourceMappingURL=chunk-T62GO4AA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/pre-engineered.ts"],"names":["getLocalizedName","createDeduplicatedLocalizedNameIndex","requireObject","requireString","requireStringIfPresent","pre_engineered_variant_names_default","NAMES","identityKey","identity","prefix","symbol","trim","blueprint","blueprintSymbol","experimentalEffectSymbol","experimental","acquisition","getPreEngineeredVariantName","variant","locale"],"mappings":"O,wheAeA,IAAMM,qBAAwBL,qCAC1BI,sCAeJ,SAASE,YAAYC,UACjB,MAAMC,OAAS,uCACfP,cAAcM,SAAUC,QACxB,MAAMC,OAASP,cAAcK,SAASE,OAAQ,GAAGD,iBAAiBE,OAClE,MAAMC,UAAYT,cAAcK,SAASK,gBAAiB,GAAGJ,0BAA0BE,OACvFP,uBAAuBI,SAASM,yBAA0B,GAAGL,mCAC7D,MAAMM,aAAeP,SAASM,0BAA0BH,QAAU,GAClE,MAAMK,YAAcb,cAAcK,SAASQ,YAAa,GAAGP,sBAAsBE,OACjF,MAAO,GAAGD,UAAUE,aAAaG,gBAAgBC,aACrD,CAwBO,SAASC,4BACZC,QACAC,QAEA,OAAOnB,iBACHM,MACAC,YAAYW,SACZC,OACA,8BACA,UAER,QAAAF"}
@@ -1 +1 @@
1
- import{parseSystemName,boxelCodeToLetters,formatSystemName}from"./chunk-G3265B27.js";import{isPermitLockedRegionName}from"./chunk-NLBUKXNV.js";import{findHandAuthoredRegionAt}from"./chunk-AVZI6VKA.js";import{sizeClassToMassCode}from"./chunk-POZTXBSN.js";import{getHandAuthoredRegionOrigin,resolveNamingRegionOrigin}from"./chunk-UXBCLFGU.js";import{encodeSystemAddress,decodeSystemAddress,decodeModSystemAddress,encodeModSystemAddress,absoluteBoxelToBoxelCode}from"./chunk-DI5RXSJR.js";import{toSystemAddress}from"./chunk-NEEFT7WH.js";import{sectorGridPositionFromName,sectorNameFromGridPosition}from"./chunk-DVL5RBKX.js";import{requireString,truncate}from"./chunk-PKWVG2JY.js";function tryEncodeModAddress(parts){const origin=resolveNamingRegionOrigin(parts.regionName);if(!origin)return null;try{return encodeModSystemAddress(parts,origin)}catch(error){if(error instanceof RangeError)return null;throw error}}function applyHaOverride(parts,decoded,position){if(!position)return{parts:parts,handAuthored:false,requiresPermit:false};const region=findHandAuthoredRegionAt(position);if(!region)return{parts:parts,handAuthored:false,requiresPermit:false};const origin=resolveNamingRegionOrigin(region.name);if(!origin||origin.x0<0||origin.y0<0||origin.z0<0){return{parts:parts,handAuthored:false,requiresPermit:false}}const boxelCode=absoluteBoxelToBoxelCode(decoded.sizeClass,decoded.absoluteBoxel,origin);if(boxelCode===null)return{parts:parts,handAuthored:false,requiresPermit:false};const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(boxelCode);return{parts:{...parts,regionName:region.name,l1:l1,l2:l2,l3:l3,n1:n1},handAuthored:true,requiresPermit:isPermitLockedRegionName(region.name)}}var ProceduralSystem=class _ProceduralSystem{#parts;#position;#id64;#modId64;usesHandAuthoredRegion;requiresRegionPermit;constructor(parts,opts){this.#parts={...parts};this.#position=opts.position?{...opts.position}:void 0;this.#id64=opts.id64;this.#modId64=opts.modId64;this.usesHandAuthoredRegion=opts.handAuthored;this.requiresRegionPermit=opts.requiresPermit}static fromName(name){const parts=parseSystemName(requireString(name,"ProceduralSystem.fromName: name"));if(!parts)return null;const sectorPosition=sectorGridPositionFromName(parts.regionName);const namedOrigin=sectorPosition?null:getHandAuthoredRegionOrigin(parts.regionName);const named=namedOrigin!==null;const regionName=sectorPosition?sectorNameFromGridPosition(sectorPosition):namedOrigin?.name??parts.regionName;const canonicalParts={...parts,regionName:regionName};const origin=resolveNamingRegionOrigin(regionName);if(!origin)throw new RangeError(`Unknown sector: ${truncate(regionName)}`);return new _ProceduralSystem(canonicalParts,{id64:encodeSystemAddress(canonicalParts,origin),modId64:tryEncodeModAddress(canonicalParts),handAuthored:named,requiresPermit:named&&isPermitLockedRegionName(regionName)})}static fromSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeSystemAddress(address),address,position)}static fromModSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeModSystemAddress(address),void 0,position,address)}static#fromDecoded(decoded,id64,position,modId64){const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(decoded.boxelCode);const base={regionName:sectorNameFromGridPosition(decoded.sectorGridPosition),l1:l1,l2:l2,l3:l3,massCode:decoded.sizeClass,n1:n1,n2:decoded.sequence};const overridden=applyHaOverride(base,decoded,position);const origin=resolveNamingRegionOrigin(overridden.parts.regionName);if(!origin){throw new RangeError(`Unknown sector: ${truncate(overridden.parts.regionName)}`)}const normalAddress=id64??encodeSystemAddress(overridden.parts,origin);const opts={id64:normalAddress,modId64:modId64??tryEncodeModAddress(overridden.parts),handAuthored:overridden.handAuthored,requiresPermit:overridden.requiresPermit,...position?{position:position}:{}};return new _ProceduralSystem(overridden.parts,opts)}get name(){return formatSystemName(this.#parts)}get namingRegionName(){return this.#parts.regionName}get massCode(){return sizeClassToMassCode(this.#parts.massCode)}get sequence(){return this.#parts.n2}get position(){return this.#position?{...this.#position}:null}get parts(){return{...this.#parts}}get systemAddress(){return this.#id64}get modSystemAddress(){return this.#modId64}};export{ProceduralSystem};//# sourceMappingURL=chunk-E3BRVGJJ.js.map
1
+ import{parseSystemName,boxelCodeToLetters,formatSystemName}from"./chunk-7ATBEOVC.js";import{isPermitLockedRegionName}from"./chunk-NLBUKXNV.js";import{findHandAuthoredRegionAt}from"./chunk-AVZI6VKA.js";import{sizeClassToMassCode}from"./chunk-POZTXBSN.js";import{getHandAuthoredRegionOrigin,resolveNamingRegionOrigin}from"./chunk-DWRNXUAX.js";import{encodeSystemAddress,decodeSystemAddress,decodeModSystemAddress,encodeModSystemAddress,absoluteBoxelToBoxelCode}from"./chunk-DI5RXSJR.js";import{toSystemAddress}from"./chunk-NEEFT7WH.js";import{sectorGridPositionFromName,sectorNameFromGridPosition}from"./chunk-H47K3UWG.js";import{requireString,truncate}from"./chunk-PKWVG2JY.js";function tryEncodeModAddress(parts){const origin=resolveNamingRegionOrigin(parts.regionName);if(!origin)return null;try{return encodeModSystemAddress(parts,origin)}catch(error){if(error instanceof RangeError)return null;throw error}}function applyHaOverride(parts,decoded,position){if(!position)return{parts:parts,handAuthored:false,requiresPermit:false};const region=findHandAuthoredRegionAt(position);if(!region)return{parts:parts,handAuthored:false,requiresPermit:false};const origin=resolveNamingRegionOrigin(region.name);if(!origin||origin.x0<0||origin.y0<0||origin.z0<0){return{parts:parts,handAuthored:false,requiresPermit:false}}const boxelCode=absoluteBoxelToBoxelCode(decoded.sizeClass,decoded.absoluteBoxel,origin);if(boxelCode===null)return{parts:parts,handAuthored:false,requiresPermit:false};const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(boxelCode);return{parts:{...parts,regionName:region.name,l1:l1,l2:l2,l3:l3,n1:n1},handAuthored:true,requiresPermit:isPermitLockedRegionName(region.name)}}var ProceduralSystem=class _ProceduralSystem{#parts;#position;#id64;#modId64;usesHandAuthoredRegion;requiresRegionPermit;constructor(parts,opts){this.#parts={...parts};this.#position=opts.position?{...opts.position}:void 0;this.#id64=opts.id64;this.#modId64=opts.modId64;this.usesHandAuthoredRegion=opts.handAuthored;this.requiresRegionPermit=opts.requiresPermit}static fromName(name){const parts=parseSystemName(requireString(name,"ProceduralSystem.fromName: name"));if(!parts)return null;const sectorPosition=sectorGridPositionFromName(parts.regionName);const namedOrigin=sectorPosition?null:getHandAuthoredRegionOrigin(parts.regionName);const named=namedOrigin!==null;const regionName=sectorPosition?sectorNameFromGridPosition(sectorPosition):namedOrigin?.name??parts.regionName;const canonicalParts={...parts,regionName:regionName};const origin=resolveNamingRegionOrigin(regionName);if(!origin)throw new RangeError(`Unknown sector: ${truncate(regionName)}`);return new _ProceduralSystem(canonicalParts,{id64:encodeSystemAddress(canonicalParts,origin),modId64:tryEncodeModAddress(canonicalParts),handAuthored:named,requiresPermit:named&&isPermitLockedRegionName(regionName)})}static fromSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeSystemAddress(address),address,position)}static fromModSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeModSystemAddress(address),void 0,position,address)}static#fromDecoded(decoded,id64,position,modId64){const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(decoded.boxelCode);const base={regionName:sectorNameFromGridPosition(decoded.sectorGridPosition),l1:l1,l2:l2,l3:l3,massCode:decoded.sizeClass,n1:n1,n2:decoded.sequence};const overridden=applyHaOverride(base,decoded,position);const origin=resolveNamingRegionOrigin(overridden.parts.regionName);if(!origin){throw new RangeError(`Unknown sector: ${truncate(overridden.parts.regionName)}`)}const normalAddress=id64??encodeSystemAddress(overridden.parts,origin);const opts={id64:normalAddress,modId64:modId64??tryEncodeModAddress(overridden.parts),handAuthored:overridden.handAuthored,requiresPermit:overridden.requiresPermit,...position?{position:position}:{}};return new _ProceduralSystem(overridden.parts,opts)}get name(){return formatSystemName(this.#parts)}get namingRegionName(){return this.#parts.regionName}get massCode(){return sizeClassToMassCode(this.#parts.massCode)}get sequence(){return this.#parts.n2}get position(){return this.#position?{...this.#position}:null}get parts(){return{...this.#parts}}get systemAddress(){return this.#id64}get modSystemAddress(){return this.#modId64}};export{ProceduralSystem};//# sourceMappingURL=chunk-TBZJIQ5P.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/astro/procedural-system.ts"],"names":["parseSystemName","boxelCodeToLetters","formatSystemName","isPermitLockedRegionName","findHandAuthoredRegionAt","sizeClassToMassCode","getHandAuthoredRegionOrigin","resolveNamingRegionOrigin","encodeSystemAddress","decodeSystemAddress","decodeModSystemAddress","encodeModSystemAddress","absoluteBoxelToBoxelCode","toSystemAddress","sectorGridPositionFromName","sectorNameFromGridPosition","requireString","truncate","tryEncodeModAddress","parts","origin","regionName","error","RangeError","applyHaOverride","decoded","position","handAuthored","requiresPermit","region","name","x0","y0","z0","boxelCode","sizeClass","absoluteBoxel","l1","l2","l3","n1","ProceduralSystem","_ProceduralSystem","id64","modId64","usesHandAuthoredRegion","requiresRegionPermit","constructor","opts","this","fromName","sectorPosition","namedOrigin","named","canonicalParts","fromSystemAddress","address","fromDecoded","fromModSystemAddress","base","sectorGridPosition","massCode","n2","sequence","overridden","normalAddress","namingRegionName","systemAddress","modSystemAddress"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/astro/procedural-system.ts"],"names":["parseSystemName","boxelCodeToLetters","formatSystemName","isPermitLockedRegionName","findHandAuthoredRegionAt","sizeClassToMassCode","getHandAuthoredRegionOrigin","resolveNamingRegionOrigin","encodeSystemAddress","decodeSystemAddress","decodeModSystemAddress","encodeModSystemAddress","absoluteBoxelToBoxelCode","toSystemAddress","sectorGridPositionFromName","sectorNameFromGridPosition","requireString","truncate","tryEncodeModAddress","parts","origin","regionName","error","RangeError","applyHaOverride","decoded","position","handAuthored","requiresPermit","region","name","x0","y0","z0","boxelCode","sizeClass","absoluteBoxel","l1","l2","l3","n1","ProceduralSystem","_ProceduralSystem","id64","modId64","usesHandAuthoredRegion","requiresRegionPermit","constructor","opts","this","fromName","sectorPosition","namedOrigin","named","canonicalParts","fromSystemAddress","address","fromDecoded","fromModSystemAddress","base","sectorGridPosition","massCode","n2","sequence","overridden","normalAddress","namingRegionName","systemAddress","modSystemAddress"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{massCurveMultiplier,requireFiniteNonNegative,validateMassCurve}from"./chunk-EVW4Z4CB.js";var requireFiniteRange=(scope,name,value,minimum,maximum)=>{if(!Number.isFinite(value)||value<minimum||value>maximum){throw new RangeError(`${scope}: ${name} must be a finite number from ${minimum} to ${maximum}`)}};var curveMultiplier=(scope,mass,thrusters)=>massCurveMultiplier({scope:scope,mass:"mass",curve:"thrusters"},mass,thrusters);function resolveMobilityCurves(scope,input){for(const field of["minimumSpeed","maximumSpeed","boost","pitch","roll","yaw","mass"]){requireFiniteNonNegative(scope,field,input[field])}if(input.minimumSpeed>input.maximumSpeed){throw new RangeError(`${scope}: minimumSpeed must not exceed maximumSpeed`)}for(const[minimum,maximum]of[["minPitch","pitch"],["minRoll","roll"],["minYaw","yaw"]]){requireFiniteRange(scope,minimum,input[minimum],0,input[maximum])}if(!input.thrusters)return null;validateMassCurve(`${scope}: thrusters`,input.thrusters);return{massCurveMultiplier:curveMultiplier(`${scope}: speed curve`,input.mass,input.thrusters.speedCurve??input.thrusters),rotationMassCurveMultiplier:curveMultiplier(`${scope}: rotation curve`,input.mass,input.thrusters.rotationCurve??input.thrusters)}}export{curveMultiplier,resolveMobilityCurves};//# sourceMappingURL=chunk-V3AEUBHV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/internal/mobility-core.ts"],"names":["massCurveMultiplier","requireFiniteNonNegative","validateMassCurve","requireFiniteRange","scope","name","value","minimum","maximum","Number","isFinite","RangeError","curveMultiplier","mass","thrusters","curve","resolveMobilityCurves","input","field","minimumSpeed","maximumSpeed","speedCurve","rotationMassCurveMultiplier","rotationCurve"],"mappings":"O,yFAwBO,IAAMG,mBAAqB,CAC9BC,MACAC,KACAC,MACAC,QACAC,WAEA,IAAKC,OAAOC,SAASJ,QAAUA,MAAQC,SAAWD,MAAQE,QAAS,CAC/D,MAAM,IAAIG,WACN,GAAGP,UAAUC,qCAAqCE,cAAcC,UAExE,GAGG,IAAMI,gBAAkB,CAC3BR,MACAS,KACAC,YACSd,oBAAoB,CAAEI,YAAOS,KAAM,OAAQE,MAAO,aAAeF,KAAMC,WAY7E,SAASE,sBAAsBZ,MAAea,OACjD,IAAA,MAAWC,QAAS,CAChB,eACA,eACA,QACA,QACA,OACA,MACA,QACQ,CACRjB,yBAAyBG,MAAOc,MAAOD,MAAMC,OACjD,CACA,GAAID,MAAME,aAAeF,MAAMG,aAAc,CACzC,MAAM,IAAIT,WAAW,GAAGP,mDAC5B,CACA,IAAA,MAAYG,QAASC,UAAY,CAC7B,CAAC,WAAY,SACb,CAAC,UAAW,QACZ,CAAC,SAAU,QACH,CACRL,mBAAmBC,MAAOG,QAASU,MAAMV,SAAU,EAAGU,MAAMT,SAChE,CACA,IAAKS,MAAMH,UAAW,OAAO,KAC7BZ,kBAAkB,GAAGE,mBAAoBa,MAAMH,WAC/C,MAAO,CACHd,oBAAqBY,gBACjB,GAAGR,qBACHa,MAAMJ,KACNI,MAAMH,UAAUO,YAAcJ,MAAMH,WAExCQ,4BAA6BV,gBACzB,GAAGR,wBACHa,MAAMJ,KACNI,MAAMH,UAAUS,eAAiBN,MAAMH,WAGnD,QAAAF,gBAAAI"}