@elite-dangerous-almanac/core 0.1.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/PROVENANCE/i18n/SOURCES.md +2 -2
  2. package/PROVENANCE/ships/SOURCES.md +11 -9
  3. package/README.md +54 -40
  4. package/dist/astro/galaxy-grid.js +1 -1
  5. package/dist/astro/index.d.ts +1 -1
  6. package/dist/astro/index.js +1 -1
  7. package/dist/astro/naming-region-origins.d.ts +1 -1
  8. package/dist/astro/naming-region-origins.js +1 -1
  9. package/dist/astro/nebulae.d.ts +2 -2
  10. package/dist/astro/permit-locks.d.ts +2 -1
  11. package/dist/astro/permit-locks.js +1 -1
  12. package/dist/astro/procedural-system.d.ts +2 -1
  13. package/dist/astro/procedural-system.js +1 -1
  14. package/dist/astro/sector-name.d.ts +2 -1
  15. package/dist/astro/sector-name.js +1 -1
  16. package/dist/astro/system-address.d.ts +1 -1
  17. package/dist/astro/system-name.d.ts +14 -9
  18. package/dist/astro/system-name.js +1 -1
  19. package/dist/chunk-2W5MW376.js +1 -0
  20. package/dist/chunk-2W5MW376.js.map +1 -0
  21. package/dist/{chunk-VZZUNSDF.js → chunk-4KJ7CR74.js} +1 -1
  22. package/dist/{chunk-VZZUNSDF.js.map → chunk-4KJ7CR74.js.map} +1 -1
  23. package/dist/{chunk-6EUVIZAS.js → chunk-4QYTVSNR.js} +1 -1
  24. package/dist/{chunk-EKQCVCMK.js → chunk-5ZVYRX6Z.js} +1 -1
  25. package/dist/{chunk-EKQCVCMK.js.map → chunk-5ZVYRX6Z.js.map} +1 -1
  26. package/dist/chunk-6GJHUWMO.js +1 -0
  27. package/dist/chunk-6GJHUWMO.js.map +1 -0
  28. package/dist/chunk-6L56LWTT.js +1 -0
  29. package/dist/chunk-6L56LWTT.js.map +1 -0
  30. package/dist/{chunk-GQ5GX5TB.js → chunk-6O4NRRSB.js} +1 -1
  31. package/dist/chunk-6O4NRRSB.js.map +1 -0
  32. package/dist/{chunk-WNGQ3IAM.js → chunk-6UNAD74Z.js} +1 -1
  33. package/dist/{chunk-WNGQ3IAM.js.map → chunk-6UNAD74Z.js.map} +1 -1
  34. package/dist/{chunk-JPBMRJFC.js → chunk-77I24V6B.js} +1 -1
  35. package/dist/chunk-77I24V6B.js.map +1 -0
  36. package/dist/chunk-7ATBEOVC.js +1 -0
  37. package/dist/chunk-7ATBEOVC.js.map +1 -0
  38. package/dist/chunk-7TQ2X6Q3.js +1 -0
  39. package/dist/chunk-7TQ2X6Q3.js.map +1 -0
  40. package/dist/{chunk-6EPYVBAX.js → chunk-A6OINYNP.js} +1 -1
  41. package/dist/{chunk-Q3QCLNVG.js → chunk-AYAKU4YA.js} +1 -1
  42. package/dist/chunk-AYAKU4YA.js.map +1 -0
  43. package/dist/chunk-B7EYTZRK.js +1 -0
  44. package/dist/chunk-B7EYTZRK.js.map +1 -0
  45. package/dist/{chunk-EBAHNZ36.js → chunk-CIULJH3G.js} +1 -1
  46. package/dist/{chunk-EBAHNZ36.js.map → chunk-CIULJH3G.js.map} +1 -1
  47. package/dist/{chunk-SNADUQSJ.js → chunk-CJK2IBI2.js} +1 -1
  48. package/dist/{chunk-SNADUQSJ.js.map → chunk-CJK2IBI2.js.map} +1 -1
  49. package/dist/{chunk-DYPOL3CI.js → chunk-CJQ37JII.js} +1 -1
  50. package/dist/chunk-CJQ37JII.js.map +1 -0
  51. package/dist/chunk-D6YEHR5S.js +1 -0
  52. package/dist/chunk-D6YEHR5S.js.map +1 -0
  53. package/dist/{chunk-Z6XMXMVI.js → chunk-DBDCOHI4.js} +1 -1
  54. package/dist/chunk-DBDCOHI4.js.map +1 -0
  55. package/dist/{chunk-AFVYCQWL.js → chunk-DCB4COCL.js} +1 -1
  56. package/dist/{chunk-AFVYCQWL.js.map → chunk-DCB4COCL.js.map} +1 -1
  57. package/dist/{chunk-CJWFY6OX.js → chunk-DSMLYA2M.js} +1 -1
  58. package/dist/{chunk-CJWFY6OX.js.map → chunk-DSMLYA2M.js.map} +1 -1
  59. package/dist/{chunk-UXBCLFGU.js → chunk-DWRNXUAX.js} +1 -1
  60. package/dist/{chunk-UXBCLFGU.js.map → chunk-DWRNXUAX.js.map} +1 -1
  61. package/dist/chunk-EVW4Z4CB.js +1 -0
  62. package/dist/chunk-EVW4Z4CB.js.map +1 -0
  63. package/dist/{chunk-4S6WB7QR.js → chunk-FF2X4K5P.js} +1 -1
  64. package/dist/chunk-FF2X4K5P.js.map +1 -0
  65. package/dist/chunk-FYVPZBXN.js +1 -0
  66. package/dist/chunk-FYVPZBXN.js.map +1 -0
  67. package/dist/{chunk-QTZPA2FR.js → chunk-GLWPSVFV.js} +1 -1
  68. package/dist/chunk-GLWPSVFV.js.map +1 -0
  69. package/dist/chunk-GZYPQIO2.js +1 -0
  70. package/dist/chunk-GZYPQIO2.js.map +1 -0
  71. package/dist/chunk-H47K3UWG.js +1 -0
  72. package/dist/chunk-H47K3UWG.js.map +1 -0
  73. package/dist/chunk-JGOAQLYW.js +1 -0
  74. package/dist/chunk-JGOAQLYW.js.map +1 -0
  75. package/dist/{chunk-JWWYAMGD.js → chunk-MGRDB2BZ.js} +1 -1
  76. package/dist/{chunk-JWWYAMGD.js.map → chunk-MGRDB2BZ.js.map} +1 -1
  77. package/dist/{chunk-MKGJPVPS.js → chunk-MRTTQYT5.js} +1 -1
  78. package/dist/{chunk-MKGJPVPS.js.map → chunk-MRTTQYT5.js.map} +1 -1
  79. package/dist/chunk-MTJ4MS7W.js +1 -0
  80. package/dist/chunk-MTJ4MS7W.js.map +1 -0
  81. package/dist/chunk-NIURLW2F.js +1 -0
  82. package/dist/chunk-NIURLW2F.js.map +1 -0
  83. package/dist/chunk-OLKNYGGT.js +1 -0
  84. package/dist/chunk-OLKNYGGT.js.map +1 -0
  85. package/dist/chunk-OYFMHDYT.js +1 -0
  86. package/dist/chunk-OYFMHDYT.js.map +1 -0
  87. package/dist/chunk-OYR5HUQZ.js +1 -0
  88. package/dist/chunk-OYR5HUQZ.js.map +1 -0
  89. package/dist/chunk-PL75RTA2.js +1 -0
  90. package/dist/{chunk-2VPVZELZ.js.map → chunk-PL75RTA2.js.map} +1 -1
  91. package/dist/chunk-PY5L6WC5.js +1 -0
  92. package/dist/chunk-PY5L6WC5.js.map +1 -0
  93. package/dist/{chunk-W6EPHHTS.js → chunk-Q2L75GSI.js} +1 -1
  94. package/dist/chunk-Q2L75GSI.js.map +1 -0
  95. package/dist/chunk-QJ7GB6FF.js +1 -0
  96. package/dist/chunk-QJ7GB6FF.js.map +1 -0
  97. package/dist/chunk-QTAMQ6ME.js +1 -0
  98. package/dist/chunk-QTAMQ6ME.js.map +1 -0
  99. package/dist/{chunk-FMPRCYKY.js → chunk-RRYBSAPX.js} +1 -1
  100. package/dist/chunk-RRYBSAPX.js.map +1 -0
  101. package/dist/{chunk-J42ZXLBL.js → chunk-T62GO4AA.js} +1 -1
  102. package/dist/chunk-T62GO4AA.js.map +1 -0
  103. package/dist/{chunk-E3BRVGJJ.js → chunk-TBZJIQ5P.js} +1 -1
  104. package/dist/{chunk-E3BRVGJJ.js.map → chunk-TBZJIQ5P.js.map} +1 -1
  105. package/dist/chunk-V3AEUBHV.js +1 -0
  106. package/dist/chunk-V3AEUBHV.js.map +1 -0
  107. package/dist/chunk-VYDQHPY2.js +1 -0
  108. package/dist/chunk-VYDQHPY2.js.map +1 -0
  109. package/dist/chunk-XUHAPOM6.js +1 -0
  110. package/dist/chunk-XUHAPOM6.js.map +1 -0
  111. package/dist/chunk-Y6KJJMIM.js +1 -0
  112. package/dist/chunk-Y6KJJMIM.js.map +1 -0
  113. package/dist/chunk-YXPZ7QQB.js +1 -0
  114. package/dist/chunk-YXPZ7QQB.js.map +1 -0
  115. package/dist/{chunk-Y6UZWNP4.js → chunk-ZCEAPJDH.js} +1 -1
  116. package/dist/{chunk-Y6UZWNP4.js.map → chunk-ZCEAPJDH.js.map} +1 -1
  117. package/dist/commodities/commodities.d.ts +20 -10
  118. package/dist/commodities/commodities.js +1 -1
  119. package/dist/commodities/index.d.ts +15 -4
  120. package/dist/commodities/index.js +1 -1
  121. package/dist/equipment/index.js +1 -1
  122. package/dist/equipment/modification-costs.d.ts +2 -1
  123. package/dist/equipment/modification-costs.js.map +1 -1
  124. package/dist/equipment/modification-journal.js +1 -1
  125. package/dist/equipment/modifications.d.ts +2 -1
  126. package/dist/equipment/modifications.js +1 -1
  127. package/dist/equipment/suits.d.ts +6 -3
  128. package/dist/equipment/suits.js +1 -1
  129. package/dist/equipment/upgrade-costs.d.ts +8 -4
  130. package/dist/equipment/upgrade-costs.js +1 -1
  131. package/dist/equipment/upgrade-costs.js.map +1 -1
  132. package/dist/equipment/weapons.d.ts +13 -5
  133. package/dist/equipment/weapons.js +1 -1
  134. package/dist/i18n/blueprints.d.ts +6 -6
  135. package/dist/i18n/blueprints.js +1 -1
  136. package/dist/i18n/diagnostics.d.ts +1 -13
  137. package/dist/i18n/engineering-groups.d.ts +1 -0
  138. package/dist/i18n/engineering-groups.js +1 -1
  139. package/dist/i18n/experimental-effect-descriptions.d.ts +4 -3
  140. package/dist/i18n/experimental-effect-descriptions.js +1 -1
  141. package/dist/i18n/experimental-effects.d.ts +5 -4
  142. package/dist/i18n/experimental-effects.js +1 -1
  143. package/dist/i18n/index.d.ts +1 -13
  144. package/dist/i18n/index.js +1 -1
  145. package/dist/i18n/pre-engineered.d.ts +7 -6
  146. package/dist/i18n/pre-engineered.js +1 -1
  147. package/dist/materials/index.d.ts +16 -4
  148. package/dist/materials/index.js +1 -1
  149. package/dist/materials/materials.d.ts +36 -19
  150. package/dist/materials/materials.js +1 -1
  151. package/dist/materials/micro-resources.d.ts +18 -7
  152. package/dist/materials/micro-resources.js +1 -1
  153. package/dist/ships/armour.d.ts +20 -4
  154. package/dist/ships/armour.js +1 -1
  155. package/dist/ships/blueprint-costs.d.ts +20 -17
  156. package/dist/ships/blueprint-costs.js +1 -1
  157. package/dist/ships/blueprint-journal.d.ts +9 -8
  158. package/dist/ships/blueprint-journal.js +1 -1
  159. package/dist/ships/blueprints.d.ts +14 -12
  160. package/dist/ships/blueprints.js +1 -1
  161. package/dist/ships/build-metrics.d.ts +1061 -0
  162. package/dist/ships/build-metrics.js +1 -0
  163. package/dist/ships/build-metrics.js.map +1 -0
  164. package/dist/ships/distributor.d.ts +10 -3
  165. package/dist/ships/distributor.js +1 -1
  166. package/dist/ships/engineering-options.d.ts +8 -6
  167. package/dist/ships/engineering-options.js +1 -1
  168. package/dist/ships/engineering.d.ts +2 -16
  169. package/dist/ships/engineering.js +1 -1
  170. package/dist/ships/experimental-effect-costs.d.ts +5 -5
  171. package/dist/ships/experimental-effect-costs.js +1 -1
  172. package/dist/ships/experimental-effects.d.ts +9 -8
  173. package/dist/ships/experimental-effects.js +1 -1
  174. package/dist/ships/heat.d.ts +7 -2
  175. package/dist/ships/heat.js +1 -1
  176. package/dist/ships/index.d.ts +34 -22
  177. package/dist/ships/index.js +1 -1
  178. package/dist/ships/jump-range.d.ts +10 -3
  179. package/dist/ships/jump-range.js +1 -1
  180. package/dist/ships/loadout-calculations.d.ts +1 -1
  181. package/dist/ships/loadout-calculations.js +1 -1
  182. package/dist/ships/mobility-capacitor.d.ts +90 -0
  183. package/dist/ships/mobility-capacitor.js +1 -0
  184. package/dist/ships/mobility-capacitor.js.map +1 -0
  185. package/dist/ships/mobility.d.ts +29 -17
  186. package/dist/ships/mobility.js +1 -1
  187. package/dist/ships/power.d.ts +12 -5
  188. package/dist/ships/power.js +1 -1
  189. package/dist/ships/pre-engineered-stats.d.ts +10 -8
  190. package/dist/ships/pre-engineered-stats.js +1 -1
  191. package/dist/ships/pre-engineered.d.ts +6 -6
  192. package/dist/ships/pre-engineered.js +1 -1
  193. package/dist/ships/resistances.d.ts +2 -2
  194. package/dist/ships/resistances.js +1 -1
  195. package/dist/ships/shield-capacitor.d.ts +133 -0
  196. package/dist/ships/shield-capacitor.js +1 -0
  197. package/dist/ships/shield-capacitor.js.map +1 -0
  198. package/dist/ships/shield-recovery.d.ts +16 -2
  199. package/dist/ships/shield-recovery.js +1 -1
  200. package/dist/ships/shields.d.ts +86 -28
  201. package/dist/ships/shields.js +1 -1
  202. package/dist/ships/ship-loadout.d.ts +91 -797
  203. package/dist/ships/ship-loadout.js +1 -1
  204. package/dist/ships/ships.d.ts +7 -6
  205. package/dist/ships/ships.js +1 -1
  206. package/dist/ships/slef.d.ts +1 -1
  207. package/dist/ships/source-purchase.d.ts +2 -1
  208. package/dist/ships/source-purchase.js +1 -1
  209. package/dist/ships/weapons-capacitor.d.ts +10 -3
  210. package/dist/ships/weapons-capacitor.js +1 -1
  211. package/dist/ships/weapons.d.ts +22 -6
  212. package/dist/ships/weapons.js +1 -1
  213. package/dist/{system-address-DYsN1qOT.d.ts → system-address-cyJaeZIS.d.ts} +2 -1
  214. package/package.json +17 -2
  215. package/dist/chunk-2FHHMYDC.js +0 -1
  216. package/dist/chunk-2FHHMYDC.js.map +0 -1
  217. package/dist/chunk-2TW4ZBI3.js +0 -1
  218. package/dist/chunk-2TW4ZBI3.js.map +0 -1
  219. package/dist/chunk-2VPVZELZ.js +0 -1
  220. package/dist/chunk-3BM5BHI3.js +0 -1
  221. package/dist/chunk-3BM5BHI3.js.map +0 -1
  222. package/dist/chunk-4S6WB7QR.js.map +0 -1
  223. package/dist/chunk-6BO5JJNI.js +0 -1
  224. package/dist/chunk-6BO5JJNI.js.map +0 -1
  225. package/dist/chunk-CX7B67OI.js +0 -1
  226. package/dist/chunk-CX7B67OI.js.map +0 -1
  227. package/dist/chunk-DVL5RBKX.js +0 -1
  228. package/dist/chunk-DVL5RBKX.js.map +0 -1
  229. package/dist/chunk-DYPOL3CI.js.map +0 -1
  230. package/dist/chunk-FGXWVFN6.js +0 -1
  231. package/dist/chunk-FGXWVFN6.js.map +0 -1
  232. package/dist/chunk-FMPRCYKY.js.map +0 -1
  233. package/dist/chunk-G3265B27.js +0 -1
  234. package/dist/chunk-G3265B27.js.map +0 -1
  235. package/dist/chunk-GQ5GX5TB.js.map +0 -1
  236. package/dist/chunk-IOJXLDJN.js +0 -1
  237. package/dist/chunk-IOJXLDJN.js.map +0 -1
  238. package/dist/chunk-IYU4WLFM.js +0 -1
  239. package/dist/chunk-IYU4WLFM.js.map +0 -1
  240. package/dist/chunk-J42ZXLBL.js.map +0 -1
  241. package/dist/chunk-JPBMRJFC.js.map +0 -1
  242. package/dist/chunk-LJI7VXJD.js +0 -1
  243. package/dist/chunk-LJI7VXJD.js.map +0 -1
  244. package/dist/chunk-OCND33TO.js +0 -1
  245. package/dist/chunk-OCND33TO.js.map +0 -1
  246. package/dist/chunk-P2QOL63K.js +0 -1
  247. package/dist/chunk-P2QOL63K.js.map +0 -1
  248. package/dist/chunk-Q3QCLNVG.js.map +0 -1
  249. package/dist/chunk-QTZPA2FR.js.map +0 -1
  250. package/dist/chunk-RLUS76LZ.js +0 -1
  251. package/dist/chunk-RLUS76LZ.js.map +0 -1
  252. package/dist/chunk-TEOJCBSG.js +0 -1
  253. package/dist/chunk-TEOJCBSG.js.map +0 -1
  254. package/dist/chunk-TMMGS6TC.js +0 -1
  255. package/dist/chunk-TMMGS6TC.js.map +0 -1
  256. package/dist/chunk-W6EPHHTS.js.map +0 -1
  257. package/dist/chunk-Z6XMXMVI.js.map +0 -1
  258. package/dist/chunk-ZNCXENNB.js +0 -1
  259. package/dist/chunk-ZNCXENNB.js.map +0 -1
  260. /package/dist/{chunk-6EUVIZAS.js.map → chunk-4QYTVSNR.js.map} +0 -0
  261. /package/dist/{chunk-6EPYVBAX.js.map → chunk-A6OINYNP.js.map} +0 -0
@@ -1 +1 @@
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
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-MGRDB2BZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/equipment/modifications.ts"],"names":["findByRawKey","deepFreeze","modifications_default","PERSONAL_MODIFICATIONS","getPersonalModification","symbol"],"mappings":"O,0rHAgDO,IAAMG,uBAAyEF,WAClFC,uBAiBG,SAASE,wBAAwBC,QACpC,OAAOL,aAAaG,uBAAwBE,OAAQ,kCACxD,QAAAF,uBAAAC"}
1
+ {"version":3,"sources":["../src/equipment/modifications.ts"],"names":["findByRawKey","deepFreeze","modifications_default","PERSONAL_MODIFICATIONS","getPersonalModification","symbol"],"mappings":"O,0rHAgDO,IAAMG,uBAAyEF,WAClFC,uBAkBG,SAASE,wBAAwBC,QACpC,OAAOL,aAAaG,uBAAwBE,OAAQ,kCACxD,QAAAF,uBAAAC"}
@@ -1 +1 @@
1
- import{ALL_MICRO_RESOURCES}from"./chunk-GVNTKCVF.js";import{findInKeyIndex,findByKey,filterByKey,createKeyIndex}from"./chunk-BKWLI44T.js";var MICRO_RESOURCES_BY_SYMBOL=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"symbol");var MICRO_RESOURCES_BY_NAME=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"name");function getMicroResourceBySymbol(symbol,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_SYMBOL,symbol,"getMicroResourceBySymbol: symbol"):findByKey(microResources,"symbol",symbol,"getMicroResourceBySymbol: symbol")}function getMicroResourceByName(name,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_NAME,name,"getMicroResourceByName: name"):findByKey(microResources,"name",name,"getMicroResourceByName: name")}function microResourcesInCategory(category,microResources=ALL_MICRO_RESOURCES){return filterByKey(microResources,"category",category,"microResourcesInCategory: category")}export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory};//# sourceMappingURL=chunk-MKGJPVPS.js.map
1
+ import{ALL_MICRO_RESOURCES}from"./chunk-GVNTKCVF.js";import{findInKeyIndex,findByKey,filterByKey,createKeyIndex}from"./chunk-BKWLI44T.js";var MICRO_RESOURCES_BY_SYMBOL=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"symbol");var MICRO_RESOURCES_BY_NAME=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"name");function getMicroResourceBySymbol(symbol,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_SYMBOL,symbol,"getMicroResourceBySymbol: symbol"):findByKey(microResources,"symbol",symbol,"getMicroResourceBySymbol: symbol")}function getMicroResourceByName(name,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_NAME,name,"getMicroResourceByName: name"):findByKey(microResources,"name",name,"getMicroResourceByName: name")}function microResourcesInCategory(category){return filterByKey(ALL_MICRO_RESOURCES,"category",category,"microResourcesInCategory: category")}export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory};//# sourceMappingURL=chunk-MRTTQYT5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/materials/micro-resources.ts"],"names":["ALL_MICRO_RESOURCES","findInKeyIndex","findByKey","filterByKey","createKeyIndex","MICRO_RESOURCES_BY_SYMBOL","MICRO_RESOURCES_BY_NAME","getMicroResourceBySymbol","symbol","microResources","getMicroResourceByName","name","microResourcesInCategory","category"],"mappings":"O,mIAsFA,IAAMK,yCAA4CD,eAAeJ,oBAAqB,UACtF,IAAMM,uCAA0CF,eAAeJ,oBAAqB,QAwB7E,SAASO,yBACZC,OACAC,eAA2CT,qBAE3C,OAAOS,iBAAmBT,oBACpBC,eAAeI,0BAA2BG,OAAQ,oCAClDN,UAAUO,eAAgB,SAAUD,OAAQ,mCACtD,CAmBO,SAASE,uBACZC,KACAF,eAA2CT,qBAE3C,OAAOS,iBAAmBT,oBACpBC,eAAeK,wBAAyBK,KAAM,gCAC9CT,UAAUO,eAAgB,OAAQE,KAAM,+BAClD,CAmBO,SAASC,yBACZC,SACAJ,eAA2CT,qBAE3C,OAAOG,YAAYM,eAAgB,WAAYI,SAAU,qCAC7D,QAAAH,uBAAAH,yBAAAK"}
1
+ {"version":3,"sources":["../src/materials/micro-resources.ts"],"names":["ALL_MICRO_RESOURCES","findInKeyIndex","findByKey","filterByKey","createKeyIndex","MICRO_RESOURCES_BY_SYMBOL","MICRO_RESOURCES_BY_NAME","getMicroResourceBySymbol","symbol","microResources","getMicroResourceByName","name","microResourcesInCategory","category"],"mappings":"O,mIA+FA,IAAMK,yCAA4CD,eAAeJ,oBAAqB,UACtF,IAAMM,uCAA0CF,eAAeJ,oBAAqB,QA2B7E,SAASO,yBACZC,OACAC,eAA2CT,qBAE3C,OAAOS,iBAAmBT,oBACpBC,eAAeI,0BAA2BG,OAAQ,oCAClDN,UAAUO,eAAgB,SAAUD,OAAQ,mCACtD,CAmBO,SAASE,uBACZC,KACAF,eAA2CT,qBAE3C,OAAOS,iBAAmBT,oBACpBC,eAAeK,wBAAyBK,KAAM,gCAC9CT,UAAUO,eAAgB,OAAQE,KAAM,+BAClD,CAkBO,SAASC,yBAAyBC,UACrC,OAAOV,YACHH,oBACA,WACAa,SACA,qCAER,QAAAH,uBAAAH,yBAAAK"}
@@ -0,0 +1 @@
1
+ import{sumMaterials}from"./chunk-CJQ37JII.js";import{findByRawKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var blueprint_costs_default={AFM_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},Armour_Advanced:{1:[{symbol:"Iron",name:"Iron",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Iron",name:"Iron",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Iron",name:"Iron",count:1}],4:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"MilitaryGradeAlloys",name:"Military Grade Alloys",count:1},{symbol:"Tin",name:"Tin",count:1}]},Armour_Explosive:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"Zinc",name:"Zinc",count:1}],3:[{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],4:[{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:1},{symbol:"Mercury",name:"Mercury",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],5:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"Ruthenium",name:"Ruthenium",count:1}]},Armour_HeavyDuty:{1:[{symbol:"Carbon",name:"Carbon",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},Armour_Kinetic:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],3:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],4:[{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],5:[{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1}]},Armour_Thermic:{1:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1}],2:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"Nickel",name:"Nickel",count:1}],3:[{symbol:"HeatExchangers",name:"Heat Exchangers",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],4:[{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:1},{symbol:"HeatVanes",name:"Heat Vanes",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],5:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoHeatRadiators",name:"Proto Heat Radiators",count:1}]},Misc_LightWeight:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],3:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],4:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},Misc_Reinforced:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],4:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"Zinc",name:"Zinc",count:1}],5:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Technetium",name:"Technetium",count:1}]},Misc_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},Misc_ChaffCapacity:{1:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}]},CollectionLimpet_LightWeight:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],3:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],4:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},CollectionLimpet_Reinforced:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],4:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"Zinc",name:"Zinc",count:1}],5:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Technetium",name:"Technetium",count:1}]},CollectionLimpet_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},Engine_Dirty:{1:[{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],2:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],3:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],4:[{symbol:"ConfigurableComponents",name:"Configurable Components",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Selenium",name:"Selenium",count:1}],5:[{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"PharmaceuticalIsolators",name:"Pharmaceutical Isolators",count:1}]},Engine_Reinforced:{1:[{symbol:"Carbon",name:"Carbon",count:1}],2:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],3:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],4:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1}],5:[{symbol:"HeatExchangers",name:"Heat Exchangers",count:1},{symbol:"ImperialShielding",name:"Imperial Shielding",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}]},Engine_Tuned:{1:[{symbol:"Sulphur",name:"Sulphur",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1},{symbol:"EmissionData",name:"Unexpected Emission Data",count:1}],4:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"DecodedEmissionData",name:"Decoded Emission Data",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1}],5:[{symbol:"CompactEmissionsData",name:"Abnormal Compact Emissions Data",count:1},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Tin",name:"Tin",count:1}]},FSD_FastBoot:{1:[{symbol:"GridResistors",name:"Grid Resistors",count:1}],2:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"GridResistors",name:"Grid Resistors",count:1}],3:[{symbol:"GridResistors",name:"Grid Resistors",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"Selenium",name:"Selenium",count:1}],4:[{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"HeatExchangers",name:"Heat Exchangers",count:1},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1}],5:[{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1},{symbol:"HeatVanes",name:"Heat Vanes",count:1},{symbol:"Tellurium",name:"Tellurium",count:1}]},FSD_LongRange:{1:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:1}],2:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:1},{symbol:"ChemicalProcessors",name:"Chemical Processors",count:1}],3:[{symbol:"ChemicalProcessors",name:"Chemical Processors",count:1},{symbol:"Phosphorus",name:"Phosphorus",count:1},{symbol:"WakeSolutions",name:"Strange Wake Solutions",count:1}],4:[{symbol:"ChemicalDistillery",name:"Chemical Distillery",count:1},{symbol:"HyperspaceTrajectories",name:"Eccentric Hyperspace Trajectories",count:1},{symbol:"Manganese",name:"Manganese",count:1}],5:[{symbol:"Arsenic",name:"Arsenic",count:1},{symbol:"ChemicalManipulators",name:"Chemical Manipulators",count:1},{symbol:"DataminedWake",name:"Datamined Wake Exceptions",count:1}]},FSD_Shielded:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Zinc",name:"Zinc",count:1}],4:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"ImperialShielding",name:"Imperial Shielding",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},FSDinterdictor_Expanded:{1:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],2:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"EncryptedFiles",name:"Unusual Encrypted Files",count:1}],3:[{symbol:"GridResistors",name:"Grid Resistors",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"EncryptionCodes",name:"Tagged Encryption Codes",count:1}],4:[{symbol:"EncodedScanData",name:"Divergent Scan Data",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"WakeSolutions",name:"Strange Wake Solutions",count:1}],5:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"HyperspaceTrajectories",name:"Eccentric Hyperspace Trajectories",count:1},{symbol:"ClassifiedScanData",name:"Classified Scan Fragment",count:1}]},FSDinterdictor_LongRange:{1:[{symbol:"EncryptedFiles",name:"Unusual Encrypted Files",count:1}],2:[{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",count:1},{symbol:"EncryptionCodes",name:"Tagged Encryption Codes",count:1}],3:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:1},{symbol:"FSDTelemetry",name:"Anomalous FSD Telemetry",count:1},{symbol:"SymmetricKeys",name:"Open Symmetric Keys",count:1}],4:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:1},{symbol:"WakeSolutions",name:"Strange Wake Solutions",count:1},{symbol:"EncryptionArchives",name:"Atypical Encryption Archives",count:1}],5:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"HyperspaceTrajectories",name:"Eccentric Hyperspace Trajectories",count:1},{symbol:"AdaptiveEncryptors",name:"Adaptive Encryptors Capture",count:1}]},FuelScoop_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},FuelTransferLimpet_LightWeight:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],3:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],4:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},FuelTransferLimpet_Reinforced:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],4:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"Zinc",name:"Zinc",count:1}],5:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Technetium",name:"Technetium",count:1}]},FuelTransferLimpet_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},HatchBreakerLimpet_LightWeight:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],3:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],4:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},HatchBreakerLimpet_Reinforced:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],4:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"Zinc",name:"Zinc",count:1}],5:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Technetium",name:"Technetium",count:1}]},HatchBreakerLimpet_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},Misc_HeatSinkCapacity:{1:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}]},HullReinforcement_Advanced:{1:[{symbol:"Iron",name:"Iron",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Iron",name:"Iron",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Iron",name:"Iron",count:1}],4:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"MilitaryGradeAlloys",name:"Military Grade Alloys",count:1},{symbol:"Tin",name:"Tin",count:1}]},HullReinforcement_Explosive:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"Zinc",name:"Zinc",count:1}],3:[{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1},{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"Zirconium",name:"Zirconium",count:1}],4:[{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:1},{symbol:"Mercury",name:"Mercury",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],5:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"Ruthenium",name:"Ruthenium",count:1}]},HullReinforcement_HeavyDuty:{1:[{symbol:"Carbon",name:"Carbon",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},HullReinforcement_Kinetic:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],3:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],4:[{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],5:[{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1}]},HullReinforcement_Thermic:{1:[{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1}],2:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"Nickel",name:"Nickel",count:1}],3:[{symbol:"HeatExchangers",name:"Heat Exchangers",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],4:[{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:1},{symbol:"HeatVanes",name:"Heat Vanes",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],5:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoHeatRadiators",name:"Proto Heat Radiators",count:1}]},LifeSupport_LightWeight:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],3:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],4:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}]},LifeSupport_Reinforced:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],4:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"Zinc",name:"Zinc",count:1}],5:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Technetium",name:"Technetium",count:1}]},LifeSupport_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1}]},Misc_PointDefenseCapacity:{1:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}]},PowerDistributor_HighCapacity:{1:[{symbol:"Sulphur",name:"Sulphur",count:1}],2:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],3:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],4:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"Selenium",name:"Selenium",count:1}],5:[{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}]},PowerDistributor_HighFrequency:{1:[{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],2:[{symbol:"ChemicalProcessors",name:"Chemical Processors",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],3:[{symbol:"ChemicalDistillery",name:"Chemical Distillery",count:1},{symbol:"GridResistors",name:"Grid Resistors",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1}],4:[{symbol:"ChemicalManipulators",name:"Chemical Manipulators",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1}],5:[{symbol:"ChemicalManipulators",name:"Chemical Manipulators",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"ExquisiteFocusCrystals",name:"Exquisite Focus Crystals",count:1}]},PowerDistributor_PriorityEngines:{1:[{symbol:"Sulphur",name:"Sulphur",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Sulphur",name:"Sulphur",count:1}],3:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:1},{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1}],4:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],5:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},PowerDistributor_PrioritySystems:{1:[{symbol:"Sulphur",name:"Sulphur",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Sulphur",name:"Sulphur",count:1}],3:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:1},{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1}],4:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],5:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},PowerDistributor_PriorityWeapons:{1:[{symbol:"Sulphur",name:"Sulphur",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Sulphur",name:"Sulphur",count:1}],3:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:1},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1},{symbol:"Selenium",name:"Selenium",count:1}],4:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1},{symbol:"Cadmium",name:"Cadmium",count:1}],5:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1},{symbol:"Tellurium",name:"Tellurium",count:1}]},PowerDistributor_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},PowerPlant_Armoured:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},PowerPlant_Boosted:{1:[{symbol:"Sulphur",name:"Sulphur",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1},{symbol:"Selenium",name:"Selenium",count:1}],4:[{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1}],5:[{symbol:"ChemicalManipulators",name:"Chemical Manipulators",count:1},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Tellurium",name:"Tellurium",count:1}]},PowerPlant_Stealth:{1:[{symbol:"Iron",name:"Iron",count:1}],2:[{symbol:"Iron",name:"Iron",count:1},{symbol:"ArchivedEmissionData",name:"Irregular Emission Data",count:1}],3:[{symbol:"HeatExchangers",name:"Heat Exchangers",count:1},{symbol:"Iron",name:"Iron",count:1},{symbol:"ArchivedEmissionData",name:"Irregular Emission Data",count:1}],4:[{symbol:"HeatVanes",name:"Heat Vanes",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"EmissionData",name:"Unexpected Emission Data",count:1}],5:[{symbol:"ProtoHeatRadiators",name:"Proto Heat Radiators",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"DecodedEmissionData",name:"Decoded Emission Data",count:1}]},ProspectingLimpet_LightWeight:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],3:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],4:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},ProspectingLimpet_Reinforced:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],4:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"Zinc",name:"Zinc",count:1}],5:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Technetium",name:"Technetium",count:1}]},ProspectingLimpet_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},Refineries_Shielded:{1:[{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],4:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ShieldingSensors",name:"Shielding Sensors",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1},{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}]},Sensor_FastScan:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:1},{symbol:"Phosphorus",name:"Phosphorus",count:1}],3:[{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",count:1},{symbol:"SymmetricKeys",name:"Open Symmetric Keys",count:1},{symbol:"Phosphorus",name:"Phosphorus",count:1}],4:[{symbol:"EncryptionArchives",name:"Atypical Encryption Archives",count:1},{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"Manganese",name:"Manganese",count:1}],5:[{symbol:"AdaptiveEncryptors",name:"Adaptive Encryptors Capture",count:1},{symbol:"Arsenic",name:"Arsenic",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1}]},Scanner_LongRange:{1:[{symbol:"Iron",name:"Iron",count:1}],2:[{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1},{symbol:"Iron",name:"Iron",count:1}],3:[{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1},{symbol:"Iron",name:"Iron",count:1},{symbol:"EmissionData",name:"Unexpected Emission Data",count:1}],4:[{symbol:"DecodedEmissionData",name:"Decoded Emission Data",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1},{symbol:"Germanium",name:"Germanium",count:1}],5:[{symbol:"CompactEmissionsData",name:"Abnormal Compact Emissions Data",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}]},Scanner_WideAngle:{1:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],2:[{symbol:"Germanium",name:"Germanium",count:1},{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],3:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],4:[{symbol:"EncodedScanData",name:"Divergent Scan Data",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"Niobium",name:"Niobium",count:1}],5:[{symbol:"ClassifiedScanData",name:"Classified Scan Fragment",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"Tin",name:"Tin",count:1}]},Sensor_LightWeight:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],3:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],4:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},Sensor_LongRange:{1:[{symbol:"Iron",name:"Iron",count:1}],2:[{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1},{symbol:"Iron",name:"Iron",count:1}],3:[{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1},{symbol:"Iron",name:"Iron",count:1},{symbol:"EmissionData",name:"Unexpected Emission Data",count:1}],4:[{symbol:"DecodedEmissionData",name:"Decoded Emission Data",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1},{symbol:"Germanium",name:"Germanium",count:1}],5:[{symbol:"CompactEmissionsData",name:"Abnormal Compact Emissions Data",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}]},Sensor_WideAngle:{1:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],2:[{symbol:"Germanium",name:"Germanium",count:1},{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],3:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],4:[{symbol:"EncodedScanData",name:"Divergent Scan Data",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"Niobium",name:"Niobium",count:1}],5:[{symbol:"ClassifiedScanData",name:"Classified Scan Fragment",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"Tin",name:"Tin",count:1}]},Sensor_Expanded:{1:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Germanium",name:"Germanium",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1}],4:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"Tin",name:"Tin",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},ShieldBooster_Explosive:{1:[{symbol:"Iron",name:"Iron",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Iron",name:"Iron",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"Iron",name:"Iron",count:1}],4:[{symbol:"Germanium",name:"Germanium",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:1}],5:[{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:1},{symbol:"ExquisiteFocusCrystals",name:"Exquisite Focus Crystals",count:1},{symbol:"Niobium",name:"Niobium",count:1}]},ShieldBooster_HeavyDuty:{1:[{symbol:"GridResistors",name:"Grid Resistors",count:1}],2:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1}],3:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1},{symbol:"Niobium",name:"Niobium",count:1}],4:[{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1},{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",count:1},{symbol:"Tin",name:"Tin",count:1}],5:[{symbol:"Antimony",name:"Antimony",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:1}]},ShieldBooster_Kinetic:{1:[{symbol:"Iron",name:"Iron",count:1}],2:[{symbol:"Germanium",name:"Germanium",count:1},{symbol:"GridResistors",name:"Grid Resistors",count:1}],3:[{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],4:[{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:1}],5:[{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:1},{symbol:"ExquisiteFocusCrystals",name:"Exquisite Focus Crystals",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1}]},ShieldBooster_Resistive:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Phosphorus",name:"Phosphorus",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"Phosphorus",name:"Phosphorus",count:1}],4:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Manganese",name:"Manganese",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ImperialShielding",name:"Imperial Shielding",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1}]},ShieldBooster_Thermic:{1:[{symbol:"Iron",name:"Iron",count:1}],2:[{symbol:"Germanium",name:"Germanium",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1}],3:[{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1}],4:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:1}],5:[{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",count:1},{symbol:"ExquisiteFocusCrystals",name:"Exquisite Focus Crystals",count:1},{symbol:"HeatExchangers",name:"Heat Exchangers",count:1}]},ShieldCellBank_Rapid:{1:[{symbol:"Sulphur",name:"Sulphur",count:1}],2:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"GridResistors",name:"Grid Resistors",count:1}],3:[{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:1},{symbol:"Sulphur",name:"Sulphur",count:1}],4:[{symbol:"HybridCapacitors",name:"Hybrid Capacitors",count:1},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:1},{symbol:"Sulphur",name:"Sulphur",count:1}]},ShieldCellBank_Specialised:{1:[{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"ScrambledEmissionData",name:"Exceptional Scrambled Emission Data",count:1}],4:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"Yttrium",name:"Yttrium",count:1}]},ShieldGenerator_Kinetic:{1:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1}],2:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1}],3:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Selenium",name:"Selenium",count:1}],4:[{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",count:1},{symbol:"Mercury",name:"Mercury",count:1}],5:[{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1},{symbol:"Ruthenium",name:"Ruthenium",count:1},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:1}]},ShieldGenerator_Optimised:{1:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1}],2:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1},{symbol:"Germanium",name:"Germanium",count:1}],3:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:1}],4:[{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1}],5:[{symbol:"MilitaryGradeAlloys",name:"Military Grade Alloys",count:1},{symbol:"Tin",name:"Tin",count:1},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:1}]},ShieldGenerator_Reinforced:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Phosphorus",name:"Phosphorus",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"Phosphorus",name:"Phosphorus",count:1}],4:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1},{symbol:"Manganese",name:"Manganese",count:1}],5:[{symbol:"Arsenic",name:"Arsenic",count:1},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1},{symbol:"ImprovisedComponents",name:"Improvised Components",count:1}]},ShieldGenerator_Thermic:{1:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1}],2:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1},{symbol:"Germanium",name:"Germanium",count:1}],3:[{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"Selenium",name:"Selenium",count:1}],4:[{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",count:1},{symbol:"Mercury",name:"Mercury",count:1}],5:[{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1},{symbol:"Ruthenium",name:"Ruthenium",count:1},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",count:1}]},Weapon_DoubleShot:{1:[{symbol:"Carbon",name:"Carbon",count:1}],2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1}],4:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],5:[{symbol:"ConfigurableComponents",name:"Configurable Components",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1}]},Weapon_Efficient:{1:[{symbol:"Sulphur",name:"Sulphur",count:1}],2:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"Sulphur",name:"Sulphur",count:1}],3:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ScrambledEmissionData",name:"Exceptional Scrambled Emission Data",count:1},{symbol:"HeatExchangers",name:"Heat Exchangers",count:1}],4:[{symbol:"HeatVanes",name:"Heat Vanes",count:1},{symbol:"ArchivedEmissionData",name:"Irregular Emission Data",count:1},{symbol:"Selenium",name:"Selenium",count:1}],5:[{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"ProtoHeatRadiators",name:"Proto Heat Radiators",count:1},{symbol:"EmissionData",name:"Unexpected Emission Data",count:1}]},Weapon_Focused:{1:[{symbol:"Iron",name:"Iron",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Iron",name:"Iron",count:1}],3:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Iron",name:"Iron",count:1}],4:[{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],5:[{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1}]},Weapon_HighCapacity:{1:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],4:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"Tin",name:"Tin",count:1}],5:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1}]},Weapon_LightWeight:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1}],2:[{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],3:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Manganese",name:"Manganese",count:1},{symbol:"SalvagedAlloys",name:"Salvaged Alloys",count:1}],4:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},Weapon_LongRange:{1:[{symbol:"Sulphur",name:"Sulphur",count:1}],2:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Sulphur",name:"Sulphur",count:1}],3:[{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Sulphur",name:"Sulphur",count:1}],4:[{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1},{symbol:"FocusCrystals",name:"Focus Crystals",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1}],5:[{symbol:"BiotechConductors",name:"Biotech Conductors",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1}]},MC_Overcharged:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Nickel",name:"Nickel",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1},{symbol:"Nickel",name:"Nickel",count:1}],4:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1},{symbol:"Zinc",name:"Zinc",count:1}],5:[{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1},{symbol:"Zirconium",name:"Zirconium",count:1}]},Weapon_Overcharged:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"Nickel",name:"Nickel",count:1}],3:[{symbol:"ConductiveComponents",name:"Conductive Components",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1},{symbol:"Nickel",name:"Nickel",count:1}],4:[{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1},{symbol:"Zinc",name:"Zinc",count:1}],5:[{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1},{symbol:"Zirconium",name:"Zirconium",count:1}]},Weapon_RapidFire:{1:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],2:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1}],3:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1}],4:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1}],5:[{symbol:"ConfigurableComponents",name:"Configurable Components",count:1},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:1},{symbol:"Technetium",name:"Technetium",count:1}]},Weapon_ShortRange:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Nickel",name:"Nickel",count:1}],3:[{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Nickel",name:"Nickel",count:1}],4:[{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1}],5:[{symbol:"BiotechConductors",name:"Biotech Conductors",count:1},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1}]},Weapon_Sturdy:{1:[{symbol:"Nickel",name:"Nickel",count:1}],2:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Nickel",name:"Nickel",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],4:[{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"Zinc",name:"Zinc",count:1}],5:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Technetium",name:"Technetium",count:1}]},FuelScoop_Efficiency:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1},{symbol:"GridResistors",name:"Grid Resistors",count:1}],2:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"GridResistors",name:"Grid Resistors",count:1},{symbol:"ChemicalProcessors",name:"Chemical Processors",count:1}],3:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ChemicalProcessors",name:"Chemical Processors",count:1},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1}],4:[{symbol:"ChemicalProcessors",name:"Chemical Processors",count:2},{symbol:"ChemicalDistillery",name:"Chemical Distillery",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"Tellurium",name:"Tellurium",count:1},{symbol:"ChemicalManipulators",name:"Chemical Manipulators",count:1},{symbol:"ProtoHeatRadiators",name:"Proto Heat Radiators",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},BeamLaser_ThermalPlasmaConversion:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1}],2:[{symbol:"Arsenic",name:"Arsenic",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1}],3:[{symbol:"Arsenic",name:"Arsenic",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1}],4:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1}],5:[{symbol:"Technetium",name:"Technetium",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1}]},BurstLaser_ThermalPlasmaConversion:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1}],2:[{symbol:"Arsenic",name:"Arsenic",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1}],3:[{symbol:"Arsenic",name:"Arsenic",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1}],4:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1}],5:[{symbol:"Technetium",name:"Technetium",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1}]},PulseLaser_ThermalPlasmaConversion:{1:[{symbol:"Phosphorus",name:"Phosphorus",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1}],2:[{symbol:"Arsenic",name:"Arsenic",count:1},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1}],3:[{symbol:"Arsenic",name:"Arsenic",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1}],4:[{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",count:1},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1}],5:[{symbol:"Technetium",name:"Technetium",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1}]},DetailedSurfaceScanner_LongRange:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Germanium",name:"Germanium",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1}],4:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1}],5:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"Tin",name:"Tin",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1}]},CargoRackS5C1_Extended:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"Manganese",name:"Manganese",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"Niobium",name:"Niobium",count:1}],4:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Tin",name:"Tin",count:1},{symbol:"Niobium",name:"Niobium",count:1}],5:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},CargoRackS6C1_Extended:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"Manganese",name:"Manganese",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"Niobium",name:"Niobium",count:1}],4:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Tin",name:"Tin",count:1},{symbol:"Niobium",name:"Niobium",count:1}],5:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},ModuleReinforcement_HeavyDuty:{2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"Iron",name:"Iron",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1}],3:[{symbol:"Iron",name:"Iron",count:1},{symbol:"ShieldEmitters",name:"Shield Emitters",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1}],4:[{symbol:"ShieldEmitters",name:"Shield Emitters",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],5:[{symbol:"CompoundShielding",name:"Compound Shielding",count:1},{symbol:"Ruthenium",name:"Ruthenium",count:1},{symbol:"ProtoHeatRadiators",name:"Proto Heat Radiators",count:1},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",count:1}]},PowerDistributor_Balanced:{2:[{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1},{symbol:"ChemicalProcessors",name:"Chemical Processors",count:1}],3:[{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1},{symbol:"ChemicalProcessors",name:"Chemical Processors",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1}],4:[{symbol:"ChemicalProcessors",name:"Chemical Processors",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"ChemicalManipulators",name:"Chemical Manipulators",count:1}],5:[{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"ChemicalManipulators",name:"Chemical Manipulators",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1},{symbol:"ExquisiteFocusCrystals",name:"Exquisite Focus Crystals",count:1}]},PowerDistributorS3C2_SupportFocused:{2:[{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1},{symbol:"ConductiveComponents",name:"Conductive Components",count:1}],3:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:1},{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1}],4:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],5:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},PowerDistributorS3C5_SupportFocused:{2:[{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1},{symbol:"ConductiveComponents",name:"Conductive Components",count:1}],3:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:1},{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1}],4:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],5:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},PowerDistributorS4C2_SupportFocused:{2:[{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1},{symbol:"ConductiveComponents",name:"Conductive Components",count:1}],3:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:1},{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1}],4:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],5:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},PowerDistributorS4C5_SupportFocused:{2:[{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1},{symbol:"ConductiveComponents",name:"Conductive Components",count:1}],3:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:1},{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1}],4:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],5:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},PowerDistributorS6C5_SupportFocused:{2:[{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1},{symbol:"ConductiveComponents",name:"Conductive Components",count:1}],3:[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",count:1},{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1}],4:[{symbol:"ScanArchives",name:"Unidentified Scan Archives",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],5:[{symbol:"ScanDatabanks",name:"Classified Scan Databanks",count:1},{symbol:"Cadmium",name:"Cadmium",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},AbrasionBlaster_FarReaching:{2:[{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1}],3:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"HeatExchangers",name:"Heat Exchangers",count:1}],4:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"HeatVanes",name:"Heat Vanes",count:1}],5:[{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1},{symbol:"BiotechConductors",name:"Biotech Conductors",count:1},{symbol:"ProtoHeatRadiators",name:"Proto Heat Radiators",count:1}]},FragmentCannonSmall_DoubleScreaming:{2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"Tin",name:"Tin",count:1}],4:[{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:1}],5:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1}]},FragmentCannonLarge_DoubleScreaming:{2:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1}],3:[{symbol:"Carbon",name:"Carbon",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"Tin",name:"Tin",count:1}],4:[{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"SecurityFirmware",name:"Security Firmware Patch",count:1}],5:[{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1}]},RailGun_LongShot:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1}],3:[{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Niobium",name:"Niobium",count:1}],4:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Niobium",name:"Niobium",count:1},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1},{symbol:"Tin",name:"Tin",count:1}],5:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1},{symbol:"BiotechConductors",name:"Biotech Conductors",count:1}]},MiningLaser_LongRange:{2:[{symbol:"Sulphur",name:"Sulphur",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1}],3:[{symbol:"Chromium",name:"Chromium",count:1},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"HeatExchangers",name:"Heat Exchangers",count:1}],4:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"ConductivePolymers",name:"Conductive Polymers",count:1},{symbol:"Selenium",name:"Selenium",count:1},{symbol:"HeatVanes",name:"Heat Vanes",count:1}],5:[{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1},{symbol:"BiotechConductors",name:"Biotech Conductors",count:1},{symbol:"ProtoHeatRadiators",name:"Proto Heat Radiators",count:1}]},MultiCannon_Rapid:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1},{symbol:"ConductiveComponents",name:"Conductive Components",count:1}],3:[{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:1}],4:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1}],5:[{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:1},{symbol:"ConfigurableComponents",name:"Configurable Components",count:1},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1},{symbol:"Technetium",name:"Technetium",count:1}]},SeekerMissileRack_Drag:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",count:1}],4:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1}],5:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"Technetium",name:"Technetium",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},SeekerMissileRack_LightWeightThermal:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"Manganese",name:"Manganese",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",count:1}],4:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"PhaseAlloys",name:"Phase Alloys",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1}],5:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",count:1},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},SeekerMissileRackMedium_Lockdown:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Nickel",name:"Nickel",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],4:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1}],5:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Technetium",name:"Technetium",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},SeekerMissileRackLarge_Lockdown:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Nickel",name:"Nickel",count:1},{symbol:"Vanadium",name:"Vanadium",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"Tungsten",name:"Tungsten",count:1}],4:[{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",count:1},{symbol:"Tungsten",name:"Tungsten",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"ThermicAlloys",name:"Thermic Alloys",count:1}],5:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"Molybdenum",name:"Molybdenum",count:1},{symbol:"Technetium",name:"Technetium",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},EnzymeMissileRack_HighYield:{2:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"ConductiveComponents",name:"Conductive Components",count:1}],3:[{symbol:"MechanicalScrap",name:"Mechanical Scrap",count:1},{symbol:"Vanadium",name:"Vanadium",count:1},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",count:1}],4:[{symbol:"MechanicalEquipment",name:"Mechanical Equipment",count:1},{symbol:"HighDensityComposites",name:"High Density Composites",count:1},{symbol:"Tin",name:"Tin",count:1},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",count:1}],5:[{symbol:"MechanicalComponents",name:"Mechanical Components",count:1},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",count:1},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",count:1},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",count:1}]},GuardianModule_Sturdy:{1:[{symbol:"tg_abrasion03",name:"Hardened Surface Fragments",count:2},{symbol:"tg_causticcrystal",name:"Caustic Crystal",count:1}]}};var blueprint_merc_coin_costs_default={FuelScoop_Efficiency:{1:10,2:15,3:20,4:25,5:30},BeamLaser_ThermalPlasmaConversion:{1:10,2:15,3:20,4:25,5:30},BurstLaser_ThermalPlasmaConversion:{1:10,2:15,3:20,4:25,5:30},PulseLaser_ThermalPlasmaConversion:{1:10,2:15,3:20,4:25,5:30},DetailedSurfaceScanner_LongRange:{2:5,3:5,4:10,5:20},CargoRackS5C1_Extended:{2:5,3:10,4:15,5:30},CargoRackS6C1_Extended:{2:5,3:10,4:15,5:30},ModuleReinforcement_HeavyDuty:{2:5,3:5,4:10,5:25},PowerDistributor_Balanced:{2:5,3:10,4:15,5:25},PowerDistributorS3C2_SupportFocused:{2:5,3:5,4:10,5:15},PowerDistributorS3C5_SupportFocused:{2:5,3:5,4:10,5:15},PowerDistributorS4C2_SupportFocused:{2:5,3:5,4:10,5:15},PowerDistributorS4C5_SupportFocused:{2:5,3:5,4:10,5:15},PowerDistributorS6C5_SupportFocused:{2:5,3:5,4:10,5:15},AbrasionBlaster_FarReaching:{2:5,3:5,4:10,5:20},FragmentCannonSmall_DoubleScreaming:{2:10,3:15,4:25,5:50},FragmentCannonLarge_DoubleScreaming:{2:10,3:15,4:25,5:50},RailGun_LongShot:{2:10,3:15,4:25,5:50},MiningLaser_LongRange:{2:5,3:5,4:10,5:25},MultiCannon_Rapid:{2:10,3:15,4:20,5:45},SeekerMissileRack_Drag:{2:10,3:10,4:20,5:40},SeekerMissileRack_LightWeightThermal:{2:10,3:10,4:20,5:40},SeekerMissileRackMedium_Lockdown:{2:10,3:15,4:25,5:45},SeekerMissileRackLarge_Lockdown:{2:10,3:15,4:25,5:45},EnzymeMissileRack_HighYield:{2:10,3:15,4:20,5:45}};var BLUEPRINT_COSTS=deepFreeze(blueprint_costs_default);function getBlueprintCosts(blueprintSymbol){return materialCosts(blueprintSymbol,"getBlueprintCosts: blueprintSymbol")}function getBlueprintGradeCost(blueprintSymbol,grade){const label="getBlueprintGradeCost: blueprintSymbol";requireStringIfPresent(blueprintSymbol,label);if(!Number.isInteger(grade)||grade<1||grade>5){throw new RangeError(`getBlueprintGradeCost: grade must be an integer in [1, 5]`)}const materials=materialCosts(blueprintSymbol,label)?.[String(grade)];if(!materials)return null;return{materials:materials,mercCoins:mercCoinCosts(blueprintSymbol,label)?.[String(grade)]??0}}function getBlueprintCost(blueprintSymbol,grade,currentGrade=0){const label="getBlueprintCost: blueprintSymbol";requireStringIfPresent(blueprintSymbol,label);if(!Number.isInteger(grade)||grade<1||grade>5){throw new RangeError(`getBlueprintCost: grade must be an integer in [1, 5]`)}if(!Number.isInteger(currentGrade)||currentGrade<0||currentGrade>5){throw new RangeError(`getBlueprintCost: currentGrade must be an integer in [0, 5]`)}const costs=materialCosts(blueprintSymbol,label);if(!costs)return null;if(!costs[String(grade)])return null;const currency=mercCoinCosts(blueprintSymbol,label);const perGrade=[];let mercCoins=0;for(let g=currentGrade+1;g<=grade;g++){const recipe=costs[String(g)];if(!recipe)continue;const rolls=g;mercCoins+=(currency?.[String(g)]??0)*rolls;perGrade.push(recipe.map(material=>({symbol:material.symbol,name:material.name,count:material.count*rolls})))}return{materials:sumMaterials(...perGrade),mercCoins:mercCoins}}var BLUEPRINT_MERC_COIN_COSTS=deepFreeze(blueprint_merc_coin_costs_default);function materialCosts(blueprintSymbol,label){return findByRawKey(BLUEPRINT_COSTS,blueprintSymbol,label)}function mercCoinCosts(blueprintSymbol,label){return findByRawKey(BLUEPRINT_MERC_COIN_COSTS,blueprintSymbol,label)}export{BLUEPRINT_COSTS,BLUEPRINT_MERC_COIN_COSTS,getBlueprintCost,getBlueprintCosts,getBlueprintGradeCost};//# sourceMappingURL=chunk-MTJ4MS7W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/blueprint-costs.ts"],"names":["sumMaterials","findByRawKey","requireStringIfPresent","deepFreeze","blueprint_costs_default","symbol","name","count","blueprint_merc_coin_costs_default","BLUEPRINT_COSTS","getBlueprintCosts","blueprintSymbol","materialCosts","getBlueprintGradeCost","grade","label","Number","isInteger","RangeError","materials","String","mercCoins","mercCoinCosts","getBlueprintCost","currentGrade","costs","currency","perGrade","g","recipe","rolls","push","map","material","BLUEPRINT_MERC_COIN_COSTS"],"mappings":"O,6u9EA2DO,IAAMS,gBAAiEN,WAC1EC,yBAyBG,SAASM,kBAAkBC,iBAC9B,OAAOC,cAAcD,gBAAiB,qCAC1C,CAoDO,SAASE,sBACZF,gBACAG,OAKA,MAAMC,MAAQ,yCACdb,uBAAuBS,gBAAiBI,OACxC,IAAKC,OAAOC,UAAUH,QAAUA,MAAQ,GAAKA,MAAQ,EAAG,CACpD,MAAM,IAAII,WAAW,4DACzB,CACA,MAAMC,UAAYP,cAAcD,gBAAiBI,SAASK,OAAON,QACjE,IAAKK,UAAW,OAAO,KACvB,MAAO,CAAEA,oBAAWE,UAAWC,cAAcX,gBAAiBI,SAASK,OAAON,SAAW,EAC7F,CAyDO,SAASS,iBACZZ,gBACAG,MACAU,aAAe,GAIf,MAAMT,MAAQ,oCACdb,uBAAuBS,gBAAiBI,OACxC,IAAKC,OAAOC,UAAUH,QAAUA,MAAQ,GAAKA,MAAQ,EAAG,CACpD,MAAM,IAAII,WAAW,uDACzB,CACA,IAAKF,OAAOC,UAAUO,eAAiBA,aAAe,GAAKA,aAAe,EAAG,CACzE,MAAM,IAAIN,WAAW,8DACzB,CAEA,MAAMO,MAAQb,cAAcD,gBAAiBI,OAC7C,IAAKU,MAAO,OAAO,KACnB,IAAKA,MAAML,OAAON,QAAS,OAAO,KAClC,MAAMY,SAAWJ,cAAcX,gBAAiBI,OAEhD,MAAMY,SAAoC,GAC1C,IAAIN,UAAY,EAChB,IAAA,IAASO,EAAIJ,aAAe,EAAGI,GAAKd,MAAOc,IAAK,CAC5C,MAAMC,OAASJ,MAAML,OAAOQ,IAC5B,IAAKC,OAAQ,SAEb,MAAMC,MAAQF,EACdP,YAAcK,WAAWN,OAAOQ,KAAO,GAAKE,MAC5CH,SAASI,KACLF,OAAOG,IAAKC,WAAA,CACR5B,OAAQ4B,SAAS5B,OACjBC,KAAM2B,SAAS3B,KACfC,MAAO0B,SAAS1B,MAAQuB,SAGpC,CACA,MAAO,CAAEX,UAAWnB,gBAAgB2B,UAAWN,oBACnD,CAqCO,IAAMa,0BACT/B,WAAWK,mCAQf,SAASI,cAAcD,gBAAyBI,OAC5C,OAAOd,aAAaQ,gBAAiBE,gBAAiBI,MAC1D,CAGA,SAASO,cAAcX,gBAAyBI,OAC5C,OAAOd,aAAaiC,0BAA2BvB,gBAAiBI,MACpE,QAAAN,gBAAAyB,0BAAAX,iBAAAb,kBAAAG"}
@@ -0,0 +1 @@
1
+ import{normalizeKey}from"./chunk-BKWLI44T.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){const wanted=normalizeKey(slotKey,"getSourceModuleValue: slotKey");for(const entry of record.moduleValues){if(entry.slot===slotKey)return entry}for(const entry of record.moduleValues){if(entry.slot.trim().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-NIURLW2F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/source-purchase.ts"],"names":["normalizeKey","deepFreeze","sourcePurchaseFromLoadout","event","bySlot","Map","module","Modules","Value","set","Slot","slot","item","Item","value","HullValue","ModulesValue","Rebuy","size","hullValue","modulesValue","rebuy","moduleValues","values","moduleCount","length","getSourceModuleValue","record","slotKey","wanted","entry","trim","toLowerCase","sumSourceModuleValues","sum"],"mappings":"O,mFA0FO,SAASE,0BAA0BC,OACtC,MAAMC,sBAAA,IAAaC,IACnB,IAAA,MAAWC,UAAUH,MAAMI,QAAS,CAChC,GAAID,OAAOE,aAAU,EAAW,SAChCJ,OAAOK,IAAIH,OAAOI,KAAM,CACpBC,KAAML,OAAOI,KACbE,KAAMN,OAAOO,KACbC,MAAOR,OAAOE,OAEtB,CACA,GACIL,MAAMY,iBAAc,GACpBZ,MAAMa,oBAAiB,GACvBb,MAAMc,aAAU,GAChBb,OAAOc,OAAS,EAClB,CACE,OAAO,IACX,CACA,OAAOjB,WAAW,CACdkB,UAAWhB,MAAMY,WAAa,KAC9BK,aAAcjB,MAAMa,cAAgB,KACpCK,MAAOlB,MAAMc,OAAS,KACtBK,aAAc,IAAIlB,OAAOmB,UACzBC,YAAarB,MAAMI,QAAQkB,QAEnC,CAwBO,SAASC,qBACZC,OACAC,SAKA,MAAMC,OAAS7B,aAAa4B,QAAS,iCACrC,IAAA,MAAWE,SAASH,OAAOL,aAAc,CACrC,GAAIQ,MAAMnB,OAASiB,QAAS,OAAOE,KACvC,CACA,IAAA,MAAWA,SAASH,OAAOL,aAAc,CACrC,GAAIQ,MAAMnB,KAAKoB,OAAOC,gBAAkBH,OAAQ,OAAOC,KAC3D,CACA,OAAO,IACX,CAsBO,SAASG,sBAAsBN,QAClC,IAAIO,IAAM,EACV,IAAA,MAAWJ,SAASH,OAAOL,aAAcY,KAAOJ,MAAMhB,MACtD,OAAOoB,GACX,QAAAR,qBAAAxB,0BAAA+B"}
@@ -0,0 +1 @@
1
+ import{getBlueprintsForModule}from"./chunk-GLWPSVFV.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent,requireString}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var blueprint_journal_names_default={MC_Overcharged:"Weapon_Overcharged",Scanner_LongRange:"Sensor_LongRange",Scanner_WideAngle:"Sensor_WideAngle"};var BLUEPRINT_JOURNAL_NAMES=deepFreeze(blueprint_journal_names_default);function resolveBlueprintForModule(moduleSymbol,blueprintSymbol){requireStringIfPresent(moduleSymbol,"resolveBlueprintForModule: moduleSymbol");const wanted=normalizeKey(requireString(blueprintSymbol,"resolveBlueprintForModule: blueprintSymbol"),"resolveBlueprintForModule: blueprintSymbol");const offered=getBlueprintsForModule(moduleSymbol);if(offered.some(id=>id.toLowerCase()===wanted))return blueprintSymbol;for(const id of offered){const journalName=BLUEPRINT_JOURNAL_NAMES[id];if(journalName!==void 0&&journalName.toLowerCase()===wanted)return id}return blueprintSymbol}export{resolveBlueprintForModule};//# sourceMappingURL=chunk-OLKNYGGT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/internal/blueprint-journal-names.ts","../src/ships/blueprint-journal.ts"],"names":["getBlueprintsForModule","normalizeKey","requireStringIfPresent","requireString","deepFreeze","blueprint_journal_names_default","BLUEPRINT_JOURNAL_NAMES","resolveBlueprintForModule","moduleSymbol","blueprintSymbol","wanted","offered","some","id","toLowerCase","journalName"],"mappings":"O,qWAKO,IAAMM,wBAA4DF,WACrEC,iCCwEG,SAASE,0BAA0BC,aAAsBC,iBAC5DP,uBAAuBM,aAAc,2CAIrC,MAAME,OAAST,aACXE,cAAcM,gBAAiB,8CAC/B,8CAEJ,MAAME,QAAUX,uBAAuBQ,cAGvC,GAAIG,QAAQC,KAAMC,IAAOA,GAAGC,gBAAkBJ,QAAS,OAAOD,gBAC9D,IAAA,MAAWI,MAAMF,QAAS,CACtB,MAAMI,YAAcT,wBAAwBO,IAC5C,GAAIE,mBAAgB,GAAaA,YAAYD,gBAAkBJ,OAAQ,OAAOG,EAClF,CACA,OAAOJ,eACX,QAAAF"}
@@ -0,0 +1 @@
1
+ import{sourcePurchaseFromLoadout,getSourceModuleValue}from"./chunk-NIURLW2F.js";import{getShipBySymbol,getShipByName,getShipSlots}from"./chunk-6UNAD74Z.js";import{fixedSlotReason,validateLoadout}from"./chunk-B4ZSTOM4.js";import{calculateModuleLimits}from"./chunk-KPETDYQX.js";import{getDefaultLoadout}from"./chunk-GRIK3EDH.js";import{publishLoadoutInternals,effectiveModule}from"./chunk-VYDQHPY2.js";import{parseSlef,toSlef,stringifySlef,getLoadoutModifier}from"./chunk-OVUHQEH5.js";import{isNonOutfittingSlot,isBuiltInHullModule,cloneLoadoutModule,identifyPreEngineeredVariant,cloneModuleStats,availableBlueprintsFor,availableExperimentalsFor,ownKeyIn,FITTED_ITEM,blueprintAvailableFor,blueprintRoutesFor,experimentalAvailableFor,primitiveEngineeringInputsFor,missingBaseLabels,journalModifiersFor,getPreEngineeredStats,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,ordinaryEngineeringProof,unresolvedModifiers,matchingKeyIn,isCargoHatchSlot,isFinalGuardianWeaponEngineering,orderBySlotLayout}from"./chunk-GZYPQIO2.js";import{getPreEngineeredVariants}from"./chunk-PL75RTA2.js";import{builtInModuleBySymbol}from"./chunk-PA5EITW5.js";import{ALL_MODULES}from"./chunk-QY3L5BKN.js";import{singleJumpRange}from"./chunk-6O4NRRSB.js";import{calculateUnladenMass,calculateCargoCapacity,calculateFuelCapacity}from"./chunk-DCB4COCL.js";import{getExperimentalEffect}from"./chunk-77I24V6B.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{baseStats,computeModifiers,labelsForDamageType,scaleForLabel}from"./chunk-CJQ37JII.js";import{resolveBlueprintForModule}from"./chunk-OLKNYGGT.js";import{getExperimentalsForModule}from"./chunk-GLWPSVFV.js";import{getBlueprintGrade}from"./chunk-AYAKU4YA.js";import{loadoutSlotName}from"./chunk-KAA4VOOB.js";import{parseSlotName,enumerateSlots,SLOT_RESTRICTION_LABELS}from"./chunk-RAO35XDF.js";import{normalizeKey,CATALOGUE_KEY}from"./chunk-BKWLI44T.js";import{truncate,describeValue,requireString,requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var MILITARY_PREFIXES=["int_hullreinforcement","int_metaalloyhullreinforcement","int_modulereinforcement","int_shieldcellbank","int_guardianhullreinforcement","int_guardianmodulereinforcement","int_guardianshieldreinforcement"];var MINING_PREFIXES=["hpt_mininglaser","hpt_mining_abrblstr","hpt_mining_seismchrgwarhd","hpt_mining_subsurfdispmisle","hpt_human_extraction","hpt_miningtoolv2"];var CARGO_PREFIXES=["int_cargorack","int_largecargorack","int_corrosionproofcargorack","int_fueltank"];var RESTRICTED_SLOT_PREFIXES={mining:MINING_PREFIXES,military:MILITARY_PREFIXES,cargo:CARGO_PREFIXES,limpetController:["int_dronecontrol","int_multidronecontrol"],vesselHangar:["int_fighterbay"],passenger:["int_passengercabin","int_mkii_passengercabin"],planetaryApproachSuite:["int_planetapproachsuite"]};var problem=(constraint,message,params)=>({constraint:constraint,message:message,...params===void 0?{}:{params:params}});function restrictionProblem(slot,symbol){const restriction=slot.restriction;if(!restriction)return null;if(RESTRICTED_SLOT_PREFIXES[restriction].some(prefix=>symbol.startsWith(prefix))){return null}return problem("restrictedMount",`slot only takes ${SLOT_RESTRICTION_LABELS[restriction]}`,{restriction:restriction})}function moduleSlotProblem(slot,module){const required=module.restrictedToSlot;if(!required||slot.restriction===required)return null;return problem("restrictedMount",`module only fits a mount that takes ${SLOT_RESTRICTION_LABELS[required]}`,{restriction:required})}function moduleFitProblem(shipSymbol,slot,module){if(slot.kind==="cargoHatch"){return problem("immutableSlot","the cargoHatch slot cannot be changed")}if(slot.kind==="armour"){const hull=getShipBySymbol(shipSymbol);if(module.slot!=="armour"||module.ship===void 0){return problem("armourRequired","not a ship armour module")}if(!hull||module.ship.toLowerCase()!==hull.name.toLowerCase()){const armourHull=getShipByName(module.ship);return problem("wrongHullArmour",`armour belongs to ${truncate(module.ship)}, not ${truncate(hull?.name??shipSymbol)}`,{armourShipName:module.ship,...armourHull===null?{}:{armourShipSymbol:armourHull.symbol},shipSymbol:shipSymbol,...hull===null?{}:{shipName:hull.name}})}return null}const restricted=module.restrictedToShips;if(restricted&&!restricted.some(symbol2=>symbol2.toLowerCase()===shipSymbol.toLowerCase())){const allowedShipNames=restricted.map(symbol2=>{const hull=getShipBySymbol(symbol2);return hull?.name??symbol2});const labels=restricted.map((symbol2,index)=>{const name=allowedShipNames[index];return name===symbol2?symbol2:`${name} (${symbol2})`});return problem("restrictedHull",`module is restricted to ${truncate(labels.join(", "))}`,{allowedShipNames:allowedShipNames,allowedShipSymbols:[...restricted],shipSymbol:shipSymbol})}const wrongMount=moduleSlotProblem(slot,module);if(wrongMount)return wrongMount;const symbol=module.symbol.toLowerCase();const moduleSlot=module.slot;switch(slot.kind){case"core":if(moduleSlot!==slot.core){return problem("wrongCoreType",`not a ${slot.core} module`,{requiredCore:slot.core,moduleSlot:moduleSlot??"none"})}break;case"hardpoint":{if(module.category!=="hardpoint"){return problem("hardpointRequired","not a hardpoint weapon")}const restricted2=restrictionProblem(slot,symbol);if(restricted2)return restricted2;break}case"utility":if(module.category!=="utility"){return problem("utilityRequired","not a utility module")}return null;case"optional":{const isFuelTank=moduleSlot==="fuelTank";if(module.category!=="internal"&&!isFuelTank){return problem("optionalInternalRequired","not an optional-internal module")}if(moduleSlot&&!isFuelTank){return problem("coreModuleInOptionalSlot","a core module only fits its core slot")}const restricted2=restrictionProblem(slot,symbol);if(restricted2)return restricted2;break}}return module.class>slot.size?problem("oversized",`module size ${truncate(module.class)} exceeds slot size ${slot.size}`,{moduleClass:module.class,slotSize:slot.size}):null}function moduleFitError(shipSymbol,slot,module){return moduleFitProblem(shipSymbol,slot,module)?.message??null}var REBUY_FRACTION=.05;function exportLoadoutEvent(input,options){const fromSource=options.credits==="source";const source=fromSource?input.sourcePurchase:null;const totals=source!==null&&!input.sourceTotalsVoided&&sourceTotalsHold(input.modules,source)?source:null;const hullValue=fromSource?source?.hullValue??null:input.retailHullValue;const modulesValue=fromSource?totals?.modulesValue??null:computedModulesValue(input.modules,input.statsFor);const rebuy=fromSource?totals?.rebuy??null:hullValue===null||modulesValue===null?null:Math.trunc((hullValue+modulesValue)*REBUY_FRACTION);return{Ship:input.shipSymbol.toLowerCase(),...input.shipName===void 0?{}:{ShipName:input.shipName},...input.shipIdent===void 0?{}:{ShipIdent:input.shipIdent},...hullValue===null?{}:{HullValue:hullValue},...modulesValue===null?{}:{ModulesValue:modulesValue},UnladenMass:input.unladenMass,CargoCapacity:input.cargoCapacity,...input.maxJumpRange===null?{}:{MaxJumpRange:input.maxJumpRange},FuelCapacity:{Main:input.fuelCapacity.main,Reserve:input.fuelCapacity.reserve},...rebuy===null?{}:{Rebuy:rebuy},Modules:exportModules(input,options,fromSource)}}function exportModules(input,options,fromSource){const ordered=options.moduleOrder==="slots"?slotOrderedModules(input.modules,input.layout):[...input.modules.values()];return ordered.map(module=>{const on=module.On??(options.explicitPower?true:void 0);const priority=module.Priority??(options.explicitPower?0:void 0);const value=fromSource?sourceModuleValue(module,input.sourcePurchase):moduleValue(module,input.statsFor);return{Slot:module.Slot,Item:module.Item.toLowerCase(),...on===void 0?{}:{On:on},...priority===void 0?{}:{Priority:priority},...module.Health===void 0?{}:{Health:module.Health},...typeof value==="number"?{Value:value}:{},...module.Engineering===void 0?{}:{Engineering:cloneLoadoutModule(module).Engineering}}})}function slotOrderedModules(modules,layout){return orderBySlotLayout([...modules.values()],layout,module=>module.Slot)}function computedModulesValue(modules,statsFor){let sum=0;for(const module of modules.values()){const value=moduleValue(module,statsFor);if(value==="unknown")return null;if(value!=="free")sum+=value}return sum}function moduleValue(module,statsFor){const stats=statsFor(module);if(stats!==null)return stats.cost??"unknown";return isNonOutfittingSlot(module.Slot)||isBuiltInHullModule(module)?"free":"unknown"}var SOURCE_ITEM="ShipLoadout: sourcePurchase moduleValues[].item";function sourceModuleValue(module,source){const entry=source===null?null:getSourceModuleValue(source,module.Slot);if(entry===null)return"unknown";return normalizeKey(entry.item,SOURCE_ITEM)===normalizeKey(module.Item,FITTED_ITEM)?entry.value:"unknown"}function sourceTotalsHold(modules,source){for(const entry of source.moduleValues){const key=matchingKeyIn(modules,entry.slot);const fitted=key===null?void 0:modules.get(key);if(!fitted)return false;if(isCargoHatchSlot(entry.slot)&&entry.value===0)continue;if(normalizeKey(fitted.Item,FITTED_ITEM)!==normalizeKey(entry.item,SOURCE_ITEM)){return false}}return true}function captureLoadoutEvent(event){const modules=event.Modules;const shipName=event.ShipName;const shipIdent=event.ShipIdent;const hullValue=event.HullValue;const modulesValue=event.ModulesValue;const rebuy=event.Rebuy;const unladenMass=event.UnladenMass;const cargoCapacity=event.CargoCapacity;const fuelCapacity=event.FuelCapacity;return{Ship:event.Ship,Modules:Array.isArray(modules)?captureEach(modules,captureModule):modules,...shipName===void 0?{}:{ShipName:shipName},...shipIdent===void 0?{}:{ShipIdent:shipIdent},...hullValue===void 0?{}:{HullValue:hullValue},...modulesValue===void 0?{}:{ModulesValue:modulesValue},...rebuy===void 0?{}:{Rebuy:rebuy},...unladenMass===void 0?{}:{UnladenMass:unladenMass},...cargoCapacity===void 0?{}:{CargoCapacity:cargoCapacity},...fuelCapacity===void 0?{}:{FuelCapacity:{...fuelCapacity}}}}function captureEach(values,capture){const captured=[];const{length:length}=values;for(let index=0;index<length;index++)captured.push(capture(values[index]));return captured}function captureModule(module){if(module===null||typeof module!=="object")return module;const on=module.On;const priority=module.Priority;const health=module.Health;const value=module.Value;const engineering=module.Engineering;return{Slot:module.Slot,Item:module.Item,...on===void 0?{}:{On:on},...priority===void 0?{}:{Priority:priority},...health===void 0?{}:{Health:health},...value===void 0?{}:{Value:value},...engineering===void 0?{}:{Engineering:captureEngineering(engineering)}}}function captureEngineering(engineering){if(engineering===null||typeof engineering!=="object")return engineering;const experimental=engineering.ExperimentalEffect;const experimentalLocalised=engineering.ExperimentalEffect_Localised;const modifiers=engineering.Modifiers;return{BlueprintName:engineering.BlueprintName,Level:engineering.Level,Quality:engineering.Quality,...experimental===void 0?{}:{ExperimentalEffect:experimental},...experimentalLocalised===void 0?{}:{ExperimentalEffect_Localised:experimentalLocalised},...modifiers===void 0?{}:{Modifiers:Array.isArray(modifiers)?captureEach(modifiers,modifier=>modifier!==null&&typeof modifier==="object"?{...modifier}:modifier):modifiers}}}function hullLayout(shipSymbol){const slots=getShipSlots(shipSymbol);return slots?enumerateSlots(slots):[]}function fixedMountRejects(shipSymbol,layout,slot,stats){const mount=layout.find(candidate=>candidate.key.toLowerCase()===slot.toLowerCase());return mount!==void 0&&moduleFitProblem(shipSymbol,mount,stats)!==null}function normalizeLoadoutEvent(rawEvent){const event=captureLoadoutEvent(rawEvent);requireString(event.Ship,"ShipLoadout.fromLoadout: event.Ship");if(!Array.isArray(event.Modules)){throw new TypeError(`ShipLoadout.fromLoadout: event.Modules must be an array, received ${describeValue(event.Modules)}`)}const modules=/* @__PURE__ */new Map;const slots=/* @__PURE__ */new Set;for(const module of event.Modules){if(module===null||typeof module!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: event.Modules[] must hold module objects, received ${describeValue(module)}`)}requireString(module.Slot,"ShipLoadout.fromLoadout: module.Slot");requireString(module.Item,"ShipLoadout.fromLoadout: module.Item");if(module.Engineering!==void 0){if(module.Engineering===null||typeof module.Engineering!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: module.Engineering must be an object, received ${describeValue(module.Engineering)}`)}requireStringIfPresent(module.Engineering.BlueprintName,"ShipLoadout.fromLoadout: module.Engineering.BlueprintName");requireStringIfPresent(module.Engineering.ExperimentalEffect,"ShipLoadout.fromLoadout: module.Engineering.ExperimentalEffect");if(module.Engineering.Modifiers!==void 0&&!Array.isArray(module.Engineering.Modifiers)){throw new TypeError(`ShipLoadout.fromLoadout: module.Engineering.Modifiers must be an array, received ${describeValue(module.Engineering.Modifiers)}`)}for(const[index,modifier]of(module.Engineering.Modifiers??[]).entries()){if(modifier===null||typeof modifier!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: module.Engineering.Modifiers[${index}] must be an object, received ${describeValue(modifier)}`)}requireString(modifier.Label,`ShipLoadout.fromLoadout: module.Engineering.Modifiers[${index}].Label`)}}const normalizedSlot=module.Slot.toLowerCase();if(slots.has(normalizedSlot)){throw new TypeError(`ShipLoadout.fromLoadout: duplicate slot "${truncate(module.Slot)}"`)}slots.add(normalizedSlot);modules.set(module.Slot,cloneLoadoutModule(module))}const top={};if(event.ShipName!==void 0)top.ShipName=event.ShipName;if(event.ShipIdent!==void 0)top.ShipIdent=event.ShipIdent;if(event.HullValue!==void 0)top.HullValue=event.HullValue;if(event.ModulesValue!==void 0)top.ModulesValue=event.ModulesValue;if(event.Rebuy!==void 0)top.Rebuy=event.Rebuy;if(event.UnladenMass!==void 0)top.UnladenMass=event.UnladenMass;if(event.CargoCapacity!==void 0)top.CargoCapacity=event.CargoCapacity;if(event.FuelCapacity!==void 0)top.FuelCapacity={...event.FuelCapacity};let invalidatesAggregates=false;const outcomes=[];const defaults=getDefaultLoadout(event.Ship)?.modules??[];let layout;for(const[slot,module]of modules){if(isNonOutfittingSlot(slot)||isBuiltInHullModule(module))continue;const stats=builtInModuleBySymbol(module.Item,"ShipLoadout.fromLoadout: module.Item");const slotKind=parseSlotName(slot)?.kind;const fallback=slotKind==="core"||slotKind==="armour"||slotKind==="cargoHatch"?defaults.find(candidate=>candidate.slot.toLowerCase()===slot.toLowerCase()):void 0;const rejected=fallback!==void 0&&(stats===null||slotKind==="cargoHatch"||fixedMountRejects(event.Ship,layout??=hullLayout(event.Ship),slot,stats));if(stats!==null&&!rejected)continue;if(fallback){modules.set(slot,{Slot:slot,Item:fallback.symbol,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health}});outcomes.push({action:"defaulted",slot:slot,sourceSymbol:module.Item,replacementSymbol:fallback.symbol})}else{modules.delete(slot);outcomes.push({action:"emptied",slot:slot,sourceSymbol:module.Item})}invalidatesAggregates=true}for(const fallback of defaults){const slotKind=parseSlotName(fallback.slot)?.kind;if(slotKind!=="core"&&slotKind!=="armour"&&slotKind!=="cargoHatch"||matchingKeyIn(modules,fallback.slot)!==null){continue}const slot=ownKeyIn(modules,fallback.slot);modules.set(slot,{Slot:slot,Item:fallback.symbol});outcomes.push({action:"defaulted",slot:slot,sourceSymbol:null,replacementSymbol:fallback.symbol});if(slotKind==="core")invalidatesAggregates=true}if(invalidatesAggregates){delete top.ModulesValue;delete top.Rebuy;delete top.UnladenMass;delete top.CargoCapacity;delete top.FuelCapacity}const moduleStats=/* @__PURE__ */new Map;const primitiveModifiers=/* @__PURE__ */new Map;for(const module of modules.values()){const engineering=module.Engineering;const variant=identifyPreEngineeredVariant(module);const catalogueVariantStats=variant?getPreEngineeredStats(variant):null;let variantStats=catalogueVariantStats;const retainsBakedExperimental=variant?.experimentalEffectSymbol!==void 0&&typeof engineering?.ExperimentalEffect==="string"&&variant.experimentalEffectSymbol.trim().toLowerCase()===engineering.ExperimentalEffect.trim().toLowerCase();if(variant&&catalogueVariantStats&&!catalogueVariantStats.engineeringLocked&&!retainsBakedExperimental){const{experimentalEffectSymbol:originalExperimental,...withoutExperimental}=variant;const currentExperimental=engineering?.ExperimentalEffect;const currentVariant=typeof currentExperimental==="string"?{...withoutExperimental,experimentalEffectSymbol:currentExperimental}:withoutExperimental;variantStats=getPreEngineeredStats(withoutExperimental);primitiveModifiers.set(module.Slot,[...engineering?.Modifiers??[],...getPreEngineeredModifiers(currentVariant)])}if(variantStats)moduleStats.set(module.Slot,cloneModuleStats(variantStats));const guardianFinal=typeof engineering?.BlueprintName==="string"&&isFinalGuardianWeaponEngineering(module.Item,engineering.BlueprintName);if(variantStats?.engineeringLocked||typeof engineering?.BlueprintName!=="string"||!guardianFinal){continue}const normalizedBlueprint=normalizeKey(engineering.BlueprintName,"ShipLoadout.fromLoadout: module.Engineering.BlueprintName");const normalizedExperimental=normalizeKey(engineering.ExperimentalEffect,"ShipLoadout.fromLoadout: module.Engineering.ExperimentalEffect");const variants=getPreEngineeredVariants(module.Item);const exact=variants.find(candidate=>candidate.engineeringLocked===true&&candidate.blueprintSymbol.toLowerCase()===normalizedBlueprint&&candidate.grade===engineering.Level&&candidate.experimentalEffectSymbol?.toLowerCase()===normalizedExperimental);const guardianBase=variants.find(candidate=>candidate.engineeringLocked===true&&candidate.blueprintSymbol.toLowerCase()===normalizedBlueprint&&candidate.grade===engineering.Level&&candidate.experimentalEffectSymbol===void 0);const stats=exact?getPreEngineeredStats(exact):guardianBase&&engineering.ExperimentalEffect!==void 0?getPreEngineeredStats({...guardianBase,experimentalEffectSymbol:engineering.ExperimentalEffect}):builtInModuleBySymbol(module.Item,"ShipLoadout.fromLoadout: module.Item");if(stats){moduleStats.set(module.Slot,cloneModuleStats({...stats,engineeringLocked:true}))}}return{shipSymbol:event.Ship,modules:modules,moduleStats:moduleStats,primitiveModifiers:primitiveModifiers,top:top,sourcePurchase:sourcePurchaseFromLoadout(event),outcomes:deepFreeze(outcomes)}}var SLOT_KEY="ShipLoadout: slotKey";var FITTED_SLOT="ShipLoadout: fitted module Slot";var LoadoutEditError=class extends TypeError{code;constraint;params;constructor(message,code,params,constraint){super(message);this.code=code;this.params=deepFreeze(structuredClone(params));if(constraint!==void 0)this.constraint=constraint}};var experimentalEffectUnsupported=(code,params)=>deepFreeze({kind:"unsupported",code:code,params:params});var engineeringNormalizationUnsupported=(code,params)=>deepFreeze({kind:"unsupported",code:code,params:params});var AGGREGATE_STATS=["mass","cargoCapacity","fuelCapacity"];var ShipLoadout=class _ShipLoadout{#ship;#shipSymbol;#modules;#moduleStats;#primitiveModifiers;#top;#sourcePurchase;#importOutcomes;#slotCache=/* @__PURE__ */new Map;#layoutCache;constructor(ship,shipSymbol,modules,top,sourcePurchase=null,moduleStats=/* @__PURE__ */new Map,primitiveModifiers=/* @__PURE__ */new Map,importOutcomes=deepFreeze([])){this.#ship=ship;this.#shipSymbol=shipSymbol;this.#modules=modules;this.#top=top;this.#sourcePurchase=sourcePurchase;this.#moduleStats=moduleStats;this.#primitiveModifiers=primitiveModifiers;this.#importOutcomes=importOutcomes;publishLoadoutInternals(this,{ship:ship,modules:()=>[...this.#modules.values()],effectiveModules:()=>this.#modulesForEffectiveStats(),effectiveModule:module=>this.#moduleForEffectiveStats(module),statsFor:module=>this.#statsFor(module),layout:()=>this.#layout(),resolveDrive:()=>this.#resolveDrive(),frameShiftDriveModule:()=>this.#frameShiftDrive()?.module,calculationModules:()=>this.#calculationModules(),statedMainFuel:()=>this.#top.FuelCapacity?.Main})}static fromSlef(input,index=0){const entries=parseSlef(input);const entry=entries[index];if(!entry){throw new TypeError(`ShipLoadout.fromSlef: no entry at index ${truncate(index)} (have ${entries.length})`)}const imported=normalizeLoadoutEvent(entry.data);const ship=getShipBySymbol(imported.shipSymbol);if(!ship){throw new TypeError(`ShipLoadout.fromSlef: unknown hull "${truncate(imported.shipSymbol)}"`)}return _ShipLoadout.#fromImported(imported,ship)}static fromLoadout(event){if(event===null||typeof event!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: event must be a Loadout event, received ${describeValue(event)}`)}const imported=normalizeLoadoutEvent(event);const ship=getShipBySymbol(imported.shipSymbol);if(!ship){throw new TypeError(`ShipLoadout.fromLoadout: unknown hull "${truncate(imported.shipSymbol)}"`)}return _ShipLoadout.#fromImported(imported,ship)}static#fromImported(imported,ship){return new _ShipLoadout(ship,imported.shipSymbol,imported.modules,imported.top,imported.sourcePurchase,imported.moduleStats,imported.primitiveModifiers,imported.outcomes)}static empty(shipSymbol){const requested=requireString(shipSymbol,"ShipLoadout.empty: shipSymbol");const ship=getShipBySymbol(requested);if(!ship){throw new TypeError(`ShipLoadout.empty: no slot layout for hull "${truncate(shipSymbol)}"`)}const fitted=(getDefaultLoadout(ship.symbol)?.modules??[]).filter(module=>{const parsed=parseSlotName(module.slot);return parsed!==null&&fixedSlotReason(parsed)!==null});return new _ShipLoadout(ship,ship.symbol,new Map(fitted.map(module=>[module.slot,{Slot:module.slot,Item:module.symbol}])),{})}static default(shipSymbol){const requested=requireString(shipSymbol,"ShipLoadout.default: shipSymbol");const ship=getShipBySymbol(requested);if(!ship){throw new TypeError(`ShipLoadout.default: no default loadout for hull "${truncate(shipSymbol)}"`)}const loadout=getDefaultLoadout(ship.symbol);return new _ShipLoadout(ship,loadout.symbol,new Map(loadout.modules.map(module=>[module.slot,{Slot:module.slot,Item:module.symbol}])),{})}get shipSymbol(){return this.#shipSymbol}get shipName(){return this.#top.ShipName??null}get shipIdent(){return this.#top.ShipIdent??null}get unladenMass(){return this.#top.UnladenMass??this.#computedUnladenMass()}#computedUnladenMass(){return calculateUnladenMass(this.#ship.hullMass,this.#calculationModules())}get fuelCapacity(){const cap=this.#top.FuelCapacity;if(cap?.Main!==void 0&&cap.Reserve!==void 0){return Object.freeze({main:cap.Main,reserve:cap.Reserve})}const computed=this.#computedFuelCapacity();return Object.freeze({main:cap?.Main??computed.main,reserve:cap?.Reserve??computed.reserve})}get cargoCapacity(){return this.#top.CargoCapacity??this.#computedCargoCapacity()}#computedCargoCapacity(){return calculateCargoCapacity(this.#calculationModules())}#computedFuelCapacity(){return calculateFuelCapacity(this.#ship.reserveFuelCapacity,this.#calculationModules())}get hullValue(){return this.#top.HullValue??null}get modulesValue(){return this.#top.ModulesValue??null}get rebuy(){return this.#top.Rebuy??null}get sourcePurchase(){return this.#sourcePurchase}get importOutcomes(){return this.#importOutcomes}validation(){const slots=this.#layout();const byKey=new Map(slots.map(slot=>[normalizeKey(slot.key,CATALOGUE_KEY),slot]));const modules=[...this.#modules.values()].map(module=>{const stats=this.#statsFor(module);const slot=byKey.get(normalizeKey(module.Slot,FITTED_SLOT));const builtIn=stats===null&&isNonOutfittingSlot(module.Slot)||isBuiltInHullModule(module);const fitProblem=stats&&slot&&!builtIn?moduleFitProblem(this.#shipSymbol,slot,stats):null;return{slot:module.Slot,symbol:module.Item,requiresKnownSlot:!builtIn,fitError:fitProblem?.message??null,...fitProblem===null?{}:{fitConstraint:fitProblem.constraint},...fitProblem?.params===void 0?{}:{fitParams:fitProblem.params},...stats?.exclusionGroup===void 0?{}:{exclusionGroup:stats.exclusionGroup},...stats?.limitGroup===void 0?{}:{limitGroup:stats.limitGroup},...stats?.limitIncrease===void 0?{}:{limitIncrease:stats.limitIncrease}}});return validateLoadout({shipSymbol:this.#shipSymbol,slots:slots,modules:modules})}slots(kind){const cached=this.#slotCache.get(kind);if(cached!==void 0)return cached;const slots=kind===void 0?this.#layout():this.#layout().filter(slot=>slot.kind===kind);const currentLimits=this.#moduleLimits();const value=deepFreeze(slots.map(slot=>{const stats=this.#moduleStatsAt(slot.key);const fixedReason=fixedSlotReason(slot);const immovableReason=fixedReason!==null?fixedReason:stats?.limitIncrease!==void 0&&this.#moduleLimitRegression(slot.key,null,currentLimits,stats)!==null?"moduleLimit":null;return{...slot,name:loadoutSlotName(slot),module:this.fittedModuleAt(slot.key),removable:immovableReason===null,...immovableReason===null?{}:{immovableReason:immovableReason}}}));this.#slotCache.set(kind,value);return value}fittedModuleAt(slotKey){const module=this.#fittedModuleFor(slotKey);if(!module)return null;const raw=cloneLoadoutModule(module);const stats=this.#statsFor(module);const effective=effectiveModule(this.#moduleForEffectiveStats(module),stats);return deepFreeze({slot:module.Slot,symbol:raw.Item,on:raw.On,priority:raw.Priority,health:raw.Health,value:raw.Value,engineering:raw.Engineering,raw:raw,stats:stats===null?null:cloneModuleStats(stats),effectiveStats:effective===null?null:cloneModuleStats(effective),ammunition:ammunitionCapacity(effective),preEngineeredVariant:identifyPreEngineeredVariant(raw)})}fittedModules(){return deepFreeze([...this.#modules.keys()].flatMap(key=>{const fitted=this.fittedModuleAt(key);return fitted===null?[]:[fitted]}))}availableBlueprints(slotKey){const module=this.#fittedModuleFor(slotKey);return deepFreeze(module?availableBlueprintsFor(module.Item,this.#statsFor(module)):[])}availableExperimentalEffects(slotKey){const module=this.#fittedModuleFor(slotKey);return deepFreeze(module?availableExperimentalsFor(module.Item,this.#statsFor(module)):[])}modulesForSlot(slotKey){const slot=this.#requireSlot(slotKey);const occupied=new Set([...this.#modules.values()].flatMap(fitted=>{if(normalizeKey(fitted.Slot,FITTED_SLOT)===normalizeKey(slot.key,CATALOGUE_KEY))return[];const group=this.#statsFor(fitted)?.exclusionGroup;return group===void 0?[]:[group]}));const currentLimits=this.#moduleLimits();const currentStats=this.#moduleStatsAt(slot.key);return ALL_MODULES.filter(module=>moduleFitError(this.#shipSymbol,slot,module)===null&&(module.exclusionGroup===void 0||!occupied.has(module.exclusionGroup))&&this.#moduleLimitRegression(slot.key,module,currentLimits,currentStats)===null)}repairFixedMount(slotKey){const requested=requireString(slotKey,SLOT_KEY);const wanted=normalizeKey(requested,SLOT_KEY);const slot=this.#requireSlot(requested);const fittedKey=this.#fittedKey(requested);const resultSlot=fittedKey??requested;const canonicalKey=slot.key;if(fixedSlotReason(slot)===null){return deepFreeze({status:"refused",slot:resultSlot,reason:"notFixedMount"})}const current=this.#fittedModuleFor(requested);const currentStats=current?this.#statsFor(current):null;const valid=current!==void 0&&currentStats!==null&&(slot.kind==="cargoHatch"?isBuiltInHullModule(current):moduleFitProblem(this.#shipSymbol,slot,currentStats)===null);if(valid){return deepFreeze({status:"unchanged",slot:current.Slot,symbol:current.Item})}const defaultModule=getDefaultLoadout(this.#shipSymbol)?.modules.find(module=>normalizeKey(module.slot,CATALOGUE_KEY)===wanted);if(!defaultModule){return deepFreeze({status:"defaultUnavailable",slot:resultSlot})}const ownKey=ownKeyIn(this.#modules,canonicalKey);const replacement={Slot:ownKey,Item:defaultModule.symbol,...current?.On===void 0?{}:{On:current.On},...current?.Priority===void 0?{}:{Priority:current.Priority},...current?.Health===void 0?{}:{Health:current.Health}};const replacementStats=builtInModuleBySymbol(defaultModule.symbol,"ShipLoadout.repairFixedMount")??(isBuiltInHullModule(replacement)?builtInModuleBySymbol("ModularCargoBayDoor","ShipLoadout.repairFixedMount"):null);if(!replacementStats){return deepFreeze({status:"defaultUnavailable",slot:resultSlot,symbol:defaultModule.symbol})}this.#replaceModule(ownKey,replacement,replacementStats);return deepFreeze({status:"repaired",slot:ownKey,symbol:defaultModule.symbol})}setModule(slotKey,module){const slot=this.#requireSlot(slotKey);if(module===null||module===void 0){throw new TypeError(`ShipLoadout.setModule: no module supplied for "${truncate(slotKey)}" (did the module lookup return undefined?)`)}if(typeof module.symbol!=="string"){throw new TypeError(`ShipLoadout.setModule: module for "${truncate(slotKey)}" must be an outfitting module, received ${describeValue(module)}`)}module=cloneModuleStats(module);const catalogued=builtInModuleBySymbol(module.symbol,FITTED_ITEM);if(catalogued===null){throw new TypeError(`ShipLoadout.setModule: no module is catalogued as "${truncate(module.symbol)}"`)}for(const field of AGGREGATE_STATS){const stated=module[field];if(stated===void 0){if(catalogued[field]===void 0)continue;throw new TypeError(`ShipLoadout.setModule: the supplied record for "${truncate(module.symbol)}" has no ${field}`)}if(typeof stated!=="number"||!Number.isFinite(stated)){throw new TypeError(`ShipLoadout.setModule: the supplied record for "${truncate(module.symbol)}" states a ${field} of ${describeValue(stated)}`)}}const problem2=moduleFitProblem(this.#shipSymbol,slot,module);if(problem2){if(problem2.constraint==="immutableSlot"){throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${problem2.message}`,"immutableSlot",{slot:slot.key})}throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${problem2.message}`,"incompatibleModule",{...problem2.params,slot:slot.key,symbol:module.symbol,constraint:problem2.constraint},problem2.constraint)}if(module.exclusionGroup!==void 0){const conflict=[...this.#modules.values()].find(fitted=>normalizeKey(fitted.Slot,FITTED_SLOT)!==normalizeKey(slot.key,CATALOGUE_KEY)&&this.#statsFor(fitted)?.exclusionGroup===module.exclusionGroup);if(conflict){throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${module.exclusionGroup} is limited to one per ship (already fitted in ${truncate(conflict.Slot)})`,"duplicateExclusiveModule",{exclusionGroup:module.exclusionGroup,slot:slot.key,symbol:module.symbol,previousSlot:conflict.Slot,previousSymbol:conflict.Item})}}const limitProblem=this.#moduleLimitRegression(slot.key,module);if(limitProblem!==null){throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${limitProblem.group} would have ${limitProblem.count} modules but the ship allows ${limitProblem.limit}`,"moduleLimitExceeded",{group:limitProblem.group,count:limitProblem.count,limit:limitProblem.limit,slot:slot.key,symbol:module.symbol})}const key=this.#fittedKey(slotKey)??slot.key;this.#replaceModule(key,{Slot:key,Item:module.symbol},module);return this}removeModule(slotKey){const wanted=normalizeKey(slotKey,SLOT_KEY);if(wanted==="cargohatch"){throw new LoadoutEditError("ShipLoadout.removeModule: the cargoHatch slot cannot be changed","immutableSlot",{slot:"CargoHatch"})}const parsed=parseSlotName(slotKey);const slot=this.#layout().find(candidate=>normalizeKey(candidate.key,CATALOGUE_KEY)===wanted);if(parsed!==null&&fixedSlotReason(parsed)==="requiredSlot"){const fittedKey=this.#fittedKey(slotKey);const key2=slot?.key??fittedKey??slotKey;throw new LoadoutEditError(`ShipLoadout.removeModule: the ${truncate(key2)} slot is required and cannot be emptied`,"requiredSlot",{slot:key2})}const key=this.#fittedKey(slotKey);if(key!==null){const limitProblem=this.#moduleLimitRegression(key,null);if(limitProblem!==null){const fitted=this.#modules.get(key);throw new LoadoutEditError(`ShipLoadout.removeModule: ${truncate(slotKey)}: ${limitProblem.group} would have ${limitProblem.count} modules but the ship allows ${limitProblem.limit}`,"moduleLimitExceeded",{group:limitProblem.group,count:limitProblem.count,limit:limitProblem.limit,slot:key,...fitted===void 0?{}:{symbol:fitted.Item}})}this.#replaceModule(key,null)}return this}applyBlueprint(slotKey,blueprintSymbol,options){requireString(blueprintSymbol,"ShipLoadout.applyBlueprint: blueprintSymbol");if(options===null||typeof options!=="object"){throw new TypeError(`ShipLoadout.applyBlueprint: options must be an object with a grade, received ${describeValue(options)}`)}const wantedGrade=options.grade;const wantedQuality=options.quality;const wantedExperimental=options.experimentalEffectSymbol??void 0;requireStringIfPresent(wantedExperimental,"ShipLoadout.applyBlueprint: options.experimentalEffectSymbol");const module=this.#fittedModuleFor(slotKey);if(!module){throw new RangeError(`ShipLoadout.applyBlueprint: slot "${truncate(slotKey)}" is empty`)}const fittedStats=this.#statsFor(module);if(!fittedStats){throw new TypeError(`ShipLoadout.applyBlueprint: no stats for module "${truncate(module.Item)}"`)}const recipe=resolveBlueprintForModule(module.Item,blueprintSymbol);const named=recipe===blueprintSymbol?`"${truncate(blueprintSymbol)}"`:`"${truncate(blueprintSymbol)}" (${truncate(recipe)} on this module)`;const written=blueprintSymbol.trim().toLowerCase();const resolved=recipe.trim().toLowerCase();if(getPreEngineeredVariants(module.Item).some(variant=>variant.acquisition==="eventReward"&&(variant.blueprintSymbol.toLowerCase()===written||variant.blueprintSymbol.toLowerCase()===resolved))){throw new TypeError(`ShipLoadout.applyBlueprint: ${named} is a fixed pre-engineered identity, not a craftable blueprint; use setPreEngineeredVariant to fit its fixed article`)}if(!Number.isInteger(wantedGrade)||wantedGrade<1||wantedGrade>5){throw new RangeError(`ShipLoadout.applyBlueprint: no blueprint ${named} grade ${truncate(wantedGrade)}`)}const grade=getBlueprintGrade(recipe,wantedGrade);if(!grade){throw new RangeError(`ShipLoadout.applyBlueprint: no blueprint ${named} grade ${truncate(wantedGrade)}`)}let experimental;if(wantedExperimental!==void 0){experimental=getExperimentalEffect(wantedExperimental);if(!experimental){throw new RangeError(`ShipLoadout.applyBlueprint: unknown experimental effect "${truncate(wantedExperimental)}"`)}}const quality=wantedQuality??1;if(!Number.isFinite(quality)||quality<0||quality>1){throw new RangeError(`ShipLoadout.applyBlueprint: quality must be a finite number in [0, 1]`)}if(fittedStats.engineeringLocked){throw new TypeError(`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is a final pre-engineered article and accepts no further engineering`)}if(!blueprintAvailableFor(module.Item,blueprintSymbol)){const offered=[...blueprintRoutesFor(module.Item)].map(([blueprint,route])=>`${blueprint} (${route})`);throw new TypeError(offered.length>0?`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is not offered blueprint ${named}; available candidates are ${offered.join(", ")}`:`ShipLoadout.applyBlueprint: no registry lists an engineering menu for module "${truncate(module.Item)}"`)}if(wantedExperimental!==void 0&&!experimentalAvailableFor(module.Item,wantedExperimental)){const offered=getExperimentalsForModule(module.Item);throw new TypeError(`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is not offered experimental effect "${truncate(wantedExperimental)}"; it takes ${offered.length>0?offered.join(", "):"no experimental effect"}`)}const stats=this.#engineeringBaseStats(module)??fittedStats;const base=baseStats(stats);const canonical=primitiveEngineeringInputsFor(stats,grade,experimental);const missing=missingBaseLabels(stats,base,canonical.grade.features,canonical.experimental?.modifiers);if(missing.length>0){throw new TypeError(`ShipLoadout.applyBlueprint: cannot compute ${named} for module "${truncate(module.Item)}"; missing base stats for ${missing.join(", ")}`)}const damageDistribution=experimental?.damageDistribution??grade.damageDistribution;const primitiveModifiers=computeModifiers(base,canonical.grade,quality,canonical.experimental);const modifiers=journalModifiersFor(stats,primitiveModifiers);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;const damageModifier={Label:label,Value:value*scaleForLabel(label),OriginalValue:(stats.damageDistribution?.[type]??0)*scaleForLabel(label)};modifiers.push(damageModifier);primitiveModifiers.push(damageModifier)}}const engineering={BlueprintName:blueprintSymbol,Level:wantedGrade,Quality:quality,...wantedExperimental!==void 0?{ExperimentalEffect:wantedExperimental}:{},Modifiers:modifiers};this.#replaceModule(module.Slot,{...module,Engineering:engineering},stats,primitiveModifiers);return this}setExperimentalEffect(slotKey,experimental){if(experimental!==null){requireString(experimental,"ShipLoadout.setExperimentalEffect: experimental")}const wanted=experimental;const module=this.#fittedModuleFor(slotKey);if(!module)return experimentalEffectUnsupported("emptySlot",{slot:slotKey});const stats=this.#statsFor(module);if(!stats){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const engineering=module.Engineering;if(!engineering){return experimentalEffectUnsupported("notEngineered",{slot:module.Slot,symbol:module.Item})}if(stats.engineeringLocked){return experimentalEffectUnsupported("finalArticle",{slot:module.Slot,symbol:module.Item})}const previous=engineering.ExperimentalEffect??null;if(previous===null&&wanted===null||previous!==null&&wanted!==null&&previous.trim().toLowerCase()===wanted.trim().toLowerCase()){return deepFreeze({kind:"unchanged",experimentalEffectSymbol:previous})}const variant=identifyPreEngineeredVariant(module);let effect;if(wanted!==null){effect=getExperimentalEffect(wanted);if(!effect){return experimentalEffectUnsupported("unknownExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:wanted})}const restoresBakedEffect=variant?.experimentalEffectSymbol!==void 0&&variant.experimentalEffectSymbol.trim().toLowerCase()===wanted.trim().toLowerCase();if(!experimentalAvailableFor(module.Item,wanted)&&!restoresBakedEffect){return experimentalEffectUnsupported("unsupportedExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:wanted})}}if(variant&&variant.acquisition!=="mercenary"){const stock=this.#engineeringBaseStats(module);if(!stock){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const missing=missingBaseLabels(stock,baseStats(stock),[],effect?.modifiers);if(missing.length>0){return experimentalEffectUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}const{experimentalEffectSymbol:originalEffect,...withoutEffect}=variant;const adjusted=wanted===null?withoutEffect:{...withoutEffect,experimentalEffectSymbol:wanted};const resolved=getPreEngineeredStats(withoutEffect);if(!resolved){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const replacement={BlueprintName:engineering.BlueprintName,Level:engineering.Level,Quality:engineering.Quality,...wanted===null?{}:{ExperimentalEffect:wanted},Modifiers:getPreEngineeredJournalModifiers(adjusted)};this.#replaceModule(module.Slot,{...module,Engineering:replacement},cloneModuleStats(resolved),getPreEngineeredModifiers(adjusted))}else{const blueprint=engineering.BlueprintName;const grade=engineering.Level;const quality=engineering.Quality;if(typeof blueprint!=="string"||!Number.isInteger(grade)||grade<1||grade>5){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const currentEffect=previous===null?void 0:getExperimentalEffect(previous)??null;if(ordinaryEngineeringProof(module.Item,engineering,currentEffect)==="unproven"){return experimentalEffectUnsupported("unidentifiedPreEngineeredVariant",{slot:module.Slot,symbol:module.Item,blueprint:blueprint})}const recipe=resolveBlueprintForModule(module.Item,blueprint);const blueprintGrade=getBlueprintGrade(recipe,grade);if(!blueprintGrade||!blueprintAvailableFor(module.Item,blueprint)||!Number.isFinite(quality)||quality<0||quality>1){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item,blueprint:blueprint,grade:grade})}const base=this.#engineeringBaseStats(module)??stats;const canonical=primitiveEngineeringInputsFor(base,blueprintGrade,effect);const missing=missingBaseLabels(base,baseStats(base),canonical.grade.features,canonical.experimental?.modifiers);if(missing.length>0){return experimentalEffectUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}this.applyBlueprint(module.Slot,blueprint,{grade:grade,quality:quality,...wanted===null?{}:{experimentalEffectSymbol:wanted}})}return deepFreeze({kind:"updated",previousExperimentalEffectSymbol:previous,experimentalEffectSymbol:wanted})}completeEngineeringGrade(slotKey){const module=this.#fittedModuleFor(slotKey);if(!module)return engineeringNormalizationUnsupported("emptySlot",{slot:slotKey});const stats=this.#statsFor(module);if(!stats){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const engineering=module.Engineering;if(!engineering){return engineeringNormalizationUnsupported("notEngineered",{slot:module.Slot,symbol:module.Item})}if(stats.engineeringLocked){return engineeringNormalizationUnsupported("finalArticle",{slot:module.Slot,symbol:module.Item})}if(engineering.Quality===1&&engineering.Modifiers!==void 0){return deepFreeze({kind:"unchanged"})}const previousQuality=engineering.Quality;if(!Number.isFinite(previousQuality)||previousQuality<0||previousQuality>1){return engineeringNormalizationUnsupported("invalidQuality",{slot:module.Slot,symbol:module.Item})}const experimental=engineering.ExperimentalEffect??null;const effect=experimental===null?void 0:getExperimentalEffect(experimental)??void 0;if(experimental!==null&&!effect){return engineeringNormalizationUnsupported("unknownExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:experimental})}const blueprint=engineering.BlueprintName;const grade=engineering.Level;if(typeof blueprint!=="string"||!Number.isInteger(grade)||grade<1||grade>5){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const variant=identifyPreEngineeredVariant(module);const restoresBakedEffect=variant?.experimentalEffectSymbol!==void 0&&variant.experimentalEffectSymbol.trim().toLowerCase()===experimental?.trim().toLowerCase();if(experimental!==null&&!experimentalAvailableFor(module.Item,experimental)&&!restoresBakedEffect){return engineeringNormalizationUnsupported("unsupportedExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:experimental})}if(variant&&variant.acquisition!=="mercenary"){const stock=this.#engineeringBaseStats(module);if(!stock){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const missing=missingBaseLabels(stock,baseStats(stock),[],effect?.modifiers);if(missing.length>0){return engineeringNormalizationUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}const{experimentalEffectSymbol:originalEffect,...withoutEffect}=variant;const adjusted=experimental===null?withoutEffect:{...withoutEffect,experimentalEffectSymbol:experimental};const resolved=getPreEngineeredStats(withoutEffect);if(!resolved){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const replacement={BlueprintName:engineering.BlueprintName,Level:engineering.Level,Quality:1,...experimental===null?{}:{ExperimentalEffect:experimental},Modifiers:getPreEngineeredJournalModifiers(adjusted)};this.#replaceModule(module.Slot,{...module,Engineering:replacement},cloneModuleStats(resolved),getPreEngineeredModifiers(adjusted))}else{const proof=ordinaryEngineeringProof(module.Item,engineering,effect);if(proof==="unproven"||proof==="proven"&&!blueprintAvailableFor(module.Item,blueprint)){return engineeringNormalizationUnsupported("unidentifiedPreEngineeredVariant",{slot:module.Slot,symbol:module.Item,blueprint:blueprint})}const recipe=resolveBlueprintForModule(module.Item,blueprint);const blueprintGrade=getBlueprintGrade(recipe,grade);if(!blueprintGrade||!blueprintAvailableFor(module.Item,blueprint)){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item,blueprint:blueprint,grade:grade})}const base=this.#engineeringBaseStats(module)??stats;const canonical=primitiveEngineeringInputsFor(base,blueprintGrade,effect);const missing=missingBaseLabels(base,baseStats(base),canonical.grade.features,canonical.experimental?.modifiers);if(missing.length>0){return engineeringNormalizationUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}this.applyBlueprint(module.Slot,blueprint,{grade:grade,quality:1,...experimental===null?{}:{experimentalEffectSymbol:experimental}})}return deepFreeze({kind:"normalized",previousQuality:previousQuality,quality:1})}setPreEngineeredVariant(slotKey,variant){if(variant===null||typeof variant!=="object"){throw new TypeError(`ShipLoadout.setPreEngineeredVariant: variant must be a pre-engineered variant, received ${describeValue(variant)}`)}requireString(variant.symbol,"ShipLoadout.setPreEngineeredVariant: variant.symbol");requireString(variant.blueprintSymbol,"ShipLoadout.setPreEngineeredVariant: variant.blueprintSymbol");requireString(variant.acquisition,"ShipLoadout.setPreEngineeredVariant: variant.acquisition");requireStringIfPresent(variant.experimentalEffectSymbol,"ShipLoadout.setPreEngineeredVariant: variant.experimentalEffectSymbol");const known=getPreEngineeredVariants(variant.symbol).find(candidate=>candidate.blueprintSymbol.toLowerCase()===variant.blueprintSymbol.toLowerCase()&&candidate.grade===variant.grade&&(candidate.experimentalEffectSymbol?.toLowerCase()??"")===(variant.experimentalEffectSymbol?.toLowerCase()??"")&&candidate.acquisition===variant.acquisition);if(!known){throw new RangeError(`ShipLoadout.setPreEngineeredVariant: no catalogued variant "${truncate(variant.blueprintSymbol)}" for module "${truncate(variant.symbol)}"`)}const stats=getPreEngineeredStats(known);const unresolved=unresolvedModifiers(known);if(unresolved.length>0){throw new TypeError(`ShipLoadout.setPreEngineeredVariant: cannot resolve "${truncate(variant.blueprintSymbol)}" for module "${truncate(variant.symbol)}"; missing base stats for ${unresolved.join(", ")}`)}this.setModule(slotKey,stats);const module=this.#fittedModuleFor(slotKey);const engineering={BlueprintName:known.blueprintSymbol,Level:known.grade,Quality:1,...known.experimentalEffectSymbol===void 0?{}:{ExperimentalEffect:known.experimentalEffectSymbol},...known.modifiers?.length?{Modifiers:getPreEngineeredJournalModifiers(known)}:{}};this.#replaceModule(module.Slot,{...module,Engineering:engineering},cloneModuleStats(stats),getPreEngineeredModifiers(known));return this}clearEngineering(slotKey){const module=this.#fittedModuleFor(slotKey);if(module&&this.#statsFor(module)?.engineeringLocked){throw new TypeError(`ShipLoadout.clearEngineering: module "${truncate(module.Item)}" is a final pre-engineered article and its engineering cannot be removed`)}if(module?.Engineering){const baseStats2=this.#engineeringBaseStats(module);const bare={Slot:module.Slot,Item:module.Item};if(module.On!==void 0)bare.On=module.On;if(module.Priority!==void 0){bare.Priority=module.Priority}if(module.Health!==void 0)bare.Health=module.Health;if(module.Value!==void 0)bare.Value=module.Value;this.#replaceModule(module.Slot,bare,baseStats2??void 0)}return this}setModuleEnabled(slotKey,on){this.#patchModule(slotKey,{On:on});return this}setModulePriority(slotKey,priority){if(!Number.isInteger(priority)||priority<0||priority>4){throw new RangeError(`ShipLoadout: power priority must be an integer 0-4, got ${truncate(priority)}`)}this.#patchModule(slotKey,{Priority:priority});return this}#patchModule(slotKey,patch){const module=this.#fittedModuleFor(slotKey);if(!module){throw new RangeError(`ShipLoadout: slot "${truncate(slotKey)}" is empty`)}this.#modules.set(module.Slot,cloneLoadoutModule({...module,...patch}));this.#slotCache.clear()}toLoadoutEvent(options={}){const unladenMass=this.#computedUnladenMass();const cargoCapacity=this.#computedCargoCapacity();const fuel=this.#computedFuelCapacity();const maxJumpRange=this.#exportableJumpRange(unladenMass);return exportLoadoutEvent({shipSymbol:this.#shipSymbol,...this.#top.ShipName===void 0?{}:{shipName:this.#top.ShipName},...this.#top.ShipIdent===void 0?{}:{shipIdent:this.#top.ShipIdent},modules:this.#modules,layout:this.#layout(),sourcePurchase:this.#sourcePurchase,retailHullValue:this.#ship.hullCost,unladenMass:unladenMass,cargoCapacity:cargoCapacity,fuelCapacity:fuel,maxJumpRange:maxJumpRange,sourceTotalsVoided:this.#importOutcomes.some(outcome=>outcome.sourceSymbol===null&&parseSlotName(outcome.slot)?.kind==="core"),statsFor:module=>this.#statsFor(module)},options)}toSlef(options){return toSlef(this.toLoadoutEvent(options),options.header)}toSlefString(options){return stringifySlef(this.toSlef(options),{indent:options.indent??0})}#exportableJumpRange(unladenMass){let drive;try{drive=this.#resolveDrive()}catch{return null}if(drive===null)return null;const tank=this.#computedFuelCapacity();return singleJumpRange(unladenMass,Math.min(tank.main,drive.maxFuel),drive)}#layout(){if(this.#layoutCache===void 0){this.#layoutCache=Object.freeze(enumerateSlots(this.#ship))}return this.#layoutCache}#requireSlot(slotKey){const wanted=normalizeKey(slotKey,SLOT_KEY);const slot=this.#layout().find(s=>normalizeKey(s.key,CATALOGUE_KEY)===wanted);if(!slot){throw new RangeError(`ShipLoadout: hull "${truncate(this.#shipSymbol)}" has no slot "${truncate(slotKey)}"`)}return slot}#fittedKey(slotKey){return matchingKeyIn(this.#modules,normalizeKey(slotKey,SLOT_KEY))}#fittedModuleFor(slotKey){const key=this.#fittedKey(slotKey);return key===null?void 0:this.#modules.get(key)}#calculationModules(){return[...this.#modules.values()].map(module=>({mass:this.#moduleMass(module),cargoCapacity:this.#moduleCapacity(module,"CargoCapacity","cargoCapacity"),fuelCapacity:this.#moduleCapacity(module,"FuelCapacity","fuelCapacity")}))}#moduleLimits(){const entries=[...this.#modules.values()].flatMap(module=>{const stats=this.#statsFor(module);return stats===null?[]:[stats]});return calculateModuleLimits(entries)}#moduleStatsAt(slotKey){const fitted=this.#fittedModuleFor(slotKey);return fitted===void 0?null:this.#statsFor(fitted)}#engineeringBaseStats(module){const fitted=this.#statsFor(module);if(!module.Engineering||identifyPreEngineeredVariant(module)===null)return fitted;const stock=builtInModuleBySymbol(module.Item,FITTED_ITEM);if(!stock)return fitted;return fitted?.engineeringLocked?cloneModuleStats({...stock,engineeringLocked:true}):stock}#moduleForEffectiveStats(module){const modifiers=this.#primitiveModifiers.get(module.Slot);if(modifiers===void 0||module.Engineering===void 0)return module;return{...module,Engineering:{...module.Engineering,Modifiers:modifiers}}}#modulesForEffectiveStats(){return[...this.#modules.values()].map(module=>this.#moduleForEffectiveStats(module))}#moduleLimitRegression(slotKey,replacement,current=this.#moduleLimits(),previous=this.#moduleStatsAt(slotKey)){if(previous?.limitGroup===void 0&&previous?.limitIncrease===void 0&&replacement?.limitGroup===void 0&&replacement?.limitIncrease===void 0){return null}for(const usage of current){const count=usage.count-Number(previous?.limitGroup===usage.group)+Number(replacement?.limitGroup===usage.group);const increase=usage.increase-(previous?.limitIncrease?.group===usage.group?previous.limitIncrease.amount:0)+(replacement?.limitIncrease?.group===usage.group?replacement.limitIncrease.amount:0);const limit=usage.baseLimit+increase;const excess=Math.max(0,count-limit);if(excess>usage.excess){return{...usage,increase:increase,limit:limit,count:count,excess:excess}}}return null}#replaceModule(slotKey,replacement,replacementStats,primitiveModifiers){const previous=this.#modules.get(slotKey)??null;this.#adjustImportedFigures(previous,replacement,replacementStats);if(replacement===null){this.#modules.delete(slotKey);this.#moduleStats.delete(slotKey);this.#primitiveModifiers.delete(slotKey)}else{this.#modules.set(slotKey,cloneLoadoutModule(replacement));if(replacementStats!==void 0)this.#moduleStats.set(slotKey,replacementStats);if(primitiveModifiers===void 0)this.#primitiveModifiers.delete(slotKey);else this.#primitiveModifiers.set(slotKey,primitiveModifiers)}this.#slotCache.clear()}#adjustImportedFigures(previous,next,nextStats){if(this.#top.UnladenMass!==void 0){this.#top.UnladenMass+=this.#moduleMass(next,nextStats)-this.#moduleMass(previous)}if(this.#top.CargoCapacity!==void 0){this.#top.CargoCapacity+=this.#moduleCapacity(next,"CargoCapacity","cargoCapacity",nextStats)-this.#moduleCapacity(previous,"CargoCapacity","cargoCapacity")}if(this.#top.FuelCapacity?.Main!==void 0){const reserve=this.#top.FuelCapacity.Reserve;this.#top.FuelCapacity={Main:this.#top.FuelCapacity.Main+this.#moduleCapacity(next,"FuelCapacity","fuelCapacity",nextStats)-this.#moduleCapacity(previous,"FuelCapacity","fuelCapacity"),...reserve===void 0?{}:{Reserve:reserve}}}if(normalizeKey(previous?.Item,FITTED_ITEM)===normalizeKey(next?.Item,FITTED_ITEM)){return}if(previous!==null&&isCargoHatchSlot(previous.Slot)||next!==null&&isCargoHatchSlot(next.Slot)){return}delete this.#top.ModulesValue;delete this.#top.Rebuy}#moduleMass(module,statsOverride){if(module===null)return 0;if(isCargoHatchSlot(module.Slot))return 0;const modified=getLoadoutModifier(module,"Mass");if(modified!==null)return modified;return(statsOverride??this.#statsFor(module))?.mass??0}#moduleCapacity(module,modifierLabel,field,statsOverride){if(module===null)return 0;if(isCargoHatchSlot(module.Slot))return 0;const modified=getLoadoutModifier(module,modifierLabel);if(modified!==null)return modified;return(statsOverride??this.#statsFor(module))?.[field]??0}#frameShiftDrive(){for(const m of this.#modules.values()){const stats=this.#statsFor(m);if(stats?.slot==="frameShiftDrive")return{module:m,stats:stats}}return void 0}#resolveDrive(){const fsd=this.#frameShiftDrive();if(!fsd)return null;const{module:fsdModule,stats:base}=fsd;if(base.fuelMul===void 0||base.fuelPower===void 0){throw new TypeError(`ShipLoadout: the fitted record for frame shift drive "${truncate(fsdModule.Item)}" has no jump constants`)}const optMass=getLoadoutModifier(fsdModule,"FSDOptimalMass")??base.optMass;const maxFuel=getLoadoutModifier(fsdModule,"MaxFuelPerJump")??base.maxFuel;if(optMass===void 0||maxFuel===void 0){const missing=[...optMass===void 0?["optMass"]:[],...maxFuel===void 0?["maxFuel"]:[]];throw new TypeError(`ShipLoadout: the fitted record for frame shift drive "${truncate(fsdModule.Item)}" has no ${missing.join(" or ")}`)}return{optMass:optMass,maxFuel:maxFuel,fuelMul:base.fuelMul,fuelPower:base.fuelPower,jumpBoost:this.#resolveJumpBoost()}}#resolveJumpBoost(){for(const m of this.#modules.values()){const stats=this.#statsFor(m);if(stats?.engineeringGroup!=="fsdBoosters"&&(stats?.jumpBoost===void 0||stats.jumpBoost===0)){continue}if(m.On===false)continue;if(stats?.jumpBoost===void 0){throw new TypeError(`ShipLoadout: the fitted record for FSD booster "${truncate(m.Item)}" has no jumpBoost`)}return stats.jumpBoost}return 0}#statsFor(module){if(module===null)return null;const stats=this.#moduleStats.get(module.Slot)??builtInModuleBySymbol(module.Item,FITTED_ITEM);if(stats)return stats;return isBuiltInHullModule(module)?builtInModuleBySymbol("ModularCargoBayDoor","ShipLoadout: built-in module"):null}};export{LoadoutEditError,ShipLoadout};//# sourceMappingURL=chunk-OYFMHDYT.js.map