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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/PROVENANCE/i18n/SOURCES.md +71 -12
  2. package/PROVENANCE/ships/SOURCES.md +74 -48
  3. package/README.md +34 -2
  4. package/THIRD_PARTY_NOTICES.md +3 -3
  5. package/dist/astro/codex-region-lookup.js +1 -1
  6. package/dist/astro/codex-region.js +1 -1
  7. package/dist/astro/galaxy-grid.js +1 -1
  8. package/dist/astro/index.js +1 -1
  9. package/dist/astro/mass-code.js +1 -1
  10. package/dist/astro/naming-region-origins.js +1 -1
  11. package/dist/astro/nebulae.js +1 -1
  12. package/dist/astro/permit-locked-regions.js +1 -1
  13. package/dist/astro/permit-locked-systems.js +1 -1
  14. package/dist/astro/permit-locks.js +1 -1
  15. package/dist/astro/procedural-system.js +1 -1
  16. package/dist/astro/sector-name.js +1 -1
  17. package/dist/astro/system-address-input.js +1 -1
  18. package/dist/astro/system-address.js +1 -1
  19. package/dist/astro/system-name.js +1 -1
  20. package/dist/{chunk-KQDJTDLV.js → chunk-2J2UV4ZX.js} +1 -1
  21. package/dist/{chunk-DB54PH3X.js → chunk-6EPYVBAX.js} +1 -1
  22. package/dist/{chunk-U6TMCYA6.js → chunk-6EUVIZAS.js} +1 -1
  23. package/dist/chunk-6RLMBSXE.js +1 -0
  24. package/dist/chunk-6RLMBSXE.js.map +1 -0
  25. package/dist/{chunk-NWPK6Q3S.js → chunk-ADLVPKUV.js} +1 -1
  26. package/dist/{chunk-S4DBNX2B.js → chunk-BKWLI44T.js} +1 -1
  27. package/dist/chunk-BMM6GQAU.js +1 -0
  28. package/dist/chunk-BMM6GQAU.js.map +1 -0
  29. package/dist/{chunk-WV5YM7H5.js → chunk-BMT3U46U.js} +1 -1
  30. package/dist/chunk-CTJQPQRA.js +1 -0
  31. package/dist/{chunk-NSSWYRHN.js.map → chunk-CTJQPQRA.js.map} +1 -1
  32. package/dist/chunk-DAQ3PJ4R.js +1 -0
  33. package/dist/chunk-DAQ3PJ4R.js.map +1 -0
  34. package/dist/{chunk-BTPV5CIF.js → chunk-DI5RXSJR.js} +1 -1
  35. package/dist/{chunk-YDBRGW4G.js → chunk-DLLBARN5.js} +1 -1
  36. package/dist/{chunk-J2PNZQY4.js → chunk-DVL5RBKX.js} +1 -1
  37. package/dist/{chunk-VXVUEF5U.js → chunk-E3BRVGJJ.js} +1 -1
  38. package/dist/{chunk-MFV4VZFP.js → chunk-EBAHNZ36.js} +1 -1
  39. package/dist/{chunk-BSOIPL4A.js → chunk-EJMNNQIS.js} +1 -1
  40. package/dist/{chunk-BSOIPL4A.js.map → chunk-EJMNNQIS.js.map} +1 -1
  41. package/dist/{chunk-QF3NYGUJ.js → chunk-EKWLAHRG.js} +1 -1
  42. package/dist/chunk-EU42PAV4.js +1 -0
  43. package/dist/{chunk-32PVERNH.js.map → chunk-EU42PAV4.js.map} +1 -1
  44. package/dist/{chunk-Q22LXT53.js → chunk-FEER4ERG.js} +1 -1
  45. package/dist/{chunk-G3AMKCOE.js → chunk-FGNJ7EVM.js} +1 -1
  46. package/dist/{chunk-JWJ7RSZC.js → chunk-G3265B27.js} +1 -1
  47. package/dist/chunk-GKDEI2SQ.js +1 -0
  48. package/dist/chunk-GKDEI2SQ.js.map +1 -0
  49. package/dist/chunk-GOMBLS2T.js +1 -0
  50. package/dist/chunk-GOMBLS2T.js.map +1 -0
  51. package/dist/{chunk-V3DW67W2.js → chunk-GRIK3EDH.js} +1 -1
  52. package/dist/chunk-H3HMVGEY.js +1 -0
  53. package/dist/chunk-H3HMVGEY.js.map +1 -0
  54. package/dist/{chunk-UXZJMZEU.js → chunk-HRVIHQ4A.js} +1 -1
  55. package/dist/{chunk-QTDBO7R2.js → chunk-IYU4WLFM.js} +1 -1
  56. package/dist/{chunk-5EUX3L76.js → chunk-JWWYAMGD.js} +1 -1
  57. package/dist/chunk-KAA4VOOB.js +1 -0
  58. package/dist/chunk-KAA4VOOB.js.map +1 -0
  59. package/dist/{chunk-ZFT56QFR.js → chunk-L7CLUYZ6.js} +1 -1
  60. package/dist/{chunk-4AE22CHV.js → chunk-M5IBENCW.js} +1 -1
  61. package/dist/chunk-M5IBENCW.js.map +1 -0
  62. package/dist/{chunk-IH4NXKVW.js → chunk-NEEFT7WH.js} +1 -1
  63. package/dist/{chunk-VZXL5KBR.js → chunk-NLBUKXNV.js} +1 -1
  64. package/dist/{chunk-4OSCSACF.js → chunk-OCND33TO.js} +1 -1
  65. package/dist/{chunk-PMJG7PHU.js → chunk-PHPLZEFS.js} +1 -1
  66. package/dist/chunk-PKWVG2JY.js +1 -0
  67. package/dist/chunk-PKWVG2JY.js.map +1 -0
  68. package/dist/chunk-PNZCLQDJ.js +1 -0
  69. package/dist/{chunk-53ERRGPM.js.map → chunk-PNZCLQDJ.js.map} +1 -1
  70. package/dist/{chunk-DACZE3HX.js → chunk-POZTXBSN.js} +1 -1
  71. package/dist/chunk-Q4E2V6RE.js +1 -0
  72. package/dist/chunk-Q4E2V6RE.js.map +1 -0
  73. package/dist/{chunk-DNTN34M4.js → chunk-QI22FKBG.js} +1 -1
  74. package/dist/chunk-QTZPA2FR.js +1 -0
  75. package/dist/{chunk-TH4S5MVD.js.map → chunk-QTZPA2FR.js.map} +1 -1
  76. package/dist/{chunk-MNXWK7PA.js → chunk-R26GVRMI.js} +1 -1
  77. package/dist/{chunk-I7PIDRMU.js → chunk-RAO35XDF.js} +1 -1
  78. package/dist/chunk-TFPIPIMU.js +1 -0
  79. package/dist/chunk-TFPIPIMU.js.map +1 -0
  80. package/dist/chunk-TLA6LHLN.js +1 -0
  81. package/dist/{chunk-V4C6FIE2.js.map → chunk-TLA6LHLN.js.map} +1 -1
  82. package/dist/{chunk-JYQE53FL.js → chunk-TMMGS6TC.js} +1 -1
  83. package/dist/{chunk-ZAHNOQGG.js → chunk-UBYO7VZR.js} +1 -1
  84. package/dist/{chunk-Z4GTTB7I.js → chunk-UXBCLFGU.js} +1 -1
  85. package/dist/{chunk-RKLJ7EEE.js → chunk-UXFMVZAY.js} +1 -1
  86. package/dist/chunk-VB3XZGIB.js +1 -0
  87. package/dist/chunk-VB3XZGIB.js.map +1 -0
  88. package/dist/chunk-VKN65H2U.js +1 -0
  89. package/dist/chunk-VKN65H2U.js.map +1 -0
  90. package/dist/chunk-VSNS7Y3M.js +1 -0
  91. package/dist/chunk-VSNS7Y3M.js.map +1 -0
  92. package/dist/{chunk-MPZGCTRG.js → chunk-VZZUNSDF.js} +1 -1
  93. package/dist/chunk-VZZUNSDF.js.map +1 -0
  94. package/dist/{chunk-ZJB5UYNE.js → chunk-W5G2NUCZ.js} +1 -1
  95. package/dist/{chunk-ZJB5UYNE.js.map → chunk-W5G2NUCZ.js.map} +1 -1
  96. package/dist/{chunk-IJRKEODR.js → chunk-WNGQ3IAM.js} +1 -1
  97. package/dist/{chunk-VARPO47V.js → chunk-XN6Q7LWU.js} +1 -1
  98. package/dist/chunk-XT6KKGSE.js +1 -0
  99. package/dist/chunk-XT6KKGSE.js.map +1 -0
  100. package/dist/{chunk-KMFUCORC.js → chunk-Y6UZWNP4.js} +1 -1
  101. package/dist/{chunk-QMQHIZGS.js → chunk-YU5GND2Q.js} +1 -1
  102. package/dist/chunk-YU5GND2Q.js.map +1 -0
  103. package/dist/commodities/commodities.js +1 -1
  104. package/dist/commodities/index.js +1 -1
  105. package/dist/equipment/index.js +1 -1
  106. package/dist/equipment/modification-costs.js +1 -1
  107. package/dist/equipment/modification-journal.js +1 -1
  108. package/dist/equipment/modifications.js +1 -1
  109. package/dist/equipment/suits.js +1 -1
  110. package/dist/equipment/upgrade-costs.js +1 -1
  111. package/dist/equipment/weapons.js +1 -1
  112. package/dist/i18n/blueprints.js +1 -1
  113. package/dist/i18n/diagnostics.d.ts +62 -0
  114. package/dist/i18n/diagnostics.js +1 -0
  115. package/dist/i18n/diagnostics.js.map +1 -0
  116. package/dist/i18n/engineering-groups.d.ts +20 -0
  117. package/dist/i18n/engineering-groups.js +1 -0
  118. package/dist/i18n/engineering-groups.js.map +1 -0
  119. package/dist/i18n/experimental-effect-descriptions.d.ts +20 -0
  120. package/dist/i18n/experimental-effect-descriptions.js +1 -0
  121. package/dist/i18n/experimental-effect-descriptions.js.map +1 -0
  122. package/dist/i18n/experimental-effects.js +1 -1
  123. package/dist/i18n/index.d.ts +27 -0
  124. package/dist/i18n/index.js +1 -1
  125. package/dist/i18n/materials.js +1 -1
  126. package/dist/i18n/micro-resources.js +1 -1
  127. package/dist/i18n/modules.js +1 -1
  128. package/dist/i18n/pre-engineered.d.ts +39 -0
  129. package/dist/i18n/pre-engineered.js +1 -0
  130. package/dist/i18n/pre-engineered.js.map +1 -0
  131. package/dist/i18n/ships.d.ts +36 -0
  132. package/dist/i18n/ships.js +1 -0
  133. package/dist/i18n/ships.js.map +1 -0
  134. package/dist/i18n/slots.d.ts +42 -0
  135. package/dist/i18n/slots.js +1 -0
  136. package/dist/i18n/slots.js.map +1 -0
  137. package/dist/materials/index.js +1 -1
  138. package/dist/materials/materials-all.js +1 -1
  139. package/dist/materials/materials.js +1 -1
  140. package/dist/materials/micro-resources-all.js +1 -1
  141. package/dist/materials/micro-resources.js +1 -1
  142. package/dist/ships/blueprint-costs.d.ts +13 -11
  143. package/dist/ships/blueprint-costs.js +1 -1
  144. package/dist/ships/blueprint-costs.js.map +1 -1
  145. package/dist/ships/blueprint-journal.d.ts +6 -7
  146. package/dist/ships/blueprint-journal.js +1 -1
  147. package/dist/ships/blueprints.js +1 -1
  148. package/dist/ships/default-loadouts.js +1 -1
  149. package/dist/ships/engineering-options.d.ts +28 -29
  150. package/dist/ships/engineering-options.js +1 -1
  151. package/dist/ships/experimental-effect-costs.js +1 -1
  152. package/dist/ships/experimental-effects.js +1 -1
  153. package/dist/ships/gunsights.js +1 -1
  154. package/dist/ships/heat.d.ts +22 -0
  155. package/dist/ships/heat.js +1 -1
  156. package/dist/ships/index.d.ts +6 -5
  157. package/dist/ships/index.js +1 -1
  158. package/dist/ships/loadout-calculations.d.ts +21 -11
  159. package/dist/ships/loadout-calculations.js +1 -1
  160. package/dist/ships/loadout-validation.d.ts +7 -6
  161. package/dist/ships/loadout-validation.js +1 -1
  162. package/dist/ships/modules-all.js +1 -1
  163. package/dist/ships/modules-hardpoint.js +1 -1
  164. package/dist/ships/modules-internal.js +1 -1
  165. package/dist/ships/modules.d.ts +5 -5
  166. package/dist/ships/modules.js +1 -1
  167. package/dist/ships/power.d.ts +39 -11
  168. package/dist/ships/power.js +1 -1
  169. package/dist/ships/pre-engineered-stats.d.ts +20 -4
  170. package/dist/ships/pre-engineered-stats.js +1 -1
  171. package/dist/ships/pre-engineered.d.ts +7 -8
  172. package/dist/ships/pre-engineered.js +1 -1
  173. package/dist/ships/shield-recovery.d.ts +12 -6
  174. package/dist/ships/shield-recovery.js +1 -1
  175. package/dist/ships/ship-loadout.d.ts +1793 -19
  176. package/dist/ships/ship-loadout.js +1 -1
  177. package/dist/ships/ships.js +1 -1
  178. package/dist/ships/slef.js +1 -1
  179. package/dist/ships/slots.js +1 -1
  180. package/dist/ships/source-purchase.js +1 -1
  181. package/package.json +26 -2
  182. package/dist/chunk-32PVERNH.js +0 -1
  183. package/dist/chunk-4AE22CHV.js.map +0 -1
  184. package/dist/chunk-4WC5NHBJ.js +0 -1
  185. package/dist/chunk-4WC5NHBJ.js.map +0 -1
  186. package/dist/chunk-53ERRGPM.js +0 -1
  187. package/dist/chunk-5W43EQEQ.js +0 -1
  188. package/dist/chunk-5W43EQEQ.js.map +0 -1
  189. package/dist/chunk-76XKY2Y2.js +0 -1
  190. package/dist/chunk-76XKY2Y2.js.map +0 -1
  191. package/dist/chunk-B5TT26XE.js +0 -1
  192. package/dist/chunk-B5TT26XE.js.map +0 -1
  193. package/dist/chunk-BYBT5XSW.js +0 -1
  194. package/dist/chunk-BYBT5XSW.js.map +0 -1
  195. package/dist/chunk-KLIYDSYF.js +0 -1
  196. package/dist/chunk-KLIYDSYF.js.map +0 -1
  197. package/dist/chunk-MPZGCTRG.js.map +0 -1
  198. package/dist/chunk-NSSWYRHN.js +0 -1
  199. package/dist/chunk-QMQHIZGS.js.map +0 -1
  200. package/dist/chunk-RF2IKLWQ.js +0 -1
  201. package/dist/chunk-RF2IKLWQ.js.map +0 -1
  202. package/dist/chunk-TH4S5MVD.js +0 -1
  203. package/dist/chunk-V4C6FIE2.js +0 -1
  204. package/dist/ship-loadout-BsfKbvKe.d.ts +0 -1455
  205. /package/dist/{chunk-KQDJTDLV.js.map → chunk-2J2UV4ZX.js.map} +0 -0
  206. /package/dist/{chunk-DB54PH3X.js.map → chunk-6EPYVBAX.js.map} +0 -0
  207. /package/dist/{chunk-U6TMCYA6.js.map → chunk-6EUVIZAS.js.map} +0 -0
  208. /package/dist/{chunk-NWPK6Q3S.js.map → chunk-ADLVPKUV.js.map} +0 -0
  209. /package/dist/{chunk-S4DBNX2B.js.map → chunk-BKWLI44T.js.map} +0 -0
  210. /package/dist/{chunk-WV5YM7H5.js.map → chunk-BMT3U46U.js.map} +0 -0
  211. /package/dist/{chunk-BTPV5CIF.js.map → chunk-DI5RXSJR.js.map} +0 -0
  212. /package/dist/{chunk-YDBRGW4G.js.map → chunk-DLLBARN5.js.map} +0 -0
  213. /package/dist/{chunk-J2PNZQY4.js.map → chunk-DVL5RBKX.js.map} +0 -0
  214. /package/dist/{chunk-VXVUEF5U.js.map → chunk-E3BRVGJJ.js.map} +0 -0
  215. /package/dist/{chunk-MFV4VZFP.js.map → chunk-EBAHNZ36.js.map} +0 -0
  216. /package/dist/{chunk-QF3NYGUJ.js.map → chunk-EKWLAHRG.js.map} +0 -0
  217. /package/dist/{chunk-Q22LXT53.js.map → chunk-FEER4ERG.js.map} +0 -0
  218. /package/dist/{chunk-G3AMKCOE.js.map → chunk-FGNJ7EVM.js.map} +0 -0
  219. /package/dist/{chunk-JWJ7RSZC.js.map → chunk-G3265B27.js.map} +0 -0
  220. /package/dist/{chunk-V3DW67W2.js.map → chunk-GRIK3EDH.js.map} +0 -0
  221. /package/dist/{chunk-UXZJMZEU.js.map → chunk-HRVIHQ4A.js.map} +0 -0
  222. /package/dist/{chunk-QTDBO7R2.js.map → chunk-IYU4WLFM.js.map} +0 -0
  223. /package/dist/{chunk-5EUX3L76.js.map → chunk-JWWYAMGD.js.map} +0 -0
  224. /package/dist/{chunk-ZFT56QFR.js.map → chunk-L7CLUYZ6.js.map} +0 -0
  225. /package/dist/{chunk-IH4NXKVW.js.map → chunk-NEEFT7WH.js.map} +0 -0
  226. /package/dist/{chunk-VZXL5KBR.js.map → chunk-NLBUKXNV.js.map} +0 -0
  227. /package/dist/{chunk-4OSCSACF.js.map → chunk-OCND33TO.js.map} +0 -0
  228. /package/dist/{chunk-PMJG7PHU.js.map → chunk-PHPLZEFS.js.map} +0 -0
  229. /package/dist/{chunk-DACZE3HX.js.map → chunk-POZTXBSN.js.map} +0 -0
  230. /package/dist/{chunk-DNTN34M4.js.map → chunk-QI22FKBG.js.map} +0 -0
  231. /package/dist/{chunk-MNXWK7PA.js.map → chunk-R26GVRMI.js.map} +0 -0
  232. /package/dist/{chunk-I7PIDRMU.js.map → chunk-RAO35XDF.js.map} +0 -0
  233. /package/dist/{chunk-JYQE53FL.js.map → chunk-TMMGS6TC.js.map} +0 -0
  234. /package/dist/{chunk-ZAHNOQGG.js.map → chunk-UBYO7VZR.js.map} +0 -0
  235. /package/dist/{chunk-Z4GTTB7I.js.map → chunk-UXBCLFGU.js.map} +0 -0
  236. /package/dist/{chunk-RKLJ7EEE.js.map → chunk-UXFMVZAY.js.map} +0 -0
  237. /package/dist/{chunk-IJRKEODR.js.map → chunk-WNGQ3IAM.js.map} +0 -0
  238. /package/dist/{chunk-VARPO47V.js.map → chunk-XN6Q7LWU.js.map} +0 -0
  239. /package/dist/{chunk-KMFUCORC.js.map → chunk-Y6UZWNP4.js.map} +0 -0
@@ -1 +1 @@
1
- import{requireStringIfPresent}from"./chunk-B5TT26XE.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function sourcePurchaseFromLoadout(event){const bySlot=/* @__PURE__ */new Map;for(const module of event.Modules){if(module.Value===void 0)continue;bySlot.set(module.Slot,{slot:module.Slot,item:module.Item,value:module.Value})}if(event.HullValue===void 0&&event.ModulesValue===void 0&&event.Rebuy===void 0&&bySlot.size===0){return null}return deepFreeze({hullValue:event.HullValue??null,modulesValue:event.ModulesValue??null,rebuy:event.Rebuy??null,moduleValues:[...bySlot.values()],moduleCount:event.Modules.length})}function getSourceModuleValue(record,slotKey){requireStringIfPresent(slotKey,"getSourceModuleValue: slotKey");for(const entry of record.moduleValues){if(entry.slot===slotKey)return entry}const wanted=slotKey?.toLowerCase();for(const entry of record.moduleValues){if(entry.slot.toLowerCase()===wanted)return entry}return null}function sumSourceModuleValues(record){let sum=0;for(const entry of record.moduleValues)sum+=entry.value;return sum}export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues};//# sourceMappingURL=chunk-QTDBO7R2.js.map
1
+ import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function sourcePurchaseFromLoadout(event){const bySlot=/* @__PURE__ */new Map;for(const module of event.Modules){if(module.Value===void 0)continue;bySlot.set(module.Slot,{slot:module.Slot,item:module.Item,value:module.Value})}if(event.HullValue===void 0&&event.ModulesValue===void 0&&event.Rebuy===void 0&&bySlot.size===0){return null}return deepFreeze({hullValue:event.HullValue??null,modulesValue:event.ModulesValue??null,rebuy:event.Rebuy??null,moduleValues:[...bySlot.values()],moduleCount:event.Modules.length})}function getSourceModuleValue(record,slotKey){requireStringIfPresent(slotKey,"getSourceModuleValue: slotKey");for(const entry of record.moduleValues){if(entry.slot===slotKey)return entry}const wanted=slotKey?.toLowerCase();for(const entry of record.moduleValues){if(entry.slot.toLowerCase()===wanted)return entry}return null}function sumSourceModuleValues(record){let sum=0;for(const entry of record.moduleValues)sum+=entry.value;return sum}export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues};//# sourceMappingURL=chunk-IYU4WLFM.js.map
@@ -1 +1 @@
1
- import{findByRawKey}from"./chunk-S4DBNX2B.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var modifications_default={suit_increasedmeleedamage:{name:"Added Melee Damage",target:"suit",engineers:["Jude Navarro","Kit Fowler","Eleanor Bresa"]},suit_adsmovementspeed:{name:"Combat Movement Speed",target:"suit",engineers:["Terra Velasquez","Yarden Bond","Baltanos"]},suit_improvedarmourrating:{name:"Damage Resistance",target:"suit",engineers:["Jude Navarro","Uma Laszlo","Eleanor Bresa"]},suit_improvedradar:{name:"Enhanced Tracking",target:"suit",engineers:["Domino Green","Oden Geiger","Rosa Dayette"]},suit_increasedammoreserves:{name:"Extra Ammo Capacity",target:"suit",engineers:["Jude Navarro","Kit Fowler","Eleanor Bresa"]},suit_backpackcapacity:{name:"Extra Backpack Capacity",target:"suit",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},suit_increasedshieldregen:{name:"Faster Shield Regeneration",target:"suit",engineers:["Kit Fowler","Uma Laszlo","Eleanor Bresa"]},suit_increasedbatterycapacity:{name:"Improved Battery Capacity",target:"suit",engineers:["Oden Geiger","Wellington Beck","Rosa Dayette"]},suit_improvedjumpassist:{name:"Improved Jump Assist",target:"suit",engineers:["Hero Ferrari","Yarden Bond","Baltanos"]},suit_increasedo2capacity:{name:"Increased Air Reserves",target:"suit",engineers:["Hero Ferrari","Terra Velasquez","Baltanos"]},suit_increasedsprintduration:{name:"Increased Sprint Duration",target:"suit",engineers:["Hero Ferrari","Terra Velasquez","Baltanos"]},suit_nightvision:{name:"Night Vision",target:"suit",engineers:["Oden Geiger","Yi Shen"]},suit_quieterfootsteps:{name:"Quieter Footsteps",target:"suit",engineers:["Yarden Bond","Yi Shen"]},suit_reducedtoolbatteryconsumption:{name:"Reduced Tool Battery Consumption",target:"suit",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},weapon_suppression_unpressurised:{name:"Audio Masking",target:"weapon",engineers:["Yarden Bond","Yi Shen"]},weapon_handling:{name:"Faster Handling",target:"weapon",engineers:["Hero Ferrari","Yarden Bond","Baltanos"]},weapon_range_kinetic:{name:"Greater Range",target:"weapon",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},weapon_range_laser:{name:"Greater Range",target:"weapon",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},weapon_range_plasma:{name:"Greater Range",target:"weapon",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},weapon_headshotdamage_kinetic:{name:"Headshot Damage",target:"weapon",engineers:["Uma Laszlo","Yi Shen"]},weapon_headshotdamage_laser:{name:"Headshot Damage",target:"weapon",engineers:["Uma Laszlo","Yi Shen"]},weapon_headshotdamage_plasma:{name:"Headshot Damage",target:"weapon",engineers:["Uma Laszlo","Yi Shen"]},weapon_accuracy_kinetic:{name:"Higher Accuracy",target:"weapon",engineers:["Yarden Bond","Terra Velasquez","Baltanos"]},weapon_accuracy_laser:{name:"Higher Accuracy",target:"weapon",engineers:["Yarden Bond","Terra Velasquez","Baltanos"]},weapon_accuracy_plasma:{name:"Higher Accuracy",target:"weapon",engineers:["Yarden Bond","Terra Velasquez","Baltanos"]},weapon_clipsize:{name:"Magazine Size",target:"weapon",engineers:["Jude Navarro","Kit Fowler","Eleanor Bresa"]},weapon_suppression_pressurised:{name:"Noise Suppressor",target:"weapon",engineers:["Hero Ferrari","Terra Velasquez","Baltanos"]},weapon_reloadspeed:{name:"Reload Speed",target:"weapon",engineers:["Jude Navarro","Uma Laszlo","Eleanor Bresa"]},weapon_scope:{name:"Scope",target:"weapon",engineers:["Oden Geiger","Wellington Beck","Rosa Dayette"]},weapon_stability:{name:"Stability",target:"weapon",engineers:["Domino Green","Oden Geiger","Rosa Dayette"]},weapon_backpackreloading:{name:"Stowed Reloading",target:"weapon",engineers:["Kit Fowler","Uma Laszlo","Eleanor Bresa"]}};var PERSONAL_MODIFICATIONS=deepFreeze(modifications_default);function getPersonalModification(symbol){return findByRawKey(PERSONAL_MODIFICATIONS,symbol,"getPersonalModification: symbol")}export{PERSONAL_MODIFICATIONS,getPersonalModification};//# sourceMappingURL=chunk-5EUX3L76.js.map
1
+ import{findByRawKey}from"./chunk-BKWLI44T.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var modifications_default={suit_increasedmeleedamage:{name:"Added Melee Damage",target:"suit",engineers:["Jude Navarro","Kit Fowler","Eleanor Bresa"]},suit_adsmovementspeed:{name:"Combat Movement Speed",target:"suit",engineers:["Terra Velasquez","Yarden Bond","Baltanos"]},suit_improvedarmourrating:{name:"Damage Resistance",target:"suit",engineers:["Jude Navarro","Uma Laszlo","Eleanor Bresa"]},suit_improvedradar:{name:"Enhanced Tracking",target:"suit",engineers:["Domino Green","Oden Geiger","Rosa Dayette"]},suit_increasedammoreserves:{name:"Extra Ammo Capacity",target:"suit",engineers:["Jude Navarro","Kit Fowler","Eleanor Bresa"]},suit_backpackcapacity:{name:"Extra Backpack Capacity",target:"suit",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},suit_increasedshieldregen:{name:"Faster Shield Regeneration",target:"suit",engineers:["Kit Fowler","Uma Laszlo","Eleanor Bresa"]},suit_increasedbatterycapacity:{name:"Improved Battery Capacity",target:"suit",engineers:["Oden Geiger","Wellington Beck","Rosa Dayette"]},suit_improvedjumpassist:{name:"Improved Jump Assist",target:"suit",engineers:["Hero Ferrari","Yarden Bond","Baltanos"]},suit_increasedo2capacity:{name:"Increased Air Reserves",target:"suit",engineers:["Hero Ferrari","Terra Velasquez","Baltanos"]},suit_increasedsprintduration:{name:"Increased Sprint Duration",target:"suit",engineers:["Hero Ferrari","Terra Velasquez","Baltanos"]},suit_nightvision:{name:"Night Vision",target:"suit",engineers:["Oden Geiger","Yi Shen"]},suit_quieterfootsteps:{name:"Quieter Footsteps",target:"suit",engineers:["Yarden Bond","Yi Shen"]},suit_reducedtoolbatteryconsumption:{name:"Reduced Tool Battery Consumption",target:"suit",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},weapon_suppression_unpressurised:{name:"Audio Masking",target:"weapon",engineers:["Yarden Bond","Yi Shen"]},weapon_handling:{name:"Faster Handling",target:"weapon",engineers:["Hero Ferrari","Yarden Bond","Baltanos"]},weapon_range_kinetic:{name:"Greater Range",target:"weapon",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},weapon_range_laser:{name:"Greater Range",target:"weapon",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},weapon_range_plasma:{name:"Greater Range",target:"weapon",engineers:["Domino Green","Wellington Beck","Rosa Dayette"]},weapon_headshotdamage_kinetic:{name:"Headshot Damage",target:"weapon",engineers:["Uma Laszlo","Yi Shen"]},weapon_headshotdamage_laser:{name:"Headshot Damage",target:"weapon",engineers:["Uma Laszlo","Yi Shen"]},weapon_headshotdamage_plasma:{name:"Headshot Damage",target:"weapon",engineers:["Uma Laszlo","Yi Shen"]},weapon_accuracy_kinetic:{name:"Higher Accuracy",target:"weapon",engineers:["Yarden Bond","Terra Velasquez","Baltanos"]},weapon_accuracy_laser:{name:"Higher Accuracy",target:"weapon",engineers:["Yarden Bond","Terra Velasquez","Baltanos"]},weapon_accuracy_plasma:{name:"Higher Accuracy",target:"weapon",engineers:["Yarden Bond","Terra Velasquez","Baltanos"]},weapon_clipsize:{name:"Magazine Size",target:"weapon",engineers:["Jude Navarro","Kit Fowler","Eleanor Bresa"]},weapon_suppression_pressurised:{name:"Noise Suppressor",target:"weapon",engineers:["Hero Ferrari","Terra Velasquez","Baltanos"]},weapon_reloadspeed:{name:"Reload Speed",target:"weapon",engineers:["Jude Navarro","Uma Laszlo","Eleanor Bresa"]},weapon_scope:{name:"Scope",target:"weapon",engineers:["Oden Geiger","Wellington Beck","Rosa Dayette"]},weapon_stability:{name:"Stability",target:"weapon",engineers:["Domino Green","Oden Geiger","Rosa Dayette"]},weapon_backpackreloading:{name:"Stowed Reloading",target:"weapon",engineers:["Kit Fowler","Uma Laszlo","Eleanor Bresa"]}};var PERSONAL_MODIFICATIONS=deepFreeze(modifications_default);function getPersonalModification(symbol){return findByRawKey(PERSONAL_MODIFICATIONS,symbol,"getPersonalModification: symbol")}export{PERSONAL_MODIFICATIONS,getPersonalModification};//# sourceMappingURL=chunk-JWWYAMGD.js.map
@@ -0,0 +1 @@
1
+ var CORE_NAMES={powerPlant:"Power Plant",thrusters:"Thrusters",frameShiftDrive:"Frame Shift Drive",lifeSupport:"Life Support",powerDistributor:"Power Distributor",sensors:"Sensors",fuelTank:"Fuel Tank"};var RESTRICTED_OPTIONAL_NAMES={military:"Military Slot",cargo:"Cargo Slot",limpetController:"Limpet Controller Slot",vesselHangar:"Vessel Hangar Slot",passenger:"Passenger Slot"};function trailingDigits(key){let start=key.length;while(start>0){const code=key.charCodeAt(start-1);if(code<48||code>57)break;start--}return start===key.length?null:key.slice(start)}function loadoutSlotName(slot){switch(slot.kind){case"core":return Object.hasOwn(CORE_NAMES,slot.core)?CORE_NAMES[slot.core]:slot.key;case"hardpoint":{const match=/^(Small|Medium|Large|Huge)(Mining)?Hardpoint(\d+)$/.exec(slot.key);if(!match)return slot.key;return`${match[1]}${match[2]?" Mining":""} Hardpoint ${Number(match[3])}`}case"utility":{const match=/^TinyHardpoint(\d+)$/.exec(slot.key);return match?`Utility Mount ${Number(match[1])}`:slot.key}case"optional":{if(slot.restriction==="planetaryApproachSuite")return"Planetary Approach Suite";if(slot.restriction){const numbered=trailingDigits(slot.key);const label=Object.hasOwn(RESTRICTED_OPTIONAL_NAMES,slot.restriction)?RESTRICTED_OPTIONAL_NAMES[slot.restriction]:void 0;return label&&numbered?`${label} ${Number(numbered)}`:slot.key}const optional=/^Slot(\d+)_Size(\d+)$/.exec(slot.key);return optional?`Optional Internal ${Number(optional[1])} (Size ${slot.size})`:slot.key}case"armour":return"Armour";case"cargoHatch":return"Cargo Hatch"}}export{loadoutSlotName};//# sourceMappingURL=chunk-KAA4VOOB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/internal/loadout-views.ts"],"names":["CORE_NAMES","powerPlant","thrusters","frameShiftDrive","lifeSupport","powerDistributor","sensors","fuelTank","RESTRICTED_OPTIONAL_NAMES","military","cargo","limpetController","vesselHangar","passenger","trailingDigits","key","start","length","code","charCodeAt","slice","loadoutSlotName","slot","kind","Object","hasOwn","core","match","exec","Number","restriction","numbered","label","optional","size"],"mappings":"AAIA,IAAMA,WAA2C,CAC7CC,WAAY,cACZC,UAAW,YACXC,gBAAiB,oBACjBC,YAAa,eACbC,iBAAkB,oBAClBC,QAAS,UACTC,SAAU,aAGd,IAAMC,0BAAsE,CACxEC,SAAU,gBACVC,MAAO,aACPC,iBAAkB,yBAClBC,aAAc,qBACdC,UAAW,kBAGf,SAASC,eAAeC,KACpB,IAAIC,MAAQD,IAAIE,OAChB,MAAOD,MAAQ,EAAG,CACd,MAAME,KAAOH,IAAII,WAAWH,MAAQ,GACpC,GAAIE,KAAO,IAAQA,KAAO,GAAM,MAChCF,OACJ,CACA,OAAOA,QAAUD,IAAIE,OAAS,KAAOF,IAAIK,MAAMJ,MACnD,CAGO,SAASK,gBAAgBC,MAC5B,OAAQA,KAAKC,MACT,IAAK,OACD,OAAOC,OAAOC,OAAOzB,WAAYsB,KAAKI,MAAQ1B,WAAWsB,KAAKI,MAAQJ,KAAKP,IAC/E,IAAK,YAAa,CACd,MAAMY,MAAQ,qDAAqDC,KAAKN,KAAKP,KAC7E,IAAKY,MAAO,OAAOL,KAAKP,IACxB,MAAO,GAAGY,MAAM,KAAKA,MAAM,GAAK,UAAY,gBAAgBE,OAAOF,MAAM,KAC7E,CACA,IAAK,UAAW,CACZ,MAAMA,MAAQ,uBAAuBC,KAAKN,KAAKP,KAC/C,OAAOY,MAAQ,iBAAiBE,OAAOF,MAAM,MAAQL,KAAKP,GAC9D,CACA,IAAK,WAAY,CACb,GAAIO,KAAKQ,cAAgB,yBAA0B,MAAO,2BAC1D,GAAIR,KAAKQ,YAAa,CAClB,MAAMC,SAAWjB,eAAeQ,KAAKP,KACrC,MAAMiB,MAAQR,OAAOC,OAAOjB,0BAA2Bc,KAAKQ,aACtDtB,0BAA0Bc,KAAKQ,kBAC/B,EACN,OAAOE,OAASD,SAAW,GAAGC,SAASH,OAAOE,YAAcT,KAAKP,GACrE,CACA,MAAMkB,SAAW,wBAAwBL,KAAKN,KAAKP,KACnD,OAAOkB,SACD,qBAAqBJ,OAAOI,SAAS,aAAaX,KAAKY,QACvDZ,KAAKP,GACf,CACA,IAAK,SACD,MAAO,SACX,IAAK,aACD,MAAO,cAEnB,QAAAM"}
@@ -1 +1 @@
1
- import{findByKey}from"./chunk-S4DBNX2B.js";function distanceSquared(coords,nebula){const dx=coords.x-nebula.x;const dy=coords.y-nebula.y;const dz=coords.z-nebula.z;return dx*dx+dy*dy+dz*dz}function compareRank(a,b){return a.distanceSquared-b.distanceSquared||a.catalogueIndex-b.catalogueIndex}function withDistance({nebula:nebula,distanceSquared:distanceSquared2}){return{...nebula,distanceLy:Math.sqrt(distanceSquared2)}}function pushMaxHeap(heap,ranked){heap.push(ranked);let index=heap.length-1;while(index>0){const parent=Math.floor((index-1)/2);if(compareRank(heap[parent],heap[index])>=0)return;[heap[parent],heap[index]]=[heap[index],heap[parent]];index=parent}}function replaceMaxHeapRoot(heap,ranked){heap[0]=ranked;let index=0;while(true){const left=index*2+1;if(left>=heap.length)return;const right=left+1;const worseChild=right<heap.length&&compareRank(heap[right],heap[left])>0?right:left;if(compareRank(heap[index],heap[worseChild])>=0)return;[heap[index],heap[worseChild]]=[heap[worseChild],heap[index]];index=worseChild}}function nearestNebulae(coords,nebulae,count=3){const limit=Math.min(Math.max(Math.trunc(count),0),nebulae.length);if(!(limit>0))return[];if(limit===nebulae.length){const ranked=nebulae.map(nebula=>({nebula:nebula,distanceSquared:distanceSquared(coords,nebula)}));ranked.sort((a,b)=>a.distanceSquared-b.distanceSquared);return ranked.map(({nebula:nebula,distanceSquared:distanceSquared2})=>({...nebula,distanceLy:Math.sqrt(distanceSquared2)}))}const nearest=[];nebulae.forEach((nebula,catalogueIndex)=>{const ranked={nebula:nebula,distanceSquared:distanceSquared(coords,nebula),catalogueIndex:catalogueIndex};if(nearest.length<limit){pushMaxHeap(nearest,ranked)}else if(compareRank(ranked,nearest[0])<0){replaceMaxHeapRoot(nearest,ranked)}});nearest.sort(compareRank);return nearest.map(withDistance)}function nebulaeWithin(coords,nebulae,radiusLy){if(radiusLy<0)return[];const limit=radiusLy*radiusLy;const hits=[];for(const nebula of nebulae){const d2=distanceSquared(coords,nebula);if(d2<=limit)hits.push({...nebula,distanceLy:Math.sqrt(d2)})}hits.sort((a,b)=>a.distanceLy-b.distanceLy);return hits}function getNebulaByName(name,nebulae){return findByKey(nebulae,"name",name,"getNebulaByName: name")}export{getNebulaByName,nearestNebulae,nebulaeWithin};//# sourceMappingURL=chunk-ZFT56QFR.js.map
1
+ import{findByKey}from"./chunk-BKWLI44T.js";function distanceSquared(coords,nebula){const dx=coords.x-nebula.x;const dy=coords.y-nebula.y;const dz=coords.z-nebula.z;return dx*dx+dy*dy+dz*dz}function compareRank(a,b){return a.distanceSquared-b.distanceSquared||a.catalogueIndex-b.catalogueIndex}function withDistance({nebula:nebula,distanceSquared:distanceSquared2}){return{...nebula,distanceLy:Math.sqrt(distanceSquared2)}}function pushMaxHeap(heap,ranked){heap.push(ranked);let index=heap.length-1;while(index>0){const parent=Math.floor((index-1)/2);if(compareRank(heap[parent],heap[index])>=0)return;[heap[parent],heap[index]]=[heap[index],heap[parent]];index=parent}}function replaceMaxHeapRoot(heap,ranked){heap[0]=ranked;let index=0;while(true){const left=index*2+1;if(left>=heap.length)return;const right=left+1;const worseChild=right<heap.length&&compareRank(heap[right],heap[left])>0?right:left;if(compareRank(heap[index],heap[worseChild])>=0)return;[heap[index],heap[worseChild]]=[heap[worseChild],heap[index]];index=worseChild}}function nearestNebulae(coords,nebulae,count=3){const limit=Math.min(Math.max(Math.trunc(count),0),nebulae.length);if(!(limit>0))return[];if(limit===nebulae.length){const ranked=nebulae.map(nebula=>({nebula:nebula,distanceSquared:distanceSquared(coords,nebula)}));ranked.sort((a,b)=>a.distanceSquared-b.distanceSquared);return ranked.map(({nebula:nebula,distanceSquared:distanceSquared2})=>({...nebula,distanceLy:Math.sqrt(distanceSquared2)}))}const nearest=[];nebulae.forEach((nebula,catalogueIndex)=>{const ranked={nebula:nebula,distanceSquared:distanceSquared(coords,nebula),catalogueIndex:catalogueIndex};if(nearest.length<limit){pushMaxHeap(nearest,ranked)}else if(compareRank(ranked,nearest[0])<0){replaceMaxHeapRoot(nearest,ranked)}});nearest.sort(compareRank);return nearest.map(withDistance)}function nebulaeWithin(coords,nebulae,radiusLy){if(radiusLy<0)return[];const limit=radiusLy*radiusLy;const hits=[];for(const nebula of nebulae){const d2=distanceSquared(coords,nebula);if(d2<=limit)hits.push({...nebula,distanceLy:Math.sqrt(d2)})}hits.sort((a,b)=>a.distanceLy-b.distanceLy);return hits}function getNebulaByName(name,nebulae){return findByKey(nebulae,"name",name,"getNebulaByName: name")}export{getNebulaByName,nearestNebulae,nebulaeWithin};//# sourceMappingURL=chunk-L7CLUYZ6.js.map
@@ -1 +1 @@
1
- import{normalizeKey,CATALOGUE_KEY,findInKeyIndex}from"./chunk-S4DBNX2B.js";import{requireString}from"./chunk-B5TT26XE.js";var CANONICAL_LOCALE=Object.freeze({en:"en",de:"de",es:"es",fr:"fr",hu:"hu",it:"it",ka:"ka",pt:"pt","pt-br":"pt-BR",ru:"ru","zh-cn":"zh-CN"});function canonicalLocale(locale){return Object.hasOwn(CANONICAL_LOCALE,locale)?CANONICAL_LOCALE[locale]:void 0}function localeCandidates(locale,label){const normalized=requireString(locale,label).trim().replaceAll("_","-").toLowerCase();if(normalized==="zh"||normalized==="zh-hans"||normalized.startsWith("zh-hans-")){return["zh-CN"]}if(normalized.startsWith("zh-")&&normalized!=="zh-cn")return[];const exact=canonicalLocale(normalized);const language=canonicalLocale(normalized.split("-",1)[0]);if(exact===void 0)return language===void 0?[]:[language];return language===void 0||language===exact?[exact]:[exact,language]}function createLocalizedNameIndex(names){const index=/* @__PURE__ */Object.create(null);for(const[identifier,name]of Object.entries(names)){const key=normalizeKey(identifier,CATALOGUE_KEY);if(!Object.hasOwn(index,key))index[key]=name}return Object.freeze(index)}function createDeduplicatedLocalizedNameIndex(catalogue){const index=/* @__PURE__ */Object.create(null);for(const[identifier,nameKey]of Object.entries(catalogue.nameKeys)){const name=catalogue.names[nameKey];if(name===void 0)continue;const key=normalizeKey(identifier,CATALOGUE_KEY);if(!Object.hasOwn(index,key))index[key]=name}return Object.freeze(index)}function selectLocalizedName(names,locale,functionName){const candidates=localeCandidates(locale,`${functionName}: locale`);if(names===null)return null;for(const candidate of candidates){const name=names[candidate];if(name!==void 0)return name}return null}function getLocalizedName(names,identifier,locale,functionName,identifierName){const record=findInKeyIndex(names,identifier,`${functionName}: ${identifierName}`);return selectLocalizedName(record,locale,functionName)}export{createDeduplicatedLocalizedNameIndex,createLocalizedNameIndex,getLocalizedName};//# sourceMappingURL=chunk-4AE22CHV.js.map
1
+ import{normalizeKey,CATALOGUE_KEY,findInKeyIndex}from"./chunk-BKWLI44T.js";import{requireString}from"./chunk-PKWVG2JY.js";var CANONICAL_LOCALE=Object.freeze({en:"en",de:"de",es:"es",fr:"fr",hu:"hu",it:"it",ka:"ka",pt:"pt","pt-br":"pt-BR",ru:"ru","zh-cn":"zh-CN"});function canonicalLocale(locale){return Object.hasOwn(CANONICAL_LOCALE,locale)?CANONICAL_LOCALE[locale]:void 0}function localeCandidates(locale,label){const normalized=requireString(locale,label).trim().replaceAll("_","-").toLowerCase();if(normalized==="zh"||normalized==="zh-hans"||normalized.startsWith("zh-hans-")){return["zh-CN"]}if(normalized.startsWith("zh-")&&normalized!=="zh-cn")return[];const exact=canonicalLocale(normalized);const language=canonicalLocale(normalized.split("-",1)[0]);if(exact===void 0)return language===void 0?[]:[language];return language===void 0||language===exact?[exact]:[exact,language]}function createLocalizedNameIndex(names){const index=/* @__PURE__ */Object.create(null);for(const[identifier,name]of Object.entries(names)){const key=normalizeKey(identifier,CATALOGUE_KEY);if(!Object.hasOwn(index,key))index[key]=name}return Object.freeze(index)}function createDeduplicatedLocalizedNameIndex(catalogue){const index=/* @__PURE__ */Object.create(null);for(const[identifier,nameKey]of Object.entries(catalogue.nameKeys)){const name=catalogue.names[nameKey];if(name===void 0)continue;const key=normalizeKey(identifier,CATALOGUE_KEY);if(!Object.hasOwn(index,key))index[key]=name}return Object.freeze(index)}function selectLocalizedName(names,locale,functionName){const candidates=localeCandidates(locale,`${functionName}: locale`);if(names===null)return null;for(const candidate of candidates){const name=names[candidate];if(name!==void 0)return name}return null}function getLocalizedText(names,locale,functionName){return selectLocalizedName(names,locale,functionName)}function getLocalizedName(names,identifier,locale,functionName,identifierName){const record=findInKeyIndex(names,identifier,`${functionName}: ${identifierName}`);return selectLocalizedName(record,locale,functionName)}export{createDeduplicatedLocalizedNameIndex,createLocalizedNameIndex,getLocalizedName,getLocalizedText};//# sourceMappingURL=chunk-M5IBENCW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/internal/localized-name.ts"],"names":["normalizeKey","CATALOGUE_KEY","findInKeyIndex","requireString","CANONICAL_LOCALE","Object","freeze","en","de","es","fr","hu","it","ka","pt","ru","canonicalLocale","locale","hasOwn","localeCandidates","label","normalized","trim","replaceAll","toLowerCase","startsWith","exact","language","split","createLocalizedNameIndex","names","index","create","identifier","name","entries","key","createDeduplicatedLocalizedNameIndex","catalogue","nameKey","nameKeys","selectLocalizedName","functionName","candidates","candidate","getLocalizedText","getLocalizedName","identifierName","record"],"mappings":"O,mHA4BA,IAAMI,iBAA8DC,OAAOC,OAAO,CAC9EC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJ,QAAS,QACTC,GAAI,KACJ,QAAS,UAIb,SAASC,gBAAgBC,QACrB,OAAOZ,OAAOa,OAAOd,iBAAkBa,QAAUb,iBAAiBa,aAAU,CAChF,CAMA,SAASE,iBAAiBF,OAAgBG,OACtC,MAAMC,WAAalB,cAAcc,OAAQG,OAAOE,OAAOC,WAAW,IAAK,KAAKC,cAC5E,GAAIH,aAAe,MAAQA,aAAe,WAAaA,WAAWI,WAAW,YAAa,CACtF,MAAO,CAAC,QACZ,CACA,GAAIJ,WAAWI,WAAW,QAAUJ,aAAe,QAAA,MAAgB,GACnE,MAAMK,MAAQV,gBAAgBK,YAC9B,MAAMM,SAAWX,gBAAgBK,WAAWO,MAAM,IAAK,GAAG,IAC1D,GAAIF,aAAU,EAAW,OAAOC,gBAAa,EAAY,GAAK,CAACA,UAC/D,OAAOA,gBAAa,GAAaA,WAAaD,MAAQ,CAACA,OAAS,CAACA,MAAOC,SAC5E,CAGO,SAASE,yBAAyBC,OACrC,MAAMC,qBAAQ1B,OAAO2B,OAAO,MAC5B,IAAA,MAAYC,WAAYC,QAAS7B,OAAO8B,QAAQL,OAAQ,CACpD,MAAMM,IAAMpC,aAAaiC,WAAYhC,eACrC,IAAKI,OAAOa,OAAOa,MAAOK,KAAML,MAAMK,KAAOF,IACjD,CACA,OAAO7B,OAAOC,OAAOyB,MACzB,CAGO,SAASM,qCACZC,WAEA,MAAMP,qBAAQ1B,OAAO2B,OAAO,MAC5B,IAAA,MAAYC,WAAYM,WAAYlC,OAAO8B,QAAQG,UAAUE,UAAW,CACpE,MAAMN,KAAOI,UAAUR,MAAMS,SAC7B,GAAIL,YAAS,EAAW,SACxB,MAAME,IAAMpC,aAAaiC,WAAYhC,eACrC,IAAKI,OAAOa,OAAOa,MAAOK,KAAML,MAAMK,KAAOF,IACjD,CACA,OAAO7B,OAAOC,OAAOyB,MACzB,CAGA,SAASU,oBACLX,MACAb,OACAyB,cAEA,MAAMC,WAAaxB,iBAAiBF,OAAQ,GAAGyB,wBAC/C,GAAIZ,QAAU,KAAM,OAAO,KAC3B,IAAA,MAAWc,aAAaD,WAAY,CAChC,MAAMT,KAAOJ,MAAMc,WACnB,GAAIV,YAAS,EAAW,OAAOA,IACnC,CACA,OAAO,IACX,CAGO,SAASW,iBACZf,MACAb,OACAyB,cAEA,OAAOD,oBAAoBX,MAAOb,OAAQyB,aAC9C,CAGO,SAASI,iBACZhB,MACAG,WACAhB,OACAyB,aACAK,gBAEA,MAAMC,OAAS9C,eAAe4B,MAAOG,WAAY,GAAGS,iBAAiBK,kBACrE,OAAON,oBAAoBO,OAAQ/B,OAAQyB,aAC/C,QAAAL,qCAAAR,yBAAAiB,iBAAAD"}
@@ -1 +1 @@
1
- import{describeValue}from"./chunk-B5TT26XE.js";function tryToSystemAddress(address){if(typeof address==="bigint")return address;if(typeof address==="number"){return Number.isSafeInteger(address)&&address>=0?BigInt(address):null}if(typeof address!=="string")return null;const trimmed=address.trim();return/^\d+$/.test(trimmed)?BigInt(trimmed):null}function toSystemAddress(address){const id64=tryToSystemAddress(address);if(id64===null){throw new TypeError(`Not a usable system address (expected a bigint, a non-negative safe integer, or a decimal string): ${describeValue(address)}`)}return id64}export{toSystemAddress,tryToSystemAddress};//# sourceMappingURL=chunk-IH4NXKVW.js.map
1
+ import{describeValue}from"./chunk-PKWVG2JY.js";function tryToSystemAddress(address){if(typeof address==="bigint")return address;if(typeof address==="number"){return Number.isSafeInteger(address)&&address>=0?BigInt(address):null}if(typeof address!=="string")return null;const trimmed=address.trim();return/^\d+$/.test(trimmed)?BigInt(trimmed):null}function toSystemAddress(address){const id64=tryToSystemAddress(address);if(id64===null){throw new TypeError(`Not a usable system address (expected a bigint, a non-negative safe integer, or a decimal string): ${describeValue(address)}`)}return id64}export{toSystemAddress,tryToSystemAddress};//# sourceMappingURL=chunk-NEEFT7WH.js.map
@@ -1 +1 @@
1
- import{normalizeKey}from"./chunk-S4DBNX2B.js";var permit_locked_regions_default=["Bleia1","Bleia2","Bleia3","Bleia4","Bleia5","Bovomit","Col 121 Sector","Col 70 Sector","Col 97 Sector","Cone Sector","Dryman","Froadik","Horsehead Dark Region","Hyponia","IC 4673 Sector","M41 Sector","NGC 1647 Sector","NGC 2264 Sector","NGC 2286 Sector","NGC 3603 Sector","Praei1","Praei2","Praei3","Praei4","Praei5","Praei6","Regor Sector","Sidgoir"];var PERMIT_LOCKED_REGIONS=Object.freeze([...permit_locked_regions_default]);var REGION_INDEX=new Map(PERMIT_LOCKED_REGIONS.map(name=>[name.toLowerCase(),name]));function isPermitLockedRegionName(name){return REGION_INDEX.has(normalizeKey(name,"isPermitLockedRegionName: name"))}function permitLockedRegionForSystemName(systemName){const normalized=normalizeKey(systemName,"permitLockedRegionForSystemName: systemName");if(!normalized)return null;for(const[key,region]of REGION_INDEX){if(normalized===key||normalized.startsWith(`${key} `))return region}return null}export{PERMIT_LOCKED_REGIONS,isPermitLockedRegionName,permitLockedRegionForSystemName};//# sourceMappingURL=chunk-VZXL5KBR.js.map
1
+ import{normalizeKey}from"./chunk-BKWLI44T.js";var permit_locked_regions_default=["Bleia1","Bleia2","Bleia3","Bleia4","Bleia5","Bovomit","Col 121 Sector","Col 70 Sector","Col 97 Sector","Cone Sector","Dryman","Froadik","Horsehead Dark Region","Hyponia","IC 4673 Sector","M41 Sector","NGC 1647 Sector","NGC 2264 Sector","NGC 2286 Sector","NGC 3603 Sector","Praei1","Praei2","Praei3","Praei4","Praei5","Praei6","Regor Sector","Sidgoir"];var PERMIT_LOCKED_REGIONS=Object.freeze([...permit_locked_regions_default]);var REGION_INDEX=new Map(PERMIT_LOCKED_REGIONS.map(name=>[name.toLowerCase(),name]));function isPermitLockedRegionName(name){return REGION_INDEX.has(normalizeKey(name,"isPermitLockedRegionName: name"))}function permitLockedRegionForSystemName(systemName){const normalized=normalizeKey(systemName,"permitLockedRegionForSystemName: systemName");if(!normalized)return null;for(const[key,region]of REGION_INDEX){if(normalized===key||normalized.startsWith(`${key} `))return region}return null}export{PERMIT_LOCKED_REGIONS,isPermitLockedRegionName,permitLockedRegionForSystemName};//# sourceMappingURL=chunk-NLBUKXNV.js.map
@@ -1 +1 @@
1
- import{findInKeyIndex,createKeyIndex}from"./chunk-S4DBNX2B.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var weapons_default=[{symbol:"wpn_s_pistol_kinetic_sauto",name:"Karma P-15",upgradeGroup:"karma",class:"pistol",slot:"secondary",damageType:"kinetic",fireMode:"semi-automatic",rateOfFire:10,magazineSize:24,reserveAmmo:120,headshotMultiplier:2,effectiveRange:25,grades:{1:{damage:1.4,modificationSlots:0},2:{damage:1.8,modificationSlots:1},3:{damage:2.4,modificationSlots:2},4:{damage:3.8,modificationSlots:3},5:{damage:4.1,modificationSlots:4}},engineeringType:"kinetic"},{symbol:"wpn_m_assaultrifle_kinetic_fauto",name:"Karma AR-50",upgradeGroup:"karma",class:"rifle",slot:"primary",damageType:"kinetic",fireMode:"automatic",rateOfFire:9.5,magazineSize:50,reserveAmmo:200,headshotMultiplier:2,effectiveRange:50,grades:{1:{damage:1,modificationSlots:0},2:{damage:1.2,modificationSlots:1},3:{damage:1.6,modificationSlots:2},4:{damage:2.2,modificationSlots:3},5:{damage:2.8,modificationSlots:4}},engineeringType:"kinetic"},{symbol:"wpn_m_submachinegun_kinetic_fauto",name:"Karma C-44",upgradeGroup:"karma",class:"carbine",slot:"primary",damageType:"kinetic",fireMode:"automatic",rateOfFire:13.3,magazineSize:45,reserveAmmo:360,headshotMultiplier:2,effectiveRange:25,grades:{1:{damage:.6,modificationSlots:0},2:{damage:.9,modificationSlots:1},3:{damage:1.1,modificationSlots:2},4:{damage:1.5,modificationSlots:3},5:{damage:1.9,modificationSlots:4}},engineeringType:"kinetic"},{symbol:"wpn_m_launcher_rocket_sauto",name:"Karma L-6",upgradeGroup:"karma",class:"launcher",slot:"primary",damageType:"explosive",fireMode:"automatic",rateOfFire:1,magazineSize:2,reserveAmmo:8,headshotMultiplier:1,effectiveRange:300,grades:{1:{damage:40,modificationSlots:0},2:{damage:52.4,modificationSlots:1},3:{damage:69.2,modificationSlots:2},4:{damage:90,modificationSlots:3},5:{damage:119.2,modificationSlots:4}},engineeringType:"kinetic"},{symbol:"wpn_m_assaultrifle_laser_fauto",name:"TK Aphelion",upgradeGroup:"takada",class:"rifle",slot:"primary",damageType:"thermal",fireMode:"automatic",rateOfFire:5.7,magazineSize:25,reserveAmmo:150,headshotMultiplier:1,effectiveRange:70,grades:{1:{damage:1.6,modificationSlots:0},2:{damage:2.1,modificationSlots:1},3:{damage:2.7,modificationSlots:2},4:{damage:3.6,modificationSlots:3},5:{damage:4.7,modificationSlots:4}},engineeringType:"laser"},{symbol:"wpn_m_submachinegun_laser_fauto",name:"TK Eclipse",upgradeGroup:"takada",class:"carbine",slot:"primary",damageType:"thermal",fireMode:"automatic",rateOfFire:10,magazineSize:45,reserveAmmo:280,headshotMultiplier:1,effectiveRange:25,grades:{1:{damage:.9,modificationSlots:0},2:{damage:1.1,modificationSlots:1},3:{damage:1.5,modificationSlots:2},4:{damage:1.9,modificationSlots:3},5:{damage:2.5,modificationSlots:4}},engineeringType:"laser"},{symbol:"wpn_s_pistol_laser_sauto",name:"TK Zenith",upgradeGroup:"takada",class:"pistol",slot:"secondary",damageType:"thermal",fireMode:"burst",rateOfFire:5.7,magazineSize:18,reserveAmmo:90,headshotMultiplier:1,effectiveRange:35,grades:{1:{damage:1.7,modificationSlots:0},2:{damage:2.2,modificationSlots:1},3:{damage:2.9,modificationSlots:2},4:{damage:3.8,modificationSlots:3},5:{damage:5,modificationSlots:4}},engineeringType:"laser"},{symbol:"wpn_m_sniper_plasma_charged",name:"Manticore Executioner",upgradeGroup:"manticore",class:"sniper",slot:"primary",damageType:"plasma",fireMode:"semi-automatic",rateOfFire:.8,magazineSize:3,reserveAmmo:30,headshotMultiplier:3,effectiveRange:100,grades:{1:{damage:15,modificationSlots:0},2:{damage:19.6,modificationSlots:1},3:{damage:26,modificationSlots:2},4:{damage:34,modificationSlots:3},5:{damage:44.7,modificationSlots:4}},engineeringType:"plasma"},{symbol:"wpn_s_pistol_plasma_charged",name:"Manticore Tormentor",upgradeGroup:"manticore",class:"pistol",slot:"secondary",damageType:"plasma",fireMode:"semi-automatic",rateOfFire:1.7,magazineSize:6,reserveAmmo:72,headshotMultiplier:2,effectiveRange:15,grades:{1:{damage:7.5,modificationSlots:0},2:{damage:9.8,modificationSlots:1},3:{damage:13,modificationSlots:2},4:{damage:17,modificationSlots:3},5:{damage:22.4,modificationSlots:4}},engineeringType:"plasma"},{symbol:"wpn_m_shotgun_plasma_doublebarrel",name:"Manticore Intimidator",upgradeGroup:"manticore",class:"shotgun",slot:"primary",damageType:"plasma",fireMode:"semi-automatic",rateOfFire:1.3,magazineSize:2,reserveAmmo:24,headshotMultiplier:1.5,effectiveRange:7,grades:{1:{damage:1.8,modificationSlots:0},2:{damage:2.3,modificationSlots:1},3:{damage:3,modificationSlots:2},4:{damage:4,modificationSlots:3},5:{damage:5.2,modificationSlots:4}},engineeringType:"plasma"},{symbol:"wpn_m_assaultrifle_plasma_fauto",name:"Manticore Oppressor",upgradeGroup:"manticore",class:"rifle",slot:"primary",damageType:"plasma",fireMode:"automatic",rateOfFire:6.7,magazineSize:50,reserveAmmo:300,headshotMultiplier:1.5,effectiveRange:35,grades:{1:{damage:1.1,modificationSlots:0},2:{damage:1.4,modificationSlots:1},3:{damage:1.9,modificationSlots:2},4:{damage:2.5,modificationSlots:3},5:{damage:3.275,modificationSlots:4}},engineeringType:"plasma"}];var PERSONAL_WEAPONS=deepFreeze(weapons_default);var BY_SYMBOL=/* @__PURE__ */createKeyIndex(PERSONAL_WEAPONS,"symbol");var BY_NAME=/* @__PURE__ */createKeyIndex(PERSONAL_WEAPONS,"name");function getPersonalWeaponBySymbol(symbol){return findInKeyIndex(BY_SYMBOL,symbol,"getPersonalWeaponBySymbol: symbol")}function getPersonalWeaponByName(name){return findInKeyIndex(BY_NAME,name,"getPersonalWeaponByName: name")}function getPersonalWeaponGrade(weapon,grade){if(!Number.isInteger(grade)||grade<1||grade>5){throw new RangeError(`getPersonalWeaponGrade: grade must be an integer in [1, 5]`)}return weapon.grades[String(grade)]}export{PERSONAL_WEAPONS,getPersonalWeaponByName,getPersonalWeaponBySymbol,getPersonalWeaponGrade};//# sourceMappingURL=chunk-4OSCSACF.js.map
1
+ import{findInKeyIndex,createKeyIndex}from"./chunk-BKWLI44T.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var weapons_default=[{symbol:"wpn_s_pistol_kinetic_sauto",name:"Karma P-15",upgradeGroup:"karma",class:"pistol",slot:"secondary",damageType:"kinetic",fireMode:"semi-automatic",rateOfFire:10,magazineSize:24,reserveAmmo:120,headshotMultiplier:2,effectiveRange:25,grades:{1:{damage:1.4,modificationSlots:0},2:{damage:1.8,modificationSlots:1},3:{damage:2.4,modificationSlots:2},4:{damage:3.8,modificationSlots:3},5:{damage:4.1,modificationSlots:4}},engineeringType:"kinetic"},{symbol:"wpn_m_assaultrifle_kinetic_fauto",name:"Karma AR-50",upgradeGroup:"karma",class:"rifle",slot:"primary",damageType:"kinetic",fireMode:"automatic",rateOfFire:9.5,magazineSize:50,reserveAmmo:200,headshotMultiplier:2,effectiveRange:50,grades:{1:{damage:1,modificationSlots:0},2:{damage:1.2,modificationSlots:1},3:{damage:1.6,modificationSlots:2},4:{damage:2.2,modificationSlots:3},5:{damage:2.8,modificationSlots:4}},engineeringType:"kinetic"},{symbol:"wpn_m_submachinegun_kinetic_fauto",name:"Karma C-44",upgradeGroup:"karma",class:"carbine",slot:"primary",damageType:"kinetic",fireMode:"automatic",rateOfFire:13.3,magazineSize:45,reserveAmmo:360,headshotMultiplier:2,effectiveRange:25,grades:{1:{damage:.6,modificationSlots:0},2:{damage:.9,modificationSlots:1},3:{damage:1.1,modificationSlots:2},4:{damage:1.5,modificationSlots:3},5:{damage:1.9,modificationSlots:4}},engineeringType:"kinetic"},{symbol:"wpn_m_launcher_rocket_sauto",name:"Karma L-6",upgradeGroup:"karma",class:"launcher",slot:"primary",damageType:"explosive",fireMode:"automatic",rateOfFire:1,magazineSize:2,reserveAmmo:8,headshotMultiplier:1,effectiveRange:300,grades:{1:{damage:40,modificationSlots:0},2:{damage:52.4,modificationSlots:1},3:{damage:69.2,modificationSlots:2},4:{damage:90,modificationSlots:3},5:{damage:119.2,modificationSlots:4}},engineeringType:"kinetic"},{symbol:"wpn_m_assaultrifle_laser_fauto",name:"TK Aphelion",upgradeGroup:"takada",class:"rifle",slot:"primary",damageType:"thermal",fireMode:"automatic",rateOfFire:5.7,magazineSize:25,reserveAmmo:150,headshotMultiplier:1,effectiveRange:70,grades:{1:{damage:1.6,modificationSlots:0},2:{damage:2.1,modificationSlots:1},3:{damage:2.7,modificationSlots:2},4:{damage:3.6,modificationSlots:3},5:{damage:4.7,modificationSlots:4}},engineeringType:"laser"},{symbol:"wpn_m_submachinegun_laser_fauto",name:"TK Eclipse",upgradeGroup:"takada",class:"carbine",slot:"primary",damageType:"thermal",fireMode:"automatic",rateOfFire:10,magazineSize:45,reserveAmmo:280,headshotMultiplier:1,effectiveRange:25,grades:{1:{damage:.9,modificationSlots:0},2:{damage:1.1,modificationSlots:1},3:{damage:1.5,modificationSlots:2},4:{damage:1.9,modificationSlots:3},5:{damage:2.5,modificationSlots:4}},engineeringType:"laser"},{symbol:"wpn_s_pistol_laser_sauto",name:"TK Zenith",upgradeGroup:"takada",class:"pistol",slot:"secondary",damageType:"thermal",fireMode:"burst",rateOfFire:5.7,magazineSize:18,reserveAmmo:90,headshotMultiplier:1,effectiveRange:35,grades:{1:{damage:1.7,modificationSlots:0},2:{damage:2.2,modificationSlots:1},3:{damage:2.9,modificationSlots:2},4:{damage:3.8,modificationSlots:3},5:{damage:5,modificationSlots:4}},engineeringType:"laser"},{symbol:"wpn_m_sniper_plasma_charged",name:"Manticore Executioner",upgradeGroup:"manticore",class:"sniper",slot:"primary",damageType:"plasma",fireMode:"semi-automatic",rateOfFire:.8,magazineSize:3,reserveAmmo:30,headshotMultiplier:3,effectiveRange:100,grades:{1:{damage:15,modificationSlots:0},2:{damage:19.6,modificationSlots:1},3:{damage:26,modificationSlots:2},4:{damage:34,modificationSlots:3},5:{damage:44.7,modificationSlots:4}},engineeringType:"plasma"},{symbol:"wpn_s_pistol_plasma_charged",name:"Manticore Tormentor",upgradeGroup:"manticore",class:"pistol",slot:"secondary",damageType:"plasma",fireMode:"semi-automatic",rateOfFire:1.7,magazineSize:6,reserveAmmo:72,headshotMultiplier:2,effectiveRange:15,grades:{1:{damage:7.5,modificationSlots:0},2:{damage:9.8,modificationSlots:1},3:{damage:13,modificationSlots:2},4:{damage:17,modificationSlots:3},5:{damage:22.4,modificationSlots:4}},engineeringType:"plasma"},{symbol:"wpn_m_shotgun_plasma_doublebarrel",name:"Manticore Intimidator",upgradeGroup:"manticore",class:"shotgun",slot:"primary",damageType:"plasma",fireMode:"semi-automatic",rateOfFire:1.3,magazineSize:2,reserveAmmo:24,headshotMultiplier:1.5,effectiveRange:7,grades:{1:{damage:1.8,modificationSlots:0},2:{damage:2.3,modificationSlots:1},3:{damage:3,modificationSlots:2},4:{damage:4,modificationSlots:3},5:{damage:5.2,modificationSlots:4}},engineeringType:"plasma"},{symbol:"wpn_m_assaultrifle_plasma_fauto",name:"Manticore Oppressor",upgradeGroup:"manticore",class:"rifle",slot:"primary",damageType:"plasma",fireMode:"automatic",rateOfFire:6.7,magazineSize:50,reserveAmmo:300,headshotMultiplier:1.5,effectiveRange:35,grades:{1:{damage:1.1,modificationSlots:0},2:{damage:1.4,modificationSlots:1},3:{damage:1.9,modificationSlots:2},4:{damage:2.5,modificationSlots:3},5:{damage:3.275,modificationSlots:4}},engineeringType:"plasma"}];var PERSONAL_WEAPONS=deepFreeze(weapons_default);var BY_SYMBOL=/* @__PURE__ */createKeyIndex(PERSONAL_WEAPONS,"symbol");var BY_NAME=/* @__PURE__ */createKeyIndex(PERSONAL_WEAPONS,"name");function getPersonalWeaponBySymbol(symbol){return findInKeyIndex(BY_SYMBOL,symbol,"getPersonalWeaponBySymbol: symbol")}function getPersonalWeaponByName(name){return findInKeyIndex(BY_NAME,name,"getPersonalWeaponByName: name")}function getPersonalWeaponGrade(weapon,grade){if(!Number.isInteger(grade)||grade<1||grade>5){throw new RangeError(`getPersonalWeaponGrade: grade must be an integer in [1, 5]`)}return weapon.grades[String(grade)]}export{PERSONAL_WEAPONS,getPersonalWeaponByName,getPersonalWeaponBySymbol,getPersonalWeaponGrade};//# sourceMappingURL=chunk-OCND33TO.js.map
@@ -1 +1 @@
1
- import{findByRawKey}from"./chunk-S4DBNX2B.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var experimental_effects_default={special_concordant_sequence:{name:"Concordant Sequence",modifiers:[{label:"ThermalLoad",method:"multiplicative",value:.5}]},special_weapon_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_emissive_munitions:{name:"Emissive Munitions",modifiers:[{label:"ThermalLoad",method:"multiplicative",value:1}]},special_feedback_cascade_cooled:{name:"Feedback Cascade",modifiers:[{label:"Damage",method:"multiplicative",value:-.2},{label:"ThermalLoad",method:"multiplicative",value:-.4}]},special_weapon_efficient:{name:"Flow Control",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.1}]},special_incendiary_rounds:{name:"Incendiary Rounds",modifiers:[{label:"ThermalLoad",method:"multiplicative",value:2},{label:"BurstInterval",method:"multiplicative",value:.052632}]},special_weapon_rateoffire:{name:"Multi-servos",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.05},{label:"BurstInterval",method:"multiplicative",value:-.029126}]},special_weapon_damage:{name:"Oversized",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.05},{label:"Damage",method:"multiplicative",value:.03}]},special_plasma_slug_cooled:{name:"Plasma Slug",modifiers:[{label:"Damage",method:"multiplicative",value:-.1},{label:"ThermalLoad",method:"multiplicative",value:-.4},{label:"AmmoMaximum",method:"multiplicative",value:-1}]},special_weapon_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_super_penetrator_cooled:{name:"Super Penetrator",modifiers:[{label:"ThermalLoad",method:"multiplicative",value:-.4},{label:"ReloadTime",method:"multiplicative",value:.5}]},special_shieldbooster_explosive:{name:"Blast Block",modifiers:[{label:"DefenceModifierShieldMultiplier",method:"multiplicative",value:-.01},{label:"ExplosiveResistance",method:"additive",value:.02}]},special_shieldbooster_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_shieldbooster_efficient:{name:"Flow Control",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.1}]},special_shieldbooster_kinetic:{name:"Force Block",modifiers:[{label:"DefenceModifierShieldMultiplier",method:"multiplicative",value:-.01},{label:"KineticResistance",method:"additive",value:.02}]},special_shieldbooster_chunky:{name:"Super Capacitors",modifiers:[{label:"DefenceModifierShieldMultiplier",method:"multiplicative",value:.05},{label:"KineticResistance",method:"additive",value:-.02},{label:"ThermicResistance",method:"additive",value:-.02},{label:"ExplosiveResistance",method:"additive",value:-.02}]},special_shieldbooster_thermic:{name:"Thermo Block",modifiers:[{label:"DefenceModifierShieldMultiplier",method:"multiplicative",value:-.01},{label:"ThermicResistance",method:"additive",value:.02}]},special_armour_kinetic:{name:"Angled Plating",modifiers:[{label:"DefenceModifierHealthMultiplier",method:"multiplicative",value:-.03},{label:"KineticResistance",method:"additive",value:.08}]},special_armour_chunky:{name:"Deep Plating",modifiers:[{label:"DefenceModifierHealthMultiplier",method:"multiplicative",value:.08},{label:"KineticResistance",method:"additive",value:-.03},{label:"ThermicResistance",method:"additive",value:-.03},{label:"ExplosiveResistance",method:"additive",value:-.03}]},special_armour_explosive:{name:"Layered Plating",modifiers:[{label:"DefenceModifierHealthMultiplier",method:"multiplicative",value:-.03},{label:"ExplosiveResistance",method:"additive",value:.08}]},special_armour_thermic:{name:"Reflective Plating",modifiers:[{label:"DefenceModifierHealthMultiplier",method:"multiplicative",value:-.03},{label:"ThermicResistance",method:"additive",value:.08}]},special_powerplant_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_powerplant_highcharge:{name:"Monstered",modifiers:[{label:"Mass",method:"multiplicative",value:.1},{label:"PowerCapacity",method:"multiplicative",value:.05}]},special_powerplant_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_powerplant_cooled:{name:"Thermal Spread",modifiers:[{label:"HeatEfficiency",method:"multiplicative",value:-.1}]},special_engine_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_engine_overloaded:{name:"Drag Drives",modifiers:[{label:"EngineOptPerformance",method:"multiplicative",value:.04},{label:"EngineHeatRate",method:"multiplicative",value:.1}]},special_engine_haulage:{name:"Drive Distributors",modifiers:[{label:"EngineOptimalMass",method:"multiplicative",value:.1}]},special_engine_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_engine_cooled:{name:"Thermal Spread",modifiers:[{label:"Mass",method:"multiplicative",value:.05},{label:"EngineHeatRate",method:"multiplicative",value:-.1}]},special_fsd_fuelcapacity:{name:"Deep Charge",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.05},{label:"MaxFuelPerJump",method:"multiplicative",value:.1}]},special_fsd_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.25}]},special_fsd_heavy:{name:"Mass Manager",modifiers:[{label:"Integrity",method:"multiplicative",value:-.08},{label:"FSDOptimalMass",method:"multiplicative",value:.04}]},special_fsd_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_fsd_cooled:{name:"Thermal Spread",modifiers:[{label:"FSDHeatRate",method:"multiplicative",value:-.1}]},special_powerdistributor_capacity:{name:"Cluster Capacitors",modifiers:[{label:"WeaponsCapacity",method:"multiplicative",value:.08},{label:"WeaponsRecharge",method:"multiplicative",value:-.02},{label:"EnginesCapacity",method:"multiplicative",value:.08},{label:"EnginesRecharge",method:"multiplicative",value:-.02},{label:"SystemsCapacity",method:"multiplicative",value:.08},{label:"SystemsRecharge",method:"multiplicative",value:-.02}]},special_powerdistributor_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_powerdistributor_efficient:{name:"Flow Control",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.1}]},special_powerdistributor_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_powerdistributor_fast:{name:"Super Conduits",modifiers:[{label:"WeaponsCapacity",method:"multiplicative",value:-.04},{label:"WeaponsRecharge",method:"multiplicative",value:.04},{label:"EnginesCapacity",method:"multiplicative",value:-.04},{label:"EnginesRecharge",method:"multiplicative",value:.04},{label:"SystemsCapacity",method:"multiplicative",value:-.04},{label:"SystemsRecharge",method:"multiplicative",value:.04}]},special_hullreinforcement_kinetic:{name:"Angled Plating",modifiers:[{label:"DefenceModifierHealthAddition",method:"multiplicative",value:-.05},{label:"KineticResistance",method:"additive",value:.02}]},special_hullreinforcement_chunky:{name:"Deep Plating",modifiers:[{label:"DefenceModifierHealthAddition",method:"multiplicative",value:.1},{label:"KineticResistance",method:"additive",value:-.02},{label:"ThermicResistance",method:"additive",value:-.02},{label:"ExplosiveResistance",method:"additive",value:-.02}]},special_hullreinforcement_explosive:{name:"Layered Plating",modifiers:[{label:"DefenceModifierHealthAddition",method:"multiplicative",value:-.05},{label:"ExplosiveResistance",method:"additive",value:.02}]},special_hullreinforcement_thermic:{name:"Reflective Plating",modifiers:[{label:"DefenceModifierHealthAddition",method:"multiplicative",value:-.05},{label:"ThermicResistance",method:"additive",value:.02}]},special_shieldcell_oversized:{name:"Boss Cells",modifiers:[{label:"ShieldBankSpinUp",method:"multiplicative",value:.2},{label:"ShieldBankReinforcement",method:"multiplicative",value:.05}]},special_shieldcell_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_shieldcell_efficient:{name:"Flow Control",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.1}]},special_shieldcell_gradual:{name:"Recycling Cell",modifiers:[{label:"ShieldBankDuration",method:"multiplicative",value:.1},{label:"ShieldBankReinforcement",method:"multiplicative",value:-.05}]},special_shieldcell_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_shield_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_shield_regenerative:{name:"Fast Charge",modifiers:[{label:"RegenRate",method:"multiplicative",value:.15},{label:"BrokenRegenRate",method:"multiplicative",value:.15},{label:"KineticResistance",method:"additive",value:-.015},{label:"ThermicResistance",method:"additive",value:-.015},{label:"ExplosiveResistance",method:"additive",value:-.015}]},special_shield_kinetic:{name:"Force Block",modifiers:[{label:"ShieldGenStrength",method:"multiplicative",value:-.03},{label:"KineticResistance",method:"additive",value:.08}]},special_shield_health:{name:"Hi-Cap",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.1},{label:"ShieldGenStrength",method:"multiplicative",value:.06},{label:"EnergyPerRegen",method:"multiplicative",value:.25}]},special_shield_efficient:{name:"Lo-draw",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.2},{label:"ShieldGenStrength",method:"multiplicative",value:-.02},{label:"EnergyPerRegen",method:"multiplicative",value:-.2},{label:"KineticResistance",method:"additive",value:-.01},{label:"ThermicResistance",method:"additive",value:-.01},{label:"ExplosiveResistance",method:"additive",value:-.01}]},special_shield_resistive:{name:"Multi-weave",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.1},{label:"EnergyPerRegen",method:"multiplicative",value:.25},{label:"KineticResistance",method:"additive",value:.03},{label:"ThermicResistance",method:"additive",value:.03},{label:"ExplosiveResistance",method:"additive",value:.03}]},special_shield_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_shield_thermic:{name:"Thermo Block",modifiers:[{label:"ShieldGenStrength",method:"multiplicative",value:-.03},{label:"ThermicResistance",method:"additive",value:.08}]},special_auto_loader:{name:"Auto Loader",modifiers:[],description:"Reloads the weapon while it continues firing."},special_corrosive_shell:{name:"Corrosive Shell",modifiers:[{label:"AmmoMaximum",method:"multiplicative",value:-.2}],description:"Reduces the target armour hardness; costs 20% maximum ammo."},special_blinding_shell:{name:"Dazzle Shell",modifiers:[],description:"Reduces the target's sensor acuity."},special_dispersal_field:{name:"Dispersal Field",modifiers:[],description:"Reduces the target's gimbal and turret tracking."},special_drag_munitions:{name:"Drag Munitions",modifiers:[],description:"Reduces the target's speed and prevents it from boosting engine thrust."},special_force_shell:{name:"Force Shell",modifiers:[{label:"ShotSpeed",method:"multiplicative",value:-.166667}],description:"Pushes the target off course."},special_fsd_interrupt:{name:"FSD Interrupt",modifiers:[{label:"Damage",method:"multiplicative",value:-.3},{label:"BurstInterval",method:"multiplicative",value:.5}],description:"Reboots the target's frame shift drive."},special_high_yield_shell:{name:"High Yield Shell",modifiers:[{label:"Damage",method:"multiplicative",value:-.35},{label:"BurstInterval",method:"multiplicative",value:.111111}],damageDistribution:{kinetic:.5,explosive:.5},description:"Deals 50/50 kinetic/explosive damage with module splash damage."},special_distortion_field:{name:"Inertial Impact",modifiers:[{label:"Damage",method:"multiplicative",value:.5},{label:"Jitter",method:"additive",value:3}],damageDistribution:{kinetic:.5,thermal:.5},description:"Deals 50/50 kinetic/thermal damage."},special_choke_canister:{name:"Ion Disruption",modifiers:[],description:"Reboots the target's thrusters."},special_mass_lock:{name:"Mass Lock Munition",modifiers:[],description:"Inhibits the target's frame shift drive."},special_overload_munitions:{name:"Overload Munitions",modifiers:[],damageDistribution:{thermal:.5,explosive:.5},description:"Converts damage to 50/50 explosive/thermal."},special_penetrator_munitions:{name:"Penetrator Munitions",modifiers:[],description:"Deals damage to the target's modules."},special_deep_cut_payload:{name:"Penetrator Payload",modifiers:[],description:"Deals damage to the target's modules."},special_phasing_sequence:{name:"Phasing Sequence",modifiers:[{label:"Damage",method:"multiplicative",value:-.1}],description:"10% of damage bypasses shields."},special_plasma_slug:{name:"Plasma Slug",modifiers:[{label:"Damage",method:"multiplicative",value:-.1},{label:"AmmoMaximum",method:"multiplicative",value:-1}],description:"Reloads from ship fuel instead of ammunition."},special_radiant_canister:{name:"Radiant Canister",modifiers:[],description:"Emits an area of heat and sensor disruption."},special_regeneration_sequence:{name:"Regeneration Sequence",modifiers:[{label:"Damage",method:"multiplicative",value:-.1}],description:"Regenerates wingmates’ shields on hits."},special_reverberating_cascade:{name:"Reverberating Cascade",modifiers:[],description:"Damages the target's shield generator."},special_scramble_spectrum:{name:"Scramble Spectrum",modifiers:[{label:"BurstInterval",method:"multiplicative",value:.111111}],description:"Causes the target's modules to malfunction."},special_screening_shell:{name:"Screening Shell",modifiers:[{label:"ReloadTime",method:"multiplicative",value:-.5}],description:"Effective against munitions (e.g. missiles)."},special_shiftlock_canister:{name:"Shift-lock Canister",modifiers:[],description:"Reboots the frame shift drives of ships in the area."},special_smart_rounds:{name:"Smart Rounds",modifiers:[],description:"Deals no damage to ships that are not the current target."},special_super_penetrator:{name:"Super Penetrator",modifiers:[{label:"ReloadTime",method:"multiplicative",value:.5}],description:"Deals damage to the target's modules."},special_lock_breaker:{name:"Target Lock Breaker",modifiers:[],description:"Causes the target to lose its lock."},special_thermal_cascade:{name:"Thermal Cascade",modifiers:[],description:"Increases heat on a shielded target."},special_thermal_conduit:{name:"Thermal Conduit",modifiers:[],description:"Damage scales with the attacker's heat level."},special_thermalshock:{name:"Thermal Shock",modifiers:[{label:"Damage",method:"multiplicative",value:-.1}],description:"Increases the target's heat."},special_thermal_vent:{name:"Thermal Vent",modifiers:[],description:"Reduces the attacker's heat when hitting a target."}};var EXPERIMENTAL_EFFECTS=deepFreeze(experimental_effects_default);function getExperimentalEffect(fdname){return findByRawKey(EXPERIMENTAL_EFFECTS,fdname,"getExperimentalEffect: fdname")}export{EXPERIMENTAL_EFFECTS,getExperimentalEffect};//# sourceMappingURL=chunk-PMJG7PHU.js.map
1
+ import{findByRawKey}from"./chunk-BKWLI44T.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var experimental_effects_default={special_concordant_sequence:{name:"Concordant Sequence",modifiers:[{label:"ThermalLoad",method:"multiplicative",value:.5}]},special_weapon_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_emissive_munitions:{name:"Emissive Munitions",modifiers:[{label:"ThermalLoad",method:"multiplicative",value:1}]},special_feedback_cascade_cooled:{name:"Feedback Cascade",modifiers:[{label:"Damage",method:"multiplicative",value:-.2},{label:"ThermalLoad",method:"multiplicative",value:-.4}]},special_weapon_efficient:{name:"Flow Control",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.1}]},special_incendiary_rounds:{name:"Incendiary Rounds",modifiers:[{label:"ThermalLoad",method:"multiplicative",value:2},{label:"BurstInterval",method:"multiplicative",value:.052632}]},special_weapon_rateoffire:{name:"Multi-servos",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.05},{label:"BurstInterval",method:"multiplicative",value:-.029126}]},special_weapon_damage:{name:"Oversized",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.05},{label:"Damage",method:"multiplicative",value:.03}]},special_plasma_slug_cooled:{name:"Plasma Slug",modifiers:[{label:"Damage",method:"multiplicative",value:-.1},{label:"ThermalLoad",method:"multiplicative",value:-.4},{label:"AmmoMaximum",method:"multiplicative",value:-1}]},special_weapon_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_super_penetrator_cooled:{name:"Super Penetrator",modifiers:[{label:"ThermalLoad",method:"multiplicative",value:-.4},{label:"ReloadTime",method:"multiplicative",value:.5}]},special_shieldbooster_explosive:{name:"Blast Block",modifiers:[{label:"DefenceModifierShieldMultiplier",method:"multiplicative",value:-.01},{label:"ExplosiveResistance",method:"additive",value:.02}]},special_shieldbooster_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_shieldbooster_efficient:{name:"Flow Control",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.1}]},special_shieldbooster_kinetic:{name:"Force Block",modifiers:[{label:"DefenceModifierShieldMultiplier",method:"multiplicative",value:-.01},{label:"KineticResistance",method:"additive",value:.02}]},special_shieldbooster_chunky:{name:"Super Capacitors",modifiers:[{label:"DefenceModifierShieldMultiplier",method:"multiplicative",value:.05},{label:"KineticResistance",method:"additive",value:-.02},{label:"ThermicResistance",method:"additive",value:-.02},{label:"ExplosiveResistance",method:"additive",value:-.02}]},special_shieldbooster_thermic:{name:"Thermo Block",modifiers:[{label:"DefenceModifierShieldMultiplier",method:"multiplicative",value:-.01},{label:"ThermicResistance",method:"additive",value:.02}]},special_armour_kinetic:{name:"Angled Plating",modifiers:[{label:"DefenceModifierHealthMultiplier",method:"multiplicative",value:-.03},{label:"KineticResistance",method:"additive",value:.08}]},special_armour_chunky:{name:"Deep Plating",modifiers:[{label:"DefenceModifierHealthMultiplier",method:"multiplicative",value:.08},{label:"KineticResistance",method:"additive",value:-.03},{label:"ThermicResistance",method:"additive",value:-.03},{label:"ExplosiveResistance",method:"additive",value:-.03}]},special_armour_explosive:{name:"Layered Plating",modifiers:[{label:"DefenceModifierHealthMultiplier",method:"multiplicative",value:-.03},{label:"ExplosiveResistance",method:"additive",value:.08}]},special_armour_thermic:{name:"Reflective Plating",modifiers:[{label:"DefenceModifierHealthMultiplier",method:"multiplicative",value:-.03},{label:"ThermicResistance",method:"additive",value:.08}]},special_powerplant_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_powerplant_highcharge:{name:"Monstered",modifiers:[{label:"Mass",method:"multiplicative",value:.1},{label:"PowerCapacity",method:"multiplicative",value:.05}]},special_powerplant_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_powerplant_cooled:{name:"Thermal Spread",modifiers:[{label:"HeatEfficiency",method:"multiplicative",value:-.1}]},special_engine_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_engine_overloaded:{name:"Drag Drives",modifiers:[{label:"EngineOptPerformance",method:"multiplicative",value:.04},{label:"EngineHeatRate",method:"multiplicative",value:.1}]},special_engine_haulage:{name:"Drive Distributors",modifiers:[{label:"EngineOptimalMass",method:"multiplicative",value:.1}]},special_engine_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_engine_cooled:{name:"Thermal Spread",modifiers:[{label:"Mass",method:"multiplicative",value:.05},{label:"EngineHeatRate",method:"multiplicative",value:-.1}]},special_fsd_fuelcapacity:{name:"Deep Charge",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.05},{label:"MaxFuelPerJump",method:"multiplicative",value:.1}]},special_fsd_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.25}]},special_fsd_heavy:{name:"Mass Manager",modifiers:[{label:"Integrity",method:"multiplicative",value:-.08},{label:"FSDOptimalMass",method:"multiplicative",value:.04}]},special_fsd_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_fsd_cooled:{name:"Thermal Spread",modifiers:[{label:"FSDHeatRate",method:"multiplicative",value:-.1}]},special_powerdistributor_capacity:{name:"Cluster Capacitors",modifiers:[{label:"WeaponsCapacity",method:"multiplicative",value:.08},{label:"WeaponsRecharge",method:"multiplicative",value:-.02},{label:"EnginesCapacity",method:"multiplicative",value:.08},{label:"EnginesRecharge",method:"multiplicative",value:-.02},{label:"SystemsCapacity",method:"multiplicative",value:.08},{label:"SystemsRecharge",method:"multiplicative",value:-.02}]},special_powerdistributor_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_powerdistributor_efficient:{name:"Flow Control",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.1}]},special_powerdistributor_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_powerdistributor_fast:{name:"Super Conduits",modifiers:[{label:"WeaponsCapacity",method:"multiplicative",value:-.04},{label:"WeaponsRecharge",method:"multiplicative",value:.04},{label:"EnginesCapacity",method:"multiplicative",value:-.04},{label:"EnginesRecharge",method:"multiplicative",value:.04},{label:"SystemsCapacity",method:"multiplicative",value:-.04},{label:"SystemsRecharge",method:"multiplicative",value:.04}]},special_hullreinforcement_kinetic:{name:"Angled Plating",modifiers:[{label:"DefenceModifierHealthAddition",method:"multiplicative",value:-.05},{label:"KineticResistance",method:"additive",value:.02}]},special_hullreinforcement_chunky:{name:"Deep Plating",modifiers:[{label:"DefenceModifierHealthAddition",method:"multiplicative",value:.1},{label:"KineticResistance",method:"additive",value:-.02},{label:"ThermicResistance",method:"additive",value:-.02},{label:"ExplosiveResistance",method:"additive",value:-.02}]},special_hullreinforcement_explosive:{name:"Layered Plating",modifiers:[{label:"DefenceModifierHealthAddition",method:"multiplicative",value:-.05},{label:"ExplosiveResistance",method:"additive",value:.02}]},special_hullreinforcement_thermic:{name:"Reflective Plating",modifiers:[{label:"DefenceModifierHealthAddition",method:"multiplicative",value:-.05},{label:"ThermicResistance",method:"additive",value:.02}]},special_shieldcell_oversized:{name:"Boss Cells",modifiers:[{label:"ShieldBankSpinUp",method:"multiplicative",value:.2},{label:"ShieldBankReinforcement",method:"multiplicative",value:.05}]},special_shieldcell_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_shieldcell_efficient:{name:"Flow Control",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.1}]},special_shieldcell_gradual:{name:"Recycling Cell",modifiers:[{label:"ShieldBankDuration",method:"multiplicative",value:.1},{label:"ShieldBankReinforcement",method:"multiplicative",value:-.05}]},special_shieldcell_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_shield_toughened:{name:"Double Braced",modifiers:[{label:"Integrity",method:"multiplicative",value:.15}]},special_shield_regenerative:{name:"Fast Charge",modifiers:[{label:"RegenRate",method:"multiplicative",value:.15},{label:"BrokenRegenRate",method:"multiplicative",value:.15},{label:"KineticResistance",method:"additive",value:-.015},{label:"ThermicResistance",method:"additive",value:-.015},{label:"ExplosiveResistance",method:"additive",value:-.015}]},special_shield_kinetic:{name:"Force Block",modifiers:[{label:"ShieldGenStrength",method:"multiplicative",value:-.03},{label:"KineticResistance",method:"additive",value:.08}]},special_shield_health:{name:"Hi-Cap",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.1},{label:"ShieldGenStrength",method:"multiplicative",value:.06},{label:"EnergyPerRegen",method:"multiplicative",value:.25}]},special_shield_efficient:{name:"Lo-draw",modifiers:[{label:"PowerDraw",method:"multiplicative",value:-.2},{label:"ShieldGenStrength",method:"multiplicative",value:-.02},{label:"EnergyPerRegen",method:"multiplicative",value:-.2},{label:"KineticResistance",method:"additive",value:-.01},{label:"ThermicResistance",method:"additive",value:-.01},{label:"ExplosiveResistance",method:"additive",value:-.01}]},special_shield_resistive:{name:"Multi-weave",modifiers:[{label:"PowerDraw",method:"multiplicative",value:.1},{label:"EnergyPerRegen",method:"multiplicative",value:.25},{label:"KineticResistance",method:"additive",value:.03},{label:"ThermicResistance",method:"additive",value:.03},{label:"ExplosiveResistance",method:"additive",value:.03}]},special_shield_lightweight:{name:"Stripped Down",modifiers:[{label:"Mass",method:"multiplicative",value:-.1}]},special_shield_thermic:{name:"Thermo Block",modifiers:[{label:"ShieldGenStrength",method:"multiplicative",value:-.03},{label:"ThermicResistance",method:"additive",value:.08}]},special_auto_loader:{name:"Auto Loader",modifiers:[],description:"Reloads the weapon while it continues firing."},special_corrosive_shell:{name:"Corrosive Shell",modifiers:[{label:"AmmoMaximum",method:"multiplicative",value:-.2}],description:"Reduces the target armour hardness; costs 20% maximum ammo."},special_blinding_shell:{name:"Dazzle Shell",modifiers:[],description:"Reduces the target's sensor acuity."},special_dispersal_field:{name:"Dispersal Field",modifiers:[],description:"Reduces the target's gimbal and turret tracking."},special_drag_munitions:{name:"Drag Munitions",modifiers:[],description:"Reduces the target's speed and prevents it from boosting engine thrust."},special_force_shell:{name:"Force Shell",modifiers:[{label:"ShotSpeed",method:"multiplicative",value:-.166667}],description:"Pushes the target off course."},special_fsd_interrupt:{name:"FSD Interrupt",modifiers:[{label:"Damage",method:"multiplicative",value:-.3},{label:"BurstInterval",method:"multiplicative",value:.5}],description:"Reboots the target's frame shift drive."},special_high_yield_shell:{name:"High Yield Shell",modifiers:[{label:"Damage",method:"multiplicative",value:-.35},{label:"BurstInterval",method:"multiplicative",value:.111111}],damageDistribution:{kinetic:.5,explosive:.5},description:"Deals 50/50 kinetic/explosive damage with module splash damage."},special_distortion_field:{name:"Inertial Impact",modifiers:[{label:"Damage",method:"multiplicative",value:.5},{label:"Jitter",method:"additive",value:3}],damageDistribution:{kinetic:.5,thermal:.5},description:"Deals 50/50 kinetic/thermal damage."},special_choke_canister:{name:"Ion Disruption",modifiers:[],description:"Reboots the target's thrusters."},special_mass_lock:{name:"Mass Lock Munition",modifiers:[],description:"Inhibits the target's frame shift drive."},special_overload_munitions:{name:"Overload Munitions",modifiers:[],damageDistribution:{thermal:.5,explosive:.5},description:"Converts damage to 50/50 explosive/thermal."},special_penetrator_munitions:{name:"Penetrator Munitions",modifiers:[],description:"Deals damage to the target's modules."},special_deep_cut_payload:{name:"Penetrator Payload",modifiers:[],description:"Deals damage to the target's modules."},special_phasing_sequence:{name:"Phasing Sequence",modifiers:[{label:"Damage",method:"multiplicative",value:-.1}],description:"10% of damage bypasses shields."},special_plasma_slug:{name:"Plasma Slug",modifiers:[{label:"Damage",method:"multiplicative",value:-.1},{label:"AmmoMaximum",method:"multiplicative",value:-1}],description:"Reloads from ship fuel instead of ammunition."},special_radiant_canister:{name:"Radiant Canister",modifiers:[],description:"Emits an area of heat and sensor disruption."},special_regeneration_sequence:{name:"Regeneration Sequence",modifiers:[{label:"Damage",method:"multiplicative",value:-.1}],description:"Regenerates wingmates’ shields on hits."},special_reverberating_cascade:{name:"Reverberating Cascade",modifiers:[],description:"Damages the target's shield generator."},special_scramble_spectrum:{name:"Scramble Spectrum",modifiers:[{label:"BurstInterval",method:"multiplicative",value:.111111}],description:"Causes the target's modules to malfunction."},special_screening_shell:{name:"Screening Shell",modifiers:[{label:"ReloadTime",method:"multiplicative",value:-.5}],description:"Effective against munitions (e.g. missiles)."},special_shiftlock_canister:{name:"Shift-lock Canister",modifiers:[],description:"Reboots the frame shift drives of ships in the area."},special_smart_rounds:{name:"Smart Rounds",modifiers:[],description:"Deals no damage to ships that are not the current target."},special_super_penetrator:{name:"Super Penetrator",modifiers:[{label:"ReloadTime",method:"multiplicative",value:.5}],description:"Deals damage to the target's modules."},special_lock_breaker:{name:"Target Lock Breaker",modifiers:[],description:"Causes the target to lose its lock."},special_thermal_cascade:{name:"Thermal Cascade",modifiers:[],description:"Increases heat on a shielded target."},special_thermal_conduit:{name:"Thermal Conduit",modifiers:[],description:"Damage scales with the attacker's heat level."},special_thermalshock:{name:"Thermal Shock",modifiers:[{label:"Damage",method:"multiplicative",value:-.1}],description:"Increases the target's heat."},special_thermal_vent:{name:"Thermal Vent",modifiers:[],description:"Reduces the attacker's heat when hitting a target."}};var EXPERIMENTAL_EFFECTS=deepFreeze(experimental_effects_default);function getExperimentalEffect(fdname){return findByRawKey(EXPERIMENTAL_EFFECTS,fdname,"getExperimentalEffect: fdname")}export{EXPERIMENTAL_EFFECTS,getExperimentalEffect};//# sourceMappingURL=chunk-PHPLZEFS.js.map
@@ -0,0 +1 @@
1
+ var PREVIEW_LIMIT=60;function describeValue(value){if(value===null||value===void 0)return String(value);const type=typeof value;if(type==="string")return`string ${truncate(JSON.stringify(value))}`;if(type==="object"||type==="function"){const preview=previewOf(value);return preview===null?type:`${type} ${preview}`}return`${type} ${truncate(value)}`}function requireString(value,label){if(typeof value!=="string"){throw new TypeError(`${label} must be a string, received ${describeValue(value)}`)}return value}function requireStringIfPresent(value,label){if(value!==null&&value!==void 0)requireString(value,label)}function requireObject(value,label){if(value===null||typeof value!=="object"){throw new TypeError(`${label} must be an object, received ${describeValue(value)}`)}}function previewOf(value){let json;try{json=JSON.stringify(value)}catch{return null}if(json===void 0)return null;return truncate(json)}function truncate(value){let text;try{text=String(value)}catch{text="<unprintable>"}if(text.length<=PREVIEW_LIMIT)return text;const cut=/[\uD800-\uDBFF]$/.test(text.slice(0,PREVIEW_LIMIT))?PREVIEW_LIMIT-1:PREVIEW_LIMIT;return`${text.slice(0,cut)}…`}export{describeValue,requireObject,requireString,requireStringIfPresent,truncate};//# sourceMappingURL=chunk-PKWVG2JY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/argument-guards.ts"],"names":["PREVIEW_LIMIT","describeValue","value","String","type","truncate","JSON","stringify","preview","previewOf","requireString","label","TypeError","requireStringIfPresent","requireObject","json","text","length","cut","test","slice"],"mappings":"AAkBA,IAAMA,cAAgB,GAcf,SAASC,cAAcC,OAC1B,GAAIA,QAAU,MAAQA,aAAU,EAAW,OAAOC,OAAOD,OAEzD,MAAME,YAAcF,MACpB,GAAIE,OAAS,SAAU,MAAO,UAAUC,SAASC,KAAKC,UAAUL,UAChE,GAAIE,OAAS,UAAYA,OAAS,WAAY,CAC1C,MAAMI,QAAUC,UAAUP,OAC1B,OAAOM,UAAY,KAAOJ,KAAO,GAAGA,QAAQI,SAChD,CACA,MAAO,GAAGJ,QAAQC,SAASH,QAC/B,CAYO,SAASQ,cAAcR,MAAgBS,OAC1C,UAAWT,QAAU,SAAU,CAC3B,MAAM,IAAIU,UAAU,GAAGD,oCAAoCV,cAAcC,SAC7E,CACA,OAAOA,KACX,CAeO,SAASW,uBAAuBX,MAAgBS,OACnD,GAAIT,QAAU,MAAQA,aAAU,EAAWQ,cAAcR,MAAOS,MACpE,CAUO,SAASG,cAAcZ,MAAgBS,OAC1C,GAAIT,QAAU,aAAeA,QAAU,SAAU,CAC7C,MAAM,IAAIU,UAAU,GAAGD,qCAAqCV,cAAcC,SAC9E,CACJ,CAGA,SAASO,UAAUP,OACf,IAAIa,KACJ,IACIA,KAAOT,KAAKC,UAAUL,MAC1B,CAAA,MACI,OAAO,IACX,CACA,GAAIa,YAAS,EAAW,OAAO,KAC/B,OAAOV,SAASU,KACpB,CAaO,SAASV,SAASH,OACrB,IAAIc,KACJ,IACIA,KAAOb,OAAOD,MAClB,CAAA,MAGIc,KAAO,eACX,CACA,GAAIA,KAAKC,QAAUjB,cAAe,OAAOgB,KAEzC,MAAME,IAAM,mBAAmBC,KAAKH,KAAKI,MAAM,EAAGpB,gBAC5CA,cAAgB,EAChBA,cACN,MAAO,GAAGgB,KAAKI,MAAM,EAAGF,OAC5B,QAAAjB,cAAAa,cAAAJ,cAAAG,uBAAAR"}
@@ -0,0 +1 @@
1
+ import{INTERNAL_MODULES}from"./chunk-CTJQPQRA.js";import{UTILITY_MODULES}from"./chunk-3IMWUYXJ.js";import{CORE_MODULES}from"./chunk-O72KI7RP.js";import{HARDPOINT_MODULES}from"./chunk-EJMNNQIS.js";var ALL_MODULES=Object.freeze([...CORE_MODULES,...INTERNAL_MODULES,...HARDPOINT_MODULES,...UTILITY_MODULES]);export{ALL_MODULES};//# sourceMappingURL=chunk-PNZCLQDJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ships/modules-all.ts"],"names":["CORE_MODULES","HARDPOINT_MODULES","INTERNAL_MODULES","UTILITY_MODULES","ALL_MODULES","Object","freeze"],"mappings":"O,6LA0CO,IAAMI,YAA2CC,OAAOC,OAAO,IAC/DN,gBACAE,oBACAD,qBACAE,yBACNC"}
1
+ {"version":3,"sources":["../src/ships/modules-all.ts"],"names":["INTERNAL_MODULES","UTILITY_MODULES","CORE_MODULES","HARDPOINT_MODULES","ALL_MODULES","Object","freeze"],"mappings":"O,6LA0CO,IAAMI,YAA2CC,OAAOC,OAAO,IAC/DJ,gBACAF,oBACAG,qBACAF,yBACNG"}
@@ -1 +1 @@
1
- import{requireString,truncate}from"./chunk-B5TT26XE.js";var MASS_CODE_COUNT=8;var BASE_BOXEL_LY=10;var CODE_A="a".charCodeAt(0);function massCodeToSizeClass(code){requireString(code,"massCodeToSizeClass: code");const sizeClass=code.toLowerCase().charCodeAt(0)-CODE_A;if(code.length!==1||sizeClass<0||sizeClass>=MASS_CODE_COUNT){throw new RangeError(`Invalid mass code: ${truncate(JSON.stringify(code))}`)}return sizeClass}function sizeClassToMassCode(sizeClass){if(!Number.isInteger(sizeClass)||sizeClass<0||sizeClass>=MASS_CODE_COUNT){throw new RangeError(`Invalid size class: ${truncate(sizeClass)}`)}return String.fromCharCode(CODE_A+sizeClass)}function boxelEdgeLy(sizeClass){sizeClassToMassCode(sizeClass);return BASE_BOXEL_LY<<sizeClass}export{BASE_BOXEL_LY,MASS_CODE_COUNT,boxelEdgeLy,massCodeToSizeClass,sizeClassToMassCode};//# sourceMappingURL=chunk-DACZE3HX.js.map
1
+ import{requireString,truncate}from"./chunk-PKWVG2JY.js";var MASS_CODE_COUNT=8;var BASE_BOXEL_LY=10;var CODE_A="a".charCodeAt(0);function massCodeToSizeClass(code){requireString(code,"massCodeToSizeClass: code");const sizeClass=code.toLowerCase().charCodeAt(0)-CODE_A;if(code.length!==1||sizeClass<0||sizeClass>=MASS_CODE_COUNT){throw new RangeError(`Invalid mass code: ${truncate(JSON.stringify(code))}`)}return sizeClass}function sizeClassToMassCode(sizeClass){if(!Number.isInteger(sizeClass)||sizeClass<0||sizeClass>=MASS_CODE_COUNT){throw new RangeError(`Invalid size class: ${truncate(sizeClass)}`)}return String.fromCharCode(CODE_A+sizeClass)}function boxelEdgeLy(sizeClass){sizeClassToMassCode(sizeClass);return BASE_BOXEL_LY<<sizeClass}export{BASE_BOXEL_LY,MASS_CODE_COUNT,boxelEdgeLy,massCodeToSizeClass,sizeClassToMassCode};//# sourceMappingURL=chunk-POZTXBSN.js.map
@@ -0,0 +1 @@
1
+ import{combinedRateOfFire}from"./chunk-LJI7VXJD.js";import{builtInModuleBySymbol,getModuleBySymbol}from"./chunk-R26GVRMI.js";import{getPreEngineeredVariants}from"./chunk-EU42PAV4.js";import{ALL_MODULES}from"./chunk-PNZCLQDJ.js";import{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"./chunk-PHPLZEFS.js";import{fieldForLabel,baseStats,computeModifiers,labelsForDamageType,scaleForLabel,preciseModifierValue,capabilityValueForLabel}from"./chunk-SVZARHWP.js";import{resolveBlueprintForModule}from"./chunk-W5G2NUCZ.js";import{getBlueprintsForModule,getExperimentalsForModule,getEngineeringGroup}from"./chunk-QTZPA2FR.js";import{getBlueprintGrade,getBlueprint,BLUEPRINTS}from"./chunk-QI22FKBG.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function scaleDamageComponents(components,baseDamage,effectiveDamage){const scale=baseDamage!==void 0&&baseDamage!==0&&effectiveDamage!==void 0?effectiveDamage/baseDamage:1;return{...components.kinetic===void 0?{}:{kinetic:components.kinetic*scale},...components.thermal===void 0?{}:{thermal:components.thermal*scale},...components.explosive===void 0?{}:{explosive:components.explosive*scale},...components.absolute===void 0?{}:{absolute:components.absolute*scale},...components.antiXeno===void 0?{}:{antiXeno:components.antiXeno*scale},...components.unclassified===void 0?{}:{unclassified:components.unclassified.map(value=>value*scale)}}}function fixedModifierFeatures(modifiers){return modifiers.map(modifier=>({label:modifier.label,method:modifier.method,min:modifier.value,max:modifier.value}))}var FITTED_ITEM="ShipLoadout: fitted module Item";function isNonOutfittingSlot(slotKey){return/^(paintjob|shipname\d+|shipid\d+|bobble\d+|decal\d+|shipkit.+|weaponcolour|enginecolour|vesselvoice|shipcockpit|stringlights)$/i.test(slotKey)}function isCargoHatchSlot(slotKey){return slotKey.toLowerCase()==="cargohatch"}function isBuiltInHullModule(module){return isCargoHatchSlot(module.Slot)&&module.Item.toLowerCase().startsWith("modularcargobaydoor")}function cloneLoadoutModule(module){return{Slot:module.Slot,Item:module.Item,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health},...module.Value===void 0?{}:{Value:module.Value},...module.Engineering===void 0?{}:{Engineering:{BlueprintName:module.Engineering.BlueprintName,Level:module.Engineering.Level,Quality:module.Engineering.Quality,...module.Engineering.ExperimentalEffect===void 0?{}:{ExperimentalEffect:module.Engineering.ExperimentalEffect},...module.Engineering.ExperimentalEffect_Localised===void 0?{}:{ExperimentalEffect_Localised:module.Engineering.ExperimentalEffect_Localised},...module.Engineering.Modifiers===void 0?{}:{Modifiers:module.Engineering.Modifiers.map(modifier=>({...modifier}))}}}}}function matchingKeyIn(keyed,slotKey){if(keyed.has(slotKey))return slotKey;const wanted=slotKey.toLowerCase();for(const key of keyed.keys()){if(key.toLowerCase()===wanted)return key}return null}function ownKeyIn(keyed,canonicalKey){return matchingKeyIn(keyed,canonicalKey)??(keyed.size>0&&[...keyed.keys()].every(key=>key===key.toLowerCase())?canonicalKey.toLowerCase():canonicalKey)}function orderBySlotLayout(values,layout,slotOf){const order=new Map(layout.map((slot,index)=>[slot.key.toLowerCase(),index]));return[...values].sort((left,right)=>(order.get(slotOf(left).toLowerCase())??Number.MAX_SAFE_INTEGER)-(order.get(slotOf(right).toLowerCase())??Number.MAX_SAFE_INTEGER))}function cloneModuleStats(module){try{return deepFreeze(structuredClone(module))}catch(error){if(!(error instanceof Error&&error.name==="DataCloneError"))throw error;return deepFreeze({...module,...module.restrictedToShips===void 0?{}:{restrictedToShips:[...module.restrictedToShips]},...module.limitIncrease===void 0?{}:{limitIncrease:{...module.limitIncrease}},...module.damageDistribution===void 0?{}:{damageDistribution:{...module.damageDistribution}},...module.damageComponents===void 0?{}:{damageComponents:{...module.damageComponents,...module.damageComponents.unclassified===void 0?{}:{unclassified:[...module.damageComponents.unclassified]}}},...module.projectileRange===void 0?{}:{projectileRange:{...module.projectileRange}}})}}var GUARDIAN_WEAPON_GROUPS=/* @__PURE__ */new Set(["guardianGauss","guardianPlasma","guardianShard"]);function missingBaseLabels(stats,base,features,experimental){const contributions=[...features,...experimental??[]];return[...new Set(contributions.map(contribution=>contribution.label).filter(label=>{if(base[label]!==void 0)return false;return fieldForLabel(label,stats)===null}))]}function recipeSignature(fdname){const blueprint=getBlueprint(fdname);if(!blueprint)return null;const grades=Object.entries(blueprint.grades).map(([grade,{features:features}])=>`${grade}:${features.map(feature=>`${feature.label}/${feature.method??""}`).sort().join(",")}`).sort().join(";");return`${blueprint.name.toLowerCase()}|${grades}`}var isGenericSpelling=fdname=>fdname.toLowerCase().startsWith("misc_");function isSoldWithBlueprint(item,wanted){return getPreEngineeredVariants(item).some(variant=>variant.acquisition==="mercenary"&&variant.blueprint.toLowerCase()===wanted)}function blueprintRoutesFor(item){const routes=/* @__PURE__ */new Map;for(const fdname of getBlueprintsForModule(item))routes.set(fdname,"ordinary");for(const variant of getPreEngineeredVariants(item)){if(variant.acquisition==="mercenary"&&!routes.has(variant.blueprint)){routes.set(variant.blueprint,"mercenary")}}return routes}function blueprintAvailableFor(item,fdname){const offered=getBlueprintsForModule(item);const asWritten=normalizeKey(fdname,"ShipLoadout.applyBlueprint: fdname");const resolved=resolveBlueprintForModule(item,fdname).trim();const wanted=resolved.toLowerCase();if(offered.some(id=>id.toLowerCase()===wanted))return true;if(isSoldWithBlueprint(item,wanted)||isSoldWithBlueprint(item,asWritten))return true;if(!isGenericSpelling(wanted))return false;const signature=recipeSignature(resolved);if(signature===null)return false;return offered.some(id=>recipeSignature(id)===signature&&!isGenericSpelling(id))}function experimentalAvailableFor(item,fdname){const wanted=normalizeKey(fdname,"ShipLoadout.applyBlueprint: options.experimental");return getExperimentalsForModule(item).some(id=>id.toLowerCase()===wanted)}function primitiveLabelFor(stats,label){if(label==="MaximumRange"&&stats.maximumRange!==void 0)return"Range";if(label==="DamageFalloffRange"&&stats.falloffRange!==void 0){return"FalloffRange"}if(label==="Range"&&stats.scannerRange!==void 0)return"ScannerRange";if(label==="DSS_PatchRadius")return"ProbeRadius";if(label==="FuelScoopRate")return"RefuelRate";if(label==="EnergyPerRegen"&&stats.shieldRegenRate!==void 0){return"DistributorDraw"}return label}function primitiveEngineeringInputsFor(stats,grade,experimental){const canonicalGrade={...grade,features:grade.features.map(feature=>{const label=primitiveLabelFor(stats,feature.label);return label===feature.label?feature:{...feature,label:label}})};if(!experimental)return{grade:canonicalGrade};return{grade:canonicalGrade,experimental:{...experimental,modifiers:experimental.modifiers.map(modifier=>{const label=primitiveLabelFor(stats,modifier.label);return label===modifier.label?modifier:{...modifier,label:label}})}}}function matchesCalculatedModifiers(captured,calculated){if(!captured||captured.length!==calculated.length)return false;const byLabel=new Map(captured.map(modifier=>[modifier.Label.trim().toLowerCase(),modifier]));if(byLabel.size!==captured.length)return false;return calculated.every(expected=>{const actual=byLabel.get(expected.Label.trim().toLowerCase());if(!actual)return false;if(expected.Value!==void 0){return actual.Value!==void 0&&Math.abs(actual.Value-expected.Value)<=1e-5*Math.max(1,Math.abs(expected.Value))}return actual.ValueStr===expected.ValueStr})}function ordinaryEngineeringProof(item,engineering,experimental){const recipe=resolveBlueprintForModule(item,engineering.BlueprintName);const fixedCandidate=getPreEngineeredVariants(item).some(candidate=>candidate.acquisition!=="mercenary"&&candidate.blueprint.trim().toLowerCase()===recipe.trim().toLowerCase());if(!fixedCandidate)return"notFixedCandidate";const grade=getBlueprintGrade(recipe,engineering.Level);const quality=engineering.Quality;const stock=builtInModuleBySymbol(item,FITTED_ITEM);if(!stock||!grade||experimental===null||!Number.isFinite(quality)||quality<0||quality>1){return"unproven"}const current=primitiveEngineeringInputsFor(stock,grade,experimental);if(missingBaseLabels(stock,baseStats(stock),current.grade.features,current.experimental?.modifiers).length>0){return"unproven"}const calculated=journalModifiersFor(stock,computeModifiers(baseStats(stock),current.grade,quality,current.experimental));const damageDistribution=current.experimental?.damageDistribution??current.grade.damageDistribution;if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;calculated.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(stock.damageDistribution?.[type]??0)*scaleForLabel(label)})}}return matchesCalculatedModifiers(engineering.Modifiers,calculated)?"proven":"unproven"}var round6=value=>{const rounded=Math.round(value*1e6)/1e6;return Object.is(rounded,-0)?0:rounded};function float32FiringCycle(interval,burstRounds,burstRateOfFire){if(interval<=0)return void 0;const withinBurst=burstRounds>1?Math.fround(Math.fround(burstRounds-1)/Math.fround(burstRateOfFire)):0;const cycle=Math.fround(withinBurst+Math.fround(interval));return cycle>0?cycle:void 0}function float32RateOfFire(interval,burstRounds,burstRateOfFire){const cycle=float32FiringCycle(interval,burstRounds,burstRateOfFire);return cycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/cycle)}function float32DamagePerSecond(damage,rounds,rate,burstRounds,cycle){if(cycle!==void 0&&(rounds!==1||burstRounds!==1)){const damagePerCycle=Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(burstRounds));return Math.fround(damagePerCycle/cycle)}return Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(rate))}var JOURNAL_MODIFIER_ORDER=["CargoCapacity","GuardianModuleResistance","Mass","Integrity","PowerDraw","BootTime","PowerCapacity","HeatEfficiency","FSDOptimalMass","MaxFuelPerJump","FSDHeatRate","EngineOptimalMass","EngineOptPerformance","EngineHeatRate","ShieldGenOptimalMass","ShieldGenStrength","DamagePerSecond","Damage","DistributorDraw","ThermalLoad","ArmourPenetration","MaximumRange","ShotSpeed","RateOfFire","DamageType","$Kinetic;","$Thermal;","$Explosive;","$Absolute;","AmmoClipSize","AmmoMaximum","ReloadTime","Jitter","DamageFalloffRange","DefenceModifierShieldMultiplier","DefenceModifierHealthMultiplier","DefenceModifierHealthAddition","DefenceModifierShieldAddition","RegenRate","BrokenRegenRate","EnergyPerRegen","KineticResistance","ThermicResistance","ExplosiveResistance","CausticResistance","DamageProtection","ModuleDefenceAbsorption","WeaponsCapacity","WeaponsRecharge","EnginesCapacity","EnginesRecharge","SystemsCapacity","SystemsRecharge","ShieldBankSpinUp","ShieldBankDuration","ShieldBankReinforcement","ShieldBankHeat","FSDInterdictorRange","FSDInterdictorFacingLimit","SensorTargetScanAngle","MaxAngle","ScannerTimeToScan","Range","DSS_PatchRadius","FuelScoopRate","FuelCapacity"];var JOURNAL_MODIFIER_RANK=new Map(JOURNAL_MODIFIER_ORDER.map((label,index)=>[label,index]));function sortJournalModifiers(modifiers){return modifiers.map((modifier,index)=>({modifier:modifier,index:index})).sort((a,b)=>(JOURNAL_MODIFIER_RANK.get(a.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)-(JOURNAL_MODIFIER_RANK.get(b.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)||a.index-b.index).map(({modifier:modifier})=>modifier)}function journalModifiersFor(stats,modifiers){const weapon=stats.damage!==void 0;const valueFor=(label,fallback)=>{const modifier=modifiers.find(candidate=>candidate.Label===label);return(modifier&&preciseModifierValue(modifier))??Math.fround(fallback)};const burstTouched=["BurstInterval","BurstSize","BurstRateOfFire"].some(label=>modifiers.some(modifier=>modifier.Label===label));const damageTouched=modifiers.some(modifier=>modifier.Label==="Damage");const rateTouched=burstTouched||modifiers.some(modifier=>modifier.Label==="RateOfFire");let damagePerSecond;let derivedRate;if(weapon&&(damageTouched||rateTouched)){const continuous=stats.burstInterval===void 0&&stats.rateOfFire===void 0;const baseDamage=Math.fround(stats.damage);const effectiveDamage=valueFor("Damage",stats.damage);if(continuous){damagePerSecond={Label:"DamagePerSecond",Value:round6(effectiveDamage),OriginalValue:round6(baseDamage)}}else{const burstRounds=valueFor("BurstSize",stats.burstRounds??1);const burstRate=valueFor("BurstRateOfFire",stats.burstRateOfFire??1);const baseBurstRounds=Math.fround(stats.burstRounds??1);const baseBurstRate=Math.fround(stats.burstRateOfFire??1);const baseInterval=stats.burstInterval===void 0?void 0:Math.fround(stats.burstInterval);const baseCycle=baseInterval===void 0?void 0:float32FiringCycle(baseInterval,baseBurstRounds,baseBurstRate);const baseRate=baseInterval!==void 0?float32RateOfFire(baseInterval,baseBurstRounds,baseBurstRate):stats.rateOfFire===void 0?void 0:Math.fround(stats.rateOfFire);const rateModifier=modifiers.find(modifier=>modifier.Label==="RateOfFire");const effectiveRate=rateModifier&&preciseModifierValue(rateModifier);const effectiveInterval=valueFor("BurstInterval",stats.burstInterval??0);const effectiveCycle=effectiveRate===void 0?float32FiringCycle(effectiveInterval,burstRounds,burstRate):void 0;const rate=effectiveRate??(effectiveCycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/effectiveCycle));if(baseRate!==void 0&&rate!==void 0){const stockRounds=Math.fround(stats.roundsPerShot??1);const effectiveRounds=Math.fround(modifiers.find(modifier=>modifier.Label==="Rounds"||modifier.Label==="RoundsPerShot")?.Value??stockRounds);damagePerSecond={Label:"DamagePerSecond",Value:round6(float32DamagePerSecond(effectiveDamage,effectiveRounds,rate,burstRounds,effectiveCycle)),OriginalValue:round6(float32DamagePerSecond(baseDamage,stockRounds,baseRate,baseBurstRounds,baseCycle))};if(burstTouched){derivedRate={Label:"RateOfFire",Value:round6(rate),OriginalValue:round6(baseRate)}}}}}const result=[];for(const modifier of modifiers){const label=modifier.Label;if(weapon&&["BurstInterval","BurstSize","BurstRateOfFire"].includes(label))continue;if(weapon&&label==="Damage"&&stats.rateOfFire===void 0)continue;let journalLabel=label;if(label==="Range"&&stats.maximumRange!==void 0)journalLabel="MaximumRange";else if(label==="FalloffRange"&&stats.falloffRange!==void 0){journalLabel="DamageFalloffRange"}else if(label==="ScannerRange"&&stats.scannerRange!==void 0){journalLabel="Range"}else if(label==="ProbeRadius")journalLabel="DSS_PatchRadius";else if(label==="RefuelRate")journalLabel="FuelScoopRate";else if(label==="DistributorDraw"&&stats.shieldRegenRate!==void 0){journalLabel="EnergyPerRegen"}result.push(journalLabel===label?modifier:{...modifier,Label:journalLabel})}if(damagePerSecond)result.push(damagePerSecond);if(derivedRate){const direct=result.findIndex(modifier=>modifier.Label==="RateOfFire");if(direct>=0)result[direct]=derivedRate;else result.push(derivedRate)}return sortJournalModifiers(result)}function isFinalGuardianWeaponEngineering(item,blueprint){const group=getEngineeringGroup(item);if(group===null||!GUARDIAN_WEAPON_GROUPS.has(group))return false;const resolved=resolveBlueprintForModule(item,blueprint);return getBlueprint(resolved)!==null&&!blueprintAvailableFor(item,blueprint)}function engineerableBase(item,statsOverride){const stats=statsOverride??builtInModuleBySymbol(item,FITTED_ITEM);if(!stats||stats.engineeringLocked)return null;return{stats:stats,base:baseStats(stats)}}function availableBlueprintsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;const available=[];for(const[fdname,route]of blueprintRoutesFor(item)){const blueprint=BLUEPRINTS[fdname];if(!blueprint)continue;const grades=Object.entries(blueprint.grades).filter(([,grade])=>missingBaseLabels(stats,base,grade.features).length===0).map(([grade])=>Number(grade)).filter(Number.isFinite).sort((a,b)=>a-b);if(grades.length>0)available.push({fdname:fdname,grades:grades,route:route})}return available}function availableExperimentalsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;return getExperimentalsForModule(item).filter(fdname=>{const effect=EXPERIMENTAL_EFFECTS[fdname];return effect!==void 0&&missingBaseLabels(stats,base,effect.modifiers).length===0})}var MAX_ENGINEERING_GRADE=5;function modifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);const effectName=experimental===void 0?variant.experimental:experimental;if(!module||!variant.modifiers?.length&&effectName==null)return null;const effect=effectName==null?void 0:getExperimentalEffect(effectName);if(effectName!==null&&effectName!==void 0&&!effect)return null;return computeModifiers(baseStats(module),fixedModifierFeatures(variant.modifiers??[]),1,effect??void 0)}function getPreEngineeredModifiers(variant){return modifiersWithExperimental(variant)??[]}function journalModifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return[];const modifiers=journalModifiersFor(module,modifiersWithExperimental(variant,experimental)??[]);const effectName=experimental===void 0?variant.experimental:experimental;const damageDistribution=effectName?getExperimentalEffect(effectName)?.damageDistribution:void 0;if(!damageDistribution)return modifiers;for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];const label=labelsForDamageType(type)[0];if(value===void 0||label===void 0)continue;modifiers.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(module.damageDistribution?.[type]??0)*scaleForLabel(label)})}return modifiers}function getPreEngineeredJournalModifiers(variant){return journalModifiersWithExperimental(variant)}function sameJournalNumber(actual,expected){return Math.abs(actual-expected)<=Math.max(1e-5,Math.abs(expected)*1e-6)}function modifierKey(modifier,module){return fieldForLabel(modifier.Label,module)??`label:${normalizeKey(modifier.Label,"identifyPreEngineeredVariant: module.Engineering.Modifiers[].Label")}`}function sameModifier(actual,expected){if(expected.Value!==void 0){return actual.Value!==void 0&&sameJournalNumber(actual.Value,expected.Value)}return expected.ValueStr!==void 0&&actual.ValueStr!==void 0}function matchesModifierSignature(actualByKey,expected,module){let matched=0;for(const predicted of expected){const actual=actualByKey.get(modifierKey(predicted,module));if(!actual)continue;if(!sameModifier(actual,predicted))return false;matched++}return matched>=Math.max(1,expected.length-1)}function identifyPreEngineeredVariant(module){const engineering=module.Engineering;if(!engineering)return null;requireStringIfPresent(module.Item,"identifyPreEngineeredVariant: module.Item");const stock=getModuleBySymbol(module.Item,ALL_MODULES);if(!stock)return null;const capturedBlueprint=normalizeKey(engineering.BlueprintName,"identifyPreEngineeredVariant: module.Engineering.BlueprintName");const variants=getPreEngineeredVariants(module.Item);const blueprintMatches=variants.filter(candidate=>candidate.blueprint.toLowerCase()===capturedBlueprint);const blueprintMatch=blueprintMatches.length===1?blueprintMatches[0]:null;const capturedGrade=engineering.Level;if(blueprintMatch?.acquisition==="mercenary"&&Number.isInteger(capturedGrade)&&capturedGrade>=blueprintMatch.grade&&capturedGrade<=MAX_ENGINEERING_GRADE){return blueprintMatch}if(engineering.Modifiers===void 0){const capturedExperimental=normalizeKey(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const identityMatches=blueprintMatches.filter(candidate=>candidate.engineeringLocked===true&&candidate.grade===capturedGrade&&(candidate.experimental===void 0?capturedExperimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimental.toLowerCase()===capturedExperimental));return identityMatches.length===1?identityMatches[0]:null}if(!engineering.Modifiers?.length)return null;const actualByKey=/* @__PURE__ */new Map;for(const modifier of engineering.Modifiers){actualByKey.set(modifierKey(modifier,stock),modifier)}requireStringIfPresent(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const matches=[];for(const candidate of variants){if(!candidate.modifiers?.length)continue;if(candidate.grade!==engineering.Level)continue;if(candidate.acquisition==="eventReward"&&(engineering.ExperimentalEffect!==void 0||engineering.ExperimentalEffect_Localised!==void 0||capturedBlueprint!==candidate.blueprint.toLowerCase())){continue}const primitive=modifiersWithExperimental(candidate,engineering.ExperimentalEffect??null);if(!primitive?.length)continue;const matched=matchesModifierSignature(actualByKey,primitive,stock)||matchesModifierSignature(actualByKey,journalModifiersWithExperimental(candidate,engineering.ExperimentalEffect??null),stock);if(matched)matches.push(candidate)}return matches.length===1?matches[0]:null}function unresolvedModifiers(variant){const resolved=new Set(getPreEngineeredModifiers(variant).map(modifier=>modifier.Label));return(variant.modifiers??[]).map(modifier=>modifier.label).filter(label=>!resolved.has(label))}function getPreEngineeredStats(variant){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return null;if(!variant.modifiers?.length&&!variant.engineeringLocked&&variant.experimental===void 0)return module;const modifiers=variant.modifiers??[];const resolved={...module,...variant.engineeringLocked?{engineeringLocked:true}:{}};for(const{Label:Label,Value:Value,ValueStr:ValueStr}of getPreEngineeredModifiers(variant)){const field=fieldForLabel(Label,module);if(field&&field!=="damageDistribution"&&Value!==void 0){Object.assign(resolved,{[field]:Value/scaleForLabel(Label)})}else if(field&&ValueStr!==void 0&&capabilityValueForLabel(Label)!==null){Object.assign(resolved,{[field]:true})}}const experimentalDamageDistribution=variant.experimental?getExperimentalEffect(variant.experimental)?.damageDistribution:void 0;if(experimentalDamageDistribution){resolved.damageDistribution={...experimentalDamageDistribution};delete resolved.damageComponents}if(resolved.rateOfFire!==void 0&&!modifiers.some(m=>m.label==="RateOfFire")&&modifiers.some(m=>m.label==="BurstSize"||m.label==="BurstRateOfFire"||m.label==="BurstInterval")){const rate=combinedRateOfFire(resolved);if(rate!==void 0)resolved.rateOfFire=rate}if(module.damageComponents&&!experimentalDamageDistribution){resolved.damageComponents=scaleDamageComponents(module.damageComponents,module.damage,resolved.damage)}return resolved}export{FITTED_ITEM,availableBlueprintsFor,availableExperimentalsFor,blueprintAvailableFor,blueprintRoutesFor,cloneLoadoutModule,cloneModuleStats,experimentalAvailableFor,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,isBuiltInHullModule,isCargoHatchSlot,isFinalGuardianWeaponEngineering,isNonOutfittingSlot,journalModifiersFor,matchingKeyIn,missingBaseLabels,orderBySlotLayout,ordinaryEngineeringProof,ownKeyIn,primitiveEngineeringInputsFor,scaleDamageComponents,unresolvedModifiers};//# sourceMappingURL=chunk-Q4E2V6RE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/internal/damage-components.ts","../src/ships/internal/fixed-modifier-features.ts","../src/ships/internal/loadout-state.ts","../src/ships/internal/loadout-engineering.ts","../src/ships/pre-engineered-stats.ts"],"names":["combinedRateOfFire","builtInModuleBySymbol","getModuleBySymbol","getPreEngineeredVariants","ALL_MODULES","EXPERIMENTAL_EFFECTS","getExperimentalEffect","fieldForLabel","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","preciseModifierValue","capabilityValueForLabel","resolveBlueprintForModule","getBlueprintsForModule","getExperimentalsForModule","getEngineeringGroup","getBlueprintGrade","getBlueprint","BLUEPRINTS","normalizeKey","requireStringIfPresent","deepFreeze","scaleDamageComponents","components","baseDamage","effectiveDamage","scale","kinetic","thermal","explosive","absolute","antiXeno","unclassified","map","value","fixedModifierFeatures","modifiers","modifier","label","method","min","max","FITTED_ITEM","isNonOutfittingSlot","slotKey","test","isCargoHatchSlot","toLowerCase","isBuiltInHullModule","module","Slot","Item","startsWith","cloneLoadoutModule","On","Priority","Health","Value","Engineering","BlueprintName","Level","Quality","ExperimentalEffect","ExperimentalEffect_Localised","Modifiers","matchingKeyIn","keyed","has","wanted","key","keys","ownKeyIn","canonicalKey","size","every","orderBySlotLayout","values","layout","slotOf","order","Map","slot","index","sort","left","right","get","Number","MAX_SAFE_INTEGER","cloneModuleStats","structuredClone","error","Error","name","restrictedToShips","limitIncrease","damageDistribution","damageComponents","projectileRange","GUARDIAN_WEAPON_GROUPS","Set","missingBaseLabels","stats","base","features","experimental","contributions","contribution","filter","recipeSignature","fdname","blueprint","grades","Object","entries","grade","feature","join","isGenericSpelling","isSoldWithBlueprint","item","some","variant","acquisition","blueprintRoutesFor","routes","set","blueprintAvailableFor","offered","asWritten","resolved","trim","id","signature","experimentalAvailableFor","primitiveLabelFor","maximumRange","falloffRange","scannerRange","shieldRegenRate","primitiveEngineeringInputsFor","canonicalGrade","matchesCalculatedModifiers","captured","calculated","length","byLabel","Label","expected","actual","Math","abs","ValueStr","ordinaryEngineeringProof","engineering","recipe","fixedCandidate","candidate","quality","stock","isFinite","current","journalModifiersFor","type","push","OriginalValue","round6","rounded","round","is","float32FiringCycle","interval","burstRounds","burstRateOfFire","withinBurst","fround","cycle","float32RateOfFire","float32DamagePerSecond","damage","rounds","rate","damagePerCycle","JOURNAL_MODIFIER_ORDER","JOURNAL_MODIFIER_RANK","sortJournalModifiers","a","b","weapon","valueFor","fallback","find","burstTouched","damageTouched","rateTouched","damagePerSecond","derivedRate","continuous","burstInterval","rateOfFire","burstRate","baseBurstRounds","baseBurstRate","baseInterval","baseCycle","baseRate","rateModifier","effectiveRate","effectiveInterval","effectiveCycle","stockRounds","roundsPerShot","effectiveRounds","result","includes","journalLabel","direct","findIndex","isFinalGuardianWeaponEngineering","group","engineerableBase","statsOverride","engineeringLocked","availableBlueprintsFor","engineerable","available","route","availableExperimentalsFor","effect","MAX_ENGINEERING_GRADE","modifiersWithExperimental","symbol","effectName","getPreEngineeredModifiers","journalModifiersWithExperimental","getPreEngineeredJournalModifiers","sameJournalNumber","modifierKey","sameModifier","matchesModifierSignature","actualByKey","matched","predicted","identifyPreEngineeredVariant","capturedBlueprint","variants","blueprintMatches","blueprintMatch","capturedGrade","isInteger","capturedExperimental","identityMatches","matches","primitive","unresolvedModifiers","getPreEngineeredStats","field","assign","experimentalDamageDistribution","m"],"mappings":"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"}