@elite-dangerous-almanac/core 0.2.8 → 0.2.10

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 (263) hide show
  1. package/PROVENANCE/astro/SOURCES.md +13 -12
  2. package/PROVENANCE/commodities/SOURCES.md +50 -6
  3. package/PROVENANCE/equipment/SOURCES.md +137 -45
  4. package/PROVENANCE/i18n/SOURCES.md +187 -81
  5. package/PROVENANCE/ships/SOURCES.md +344 -200
  6. package/README.md +10 -2
  7. package/THIRD_PARTY_NOTICES.md +11 -3
  8. package/dist/astro/body-rings.d.ts +2 -2
  9. package/dist/astro/codex-region-lookup.d.ts +1 -1
  10. package/dist/astro/codex-region-lookup.js +1 -1
  11. package/dist/astro/hand-authored-regions.d.ts +1 -1
  12. package/dist/astro/index.d.ts +1 -1
  13. package/dist/astro/index.js +1 -1
  14. package/dist/astro/naming-region-origins.d.ts +1 -1
  15. package/dist/astro/naming-region-origins.js +1 -1
  16. package/dist/astro/nebulae-all.d.ts +4 -6
  17. package/dist/astro/nebulae-all.js +1 -1
  18. package/dist/astro/nebulae-all.js.map +1 -1
  19. package/dist/astro/nebulae-planetary.d.ts +4 -5
  20. package/dist/astro/nebulae-planetary.js +1 -1
  21. package/dist/astro/nebulae-procgen.d.ts +3 -3
  22. package/dist/astro/nebulae-real.d.ts +3 -3
  23. package/dist/astro/nebulae.d.ts +8 -8
  24. package/dist/astro/permit-locked-regions.d.ts +2 -2
  25. package/dist/astro/permit-locked-systems.d.ts +1 -1
  26. package/dist/astro/permit-locks.d.ts +2 -2
  27. package/dist/astro/procedural-system.d.ts +3 -3
  28. package/dist/astro/procedural-system.js +1 -1
  29. package/dist/astro/system-address.d.ts +1 -1
  30. package/dist/astro/system-address.js +1 -1
  31. package/dist/astro/system-name.js +1 -1
  32. package/dist/{chunk-XSLPWM5N.js → chunk-2J6NNI3Y.js} +1 -1
  33. package/dist/{chunk-DWRNXUAX.js → chunk-2KIZN3BY.js} +1 -1
  34. package/dist/{chunk-J7BM5NGK.js → chunk-2TY42PTF.js} +1 -1
  35. package/dist/{chunk-773VO2GK.js → chunk-4T3TTYUT.js} +1 -1
  36. package/dist/{chunk-773VO2GK.js.map → chunk-4T3TTYUT.js.map} +1 -1
  37. package/dist/{chunk-W5ULI75F.js → chunk-7C7NJWCF.js} +1 -1
  38. package/dist/{chunk-W5ULI75F.js.map → chunk-7C7NJWCF.js.map} +1 -1
  39. package/dist/{chunk-IMNOEFUE.js → chunk-7Y5EK2VO.js} +1 -1
  40. package/dist/{chunk-IMNOEFUE.js.map → chunk-7Y5EK2VO.js.map} +1 -1
  41. package/dist/{chunk-2OBUSQA7.js → chunk-AAU7OM47.js} +1 -1
  42. package/dist/{chunk-2OBUSQA7.js.map → chunk-AAU7OM47.js.map} +1 -1
  43. package/dist/{chunk-BJU27V6C.js → chunk-AUBV6S7V.js} +1 -1
  44. package/dist/{chunk-BJU27V6C.js.map → chunk-AUBV6S7V.js.map} +1 -1
  45. package/dist/{chunk-DI5RXSJR.js → chunk-BVLBS2QY.js} +1 -1
  46. package/dist/{chunk-DI5RXSJR.js.map → chunk-BVLBS2QY.js.map} +1 -1
  47. package/dist/{chunk-IN36YSS4.js → chunk-C3YZ5KTA.js} +1 -1
  48. package/dist/{chunk-IN36YSS4.js.map → chunk-C3YZ5KTA.js.map} +1 -1
  49. package/dist/{chunk-6UNAD74Z.js → chunk-C4FUV6GF.js} +1 -1
  50. package/dist/{chunk-6UNAD74Z.js.map → chunk-C4FUV6GF.js.map} +1 -1
  51. package/dist/chunk-C6G7IN74.js +1 -0
  52. package/dist/chunk-C6G7IN74.js.map +1 -0
  53. package/dist/chunk-CEF7SMB2.js +1 -0
  54. package/dist/chunk-CEF7SMB2.js.map +1 -0
  55. package/dist/chunk-E2HDF6PJ.js +1 -0
  56. package/dist/chunk-E2HDF6PJ.js.map +1 -0
  57. package/dist/{chunk-OFZGNWBT.js → chunk-ETREYN5U.js} +1 -1
  58. package/dist/{chunk-OFZGNWBT.js.map → chunk-ETREYN5U.js.map} +1 -1
  59. package/dist/{chunk-KBCA4GEZ.js → chunk-FP2TQJZP.js} +1 -1
  60. package/dist/{chunk-YJAH6DFY.js → chunk-G7WARJ3X.js} +1 -1
  61. package/dist/chunk-G7WARJ3X.js.map +1 -0
  62. package/dist/{chunk-Z4OUB4SJ.js → chunk-GLTCCDN5.js} +1 -1
  63. package/dist/{chunk-Z4OUB4SJ.js.map → chunk-GLTCCDN5.js.map} +1 -1
  64. package/dist/chunk-GVNTKCVF.js +1 -0
  65. package/dist/chunk-GVNTKCVF.js.map +1 -0
  66. package/dist/{chunk-Q6YDPREF.js → chunk-GZLD7RTK.js} +1 -1
  67. package/dist/{chunk-Q6YDPREF.js.map → chunk-GZLD7RTK.js.map} +1 -1
  68. package/dist/{chunk-SC4MEHVY.js → chunk-HIJR7DOC.js} +1 -1
  69. package/dist/{chunk-SC4MEHVY.js.map → chunk-HIJR7DOC.js.map} +1 -1
  70. package/dist/{chunk-ETWMPMZP.js → chunk-K5JK3XQB.js} +1 -1
  71. package/dist/{chunk-GRIK3EDH.js → chunk-KY7KSPU6.js} +1 -1
  72. package/dist/{chunk-GRIK3EDH.js.map → chunk-KY7KSPU6.js.map} +1 -1
  73. package/dist/{chunk-EHFHRQEP.js → chunk-M4STXLXO.js} +1 -1
  74. package/dist/{chunk-EHFHRQEP.js.map → chunk-M4STXLXO.js.map} +1 -1
  75. package/dist/{chunk-5YEHJM6V.js → chunk-OSMBAFRW.js} +1 -1
  76. package/dist/{chunk-5YEHJM6V.js.map → chunk-OSMBAFRW.js.map} +1 -1
  77. package/dist/chunk-PIU24HRN.js +1 -0
  78. package/dist/chunk-PIU24HRN.js.map +1 -0
  79. package/dist/{chunk-ELT3FEA4.js → chunk-PKKBYBL4.js} +1 -1
  80. package/dist/{chunk-ELT3FEA4.js.map → chunk-PKKBYBL4.js.map} +1 -1
  81. package/dist/{chunk-6HMIF2RJ.js → chunk-Q647OXON.js} +1 -1
  82. package/dist/{chunk-6HMIF2RJ.js.map → chunk-Q647OXON.js.map} +1 -1
  83. package/dist/{chunk-BMQM4JBL.js → chunk-QPT2WJYN.js} +1 -1
  84. package/dist/{chunk-BMQM4JBL.js.map → chunk-QPT2WJYN.js.map} +1 -1
  85. package/dist/{chunk-3WGXGBW5.js → chunk-R2AEZYX7.js} +1 -1
  86. package/dist/{chunk-FJIWJYKO.js → chunk-RA4YJBU5.js} +1 -1
  87. package/dist/chunk-RA4YJBU5.js.map +1 -0
  88. package/dist/{chunk-MRLUWHGI.js → chunk-RJ3ZLQRB.js} +1 -1
  89. package/dist/{chunk-MRLUWHGI.js.map → chunk-RJ3ZLQRB.js.map} +1 -1
  90. package/dist/chunk-SFEQXUIA.js +1 -0
  91. package/dist/{chunk-WV7QCDL5.js → chunk-SIL356HB.js} +1 -1
  92. package/dist/{chunk-WV7QCDL5.js.map → chunk-SIL356HB.js.map} +1 -1
  93. package/dist/{chunk-OLKOWR7S.js → chunk-SS7HVNP5.js} +1 -1
  94. package/dist/{chunk-OLKOWR7S.js.map → chunk-SS7HVNP5.js.map} +1 -1
  95. package/dist/chunk-TRGHPX2O.js +1 -0
  96. package/dist/chunk-TRGHPX2O.js.map +1 -0
  97. package/dist/{chunk-GMTAFUAG.js → chunk-TYRH73MO.js} +1 -1
  98. package/dist/{chunk-GMTAFUAG.js.map → chunk-TYRH73MO.js.map} +1 -1
  99. package/dist/{chunk-7TVFV3VO.js → chunk-U3IRMXMR.js} +1 -1
  100. package/dist/{chunk-A7IVMYNF.js → chunk-U73MBQ45.js} +1 -1
  101. package/dist/{chunk-A7IVMYNF.js.map → chunk-U73MBQ45.js.map} +1 -1
  102. package/dist/{chunk-IZIIGK3W.js → chunk-UE22QU7A.js} +1 -1
  103. package/dist/{chunk-IZIIGK3W.js.map → chunk-UE22QU7A.js.map} +1 -1
  104. package/dist/{chunk-DBDCOHI4.js → chunk-UI5RROGI.js} +1 -1
  105. package/dist/{chunk-DBDCOHI4.js.map → chunk-UI5RROGI.js.map} +1 -1
  106. package/dist/chunk-URRPEUIK.js +1 -0
  107. package/dist/{chunk-QJECDMQQ.js.map → chunk-URRPEUIK.js.map} +1 -1
  108. package/dist/chunk-UVX7RCMP.js +1 -0
  109. package/dist/chunk-UVX7RCMP.js.map +1 -0
  110. package/dist/{chunk-7ATBEOVC.js → chunk-WG4DPXJI.js} +1 -1
  111. package/dist/{chunk-XFDMCPDW.js → chunk-WZIBBJHA.js} +1 -1
  112. package/dist/{chunk-XFDMCPDW.js.map → chunk-WZIBBJHA.js.map} +1 -1
  113. package/dist/{chunk-7EWZGDWY.js → chunk-X3MXPE7G.js} +1 -1
  114. package/dist/{chunk-7EWZGDWY.js.map → chunk-X3MXPE7G.js.map} +1 -1
  115. package/dist/{chunk-JCYOE3C4.js → chunk-XQJERZUS.js} +1 -1
  116. package/dist/{chunk-JCYOE3C4.js.map → chunk-XQJERZUS.js.map} +1 -1
  117. package/dist/{chunk-SD6GNFDX.js → chunk-YBE5M27G.js} +1 -1
  118. package/dist/{chunk-SD6GNFDX.js.map → chunk-YBE5M27G.js.map} +1 -1
  119. package/dist/chunk-YI5XKWW2.js +1 -0
  120. package/dist/{chunk-GIGRBFIJ.js.map → chunk-YI5XKWW2.js.map} +1 -1
  121. package/dist/chunk-ZBUTGTZ3.js +1 -0
  122. package/dist/chunk-ZBUTGTZ3.js.map +1 -0
  123. package/dist/commodities/commodities-all.d.ts +2 -2
  124. package/dist/commodities/commodities-all.js +1 -1
  125. package/dist/commodities/commodities-rare.d.ts +3 -4
  126. package/dist/commodities/commodities-rare.js +1 -1
  127. package/dist/commodities/commodities-standard.d.ts +7 -7
  128. package/dist/commodities/commodities-standard.js +1 -1
  129. package/dist/commodities/commodities.d.ts +12 -12
  130. package/dist/commodities/commodities.js +1 -1
  131. package/dist/commodities/index.js +1 -1
  132. package/dist/equipment/engineering.d.ts +11 -6
  133. package/dist/equipment/engineering.js +1 -1
  134. package/dist/equipment/index.d.ts +4 -4
  135. package/dist/equipment/index.js +1 -1
  136. package/dist/equipment/modification-journal.js +1 -1
  137. package/dist/equipment/modifications.d.ts +23 -14
  138. package/dist/equipment/modifications.js +1 -1
  139. package/dist/equipment/suits.d.ts +2 -145
  140. package/dist/equipment/suits.js +1 -1
  141. package/dist/equipment/tools.d.ts +102 -0
  142. package/dist/equipment/tools.js +1 -0
  143. package/dist/equipment/tools.js.map +1 -0
  144. package/dist/equipment/upgrade-costs.d.ts +2 -3
  145. package/dist/equipment/upgrade-costs.js +1 -1
  146. package/dist/equipment/weapons.d.ts +2 -135
  147. package/dist/equipment/weapons.js +1 -1
  148. package/dist/i18n/blueprints.d.ts +2 -3
  149. package/dist/i18n/blueprints.js +1 -1
  150. package/dist/i18n/commodities.d.ts +36 -0
  151. package/dist/i18n/commodities.js +1 -0
  152. package/dist/i18n/commodities.js.map +1 -0
  153. package/dist/i18n/experimental-effect-descriptions.d.ts +5 -6
  154. package/dist/i18n/experimental-effect-descriptions.js +1 -1
  155. package/dist/i18n/experimental-effects.d.ts +2 -3
  156. package/dist/i18n/experimental-effects.js +1 -1
  157. package/dist/i18n/index.d.ts +19 -9
  158. package/dist/i18n/index.js +1 -1
  159. package/dist/i18n/materials.d.ts +2 -4
  160. package/dist/i18n/materials.js +1 -1
  161. package/dist/i18n/micro-resources.d.ts +2 -4
  162. package/dist/i18n/micro-resources.js +1 -1
  163. package/dist/i18n/module-families.d.ts +3 -5
  164. package/dist/i18n/module-families.js +1 -1
  165. package/dist/i18n/modules.d.ts +3 -6
  166. package/dist/i18n/modules.js +1 -1
  167. package/dist/i18n/personal-modifications.d.ts +4 -6
  168. package/dist/i18n/personal-modifications.js +1 -1
  169. package/dist/i18n/personal-tools.d.ts +33 -0
  170. package/dist/i18n/personal-tools.js +1 -0
  171. package/dist/i18n/personal-tools.js.map +1 -0
  172. package/dist/i18n/personal-weapons.d.ts +3 -4
  173. package/dist/i18n/personal-weapons.js +1 -1
  174. package/dist/i18n/pre-engineered.d.ts +1 -1
  175. package/dist/i18n/slots.d.ts +2 -2
  176. package/dist/i18n/suits.d.ts +36 -6
  177. package/dist/i18n/suits.js +1 -1
  178. package/dist/materials/index.d.ts +4 -3
  179. package/dist/materials/index.js +1 -1
  180. package/dist/materials/materials-all.d.ts +2 -2
  181. package/dist/materials/materials-all.js +1 -1
  182. package/dist/materials/materials-raw.d.ts +3 -4
  183. package/dist/materials/materials-raw.js +1 -1
  184. package/dist/materials/materials.d.ts +18 -15
  185. package/dist/materials/materials.js +1 -1
  186. package/dist/materials/micro-resources-all.d.ts +2 -2
  187. package/dist/materials/micro-resources-all.js +1 -1
  188. package/dist/materials/micro-resources-component.d.ts +2 -2
  189. package/dist/materials/micro-resources-consumable.d.ts +2 -2
  190. package/dist/materials/micro-resources-data.d.ts +2 -2
  191. package/dist/materials/micro-resources-item.d.ts +2 -2
  192. package/dist/materials/micro-resources.d.ts +17 -14
  193. package/dist/materials/micro-resources.js +1 -1
  194. package/dist/ships/ammunition.d.ts +4 -4
  195. package/dist/ships/blueprint-costs.d.ts +13 -13
  196. package/dist/ships/blueprint-costs.js +1 -1
  197. package/dist/ships/blueprint-journal.d.ts +3 -3
  198. package/dist/ships/blueprint-journal.js +1 -1
  199. package/dist/ships/blueprints.d.ts +3 -3
  200. package/dist/ships/build-metrics.d.ts +2 -1
  201. package/dist/ships/build-metrics.js +1 -1
  202. package/dist/ships/default-loadouts.d.ts +2 -3
  203. package/dist/ships/default-loadouts.js +1 -1
  204. package/dist/ships/engineering-options.d.ts +29 -32
  205. package/dist/ships/engineering-options.js +1 -1
  206. package/dist/ships/engineering.d.ts +1 -2
  207. package/dist/ships/engineering.js +1 -1
  208. package/dist/ships/experimental-effect-costs.d.ts +1 -1
  209. package/dist/ships/gunsights.d.ts +3 -3
  210. package/dist/ships/heat.d.ts +1 -1
  211. package/dist/ships/index.d.ts +4 -5
  212. package/dist/ships/index.js +1 -1
  213. package/dist/ships/loadout-validation.d.ts +1 -1
  214. package/dist/ships/module-families.d.ts +1 -1
  215. package/dist/ships/modules-all.d.ts +2 -3
  216. package/dist/ships/modules-all.js +1 -1
  217. package/dist/ships/modules-core.d.ts +3 -3
  218. package/dist/ships/modules-hardpoint.d.ts +4 -5
  219. package/dist/ships/modules-hardpoint.js +1 -1
  220. package/dist/ships/modules-internal.d.ts +5 -6
  221. package/dist/ships/modules-internal.js +1 -1
  222. package/dist/ships/modules-utility.d.ts +3 -4
  223. package/dist/ships/modules-utility.js +1 -1
  224. package/dist/ships/modules.d.ts +26 -24
  225. package/dist/ships/modules.js +1 -1
  226. package/dist/ships/pre-engineered-stats.d.ts +1 -1
  227. package/dist/ships/pre-engineered-stats.js +1 -1
  228. package/dist/ships/pre-engineered.d.ts +9 -10
  229. package/dist/ships/pre-engineered.js +1 -1
  230. package/dist/ships/shield-capacitor.js +1 -1
  231. package/dist/ships/ship-loadout.d.ts +7 -7
  232. package/dist/ships/ship-loadout.js +1 -1
  233. package/dist/ships/ships.d.ts +1 -2
  234. package/dist/ships/ships.js +1 -1
  235. package/dist/ships/slots.d.ts +5 -5
  236. package/dist/ships/weapons.js +1 -1
  237. package/dist/suits-B4sQMLFe.d.ts +450 -0
  238. package/dist/{system-address-cyJaeZIS.d.ts → system-address-DmzXRD48.d.ts} +6 -4
  239. package/package.json +13 -1
  240. package/dist/chunk-77TT4K53.js +0 -1
  241. package/dist/chunk-DAQ3PJ4R.js +0 -1
  242. package/dist/chunk-DAQ3PJ4R.js.map +0 -1
  243. package/dist/chunk-DHACRCLI.js +0 -1
  244. package/dist/chunk-DHACRCLI.js.map +0 -1
  245. package/dist/chunk-FJIWJYKO.js.map +0 -1
  246. package/dist/chunk-GIGRBFIJ.js +0 -1
  247. package/dist/chunk-IUSMAX5T.js +0 -1
  248. package/dist/chunk-IUSMAX5T.js.map +0 -1
  249. package/dist/chunk-LWNBWRKL.js +0 -1
  250. package/dist/chunk-LWNBWRKL.js.map +0 -1
  251. package/dist/chunk-MT5AHPNP.js +0 -1
  252. package/dist/chunk-MT5AHPNP.js.map +0 -1
  253. package/dist/chunk-QJECDMQQ.js +0 -1
  254. package/dist/chunk-YJAH6DFY.js.map +0 -1
  255. /package/dist/{chunk-XSLPWM5N.js.map → chunk-2J6NNI3Y.js.map} +0 -0
  256. /package/dist/{chunk-DWRNXUAX.js.map → chunk-2KIZN3BY.js.map} +0 -0
  257. /package/dist/{chunk-J7BM5NGK.js.map → chunk-2TY42PTF.js.map} +0 -0
  258. /package/dist/{chunk-KBCA4GEZ.js.map → chunk-FP2TQJZP.js.map} +0 -0
  259. /package/dist/{chunk-ETWMPMZP.js.map → chunk-K5JK3XQB.js.map} +0 -0
  260. /package/dist/{chunk-3WGXGBW5.js.map → chunk-R2AEZYX7.js.map} +0 -0
  261. /package/dist/{chunk-77TT4K53.js.map → chunk-SFEQXUIA.js.map} +0 -0
  262. /package/dist/{chunk-7TVFV3VO.js.map → chunk-U3IRMXMR.js.map} +0 -0
  263. /package/dist/{chunk-7ATBEOVC.js.map → chunk-WG4DPXJI.js.map} +0 -0
@@ -1 +1 @@
1
- import{findInKeyIndex,createKeyIndex}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var ships_default=[{symbol:"SideWinder",name:"Sidewinder",manufacturer:"Faulcon DeLacy",size:"small",hullMass:25,minimumSpeed:100,maximumSpeed:220,boost:320,baseShieldStrength:40,baseArmour:60,hardness:20,masslock:6,crew:1,heatCapacity:140,heatDissipation:18.15,reserveFuelCapacity:.3,minPitch:34,pitch:42,minRoll:110,roll:110,minYaw:16,yaw:16,core:{powerPlant:2,thrusters:2,frameShiftDrive:2,lifeSupport:1,powerDistributor:1,sensors:1,fuelTank:1},hardpoints:[{size:1},{size:1}],utility:2,optional:[{size:2},{size:2},{size:1},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:4588,retailCost:32e3},{symbol:"Eagle",name:"Eagle",manufacturer:"Core Dynamics",size:"small",hullMass:50,minimumSpeed:180,maximumSpeed:240,boost:350,baseShieldStrength:60,baseArmour:40,hardness:28,masslock:6,crew:1,heatCapacity:165,heatDissipation:21.48,reserveFuelCapacity:.34,minPitch:40,pitch:50,minRoll:120,roll:120,minYaw:18,yaw:18,core:{powerPlant:2,thrusters:3,frameShiftDrive:3,lifeSupport:1,powerDistributor:2,sensors:2,fuelTank:2},hardpoints:[{size:1},{size:1},{size:1}],utility:1,optional:[{size:3},{size:2},{size:2,restriction:"military"},{size:1},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:10947,retailCost:44800},{symbol:"Hauler",name:"Hauler",manufacturer:"Zorgon Peterson",size:"small",hullMass:14,minimumSpeed:70,maximumSpeed:200,boost:300,baseShieldStrength:50,baseArmour:100,hardness:20,masslock:6,crew:1,heatCapacity:123,heatDissipation:16.2,reserveFuelCapacity:.25,minPitch:30,pitch:36,minRoll:100,roll:100,minYaw:14,yaw:14,core:{powerPlant:2,thrusters:2,frameShiftDrive:2,lifeSupport:1,powerDistributor:1,sensors:1,fuelTank:2},hardpoints:[{size:1}],utility:2,optional:[{size:3},{size:3},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:30308,retailCost:52720},{symbol:"Adder",name:"Adder",manufacturer:"Zorgon Peterson",size:"small",hullMass:35,minimumSpeed:100,maximumSpeed:220,boost:320,baseShieldStrength:60,baseArmour:90,hardness:35,masslock:7,crew:2,heatCapacity:170,heatDissipation:22.6,reserveFuelCapacity:.36,minPitch:30,pitch:38,minRoll:100,roll:100,minYaw:14,yaw:14,core:{powerPlant:3,thrusters:3,frameShiftDrive:3,lifeSupport:1,powerDistributor:2,sensors:3,fuelTank:3},hardpoints:[{size:2},{size:1},{size:1}],utility:2,optional:[{size:3},{size:3},{size:2},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:40833,retailCost:87808},{symbol:"Viper",name:"Viper Mk III",manufacturer:"Faulcon DeLacy",size:"small",hullMass:50,minimumSpeed:200,maximumSpeed:320,boost:400,baseShieldStrength:105,baseArmour:70,hardness:35,masslock:7,crew:1,heatCapacity:195,heatDissipation:26.2,reserveFuelCapacity:.41,minPitch:30,pitch:35,minRoll:90,roll:90,minYaw:15,yaw:15,core:{powerPlant:3,thrusters:3,frameShiftDrive:3,lifeSupport:2,powerDistributor:3,sensors:3,fuelTank:2},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:2,optional:[{size:3},{size:3},{size:3,restriction:"military"},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:96733,retailCost:142931},{symbol:"CobraMkIII",name:"Cobra Mk III",manufacturer:"Faulcon DeLacy",size:"small",hullMass:180,minimumSpeed:140,maximumSpeed:280,boost:400,baseShieldStrength:80,baseArmour:120,hardness:35,masslock:8,crew:2,heatCapacity:225,heatDissipation:30.63,reserveFuelCapacity:.49,minPitch:30,pitch:40,minRoll:100,roll:100,minYaw:10,yaw:10,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:3,powerDistributor:3,sensors:3,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:2,optional:[{size:4},{size:4},{size:4},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:208372,retailCost:349718},{symbol:"Type6",name:"Type-6 Transporter",manufacturer:"Lakon Spaceways",size:"medium",hullMass:155,minimumSpeed:90,maximumSpeed:220,boost:350,baseShieldStrength:90,baseArmour:180,hardness:35,masslock:8,crew:1,heatCapacity:179,heatDissipation:24.55,reserveFuelCapacity:.39,minPitch:23,pitch:30,minRoll:100,roll:100,minYaw:17,yaw:17,core:{powerPlant:3,thrusters:4,frameShiftDrive:4,lifeSupport:2,powerDistributor:3,sensors:2,fuelTank:4},hardpoints:[{size:1},{size:1}],utility:3,optional:[{size:5},{size:5},{size:4},{size:4},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:866622,retailCost:1045945},{symbol:"Dolphin",name:"Dolphin",manufacturer:"Saud Kruger",size:"small",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:140,minimumSpeed:120,maximumSpeed:250,boost:350,baseShieldStrength:110,baseArmour:110,hardness:35,masslock:9,crew:1,heatCapacity:245,heatDissipation:56,reserveFuelCapacity:.5,minPitch:23,pitch:30,minRoll:100,roll:100,minYaw:20,yaw:20,core:{powerPlant:4,thrusters:5,frameShiftDrive:4,lifeSupport:4,powerDistributor:3,sensors:3,fuelTank:4},hardpoints:[{size:1},{size:1}],utility:3,optional:[{size:5},{size:4},{size:4},{size:3},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:1117906,retailCost:1337323},{symbol:"Type7",name:"Type-7 Transporter",manufacturer:"Lakon Spaceways",size:"large",hullMass:350,minimumSpeed:60,maximumSpeed:180,boost:300,baseShieldStrength:156,baseArmour:340,hardness:54,masslock:10,crew:1,heatCapacity:226,heatDissipation:32.45,reserveFuelCapacity:.52,minPitch:16,pitch:22,minRoll:60,roll:60,minYaw:16,yaw:22,core:{powerPlant:5,thrusters:5,frameShiftDrive:5,lifeSupport:4,powerDistributor:4,sensors:3,fuelTank:5},hardpoints:[{size:1},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6,name:"Slot01_Size6"},{size:6,name:"Slot02_Size6"},{size:6,name:"Slot03_Size5"},{size:5,name:"Slot04_Size5"},{size:5,name:"Slot05_Size4"},{size:5,name:"Slot06_Size4"},{size:3,name:"Slot07_Size2"},{size:3,name:"Slot08_Size2"},{size:2,name:"Slot09_Size2"},{size:1,name:"Slot09_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:16783094,retailCost:17472252},{symbol:"Asp",name:"Asp Explorer",manufacturer:"Lakon Spaceways",size:"medium",hullMass:280,minimumSpeed:120,maximumSpeed:250,boost:340,baseShieldStrength:140,baseArmour:210,hardness:52,masslock:11,crew:2,heatCapacity:272,heatDissipation:39.9,reserveFuelCapacity:.63,minPitch:30,pitch:38,minRoll:100,roll:100,minYaw:10,yaw:10,core:{powerPlant:5,thrusters:5,frameShiftDrive:5,lifeSupport:4,powerDistributor:4,sensors:5,fuelTank:5},hardpoints:[{size:2},{size:2},{size:1},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6},{size:5},{size:3},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:6145793,retailCost:6661154},{symbol:"Vulture",name:"Vulture",manufacturer:"Core Dynamics",size:"small",hullMass:230,minimumSpeed:190,maximumSpeed:210,boost:340,baseShieldStrength:240,baseArmour:160,hardness:55,masslock:10,crew:2,heatCapacity:237,heatDissipation:35.63,reserveFuelCapacity:.57,minPitch:35,pitch:42,minRoll:110,roll:110,minYaw:17,yaw:17,core:{powerPlant:4,thrusters:5,frameShiftDrive:4,lifeSupport:3,powerDistributor:5,sensors:4,fuelTank:3},hardpoints:[{size:3},{size:3}],utility:4,optional:[{size:5,name:"Slot01_Size5"},{size:5,restriction:"military",name:"Military01"},{size:4,name:"Slot02_Size4"},{size:2,name:"Slot03_Size2"},{size:1,name:"Slot05_Size1"},{size:1,name:"Slot06_Size1"},{size:1,name:"Slot07_Size1"},{size:1,name:"Slot08_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:4692214,retailCost:4925615},{symbol:"Empire_Trader",name:"Imperial Clipper",manufacturer:"Gutamaya",size:"large",hullMass:400,minimumSpeed:180,maximumSpeed:300,boost:380,baseShieldStrength:180,baseArmour:270,hardness:60,masslock:12,crew:2,heatCapacity:304,heatDissipation:46.8,reserveFuelCapacity:.74,minPitch:30,pitch:40,minRoll:80,roll:80,minYaw:18,yaw:18,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:5,fuelTank:4},hardpoints:[{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:7},{size:6},{size:4},{size:4},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:21116895,retailCost:22295860},{symbol:"Federation_Dropship",name:"Federal Dropship",manufacturer:"Core Dynamics",size:"medium",hullMass:580,minimumSpeed:100,maximumSpeed:180,boost:300,baseShieldStrength:200,baseArmour:300,hardness:60,masslock:14,crew:2,heatCapacity:331,heatDissipation:46.5,reserveFuelCapacity:.83,minPitch:20,pitch:30,minRoll:80,roll:80,minYaw:14,yaw:14,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:2},{size:2},{size:2},{size:2}],utility:4,optional:[{size:6,name:"Slot01_Size6"},{size:5,name:"Slot02_Size5"},{size:5,name:"Slot03_Size5"},{size:4,name:"Slot04_Size4"},{size:4,restriction:"military",name:"Military01"},{size:4,restriction:"military",name:"Military02"},{size:3,name:"Slot05_Size3"},{size:3,name:"Slot06_Size3"},{size:2,name:"Slot09_Size2"},{size:1,name:"Slot10_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:13510106,retailCost:14314210},{symbol:"Orca",name:"Orca",manufacturer:"Saud Kruger",size:"large",hullMass:290,minimumSpeed:200,maximumSpeed:300,boost:380,baseShieldStrength:220,baseArmour:220,hardness:55,masslock:15,crew:2,heatCapacity:262,heatDissipation:42.68,reserveFuelCapacity:.79,minPitch:20,pitch:25,minRoll:55,roll:55,minYaw:18,yaw:18,core:{powerPlant:5,thrusters:6,frameShiftDrive:5,lifeSupport:6,powerDistributor:5,sensors:4,fuelTank:5},hardpoints:[{size:3},{size:2},{size:2}],utility:4,optional:[{size:6},{size:5},{size:5},{size:5},{size:4},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:47800723,retailCost:48539887},{symbol:"Type9",name:"Type-9 Heavy",manufacturer:"Lakon Spaceways",size:"large",hullMass:850,minimumSpeed:40,maximumSpeed:130,boost:200,baseShieldStrength:240,baseArmour:480,hardness:65,masslock:16,crew:4,heatCapacity:289,heatDissipation:48.35,reserveFuelCapacity:.77,minPitch:15,pitch:20,minRoll:20,roll:20,minYaw:8,yaw:8,core:{powerPlant:6,thrusters:7,frameShiftDrive:6,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:6},hardpoints:[{size:2},{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:8,name:"Slot00_Size8"},{size:8,name:"Slot01_Size8"},{size:7,name:"Slot02_Size7"},{size:6,name:"Slot03_Size6"},{size:5,name:"Slot04_Size5"},{size:4,name:"Slot05_Size4"},{size:4,name:"Slot06_Size4"},{size:3,name:"Slot07_Size3"},{size:3,name:"Slot08_Size3"},{size:2,name:"Slot11_Size2"},{size:1,name:"Slot12_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:72116858,retailCost:76555842},{symbol:"Python",name:"Python",manufacturer:"Faulcon DeLacy",size:"medium",hullMass:350,minimumSpeed:140,maximumSpeed:230,boost:300,baseShieldStrength:260,baseArmour:260,hardness:65,masslock:17,crew:2,heatCapacity:300,heatDissipation:52.05,reserveFuelCapacity:.83,minPitch:24,pitch:29,minRoll:90,roll:90,minYaw:10,yaw:10,core:{powerPlant:7,thrusters:6,frameShiftDrive:5,lifeSupport:4,powerDistributor:7,sensors:6,fuelTank:5},hardpoints:[{size:3},{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:6},{size:6},{size:6},{size:5},{size:5},{size:4},{size:3},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:55324684,retailCost:56978179},{symbol:"BelugaLiner",name:"Beluga Liner",manufacturer:"Saud Kruger",size:"large",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:950,minimumSpeed:110,maximumSpeed:200,boost:280,baseShieldStrength:280,baseArmour:280,hardness:60,masslock:18,crew:4,heatCapacity:283,heatDissipation:50.85,reserveFuelCapacity:.81,minPitch:20,pitch:25,minRoll:60,roll:60,minYaw:17,yaw:17,core:{powerPlant:6,thrusters:7,frameShiftDrive:7,lifeSupport:8,powerDistributor:6,sensors:5,fuelTank:7},hardpoints:[{size:2},{size:2},{size:2},{size:2},{size:2}],utility:6,optional:[{size:6},{size:6},{size:6},{size:6},{size:5},{size:5},{size:4},{size:3},{size:3},{size:3},{size:3},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:79694761,retailCost:84532764},{symbol:"FerDeLance",name:"Fer-de-Lance",manufacturer:"Zorgon Peterson",size:"medium",hullMass:250,minimumSpeed:220,maximumSpeed:260,boost:350,baseShieldStrength:300,baseArmour:225,hardness:70,masslock:12,crew:2,heatCapacity:224,heatDissipation:41.63,reserveFuelCapacity:.67,minPitch:30,pitch:38,minRoll:90,roll:90,minYaw:12,yaw:12,core:{powerPlant:6,thrusters:5,frameShiftDrive:4,lifeSupport:4,powerDistributor:6,sensors:4,fuelTank:3},hardpoints:[{size:4},{size:2},{size:2},{size:2},{size:2}],utility:6,optional:[{size:5},{size:4},{size:4},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:51242363,retailCost:51567040},{symbol:"Anaconda",name:"Anaconda",manufacturer:"Faulcon DeLacy",size:"large",hullMass:400,minimumSpeed:80,maximumSpeed:180,boost:240,baseShieldStrength:350,baseArmour:525,hardness:65,masslock:23,crew:4,heatCapacity:334,heatDissipation:67.15,reserveFuelCapacity:1.07,minPitch:20,pitch:25,minRoll:60,roll:60,minYaw:10,yaw:10,core:{powerPlant:8,thrusters:7,frameShiftDrive:6,lifeSupport:5,powerDistributor:8,sensors:8,fuelTank:5},hardpoints:[{size:4},{size:3},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1}],utility:8,optional:[{size:7,name:"Slot01_Size7"},{size:6,name:"Slot02_Size6"},{size:6,name:"Slot03_Size6"},{size:6,name:"Slot04_Size6"},{size:5,name:"Slot05_Size5"},{size:5,name:"Slot06_Size5"},{size:5,name:"Slot07_Size5"},{size:5,restriction:"military",name:"Military01"},{size:4,name:"Slot08_Size4"},{size:4,name:"Slot09_Size4"},{size:4,name:"Slot10_Size4"},{size:2,name:"Slot13_Size2"},{size:1,name:"Slot14_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:142456440,retailCost:146969451},{symbol:"Federation_Corvette",name:"Federal Corvette",manufacturer:"Core Dynamics",size:"large",hullMass:900,minimumSpeed:100,maximumSpeed:200,boost:260,baseShieldStrength:555,baseArmour:370,hardness:70,masslock:24,crew:4,heatCapacity:333,heatDissipation:70.33,reserveFuelCapacity:1.13,minPitch:22,pitch:28,minRoll:75,roll:75,minYaw:8,yaw:8,core:{powerPlant:8,thrusters:7,frameShiftDrive:6,lifeSupport:5,powerDistributor:8,sensors:8,fuelTank:5},hardpoints:[{size:4},{size:4},{size:3},{size:2},{size:2},{size:1},{size:1}],utility:8,optional:[{size:7},{size:7},{size:7},{size:6},{size:6},{size:5},{size:5},{size:5,restriction:"military"},{size:5,restriction:"military"},{size:4},{size:4},{size:3},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:183156068,retailCost:187969450},{symbol:"Cutter",name:"Imperial Cutter",manufacturer:"Gutamaya",size:"large",hullMass:1100,minimumSpeed:160,maximumSpeed:200,boost:320,baseShieldStrength:600,baseArmour:400,hardness:70,masslock:26,crew:4,heatCapacity:327,heatDissipation:72.58,reserveFuelCapacity:1.16,minPitch:14,pitch:18,minRoll:45,roll:45,minYaw:8,yaw:8,core:{powerPlant:8,thrusters:8,frameShiftDrive:7,lifeSupport:7,powerDistributor:7,sensors:7,fuelTank:6},hardpoints:[{size:4},{size:3},{size:3},{size:2},{size:2},{size:2},{size:2}],utility:8,optional:[{size:8},{size:8},{size:6},{size:6},{size:6},{size:5},{size:5},{size:5,restriction:"military"},{size:5,restriction:"military"},{size:4},{size:3},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:200493413,retailCost:208969451},{symbol:"DiamondBack",name:"Diamondback Scout",manufacturer:"Lakon Spaceways",size:"small",hullMass:170,minimumSpeed:170,maximumSpeed:280,boost:380,baseShieldStrength:120,baseArmour:120,hardness:40,masslock:8,crew:1,heatCapacity:346,heatDissipation:48.05,reserveFuelCapacity:.49,minPitch:35,pitch:42,minRoll:100,roll:100,minYaw:15,yaw:15,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:2,powerDistributor:3,sensors:2,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:3},{size:3},{size:3},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:463926,retailCost:564329},{symbol:"Empire_Courier",name:"Imperial Courier",manufacturer:"Gutamaya",size:"small",hullMass:35,minimumSpeed:220,maximumSpeed:280,boost:380,baseShieldStrength:200,baseArmour:80,hardness:30,masslock:7,crew:1,heatCapacity:230,heatDissipation:25.05,reserveFuelCapacity:.41,minPitch:32,pitch:38,minRoll:90,roll:90,minYaw:16,yaw:16,core:{powerPlant:4,thrusters:3,frameShiftDrive:3,lifeSupport:1,powerDistributor:3,sensors:2,fuelTank:3},hardpoints:[{size:2},{size:2},{size:2}],utility:4,optional:[{size:3},{size:3},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:2484137,retailCost:2542931},{symbol:"DiamondBackXL",name:"Diamondback Explorer",manufacturer:"Lakon Spaceways",size:"small",hullMass:260,minimumSpeed:160,maximumSpeed:260,boost:340,baseShieldStrength:150,baseArmour:150,hardness:42,masslock:10,crew:1,heatCapacity:351,heatDissipation:50.55,reserveFuelCapacity:.52,minPitch:28,pitch:35,minRoll:90,roll:90,minYaw:13,yaw:13,core:{powerPlant:4,thrusters:4,frameShiftDrive:5,lifeSupport:3,powerDistributor:4,sensors:3,fuelTank:5},hardpoints:[{size:3},{size:2},{size:2}],utility:4,optional:[{size:4},{size:4},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:1638277,retailCost:1894760},{symbol:"Empire_Eagle",name:"Imperial Eagle",manufacturer:"Gutamaya",size:"small",hullMass:50,minimumSpeed:210,maximumSpeed:300,boost:400,baseShieldStrength:80,baseArmour:60,hardness:28,masslock:6,crew:1,heatCapacity:163,heatDissipation:21.2,reserveFuelCapacity:.37,minPitch:30,pitch:40,minRoll:100,roll:100,minYaw:15,yaw:15,core:{powerPlant:3,thrusters:3,frameShiftDrive:3,lifeSupport:1,powerDistributor:2,sensors:2,fuelTank:2},hardpoints:[{size:2},{size:1},{size:1}],utility:1,optional:[{size:3},{size:2},{size:2,restriction:"military"},{size:1},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:73023,retailCost:110830},{symbol:"Federation_Dropship_MkII",name:"Federal Assault Ship",manufacturer:"Core Dynamics",size:"medium",hullMass:480,minimumSpeed:150,maximumSpeed:210,boost:350,baseShieldStrength:200,baseArmour:300,hardness:60,masslock:14,crew:2,heatCapacity:286,heatDissipation:45.23,reserveFuelCapacity:.72,minPitch:30,pitch:38,minRoll:90,roll:90,minYaw:19,yaw:19,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:5},{size:5},{size:4},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:19111109,retailCost:19814210},{symbol:"Federation_Gunship",name:"Federal Gunship",manufacturer:"Core Dynamics",size:"medium",hullMass:580,minimumSpeed:100,maximumSpeed:170,boost:280,baseShieldStrength:250,baseArmour:350,hardness:60,masslock:14,crew:2,heatCapacity:325,heatDissipation:51.4,reserveFuelCapacity:.82,minPitch:20,pitch:25,minRoll:80,roll:80,minYaw:18,yaw:18,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:7,sensors:5,fuelTank:4},hardpoints:[{size:3},{size:2},{size:2},{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:6},{size:6},{size:5},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:34814912,retailCost:35814210},{symbol:"Viper_MkIV",name:"Viper Mk IV",manufacturer:"Faulcon DeLacy",size:"small",hullMass:190,minimumSpeed:175,maximumSpeed:270,boost:340,baseShieldStrength:150,baseArmour:150,hardness:35,masslock:8,crew:1,heatCapacity:209,heatDissipation:28.98,reserveFuelCapacity:.46,minPitch:25,pitch:30,minRoll:90,roll:90,minYaw:12,yaw:12,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:2,powerDistributor:3,sensors:3,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:2,optional:[{size:4},{size:4},{size:3},{size:3,restriction:"military"},{size:2},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:312797,retailCost:437931},{symbol:"CobraMkIV",name:"Cobra Mk IV",manufacturer:"Faulcon DeLacy",size:"small",entitlement:"ELITE_HORIZONS_V_COBRA_MK_IV_1000",hullMass:210,minimumSpeed:100,maximumSpeed:200,boost:300,baseShieldStrength:120,baseArmour:120,hardness:35,masslock:8,crew:2,heatCapacity:228,heatDissipation:31.68,reserveFuelCapacity:.51,minPitch:25,pitch:30,minRoll:90,roll:90,minYaw:10,yaw:10,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:3,powerDistributor:3,sensors:3,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1},{size:1}],utility:2,optional:[{size:4},{size:4},{size:4},{size:4},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:623374,retailCost:764720},{symbol:"Independant_Trader",name:"Keelback",manufacturer:"Lakon Spaceways",size:"medium",hullMass:180,minimumSpeed:90,maximumSpeed:200,boost:300,baseShieldStrength:135,baseArmour:270,hardness:45,masslock:8,crew:2,heatCapacity:215,heatDissipation:29.78,reserveFuelCapacity:.39,minPitch:20,pitch:27,minRoll:100,roll:100,minYaw:15,yaw:15,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:1,powerDistributor:3,sensors:2,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:3,optional:[{size:5,name:"Slot01_Size5"},{size:5,name:"Slot02_Size5"},{size:4,name:"Slot03_Size3"},{size:3,name:"Slot04_Size3"},{size:2,name:"Slot05_Size2"},{size:2,name:"Slot06_Size2"},{size:1,name:"Slot07_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:2946463,retailCost:3126154},{symbol:"Asp_Scout",name:"Asp Scout",manufacturer:"Lakon Spaceways",size:"medium",hullMass:150,minimumSpeed:110,maximumSpeed:220,boost:300,baseShieldStrength:120,baseArmour:180,hardness:52,masslock:9,crew:2,heatCapacity:210,heatDissipation:29.65,reserveFuelCapacity:.47,minPitch:35,pitch:40,minRoll:110,roll:110,minYaw:15,yaw:15,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:3,powerDistributor:4,sensors:4,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:2,optional:[{size:5,name:"Slot01_Size4"},{size:4,name:"Slot02_Size4"},{size:3,name:"Slot03_Size3"},{size:3,name:"Slot04_Size3"},{size:2,name:"Slot05_Size2"},{size:2,name:"Slot06_Size2"},{size:1,name:"Slot07_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:3819823,retailCost:3961154},{symbol:"Type9_Military",name:"Type-10 Defender",manufacturer:"Lakon Spaceways",size:"large",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:1200,minimumSpeed:150,maximumSpeed:180,boost:220,baseShieldStrength:320,baseArmour:580,hardness:75,masslock:26,crew:4,heatCapacity:335,heatDissipation:67.15,reserveFuelCapacity:.77,minPitch:18,pitch:22,minRoll:40,roll:40,minYaw:8,yaw:8,core:{powerPlant:8,thrusters:7,frameShiftDrive:7,lifeSupport:5,powerDistributor:7,sensors:4,fuelTank:6},hardpoints:[{size:3},{size:3},{size:3},{size:3},{size:2},{size:2},{size:2},{size:1},{size:1}],utility:8,optional:[{size:8,name:"Slot01_Size8"},{size:7,name:"Slot02_Size7"},{size:6,name:"Slot03_Size6"},{size:5,name:"Slot04_Size5"},{size:4,name:"Slot05_Size4"},{size:4,name:"Slot06_Size4"},{size:3,name:"Slot07_Size3"},{size:3,name:"Slot08_Size3"},{size:2,name:"Slot11_Size2"},{size:5,restriction:"military",name:"Military01"},{size:5,restriction:"military",name:"Military02"},{size:1,name:"Slot12_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:121334619,retailCost:124755342},{symbol:"Krait_MkII",name:"Krait Mk II",manufacturer:"Faulcon DeLacy",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:320,minimumSpeed:150,maximumSpeed:240,boost:330,baseShieldStrength:220,baseArmour:220,hardness:55,masslock:16,crew:3,heatCapacity:300,heatDissipation:52.05,reserveFuelCapacity:.63,minPitch:26,pitch:31,minRoll:90,roll:90,minYaw:10,yaw:10,core:{powerPlant:7,thrusters:6,frameShiftDrive:5,lifeSupport:4,powerDistributor:7,sensors:6,fuelTank:5},hardpoints:[{size:3},{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:6},{size:6},{size:5},{size:5},{size:4},{size:3},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:44160710,retailCost:45814205},{symbol:"TypeX",name:"Alliance Chieftain",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:400,minimumSpeed:150,maximumSpeed:230,boost:330,baseShieldStrength:200,baseArmour:280,hardness:65,masslock:13,crew:2,heatCapacity:289,heatDissipation:46.5,reserveFuelCapacity:.77,minPitch:32,pitch:38,minRoll:90,roll:90,minYaw:16,yaw:16,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:3},{size:2},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6},{size:5},{size:4},{size:2},{size:2},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:18612476,retailCost:19382252},{symbol:"TypeX_2",name:"Alliance Crusader",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:500,minimumSpeed:110,maximumSpeed:180,boost:300,baseShieldStrength:200,baseArmour:300,hardness:65,masslock:13,crew:4,heatCapacity:316,heatDissipation:45.23,reserveFuelCapacity:.77,minPitch:30,pitch:32,minRoll:80,roll:80,minYaw:16,yaw:16,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:2},{size:2},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6},{size:5},{size:3},{size:3},{size:2},{size:2},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:22096565,retailCost:22866341},{symbol:"TypeX_3",name:"Alliance Challenger",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:450,minimumSpeed:130,maximumSpeed:200,boost:310,baseShieldStrength:220,baseArmour:300,hardness:65,masslock:13,crew:2,heatCapacity:316,heatDissipation:51.4,reserveFuelCapacity:.77,minPitch:32,pitch:35,minRoll:90,roll:90,minYaw:16,yaw:16,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6},{size:6},{size:3},{size:3},{size:2},{size:2},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:29569804,retailCost:30472252},{symbol:"Krait_Light",name:"Krait Phantom",manufacturer:"Faulcon DeLacy",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:270,minimumSpeed:160,maximumSpeed:250,boost:350,baseShieldStrength:200,baseArmour:180,hardness:55,masslock:14,crew:2,heatCapacity:300,heatDissipation:52.05,reserveFuelCapacity:.63,minPitch:26,pitch:31,minRoll:90,roll:90,minYaw:10,yaw:10,core:{powerPlant:7,thrusters:6,frameShiftDrive:5,lifeSupport:4,powerDistributor:7,sensors:6,fuelTank:5},hardpoints:[{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:6},{size:5},{size:5},{size:5},{size:3},{size:3},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:35741519,retailCost:37472252},{symbol:"Mamba",name:"Mamba",manufacturer:"Zorgon Peterson",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:250,minimumSpeed:240,maximumSpeed:310,boost:380,baseShieldStrength:270,baseArmour:230,hardness:70,masslock:12,crew:2,heatCapacity:165,heatDissipation:41.63,reserveFuelCapacity:.5,minPitch:27,pitch:30,minRoll:75,roll:75,minYaw:10,yaw:10,core:{powerPlant:6,thrusters:5,frameShiftDrive:4,lifeSupport:4,powerDistributor:6,sensors:4,fuelTank:3},hardpoints:[{size:4},{size:3},{size:3},{size:1},{size:1}],utility:6,optional:[{size:5},{size:4},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:55442918,retailCost:55867040},{symbol:"Python_NX",name:"Python Mk II",manufacturer:"Faulcon DeLacy",size:"medium",entitlement:"ELITE_V_PYTHON_NX",hullMass:450,minimumSpeed:220,maximumSpeed:256,boost:345,baseShieldStrength:335,baseArmour:280,hardness:70,masslock:17,crew:2,heatCapacity:260,heatDissipation:52.05,reserveFuelCapacity:.83,minPitch:30,pitch:37,minRoll:91,roll:91,minYaw:12.5,yaw:12.5,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:4,powerDistributor:6,sensors:5,fuelTank:4},hardpoints:[{size:3},{size:3},{size:3},{size:3},{size:2},{size:2}],utility:6,optional:[{size:6},{size:4},{size:3},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:64743724,retailCost:67527359},{symbol:"Type8",name:"Type-8 Transporter",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_V_TYPE8",hullMass:400,minimumSpeed:90,maximumSpeed:200,boost:340,baseShieldStrength:228,baseArmour:440,hardness:58,masslock:18,crew:1,heatCapacity:236,heatDissipation:36.45,reserveFuelCapacity:.52,minPitch:18,pitch:28,minRoll:60,roll:60,minYaw:16,yaw:18,core:{powerPlant:5,thrusters:5,frameShiftDrive:5,lifeSupport:3,powerDistributor:4,sensors:3,fuelTank:5},hardpoints:[{size:2,name:"MediumHardpoint1"},{size:1,name:"SmallHardpoint1"},{size:1,name:"SmallHardpoint2"},{size:1,name:"SmallHardpoint4"},{size:1,name:"SmallHardpoint5"},{size:1,name:"SmallHardpoint6"}],utility:4,optional:[{size:7},{size:6},{size:6},{size:6},{size:5},{size:5},{size:4},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:34820576,retailCost:38453970},{symbol:"Mandalay",name:"Mandalay",manufacturer:"Zorgon Peterson",size:"medium",entitlement:"ELITE_V_MANDALAY",hullMass:230,minimumSpeed:200,maximumSpeed:280,boost:350,baseShieldStrength:220,baseArmour:230,hardness:55,masslock:12,crew:2,heatCapacity:245,heatDissipation:51,reserveFuelCapacity:.5,minPitch:27,pitch:35,minRoll:96,roll:96,minYaw:28,yaw:28,core:{powerPlant:5,thrusters:5,frameShiftDrive:5,lifeSupport:4,powerDistributor:5,sensors:5,fuelTank:5},hardpoints:[{size:2},{size:2},{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:6},{size:5},{size:4},{size:4},{size:3},{size:3},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:16527192,retailCost:17639220},{symbol:"CobraMkV",name:"Cobra Mk V",manufacturer:"Faulcon DeLacy",size:"small",entitlement:"ELITE_V_COBRA_MKV",hullMass:150,minimumSpeed:230,maximumSpeed:290,boost:410,baseShieldStrength:160,baseArmour:180,hardness:40,masslock:8,crew:3,heatCapacity:245,heatDissipation:40.63,reserveFuelCapacity:.49,minPitch:40,pitch:45,minRoll:110,roll:120,minYaw:29,yaw:33,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:3,powerDistributor:4,sensors:3,fuelTank:4},hardpoints:[{size:2},{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:5},{size:4},{size:4},{size:4},{size:3},{size:3},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:1477085,retailCost:1989461},{symbol:"Corsair",name:"Corsair",manufacturer:"Gutamaya",size:"medium",entitlement:"ELITE_V_CORSAIR",hullMass:265,minimumSpeed:180,maximumSpeed:280,boost:355,baseShieldStrength:235,baseArmour:270,hardness:65,masslock:17,crew:2,heatCapacity:280,heatDissipation:52.05,reserveFuelCapacity:.41,minPitch:23,pitch:26,minRoll:80,roll:80,minYaw:9,yaw:10,core:{powerPlant:7,thrusters:7,frameShiftDrive:5,lifeSupport:4,powerDistributor:7,sensors:6,fuelTank:5},hardpoints:[{size:3},{size:3},{size:3},{size:2},{size:2},{size:2}],utility:4,optional:[{size:6},{size:6},{size:6},{size:5},{size:5},{size:5},{size:4},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:76884160,retailCost:79304750},{symbol:"PantherMkII",name:"Panther Clipper Mk II",manufacturer:"Zorgon Peterson",size:"large",entitlement:"ELITE_V_PANTHER_MKII",hullMass:1200,minimumSpeed:60,maximumSpeed:180,boost:250,baseShieldStrength:350,baseArmour:620,hardness:70,masslock:25,crew:4,heatCapacity:329,heatDissipation:62.45,reserveFuelCapacity:1.11,minPitch:14,pitch:18,minRoll:20,roll:20,minYaw:8,yaw:10,core:{powerPlant:8,thrusters:8,frameShiftDrive:7,lifeSupport:5,powerDistributor:7,sensors:5,fuelTank:7},hardpoints:[{size:3},{size:3},{size:2},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1},{size:1}],utility:6,optional:[{size:8,restriction:"cargo",name:"Cargo01"},{size:8,name:"Slot01_Size8"},{size:7,restriction:"cargo",name:"Cargo02"},{size:7,name:"Slot02_Size7"},{size:6,name:"Slot03_Size6"},{size:6,name:"Slot04_Size6"},{size:6,name:"Slot05_Size6"},{size:5,name:"Slot06_Size5"},{size:5,name:"Slot07_Size5"},{size:4,name:"Slot08_Size4"},{size:2,name:"Slot09_Size2"},{size:1,name:"Slot10_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:286905678,retailCost:301348586},{symbol:"LakonMiner",name:"Type-11 Prospector",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_V_LAKON_MINER",hullMass:320,minimumSpeed:190,maximumSpeed:270,boost:365,baseShieldStrength:275,baseArmour:350,hardness:58,masslock:15,crew:3,heatCapacity:300,heatDissipation:52.05,reserveFuelCapacity:.6,minPitch:22,pitch:25,minRoll:37.5,roll:37.5,minYaw:22,yaw:22,core:{powerPlant:6,thrusters:5,frameShiftDrive:5,lifeSupport:3,powerDistributor:7,sensors:3,fuelTank:5},hardpoints:[{size:3,restriction:"mining",name:"LargeMiningHardpoint1"},{size:2,restriction:"mining",name:"MediumMiningHardpoint1"},{size:2,restriction:"mining",name:"MediumMiningHardpoint2"},{size:2,name:"MediumHardpoint3"},{size:1,restriction:"mining",name:"SmallMiningHardpoint1"},{size:1,name:"SmallHardpoint2"},{size:1,name:"SmallHardpoint3"},{size:1,name:"SmallHardpoint4"}],utility:4,optional:[{size:6,name:"Slot01_Size6"},{size:6,name:"Slot02_Size6"},{size:6,name:"Slot03_Size6"},{size:5,name:"Slot04_Size5"},{size:5,name:"Slot05_Size5"},{size:5,restriction:"limpetController",name:"LimpetController01"},{size:5,restriction:"vesselHangar",name:"FighterBay01"},{size:4,name:"Slot06_Size4"},{size:3,name:"Slot07_Size3"},{size:2,name:"Slot08_Size2"},{size:1,name:"Slot09_Size1"},{size:1,name:"Slot10_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:66346710,retailCost:67861850},{symbol:"Explorer_NX",name:"Caspian Explorer",manufacturer:"Zorgon Peterson",size:"large",entitlement:"ELITE_V_EXPLORER_NX",hullMass:950,minimumSpeed:160,maximumSpeed:210,boost:290,baseShieldStrength:500,baseArmour:345,hardness:60,masslock:21,crew:4,heatCapacity:341,heatDissipation:71.93,reserveFuelCapacity:1.14,minPitch:23,pitch:30,minRoll:75,roll:75,minYaw:14,yaw:14,core:{powerPlant:8,thrusters:7,frameShiftDrive:8,lifeSupport:5,powerDistributor:7,sensors:8,fuelTank:7},hardpoints:[{size:3,name:"LargeHardpoint1"},{size:2,name:"MediumHardpoint6"},{size:2,name:"MediumHardpoint5"},{size:2,name:"MediumHardpoint1"},{size:2,name:"MediumHardpoint2"},{size:2,name:"MediumHardpoint3"},{size:2,name:"MediumHardpoint4"}],utility:6,optional:[{size:7},{size:6},{size:6},{size:5},{size:5},{size:5},{size:5},{size:4},{size:4},{size:3},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:189326510,retailCost:194861290},{symbol:"SmallCombat01_NX",name:"Kestrel Mk II",manufacturer:"Core Dynamics",size:"small",entitlement:"ELITE_V_SMALL_COMBAT_01",hullMass:190,minimumSpeed:240,maximumSpeed:270,boost:360,baseShieldStrength:225,baseArmour:70,hardness:55,masslock:11,crew:1,heatCapacity:263,heatDissipation:37.93,reserveFuelCapacity:.61,minPitch:40,pitch:50,minRoll:120,roll:120,minYaw:19,yaw:24,core:{powerPlant:5,thrusters:5,frameShiftDrive:4,lifeSupport:1,powerDistributor:5,sensors:2,fuelTank:4},hardpoints:[{size:3},{size:3},{size:3},{size:1},{size:1}],utility:4,optional:[{size:5},{size:4},{size:4,restriction:"military"},{size:3},{size:2},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:13776380,retailCost:14273820},{symbol:"MediumTransport01",name:"Lynx Highliner",manufacturer:"Zorgon Peterson",size:"medium",entitlement:"ELITE_V_MEDIUM_TRANSPORT_01",hullMass:260,minimumSpeed:210,maximumSpeed:285,boost:350,baseShieldStrength:200,baseArmour:350,hardness:55,masslock:16,crew:2,heatCapacity:279,heatDissipation:49.35,reserveFuelCapacity:.75,minPitch:23,pitch:26,minRoll:60,roll:60,minYaw:19,yaw:19,core:{powerPlant:5,thrusters:6,frameShiftDrive:5,lifeSupport:6,powerDistributor:5,sensors:3,fuelTank:5},hardpoints:[{size:3},{size:2},{size:2},{size:2},{size:2}],utility:4,optional:[{size:6,name:"Slot01_Size6"},{size:6,restriction:"passenger",name:"Passenger01"},{size:6,restriction:"passenger",name:"Passenger02"},{size:5,restriction:"passenger",name:"Passenger03"},{size:5,name:"Slot02_Size5"},{size:4,name:"Slot03_Size4"},{size:4,name:"Slot04_Size4"},{size:3,name:"Slot05_Size3"},{size:2,name:"Slot06_Size2"},{size:1,name:"Slot07_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:67992080,retailCost:69289470}];var SHIPS=deepFreeze(ships_default);var SHIPS_BY_SYMBOL=/* @__PURE__ */createKeyIndex(SHIPS,"symbol");var SHIPS_BY_NAME=/* @__PURE__ */createKeyIndex(SHIPS,"name");function getShipBySymbol(symbol){return findInKeyIndex(SHIPS_BY_SYMBOL,symbol,"getShipBySymbol: symbol")}function getShipByName(name){return findInKeyIndex(SHIPS_BY_NAME,name,"getShipByName: name")}function getShipSlots(symbol){requireStringIfPresent(symbol,"getShipSlots: symbol");const ship=getShipBySymbol(symbol);if(!ship)return null;return{symbol:ship.symbol,core:ship.core,hardpoints:ship.hardpoints,utility:ship.utility,optional:ship.optional}}export{SHIPS,getShipByName,getShipBySymbol,getShipSlots};//# sourceMappingURL=chunk-6UNAD74Z.js.map
1
+ import{findInKeyIndex,createKeyIndex}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var ships_default=[{symbol:"SideWinder",name:"Sidewinder",manufacturer:"Faulcon DeLacy",size:"small",hullMass:25,minimumSpeed:100,maximumSpeed:220,boost:320,baseShieldStrength:40,baseArmour:60,hardness:20,masslock:6,crew:1,heatCapacity:140,heatDissipation:18.15,reserveFuelCapacity:.3,minPitch:34,pitch:42,minRoll:110,roll:110,minYaw:16,yaw:16,core:{powerPlant:2,thrusters:2,frameShiftDrive:2,lifeSupport:1,powerDistributor:1,sensors:1,fuelTank:1},hardpoints:[{size:1},{size:1}],utility:2,optional:[{size:2},{size:2},{size:1},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:4588,retailCost:32e3},{symbol:"Eagle",name:"Eagle",manufacturer:"Core Dynamics",size:"small",hullMass:50,minimumSpeed:180,maximumSpeed:240,boost:350,baseShieldStrength:60,baseArmour:40,hardness:28,masslock:6,crew:1,heatCapacity:165,heatDissipation:21.48,reserveFuelCapacity:.34,minPitch:40,pitch:50,minRoll:120,roll:120,minYaw:18,yaw:18,core:{powerPlant:2,thrusters:3,frameShiftDrive:3,lifeSupport:1,powerDistributor:2,sensors:2,fuelTank:2},hardpoints:[{size:1},{size:1},{size:1}],utility:1,optional:[{size:3},{size:2},{size:2,restriction:"military"},{size:1},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:10947,retailCost:44800},{symbol:"Hauler",name:"Hauler",manufacturer:"Zorgon Peterson",size:"small",hullMass:14,minimumSpeed:70,maximumSpeed:200,boost:300,baseShieldStrength:50,baseArmour:100,hardness:20,masslock:6,crew:1,heatCapacity:123,heatDissipation:16.2,reserveFuelCapacity:.25,minPitch:30,pitch:36,minRoll:100,roll:100,minYaw:14,yaw:14,core:{powerPlant:2,thrusters:2,frameShiftDrive:2,lifeSupport:1,powerDistributor:1,sensors:1,fuelTank:2},hardpoints:[{size:1}],utility:2,optional:[{size:3},{size:3},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:30308,retailCost:52720},{symbol:"Adder",name:"Adder",manufacturer:"Zorgon Peterson",size:"small",hullMass:35,minimumSpeed:100,maximumSpeed:220,boost:320,baseShieldStrength:60,baseArmour:90,hardness:35,masslock:7,crew:2,heatCapacity:170,heatDissipation:22.6,reserveFuelCapacity:.36,minPitch:30,pitch:38,minRoll:100,roll:100,minYaw:14,yaw:14,core:{powerPlant:3,thrusters:3,frameShiftDrive:3,lifeSupport:1,powerDistributor:2,sensors:3,fuelTank:3},hardpoints:[{size:2},{size:1},{size:1}],utility:2,optional:[{size:3},{size:3},{size:2},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:40833,retailCost:87808},{symbol:"Viper",name:"Viper Mk III",manufacturer:"Faulcon DeLacy",size:"small",hullMass:50,minimumSpeed:200,maximumSpeed:320,boost:400,baseShieldStrength:105,baseArmour:70,hardness:35,masslock:7,crew:1,heatCapacity:195,heatDissipation:26.2,reserveFuelCapacity:.41,minPitch:30,pitch:35,minRoll:90,roll:90,minYaw:15,yaw:15,core:{powerPlant:3,thrusters:3,frameShiftDrive:3,lifeSupport:2,powerDistributor:3,sensors:3,fuelTank:2},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:2,optional:[{size:3},{size:3},{size:3,restriction:"military"},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:96733,retailCost:142931},{symbol:"CobraMkIII",name:"Cobra Mk III",manufacturer:"Faulcon DeLacy",size:"small",hullMass:180,minimumSpeed:140,maximumSpeed:280,boost:400,baseShieldStrength:80,baseArmour:120,hardness:35,masslock:8,crew:2,heatCapacity:225,heatDissipation:30.63,reserveFuelCapacity:.49,minPitch:30,pitch:40,minRoll:100,roll:100,minYaw:10,yaw:10,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:3,powerDistributor:3,sensors:3,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:2,optional:[{size:4},{size:4},{size:4},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:208372,retailCost:349718},{symbol:"Type6",name:"Type-6 Transporter",manufacturer:"Lakon Spaceways",size:"medium",hullMass:155,minimumSpeed:90,maximumSpeed:220,boost:350,baseShieldStrength:90,baseArmour:180,hardness:35,masslock:8,crew:1,heatCapacity:179,heatDissipation:24.55,reserveFuelCapacity:.39,minPitch:23,pitch:30,minRoll:100,roll:100,minYaw:17,yaw:17,core:{powerPlant:3,thrusters:4,frameShiftDrive:4,lifeSupport:2,powerDistributor:3,sensors:2,fuelTank:4},hardpoints:[{size:1},{size:1}],utility:3,optional:[{size:5},{size:5},{size:4},{size:4},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:866622,retailCost:1045945},{symbol:"Dolphin",name:"Dolphin",manufacturer:"Saud Kruger",size:"small",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:140,minimumSpeed:120,maximumSpeed:250,boost:350,baseShieldStrength:110,baseArmour:110,hardness:35,masslock:9,crew:1,heatCapacity:245,heatDissipation:56,reserveFuelCapacity:.5,minPitch:23,pitch:30,minRoll:100,roll:100,minYaw:20,yaw:20,core:{powerPlant:4,thrusters:5,frameShiftDrive:4,lifeSupport:4,powerDistributor:3,sensors:3,fuelTank:4},hardpoints:[{size:1},{size:1}],utility:3,optional:[{size:5},{size:4},{size:4},{size:3},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:1117906,retailCost:1337323},{symbol:"Type7",name:"Type-7 Transporter",manufacturer:"Lakon Spaceways",size:"large",hullMass:350,minimumSpeed:60,maximumSpeed:180,boost:300,baseShieldStrength:156,baseArmour:340,hardness:54,masslock:10,crew:1,heatCapacity:226,heatDissipation:32.45,reserveFuelCapacity:.52,minPitch:16,pitch:22,minRoll:60,roll:60,minYaw:16,yaw:22,core:{powerPlant:5,thrusters:5,frameShiftDrive:5,lifeSupport:4,powerDistributor:4,sensors:3,fuelTank:5},hardpoints:[{size:1},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6,name:"Slot01_Size6"},{size:6,name:"Slot02_Size6"},{size:6,name:"Slot03_Size5"},{size:5,name:"Slot04_Size5"},{size:5,name:"Slot05_Size4"},{size:5,name:"Slot06_Size4"},{size:3,name:"Slot07_Size2"},{size:3,name:"Slot08_Size2"},{size:2,name:"Slot09_Size2"},{size:1,name:"Slot09_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:16783094,retailCost:17472252},{symbol:"Asp",name:"Asp Explorer",manufacturer:"Lakon Spaceways",size:"medium",hullMass:280,minimumSpeed:120,maximumSpeed:250,boost:340,baseShieldStrength:140,baseArmour:210,hardness:52,masslock:11,crew:2,heatCapacity:272,heatDissipation:39.9,reserveFuelCapacity:.63,minPitch:30,pitch:38,minRoll:100,roll:100,minYaw:10,yaw:10,core:{powerPlant:5,thrusters:5,frameShiftDrive:5,lifeSupport:4,powerDistributor:4,sensors:5,fuelTank:5},hardpoints:[{size:2},{size:2},{size:1},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6},{size:5},{size:3},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:6145793,retailCost:6661154},{symbol:"Vulture",name:"Vulture",manufacturer:"Core Dynamics",size:"small",hullMass:230,minimumSpeed:190,maximumSpeed:210,boost:340,baseShieldStrength:240,baseArmour:160,hardness:55,masslock:10,crew:2,heatCapacity:237,heatDissipation:35.63,reserveFuelCapacity:.57,minPitch:35,pitch:42,minRoll:110,roll:110,minYaw:17,yaw:17,core:{powerPlant:4,thrusters:5,frameShiftDrive:4,lifeSupport:3,powerDistributor:5,sensors:4,fuelTank:3},hardpoints:[{size:3},{size:3}],utility:4,optional:[{size:5,name:"Slot01_Size5"},{size:5,restriction:"military",name:"Military01"},{size:4,name:"Slot02_Size4"},{size:2,name:"Slot03_Size2"},{size:1,name:"Slot05_Size1"},{size:1,name:"Slot06_Size1"},{size:1,name:"Slot07_Size1"},{size:1,name:"Slot08_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:4692214,retailCost:4925615},{symbol:"Empire_Trader",name:"Imperial Clipper",manufacturer:"Gutamaya",size:"large",hullMass:400,minimumSpeed:180,maximumSpeed:300,boost:380,baseShieldStrength:180,baseArmour:270,hardness:60,masslock:12,crew:2,heatCapacity:304,heatDissipation:46.8,reserveFuelCapacity:.74,minPitch:30,pitch:40,minRoll:80,roll:80,minYaw:18,yaw:18,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:5,fuelTank:4},hardpoints:[{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:7},{size:6},{size:4},{size:4},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:21116895,retailCost:22295860},{symbol:"Federation_Dropship",name:"Federal Dropship",manufacturer:"Core Dynamics",size:"medium",hullMass:580,minimumSpeed:100,maximumSpeed:180,boost:300,baseShieldStrength:200,baseArmour:300,hardness:60,masslock:14,crew:2,heatCapacity:331,heatDissipation:46.5,reserveFuelCapacity:.83,minPitch:20,pitch:30,minRoll:80,roll:80,minYaw:14,yaw:14,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:2},{size:2},{size:2},{size:2}],utility:4,optional:[{size:6,name:"Slot01_Size6"},{size:5,name:"Slot02_Size5"},{size:5,name:"Slot03_Size5"},{size:4,name:"Slot04_Size4"},{size:4,restriction:"military",name:"Military01"},{size:4,restriction:"military",name:"Military02"},{size:3,name:"Slot05_Size3"},{size:3,name:"Slot06_Size3"},{size:2,name:"Slot09_Size2"},{size:1,name:"Slot10_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:13510106,retailCost:14314210},{symbol:"Orca",name:"Orca",manufacturer:"Saud Kruger",size:"large",hullMass:290,minimumSpeed:200,maximumSpeed:300,boost:380,baseShieldStrength:220,baseArmour:220,hardness:55,masslock:15,crew:2,heatCapacity:262,heatDissipation:42.68,reserveFuelCapacity:.79,minPitch:20,pitch:25,minRoll:55,roll:55,minYaw:18,yaw:18,core:{powerPlant:5,thrusters:6,frameShiftDrive:5,lifeSupport:6,powerDistributor:5,sensors:4,fuelTank:5},hardpoints:[{size:3},{size:2},{size:2}],utility:4,optional:[{size:6},{size:5},{size:5},{size:5},{size:4},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:47800723,retailCost:48539887},{symbol:"Type9",name:"Type-9 Heavy",manufacturer:"Lakon Spaceways",size:"large",hullMass:850,minimumSpeed:40,maximumSpeed:130,boost:200,baseShieldStrength:240,baseArmour:480,hardness:65,masslock:16,crew:4,heatCapacity:289,heatDissipation:48.35,reserveFuelCapacity:.77,minPitch:15,pitch:20,minRoll:20,roll:20,minYaw:8,yaw:8,core:{powerPlant:6,thrusters:7,frameShiftDrive:6,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:6},hardpoints:[{size:2},{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:8,name:"Slot00_Size8"},{size:8,name:"Slot01_Size8"},{size:7,name:"Slot02_Size7"},{size:6,name:"Slot03_Size6"},{size:5,name:"Slot04_Size5"},{size:4,name:"Slot05_Size4"},{size:4,name:"Slot06_Size4"},{size:3,name:"Slot07_Size3"},{size:3,name:"Slot08_Size3"},{size:2,name:"Slot11_Size2"},{size:1,name:"Slot12_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:72116858,retailCost:76555842},{symbol:"Python",name:"Python",manufacturer:"Faulcon DeLacy",size:"medium",hullMass:350,minimumSpeed:140,maximumSpeed:230,boost:300,baseShieldStrength:260,baseArmour:260,hardness:65,masslock:17,crew:2,heatCapacity:300,heatDissipation:52.05,reserveFuelCapacity:.83,minPitch:24,pitch:29,minRoll:90,roll:90,minYaw:10,yaw:10,core:{powerPlant:7,thrusters:6,frameShiftDrive:5,lifeSupport:4,powerDistributor:7,sensors:6,fuelTank:5},hardpoints:[{size:3},{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:6},{size:6},{size:6},{size:5},{size:5},{size:4},{size:3},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:55324684,retailCost:56978179},{symbol:"BelugaLiner",name:"Beluga Liner",manufacturer:"Saud Kruger",size:"large",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:950,minimumSpeed:110,maximumSpeed:200,boost:280,baseShieldStrength:280,baseArmour:280,hardness:60,masslock:18,crew:4,heatCapacity:283,heatDissipation:50.85,reserveFuelCapacity:.81,minPitch:20,pitch:25,minRoll:60,roll:60,minYaw:17,yaw:17,core:{powerPlant:6,thrusters:7,frameShiftDrive:7,lifeSupport:8,powerDistributor:6,sensors:5,fuelTank:7},hardpoints:[{size:2},{size:2},{size:2},{size:2},{size:2}],utility:6,optional:[{size:6},{size:6},{size:6},{size:6},{size:5},{size:5},{size:4},{size:3},{size:3},{size:3},{size:3},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:79694761,retailCost:84532764},{symbol:"FerDeLance",name:"Fer-de-Lance",manufacturer:"Zorgon Peterson",size:"medium",hullMass:250,minimumSpeed:220,maximumSpeed:260,boost:350,baseShieldStrength:300,baseArmour:225,hardness:70,masslock:12,crew:2,heatCapacity:224,heatDissipation:41.63,reserveFuelCapacity:.67,minPitch:30,pitch:38,minRoll:90,roll:90,minYaw:12,yaw:12,core:{powerPlant:6,thrusters:5,frameShiftDrive:4,lifeSupport:4,powerDistributor:6,sensors:4,fuelTank:3},hardpoints:[{size:4},{size:2},{size:2},{size:2},{size:2}],utility:6,optional:[{size:5},{size:4},{size:4},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:51242363,retailCost:51567040},{symbol:"Anaconda",name:"Anaconda",manufacturer:"Faulcon DeLacy",size:"large",hullMass:400,minimumSpeed:80,maximumSpeed:180,boost:240,baseShieldStrength:350,baseArmour:525,hardness:65,masslock:23,crew:4,heatCapacity:334,heatDissipation:67.15,reserveFuelCapacity:1.07,minPitch:20,pitch:25,minRoll:60,roll:60,minYaw:10,yaw:10,core:{powerPlant:8,thrusters:7,frameShiftDrive:6,lifeSupport:5,powerDistributor:8,sensors:8,fuelTank:5},hardpoints:[{size:4},{size:3},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1}],utility:8,optional:[{size:7,name:"Slot01_Size7"},{size:6,name:"Slot02_Size6"},{size:6,name:"Slot03_Size6"},{size:6,name:"Slot04_Size6"},{size:5,name:"Slot05_Size5"},{size:5,name:"Slot06_Size5"},{size:5,name:"Slot07_Size5"},{size:5,restriction:"military",name:"Military01"},{size:4,name:"Slot08_Size4"},{size:4,name:"Slot09_Size4"},{size:4,name:"Slot10_Size4"},{size:2,name:"Slot13_Size2"},{size:1,name:"Slot14_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:142456440,retailCost:146969451},{symbol:"Federation_Corvette",name:"Federal Corvette",manufacturer:"Core Dynamics",size:"large",hullMass:900,minimumSpeed:100,maximumSpeed:200,boost:260,baseShieldStrength:555,baseArmour:370,hardness:70,masslock:24,crew:4,heatCapacity:333,heatDissipation:70.33,reserveFuelCapacity:1.13,minPitch:22,pitch:28,minRoll:75,roll:75,minYaw:8,yaw:8,core:{powerPlant:8,thrusters:7,frameShiftDrive:6,lifeSupport:5,powerDistributor:8,sensors:8,fuelTank:5},hardpoints:[{size:4},{size:4},{size:3},{size:2},{size:2},{size:1},{size:1}],utility:8,optional:[{size:7},{size:7},{size:7},{size:6},{size:6},{size:5},{size:5},{size:5,restriction:"military"},{size:5,restriction:"military"},{size:4},{size:4},{size:3},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:183156068,retailCost:187969450},{symbol:"Cutter",name:"Imperial Cutter",manufacturer:"Gutamaya",size:"large",hullMass:1100,minimumSpeed:160,maximumSpeed:200,boost:320,baseShieldStrength:600,baseArmour:400,hardness:70,masslock:26,crew:4,heatCapacity:327,heatDissipation:72.58,reserveFuelCapacity:1.16,minPitch:14,pitch:18,minRoll:45,roll:45,minYaw:8,yaw:8,core:{powerPlant:8,thrusters:8,frameShiftDrive:7,lifeSupport:7,powerDistributor:7,sensors:7,fuelTank:6},hardpoints:[{size:4},{size:3},{size:3},{size:2},{size:2},{size:2},{size:2}],utility:8,optional:[{size:8},{size:8},{size:6},{size:6},{size:6},{size:5},{size:5},{size:5,restriction:"military"},{size:5,restriction:"military"},{size:4},{size:3},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:200493413,retailCost:208969451},{symbol:"DiamondBack",name:"Diamondback Scout",manufacturer:"Lakon Spaceways",size:"small",hullMass:170,minimumSpeed:170,maximumSpeed:280,boost:380,baseShieldStrength:120,baseArmour:120,hardness:40,masslock:8,crew:1,heatCapacity:346,heatDissipation:48.05,reserveFuelCapacity:.49,minPitch:35,pitch:42,minRoll:100,roll:100,minYaw:15,yaw:15,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:2,powerDistributor:3,sensors:2,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:3},{size:3},{size:3},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:463926,retailCost:564329},{symbol:"Empire_Courier",name:"Imperial Courier",manufacturer:"Gutamaya",size:"small",hullMass:35,minimumSpeed:220,maximumSpeed:280,boost:380,baseShieldStrength:200,baseArmour:80,hardness:30,masslock:7,crew:1,heatCapacity:230,heatDissipation:25.05,reserveFuelCapacity:.41,minPitch:32,pitch:38,minRoll:90,roll:90,minYaw:16,yaw:16,core:{powerPlant:4,thrusters:3,frameShiftDrive:3,lifeSupport:1,powerDistributor:3,sensors:2,fuelTank:3},hardpoints:[{size:2},{size:2},{size:2}],utility:4,optional:[{size:3},{size:3},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:2484137,retailCost:2542931},{symbol:"DiamondBackXL",name:"Diamondback Explorer",manufacturer:"Lakon Spaceways",size:"small",hullMass:260,minimumSpeed:160,maximumSpeed:260,boost:340,baseShieldStrength:150,baseArmour:150,hardness:42,masslock:10,crew:1,heatCapacity:351,heatDissipation:50.55,reserveFuelCapacity:.52,minPitch:28,pitch:35,minRoll:90,roll:90,minYaw:13,yaw:13,core:{powerPlant:4,thrusters:4,frameShiftDrive:5,lifeSupport:3,powerDistributor:4,sensors:3,fuelTank:5},hardpoints:[{size:3},{size:2},{size:2}],utility:4,optional:[{size:4},{size:4},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:1638277,retailCost:1894760},{symbol:"Empire_Eagle",name:"Imperial Eagle",manufacturer:"Gutamaya",size:"small",hullMass:50,minimumSpeed:210,maximumSpeed:300,boost:400,baseShieldStrength:80,baseArmour:60,hardness:28,masslock:6,crew:1,heatCapacity:163,heatDissipation:21.2,reserveFuelCapacity:.37,minPitch:30,pitch:40,minRoll:100,roll:100,minYaw:15,yaw:15,core:{powerPlant:3,thrusters:3,frameShiftDrive:3,lifeSupport:1,powerDistributor:2,sensors:2,fuelTank:2},hardpoints:[{size:2},{size:1},{size:1}],utility:1,optional:[{size:3},{size:2},{size:2,restriction:"military"},{size:1},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:73023,retailCost:110830},{symbol:"Federation_Dropship_MkII",name:"Federal Assault Ship",manufacturer:"Core Dynamics",size:"medium",hullMass:480,minimumSpeed:150,maximumSpeed:210,boost:350,baseShieldStrength:200,baseArmour:300,hardness:60,masslock:14,crew:2,heatCapacity:286,heatDissipation:45.23,reserveFuelCapacity:.72,minPitch:30,pitch:38,minRoll:90,roll:90,minYaw:19,yaw:19,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:5},{size:5},{size:4},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:19111109,retailCost:19814210},{symbol:"Federation_Gunship",name:"Federal Gunship",manufacturer:"Core Dynamics",size:"medium",hullMass:580,minimumSpeed:100,maximumSpeed:170,boost:280,baseShieldStrength:250,baseArmour:350,hardness:60,masslock:14,crew:2,heatCapacity:325,heatDissipation:51.4,reserveFuelCapacity:.82,minPitch:20,pitch:25,minRoll:80,roll:80,minYaw:18,yaw:18,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:7,sensors:5,fuelTank:4},hardpoints:[{size:3},{size:2},{size:2},{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:6},{size:6},{size:5},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:34814912,retailCost:35814210},{symbol:"Viper_MkIV",name:"Viper Mk IV",manufacturer:"Faulcon DeLacy",size:"small",hullMass:190,minimumSpeed:175,maximumSpeed:270,boost:340,baseShieldStrength:150,baseArmour:150,hardness:35,masslock:8,crew:1,heatCapacity:209,heatDissipation:28.98,reserveFuelCapacity:.46,minPitch:25,pitch:30,minRoll:90,roll:90,minYaw:12,yaw:12,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:2,powerDistributor:3,sensors:3,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:2,optional:[{size:4},{size:4},{size:3},{size:3,restriction:"military"},{size:2},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:312797,retailCost:437931},{symbol:"CobraMkIV",name:"Cobra Mk IV",manufacturer:"Faulcon DeLacy",size:"small",entitlement:"ELITE_HORIZONS_V_COBRA_MK_IV_1000",hullMass:210,minimumSpeed:100,maximumSpeed:200,boost:300,baseShieldStrength:120,baseArmour:120,hardness:35,masslock:8,crew:2,heatCapacity:228,heatDissipation:31.68,reserveFuelCapacity:.51,minPitch:25,pitch:30,minRoll:90,roll:90,minYaw:10,yaw:10,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:3,powerDistributor:3,sensors:3,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1},{size:1}],utility:2,optional:[{size:4},{size:4},{size:4},{size:4},{size:3},{size:3},{size:2},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:623374,retailCost:764720},{symbol:"Independant_Trader",name:"Keelback",manufacturer:"Lakon Spaceways",size:"medium",hullMass:180,minimumSpeed:90,maximumSpeed:200,boost:300,baseShieldStrength:135,baseArmour:270,hardness:45,masslock:8,crew:2,heatCapacity:215,heatDissipation:29.78,reserveFuelCapacity:.39,minPitch:20,pitch:27,minRoll:100,roll:100,minYaw:15,yaw:15,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:1,powerDistributor:3,sensors:2,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:3,optional:[{size:5,name:"Slot01_Size5"},{size:5,name:"Slot02_Size5"},{size:4,name:"Slot03_Size3"},{size:3,name:"Slot04_Size3"},{size:2,name:"Slot05_Size2"},{size:2,name:"Slot06_Size2"},{size:1,name:"Slot07_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:2946463,retailCost:3126154},{symbol:"Asp_Scout",name:"Asp Scout",manufacturer:"Lakon Spaceways",size:"medium",hullMass:150,minimumSpeed:110,maximumSpeed:220,boost:300,baseShieldStrength:120,baseArmour:180,hardness:52,masslock:9,crew:2,heatCapacity:210,heatDissipation:29.65,reserveFuelCapacity:.47,minPitch:35,pitch:40,minRoll:110,roll:110,minYaw:15,yaw:15,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:3,powerDistributor:4,sensors:4,fuelTank:4},hardpoints:[{size:2},{size:2},{size:1},{size:1}],utility:2,optional:[{size:5,name:"Slot01_Size4"},{size:4,name:"Slot02_Size4"},{size:3,name:"Slot03_Size3"},{size:3,name:"Slot04_Size3"},{size:2,name:"Slot05_Size2"},{size:2,name:"Slot06_Size2"},{size:1,name:"Slot07_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:3819823,retailCost:3961154},{symbol:"Type9_Military",name:"Type-10 Defender",manufacturer:"Lakon Spaceways",size:"large",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:1200,minimumSpeed:150,maximumSpeed:180,boost:220,baseShieldStrength:320,baseArmour:580,hardness:75,masslock:26,crew:4,heatCapacity:335,heatDissipation:67.15,reserveFuelCapacity:.77,minPitch:18,pitch:22,minRoll:40,roll:40,minYaw:8,yaw:8,core:{powerPlant:8,thrusters:7,frameShiftDrive:7,lifeSupport:5,powerDistributor:7,sensors:4,fuelTank:6},hardpoints:[{size:3},{size:3},{size:3},{size:3},{size:2},{size:2},{size:2},{size:1},{size:1}],utility:8,optional:[{size:8,name:"Slot01_Size8"},{size:7,name:"Slot02_Size7"},{size:6,name:"Slot03_Size6"},{size:5,name:"Slot04_Size5"},{size:4,name:"Slot05_Size4"},{size:4,name:"Slot06_Size4"},{size:3,name:"Slot07_Size3"},{size:3,name:"Slot08_Size3"},{size:2,name:"Slot11_Size2"},{size:5,restriction:"military",name:"Military01"},{size:5,restriction:"military",name:"Military02"},{size:1,name:"Slot12_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:121334619,retailCost:124755342},{symbol:"Krait_MkII",name:"Krait Mk II",manufacturer:"Faulcon DeLacy",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:320,minimumSpeed:150,maximumSpeed:240,boost:330,baseShieldStrength:220,baseArmour:220,hardness:55,masslock:16,crew:3,heatCapacity:300,heatDissipation:52.05,reserveFuelCapacity:.63,minPitch:26,pitch:31,minRoll:90,roll:90,minYaw:10,yaw:10,core:{powerPlant:7,thrusters:6,frameShiftDrive:5,lifeSupport:4,powerDistributor:7,sensors:6,fuelTank:5},hardpoints:[{size:3},{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:6},{size:6},{size:5},{size:5},{size:4},{size:3},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:44160710,retailCost:45814205},{symbol:"TypeX",name:"Alliance Chieftain",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:400,minimumSpeed:150,maximumSpeed:230,boost:330,baseShieldStrength:200,baseArmour:280,hardness:65,masslock:13,crew:2,heatCapacity:289,heatDissipation:46.5,reserveFuelCapacity:.77,minPitch:32,pitch:38,minRoll:90,roll:90,minYaw:16,yaw:16,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:3},{size:2},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6},{size:5},{size:4},{size:2},{size:2},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:18612476,retailCost:19382252},{symbol:"TypeX_2",name:"Alliance Crusader",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:500,minimumSpeed:110,maximumSpeed:180,boost:300,baseShieldStrength:200,baseArmour:300,hardness:65,masslock:13,crew:4,heatCapacity:316,heatDissipation:45.23,reserveFuelCapacity:.77,minPitch:30,pitch:32,minRoll:80,roll:80,minYaw:16,yaw:16,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:2},{size:2},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6},{size:5},{size:3},{size:3},{size:2},{size:2},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:22096565,retailCost:22866341},{symbol:"TypeX_3",name:"Alliance Challenger",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:450,minimumSpeed:130,maximumSpeed:200,boost:310,baseShieldStrength:220,baseArmour:300,hardness:65,masslock:13,crew:2,heatCapacity:316,heatDissipation:51.4,reserveFuelCapacity:.77,minPitch:32,pitch:35,minRoll:90,roll:90,minYaw:16,yaw:16,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:5,powerDistributor:6,sensors:4,fuelTank:4},hardpoints:[{size:3},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1}],utility:4,optional:[{size:6},{size:6},{size:3},{size:3},{size:2},{size:2},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:4,restriction:"military"},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:29569804,retailCost:30472252},{symbol:"Krait_Light",name:"Krait Phantom",manufacturer:"Faulcon DeLacy",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:270,minimumSpeed:160,maximumSpeed:250,boost:350,baseShieldStrength:200,baseArmour:180,hardness:55,masslock:14,crew:2,heatCapacity:300,heatDissipation:52.05,reserveFuelCapacity:.63,minPitch:26,pitch:31,minRoll:90,roll:90,minYaw:10,yaw:10,core:{powerPlant:7,thrusters:6,frameShiftDrive:5,lifeSupport:4,powerDistributor:7,sensors:6,fuelTank:5},hardpoints:[{size:3},{size:3},{size:2},{size:2}],utility:4,optional:[{size:6},{size:5},{size:5},{size:5},{size:3},{size:3},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:35741519,retailCost:37472252},{symbol:"Mamba",name:"Mamba",manufacturer:"Zorgon Peterson",size:"medium",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",hullMass:250,minimumSpeed:240,maximumSpeed:310,boost:380,baseShieldStrength:270,baseArmour:230,hardness:70,masslock:12,crew:2,heatCapacity:165,heatDissipation:41.63,reserveFuelCapacity:.5,minPitch:27,pitch:30,minRoll:75,roll:75,minYaw:10,yaw:10,core:{powerPlant:6,thrusters:5,frameShiftDrive:4,lifeSupport:4,powerDistributor:6,sensors:4,fuelTank:3},hardpoints:[{size:4},{size:3},{size:3},{size:1},{size:1}],utility:6,optional:[{size:5},{size:4},{size:3},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:55442918,retailCost:55867040},{symbol:"Python_NX",name:"Python Mk II",manufacturer:"Faulcon DeLacy",size:"medium",entitlement:"ELITE_V_PYTHON_NX",hullMass:450,minimumSpeed:220,maximumSpeed:256,boost:345,baseShieldStrength:335,baseArmour:280,hardness:70,masslock:17,crew:2,heatCapacity:260,heatDissipation:52.05,reserveFuelCapacity:.83,minPitch:30,pitch:37,minRoll:91,roll:91,minYaw:12.5,yaw:12.5,core:{powerPlant:6,thrusters:6,frameShiftDrive:5,lifeSupport:4,powerDistributor:6,sensors:5,fuelTank:4},hardpoints:[{size:3},{size:3},{size:3},{size:3},{size:2},{size:2}],utility:6,optional:[{size:6},{size:4},{size:3},{size:2},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:64743724,retailCost:67527359},{symbol:"Type8",name:"Type-8 Transporter",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_V_TYPE8",hullMass:400,minimumSpeed:90,maximumSpeed:200,boost:340,baseShieldStrength:228,baseArmour:440,hardness:58,masslock:18,crew:1,heatCapacity:236,heatDissipation:36.45,reserveFuelCapacity:.52,minPitch:18,pitch:28,minRoll:60,roll:60,minYaw:16,yaw:18,core:{powerPlant:5,thrusters:5,frameShiftDrive:5,lifeSupport:3,powerDistributor:4,sensors:3,fuelTank:5},hardpoints:[{size:2,name:"MediumHardpoint1"},{size:1,name:"SmallHardpoint1"},{size:1,name:"SmallHardpoint2"},{size:1,name:"SmallHardpoint4"},{size:1,name:"SmallHardpoint5"},{size:1,name:"SmallHardpoint6"}],utility:4,optional:[{size:7},{size:6},{size:6},{size:6},{size:5},{size:5},{size:4},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:34820576,retailCost:38453970},{symbol:"Mandalay",name:"Mandalay",manufacturer:"Zorgon Peterson",size:"medium",entitlement:"ELITE_V_MANDALAY",hullMass:230,minimumSpeed:200,maximumSpeed:280,boost:350,baseShieldStrength:220,baseArmour:230,hardness:55,masslock:12,crew:2,heatCapacity:245,heatDissipation:51,reserveFuelCapacity:.5,minPitch:27,pitch:35,minRoll:96,roll:96,minYaw:28,yaw:28,core:{powerPlant:5,thrusters:5,frameShiftDrive:5,lifeSupport:4,powerDistributor:5,sensors:5,fuelTank:5},hardpoints:[{size:2},{size:2},{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:6},{size:5},{size:4},{size:4},{size:3},{size:3},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:16527192,retailCost:17639220},{symbol:"CobraMkV",name:"Cobra Mk V",manufacturer:"Faulcon DeLacy",size:"small",entitlement:"ELITE_V_COBRA_MKV",hullMass:150,minimumSpeed:230,maximumSpeed:290,boost:410,baseShieldStrength:160,baseArmour:180,hardness:40,masslock:8,crew:3,heatCapacity:245,heatDissipation:40.63,reserveFuelCapacity:.49,minPitch:40,pitch:45,minRoll:110,roll:120,minYaw:29,yaw:33,core:{powerPlant:4,thrusters:4,frameShiftDrive:4,lifeSupport:3,powerDistributor:4,sensors:3,fuelTank:4},hardpoints:[{size:2},{size:2},{size:2},{size:1},{size:1}],utility:4,optional:[{size:5},{size:4},{size:4},{size:4},{size:3},{size:3},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:1477085,retailCost:1989461},{symbol:"Corsair",name:"Corsair",manufacturer:"Gutamaya",size:"medium",entitlement:"ELITE_V_CORSAIR",hullMass:265,minimumSpeed:180,maximumSpeed:280,boost:355,baseShieldStrength:235,baseArmour:270,hardness:65,masslock:17,crew:2,heatCapacity:280,heatDissipation:52.05,reserveFuelCapacity:.41,minPitch:23,pitch:26,minRoll:80,roll:80,minYaw:9,yaw:10,core:{powerPlant:7,thrusters:7,frameShiftDrive:5,lifeSupport:4,powerDistributor:7,sensors:6,fuelTank:5},hardpoints:[{size:3},{size:3},{size:3},{size:2},{size:2},{size:2}],utility:4,optional:[{size:6},{size:6},{size:6},{size:5},{size:5},{size:5},{size:4},{size:3},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:76884160,retailCost:79304750},{symbol:"PantherMkII",name:"Panther Clipper Mk II",manufacturer:"Zorgon Peterson",size:"large",entitlement:"ELITE_V_PANTHER_MKII",hullMass:1200,minimumSpeed:60,maximumSpeed:180,boost:250,baseShieldStrength:350,baseArmour:620,hardness:70,masslock:25,crew:4,heatCapacity:329,heatDissipation:62.45,reserveFuelCapacity:1.11,minPitch:14,pitch:18,minRoll:20,roll:20,minYaw:8,yaw:10,core:{powerPlant:8,thrusters:8,frameShiftDrive:7,lifeSupport:5,powerDistributor:7,sensors:5,fuelTank:7},hardpoints:[{size:3},{size:3},{size:2},{size:2},{size:2},{size:2},{size:1},{size:1},{size:1},{size:1}],utility:6,optional:[{size:8,restriction:"cargo",name:"Cargo01"},{size:8,name:"Slot01_Size8"},{size:7,restriction:"cargo",name:"Cargo02"},{size:7,name:"Slot02_Size7"},{size:6,name:"Slot03_Size6"},{size:6,name:"Slot04_Size6"},{size:6,name:"Slot05_Size6"},{size:5,name:"Slot06_Size5"},{size:5,name:"Slot07_Size5"},{size:4,name:"Slot08_Size4"},{size:2,name:"Slot09_Size2"},{size:1,name:"Slot10_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:286905678,retailCost:301348586},{symbol:"LakonMiner",name:"Type-11 Prospector",manufacturer:"Lakon Spaceways",size:"medium",entitlement:"ELITE_V_LAKON_MINER",hullMass:320,minimumSpeed:190,maximumSpeed:270,boost:365,baseShieldStrength:275,baseArmour:350,hardness:58,masslock:15,crew:3,heatCapacity:300,heatDissipation:52.05,reserveFuelCapacity:.6,minPitch:22,pitch:25,minRoll:37.5,roll:37.5,minYaw:22,yaw:22,core:{powerPlant:6,thrusters:5,frameShiftDrive:5,lifeSupport:3,powerDistributor:7,sensors:3,fuelTank:5},hardpoints:[{size:3,restriction:"mining",name:"LargeMiningHardpoint1"},{size:2,restriction:"mining",name:"MediumMiningHardpoint1"},{size:2,restriction:"mining",name:"MediumMiningHardpoint2"},{size:2,name:"MediumHardpoint3"},{size:1,restriction:"mining",name:"SmallMiningHardpoint1"},{size:1,name:"SmallHardpoint2"},{size:1,name:"SmallHardpoint3"},{size:1,name:"SmallHardpoint4"}],utility:4,optional:[{size:6,name:"Slot01_Size6"},{size:6,name:"Slot02_Size6"},{size:6,name:"Slot03_Size6"},{size:5,name:"Slot04_Size5"},{size:5,name:"Slot05_Size5"},{size:5,restriction:"limpetController",name:"LimpetController01"},{size:5,restriction:"vesselHangar",name:"FighterBay01"},{size:4,name:"Slot06_Size4"},{size:3,name:"Slot07_Size3"},{size:2,name:"Slot08_Size2"},{size:1,name:"Slot09_Size1"},{size:1,name:"Slot10_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:66346710,retailCost:67861850},{symbol:"Explorer_NX",name:"Caspian Explorer",manufacturer:"Zorgon Peterson",size:"large",entitlement:"ELITE_V_EXPLORER_NX",hullMass:950,minimumSpeed:160,maximumSpeed:210,boost:290,baseShieldStrength:500,baseArmour:345,hardness:60,masslock:21,crew:4,heatCapacity:341,heatDissipation:71.93,reserveFuelCapacity:1.14,minPitch:23,pitch:30,minRoll:75,roll:75,minYaw:14,yaw:14,core:{powerPlant:8,thrusters:7,frameShiftDrive:8,lifeSupport:5,powerDistributor:7,sensors:8,fuelTank:7},hardpoints:[{size:3,name:"LargeHardpoint1"},{size:2,name:"MediumHardpoint6"},{size:2,name:"MediumHardpoint5"},{size:2,name:"MediumHardpoint1"},{size:2,name:"MediumHardpoint2"},{size:2,name:"MediumHardpoint3"},{size:2,name:"MediumHardpoint4"}],utility:6,optional:[{size:7},{size:6},{size:6},{size:5},{size:5},{size:5},{size:5},{size:4},{size:4},{size:3},{size:2},{size:1},{size:1},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:189326510,retailCost:194861290},{symbol:"SmallCombat01_NX",name:"Kestrel Mk II",manufacturer:"Core Dynamics",size:"small",entitlement:"ELITE_V_SMALL_COMBAT_01",hullMass:190,minimumSpeed:240,maximumSpeed:270,boost:360,baseShieldStrength:225,baseArmour:70,hardness:55,masslock:11,crew:1,heatCapacity:263,heatDissipation:37.93,reserveFuelCapacity:.61,minPitch:40,pitch:50,minRoll:120,roll:120,minYaw:19,yaw:24,core:{powerPlant:5,thrusters:5,frameShiftDrive:4,lifeSupport:1,powerDistributor:5,sensors:2,fuelTank:4},hardpoints:[{size:3},{size:3},{size:3},{size:1},{size:1}],utility:4,optional:[{size:5},{size:4},{size:4,restriction:"military"},{size:3},{size:2},{size:2},{size:2},{size:1},{size:1,restriction:"planetaryApproachSuite"}],hullCost:13776380,retailCost:14273820},{symbol:"MediumTransport01",name:"Lynx Highliner",manufacturer:"Zorgon Peterson",size:"medium",entitlement:"ELITE_V_MEDIUM_TRANSPORT_01",hullMass:260,minimumSpeed:210,maximumSpeed:285,boost:350,baseShieldStrength:200,baseArmour:350,hardness:55,masslock:16,crew:2,heatCapacity:279,heatDissipation:49.35,reserveFuelCapacity:.75,minPitch:23,pitch:26,minRoll:60,roll:60,minYaw:19,yaw:19,core:{powerPlant:5,thrusters:6,frameShiftDrive:5,lifeSupport:6,powerDistributor:5,sensors:3,fuelTank:5},hardpoints:[{size:3},{size:2},{size:2},{size:2},{size:2}],utility:4,optional:[{size:6,name:"Slot01_Size6"},{size:6,restriction:"passenger",name:"Passenger01"},{size:6,restriction:"passenger",name:"Passenger02"},{size:5,restriction:"passenger",name:"Passenger03"},{size:5,name:"Slot02_Size5"},{size:4,name:"Slot03_Size4"},{size:4,name:"Slot04_Size4"},{size:3,name:"Slot05_Size3"},{size:2,name:"Slot06_Size2"},{size:1,name:"Slot07_Size1"},{size:1,restriction:"planetaryApproachSuite",name:"PlanetaryApproachSuite"}],hullCost:67992080,retailCost:69289470}];var SHIPS=deepFreeze(ships_default);var SHIPS_BY_SYMBOL=/* @__PURE__ */createKeyIndex(SHIPS,"symbol");var SHIPS_BY_NAME=/* @__PURE__ */createKeyIndex(SHIPS,"name");function getShipBySymbol(symbol){return findInKeyIndex(SHIPS_BY_SYMBOL,symbol,"getShipBySymbol: symbol")}function getShipByName(name){return findInKeyIndex(SHIPS_BY_NAME,name,"getShipByName: name")}function getShipSlots(symbol){requireStringIfPresent(symbol,"getShipSlots: symbol");const ship=getShipBySymbol(symbol);if(!ship)return null;return{symbol:ship.symbol,core:ship.core,hardpoints:ship.hardpoints,utility:ship.utility,optional:ship.optional}}export{SHIPS,getShipByName,getShipBySymbol,getShipSlots};//# sourceMappingURL=chunk-C4FUV6GF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ships/ships.ts"],"names":["findInKeyIndex","createKeyIndex","requireStringIfPresent","deepFreeze","ships_default","symbol","name","core","hardpoints","utility","optional","SHIPS","SHIPS_BY_SYMBOL","SHIPS_BY_NAME","getShipBySymbol","getShipByName","getShipSlots","ship"],"mappings":"O,ympCAgKO,IAAMW,MAAyBR,WAAWC,eAEjD,IAAMQ,+BAAkCX,eAAeU,MAAO,UAC9D,IAAME,6BAAgCZ,eAAeU,MAAO,QAqBrD,SAASG,gBAAgBT,QAC5B,OAAOL,eAAeY,gBAAiBP,OAAQ,0BACnD,CAqBO,SAASU,cAAcT,MAC1B,OAAON,eAAea,cAAeP,KAAM,sBAC/C,CA8BO,SAASU,aAAaX,QAGzBH,uBAAuBG,OAAQ,wBAC/B,MAAMY,KAAOH,gBAAgBT,QAC7B,IAAKY,KAAM,OAAO,KAClB,MAAO,CACHZ,OAAQY,KAAKZ,OACbE,KAAMU,KAAKV,KACXC,WAAYS,KAAKT,WACjBC,QAASQ,KAAKR,QACdC,SAAUO,KAAKP,SAEvB,QAAAC,MAAAI,cAAAD,gBAAAE"}
1
+ {"version":3,"sources":["../src/ships/ships.ts"],"names":["findInKeyIndex","createKeyIndex","requireStringIfPresent","deepFreeze","ships_default","symbol","name","core","hardpoints","utility","optional","SHIPS","SHIPS_BY_SYMBOL","SHIPS_BY_NAME","getShipBySymbol","getShipByName","getShipSlots","ship"],"mappings":"O,ympCA+JO,IAAMW,MAAyBR,WAAWC,eAEjD,IAAMQ,+BAAkCX,eAAeU,MAAO,UAC9D,IAAME,6BAAgCZ,eAAeU,MAAO,QAqBrD,SAASG,gBAAgBT,QAC5B,OAAOL,eAAeY,gBAAiBP,OAAQ,0BACnD,CAqBO,SAASU,cAAcT,MAC1B,OAAON,eAAea,cAAeP,KAAM,sBAC/C,CA8BO,SAASU,aAAaX,QAGzBH,uBAAuBG,OAAQ,wBAC/B,MAAMY,KAAOH,gBAAgBT,QAC7B,IAAKY,KAAM,OAAO,KAClB,MAAO,CACHZ,OAAQY,KAAKZ,OACbE,KAAMU,KAAKV,KACXC,WAAYS,KAAKT,WACjBC,QAASQ,KAAKR,QACdC,SAAUO,KAAKP,SAEvB,QAAAC,MAAAI,cAAAD,gBAAAE"}
@@ -0,0 +1 @@
1
+ import{assertEquipmentGrade}from"./chunk-2W5MW376.js";import{findInKeyIndex,normalizeKey,createKeyIndex}from"./chunk-BKWLI44T.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var suits_default=[{family:"utilitysuit",name:"Maverick Suit",mounts:[{key:"PrimaryWeapon1",kind:"primary"},{key:"SecondaryWeapon",kind:"secondary"}],health:30,shieldKineticResistance:.6,shieldThermalResistance:-.5,shieldPlasmaResistance:0,shieldExplosiveResistance:.5,mass:100,batteryCapacity:13.5,oxygenTime:60,boostAcceleration:25,goodsCapacity:40,assetsCapacity:60,dataCapacity:20,footstepAudibleRange:1,losAnalysisRange:50,losAnalysisTime:1,grades:{1:{symbol:"utilitysuit_class1",modificationSlots:0,shieldStrength:13.5,shieldRegeneration:.99,armourKineticResistance:-.6,armourThermalResistance:.5,armourPlasmaResistance:-.1,armourExplosiveResistance:0},2:{symbol:"utilitysuit_class2",modificationSlots:1,shieldStrength:16.5,shieldRegeneration:1.21,armourKineticResistance:-.34,armourThermalResistance:.58,armourPlasmaResistance:.08,armourExplosiveResistance:.16},3:{symbol:"utilitysuit_class3",modificationSlots:2,shieldStrength:20.3,shieldRegeneration:1.49,armourKineticResistance:-.14,armourThermalResistance:.64,armourPlasmaResistance:.22,armourExplosiveResistance:.29},4:{symbol:"utilitysuit_class4",modificationSlots:3,shieldStrength:24.9,shieldRegeneration:1.82,armourKineticResistance:.06,armourThermalResistance:.7,armourPlasmaResistance:.35,armourExplosiveResistance:.41},5:{symbol:"utilitysuit_class5",modificationSlots:4,shieldStrength:30.4,shieldRegeneration:2.23,armourKineticResistance:.2,armourThermalResistance:.75,armourPlasmaResistance:.45,armourExplosiveResistance:.5}}},{family:"tacticalsuit",name:"Dominator Suit",mounts:[{key:"PrimaryWeapon1",kind:"primary"},{key:"PrimaryWeapon2",kind:"primary"},{key:"SecondaryWeapon",kind:"secondary"}],health:30,shieldKineticResistance:.6,shieldThermalResistance:-.5,shieldPlasmaResistance:0,shieldExplosiveResistance:.5,mass:100,batteryCapacity:10,oxygenTime:60,boostAcceleration:50,goodsCapacity:10,assetsCapacity:20,dataCapacity:10,footstepAudibleRange:1,losAnalysisRange:50,losAnalysisTime:1,grades:{1:{symbol:"tacticalsuit_class1",modificationSlots:0,shieldStrength:15,shieldRegeneration:1.1,armourKineticResistance:-.5,armourThermalResistance:.6,armourPlasmaResistance:0,armourExplosiveResistance:0},2:{symbol:"tacticalsuit_class2",modificationSlots:1,shieldStrength:18.3,shieldRegeneration:1.34,armourKineticResistance:-.26,armourThermalResistance:.66,armourPlasmaResistance:.16,armourExplosiveResistance:.16},3:{symbol:"tacticalsuit_class3",modificationSlots:2,shieldStrength:22.5,shieldRegeneration:1.65,armourKineticResistance:-.07,armourThermalResistance:.72,armourPlasmaResistance:.29,armourExplosiveResistance:.29},4:{symbol:"tacticalsuit_class4",modificationSlots:3,shieldStrength:27.6,shieldRegeneration:2.02,armourKineticResistance:.11,armourThermalResistance:.76,armourPlasmaResistance:.41,armourExplosiveResistance:.41},5:{symbol:"tacticalsuit_class5",modificationSlots:4,shieldStrength:33.8,shieldRegeneration:2.48,armourKineticResistance:.25,armourThermalResistance:.8,armourPlasmaResistance:.5,armourExplosiveResistance:.5}}},{family:"explorationsuit",name:"Artemis Suit",mounts:[{key:"PrimaryWeapon1",kind:"primary"},{key:"SecondaryWeapon",kind:"secondary"}],health:30,shieldKineticResistance:.6,shieldThermalResistance:-.5,shieldPlasmaResistance:0,shieldExplosiveResistance:.5,mass:100,batteryCapacity:17,oxygenTime:60,boostAcceleration:12.5,goodsCapacity:20,assetsCapacity:40,dataCapacity:10,footstepAudibleRange:1,losAnalysisRange:50,losAnalysisTime:1,grades:{1:{symbol:"explorationsuit_class1",modificationSlots:0,shieldStrength:12,shieldRegeneration:.88,armourKineticResistance:-.7,armourThermalResistance:.4,armourPlasmaResistance:-.2,armourExplosiveResistance:0},2:{symbol:"explorationsuit_class2",modificationSlots:1,shieldStrength:14.7,shieldRegeneration:1.07,armourKineticResistance:-.43,armourThermalResistance:.5,armourPlasmaResistance:-.01,armourExplosiveResistance:.16},3:{symbol:"explorationsuit_class3",modificationSlots:2,shieldStrength:18,shieldRegeneration:1.32,armourKineticResistance:-.21,armourThermalResistance:.57,armourPlasmaResistance:.15,armourExplosiveResistance:.29},4:{symbol:"explorationsuit_class4",modificationSlots:3,shieldStrength:22.1,shieldRegeneration:1.62,armourKineticResistance:0,armourThermalResistance:.65,armourPlasmaResistance:.29,armourExplosiveResistance:.41},5:{symbol:"explorationsuit_class5",modificationSlots:4,shieldStrength:27,shieldRegeneration:1.98,armourKineticResistance:.15,armourThermalResistance:.7,armourPlasmaResistance:.4,armourExplosiveResistance:.5}}},{family:"flightsuit",name:"Flight Suit",mounts:[{key:"SecondaryWeapon",kind:"secondary"}],health:30,shieldKineticResistance:.6,shieldThermalResistance:-.5,shieldPlasmaResistance:0,shieldExplosiveResistance:.5,mass:100,batteryCapacity:7,oxygenTime:60,boostAcceleration:30,goodsCapacity:5,assetsCapacity:10,dataCapacity:10,footstepAudibleRange:1,losAnalysisRange:50,losAnalysisTime:1,grades:{1:{symbol:"flightsuit",modificationSlots:0,shieldStrength:7.5,shieldRegeneration:.55,armourKineticResistance:-.7,armourThermalResistance:.4,armourPlasmaResistance:-.2,armourExplosiveResistance:0}}}];var SUITS=deepFreeze(suits_default);var BY_FAMILY=/* @__PURE__ */createKeyIndex(SUITS,"family");var BY_NAME=/* @__PURE__ */createKeyIndex(SUITS,"name");var BY_SYMBOL=/* @__PURE__ */Object.freeze(Object.fromEntries(SUITS.flatMap(suit=>Object.entries(suit.grades).map(([grade,stats])=>[stats.symbol.toLowerCase(),Object.freeze({suit:suit,grade:Number(grade)})]))));function getSuitByFamily(family){return findInKeyIndex(BY_FAMILY,family,"getSuitByFamily: family")}function getSuitByName(name){return findInKeyIndex(BY_NAME,name,"getSuitByName: name")}function getSuitBySymbol(symbol){const key=normalizeKey(symbol,"getSuitBySymbol: symbol");return Object.hasOwn(BY_SYMBOL,key)?BY_SYMBOL[key]:null}function getSuitGrade(suit,grade){assertEquipmentGrade(grade,"getSuitGrade");return suit.grades[String(grade)]??null}export{SUITS,getSuitByFamily,getSuitByName,getSuitBySymbol,getSuitGrade};//# sourceMappingURL=chunk-C6G7IN74.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/equipment/suits.ts"],"names":["assertEquipmentGrade","findInKeyIndex","normalizeKey","createKeyIndex","deepFreeze","suits_default","family","name","key","grades","symbol","SUITS","BY_FAMILY","BY_NAME","BY_SYMBOL","Object","freeze","fromEntries","flatMap","suit","entries","map","grade","stats","toLowerCase","Number","getSuitByFamily","getSuitByName","getSuitBySymbol","hasOwn","getSuitGrade","String"],"mappings":"O,4oKAoKO,IAAMW,MAAyBP,WAAWC,eAEjD,IAAMO,yBAA4BT,eAAeQ,MAAO,UACxD,IAAME,uBAA0BV,eAAeQ,MAAO,QACtD,IAAMG,yBAA4BC,OAAOC,OACrCD,OAAOE,YACHN,MAAMO,QAASC,MACXJ,OAAOK,QAAQD,KAAKV,QAAQY,IAAI,EAAEC,MAAOC,SAAW,CAChDA,MAAMb,OAAOc,cACbT,OAAOC,OAAO,CAAEG,UAAMG,MAAOG,OAAOH,cAoB7C,SAASI,gBAAgBpB,QAC5B,OAAOL,eAAeW,UAAWN,OAAQ,0BAC7C,CAgBO,SAASqB,cAAcpB,MAC1B,OAAON,eAAeY,QAASN,KAAM,sBACzC,CAgBO,SAASqB,gBACZlB,QAEA,MAAMF,IAAMN,aAAaQ,OAAQ,2BACjC,OAAOK,OAAOc,OAAOf,UAAWN,KAAOM,UAAUN,KAAQ,IAC7D,CAiBO,SAASsB,aAAaX,KAAYG,OACrCtB,qBAAqBsB,MAAO,gBAC5B,OAAOH,KAAKV,OAAOsB,OAAOT,SAAkC,IAChE,QAAAX,MAAAe,gBAAAC,cAAAC,gBAAAE"}
@@ -0,0 +1 @@
1
+ import{findInKeyIndex,createKeyIndex}from"./chunk-BKWLI44T.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var tools_default=[{id:"energylink",name:"Energylink",suitFamilies:["utilitysuit","tacticalsuit","explorationsuit","flightsuit"],rechargeRate:2.7,dischargeRate:.6,dischargeDuration:1.7,overloadPowerUsage:3},{id:"profile-analyser",name:"Profile Analyser",suitFamilies:["utilitysuit","tacticalsuit","explorationsuit","flightsuit"],powerUsage:.04,scanDuration:3,cloneDuration:4},{id:"arc-cutter",name:"Arc Cutter",suitFamilies:["utilitysuit"],powerUsage:.15},{id:"genetic-sampler",name:"Genetic Sampler",suitFamilies:["explorationsuit"],powerUsage:.45}];var PERSONAL_TOOLS=deepFreeze(tools_default);var BY_ID=/* @__PURE__ */createKeyIndex(PERSONAL_TOOLS,"id");function getPersonalToolById(id){return findInKeyIndex(BY_ID,id,"getPersonalToolById: id")}export{PERSONAL_TOOLS,getPersonalToolById};//# sourceMappingURL=chunk-CEF7SMB2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/equipment/tools.ts"],"names":["findInKeyIndex","createKeyIndex","deepFreeze","tools_default","id","PERSONAL_TOOLS","BY_ID","getPersonalToolById"],"mappings":"O,2oBA0FO,IAAMK,eAA0CH,WACnDC,eAGJ,IAAMG,qBAAwBL,eAAeI,eAAgB,MAgBtD,SAASE,oBAAoBH,IAChC,OAAOJ,eAAeM,MAAOF,GAAI,0BACrC,QAAAC,eAAAE"}
@@ -0,0 +1 @@
1
+ import{getLocalizedName,createLocalizedNameIndex}from"./chunk-RVIYOHYF.js";var personal_tool_names_default={energylink:{en:"Energylink",de:"Energie-Link",es:"Enlace energético",fr:"Énergiseur",pt:"Link de energia",ru:"Энерголинк"},"profile-analyser":{en:"Profile Analyser",de:"Profil-Analysator",es:"Analizador de perfiles",fr:"Analyseur de profil",pt:"Analisador de perfil",ru:"Анализатор профиля"},"arc-cutter":{en:"Arc Cutter",de:"Arc Cutter",es:"Arc Cutter",fr:"Arc Cutter",pt:"Arc Cutter",ru:"Плазменный резак"},"genetic-sampler":{en:"Genetic Sampler",de:"Genetic Sampler",es:"Muestreador genético",fr:"Échantillonneur génétique",pt:"Amostrador genético",ru:"Сборщик генетических образцов"}};var TOOL_NAMES=/* @__PURE__ */createLocalizedNameIndex(personal_tool_names_default);function getPersonalToolName(id,locale){return getLocalizedName(TOOL_NAMES,id,locale,"getPersonalToolName","id")}export{getPersonalToolName};//# sourceMappingURL=chunk-E2HDF6PJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/personal-tools.ts"],"names":["getLocalizedName","createLocalizedNameIndex","personal_tool_names_default","TOOL_NAMES","getPersonalToolName","id","locale"],"mappings":"O,krBASA,IAAMG,0BAAAF,yBAAsDC,6BA+BrD,SAASE,oBAAoBC,GAAYC,QAC5C,OAAON,iBAAiBG,WAAYE,GAAIC,OAAQ,sBAAuB,KAC3E,QAAAF"}
@@ -1 +1 @@
1
- import{ALL_MATERIALS}from"./chunk-KBCA4GEZ.js";import{findInKeyIndex,findByKey,filterByKey,createKeyIndex}from"./chunk-BKWLI44T.js";import{describeValue}from"./chunk-PKWVG2JY.js";var MaterialGrade=/* @__PURE__ */(MaterialGrade2=>{MaterialGrade2[MaterialGrade2["VeryCommon"]=1]="VeryCommon";MaterialGrade2[MaterialGrade2["Common"]=2]="Common";MaterialGrade2[MaterialGrade2["Standard"]=3]="Standard";MaterialGrade2[MaterialGrade2["Rare"]=4]="Rare";MaterialGrade2[MaterialGrade2["VeryRare"]=5]="VeryRare";return MaterialGrade2})(MaterialGrade||{});var MaterialLine=/* @__PURE__ */(MaterialLine2=>{MaterialLine2["Carbon"]="Carbon";MaterialLine2["Phosphorus"]="Phosphorus";MaterialLine2["Sulphur"]="Sulphur";MaterialLine2["Iron"]="Iron";MaterialLine2["Nickel"]="Nickel";MaterialLine2["Rhenium"]="Rhenium";MaterialLine2["Lead"]="Lead";MaterialLine2["Chemical"]="Chemical";MaterialLine2["Thermic"]="Thermic";MaterialLine2["Heat"]="Heat";MaterialLine2["Conductive"]="Conductive";MaterialLine2["MechanicalComponents"]="Mechanical Components";MaterialLine2["Capacitors"]="Capacitors";MaterialLine2["Shielding"]="Shielding";MaterialLine2["Composite"]="Composite";MaterialLine2["Crystals"]="Crystals";MaterialLine2["Alloys"]="Alloys";MaterialLine2["EmissionData"]="Emission Data";MaterialLine2["WakeScans"]="Wake Scans";MaterialLine2["ShieldData"]="Shield Data";MaterialLine2["EncryptionFiles"]="Encryption Files";MaterialLine2["DataArchives"]="Data Archives";MaterialLine2["EncodedFirmware"]="Encoded Firmware";MaterialLine2["Guardian"]="Guardian";MaterialLine2["Thargoid"]="Thargoid";return MaterialLine2})(MaterialLine||{});var MATERIALS_BY_SYMBOL=/* @__PURE__ */createKeyIndex(ALL_MATERIALS,"symbol");var MATERIALS_BY_NAME=/* @__PURE__ */createKeyIndex(ALL_MATERIALS,"name");var MATERIALS_BY_ELEMENT=/* @__PURE__ */createKeyIndex(ALL_MATERIALS,"elementSymbol");function getMaterialBySymbol(symbol,materials=ALL_MATERIALS){return materials===ALL_MATERIALS?findInKeyIndex(MATERIALS_BY_SYMBOL,symbol,"getMaterialBySymbol: symbol"):findByKey(materials,"symbol",symbol,"getMaterialBySymbol: symbol")}function getMaterialByName(name,materials=ALL_MATERIALS){return materials===ALL_MATERIALS?findInKeyIndex(MATERIALS_BY_NAME,name,"getMaterialByName: name"):findByKey(materials,"name",name,"getMaterialByName: name")}function getMaterialByElementSymbol(elementSymbol,materials=ALL_MATERIALS){return materials===ALL_MATERIALS?findInKeyIndex(MATERIALS_BY_ELEMENT,elementSymbol,"getMaterialByElementSymbol: elementSymbol"):findByKey(materials,"elementSymbol",elementSymbol,"getMaterialByElementSymbol: elementSymbol")}function materialsByGrade(grade){if(grade==null)return[];if(typeof grade!=="number"){throw new TypeError(`materialsByGrade: grade must be a number, received ${describeValue(grade)}`)}return ALL_MATERIALS.filter(material=>material.grade===grade)}function materialsInLine(line){return filterByKey(ALL_MATERIALS,"line",line,"materialsInLine: line")}function materialsInCategory(category){return filterByKey(ALL_MATERIALS,"category",category,"materialsInCategory: category")}export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine};//# sourceMappingURL=chunk-OFZGNWBT.js.map
1
+ import{ALL_MATERIALS}from"./chunk-FP2TQJZP.js";import{findInKeyIndex,findByKey,filterByKey,createKeyIndex}from"./chunk-BKWLI44T.js";import{describeValue}from"./chunk-PKWVG2JY.js";var MaterialGrade=/* @__PURE__ */(MaterialGrade2=>{MaterialGrade2[MaterialGrade2["VeryCommon"]=1]="VeryCommon";MaterialGrade2[MaterialGrade2["Common"]=2]="Common";MaterialGrade2[MaterialGrade2["Standard"]=3]="Standard";MaterialGrade2[MaterialGrade2["Rare"]=4]="Rare";MaterialGrade2[MaterialGrade2["VeryRare"]=5]="VeryRare";return MaterialGrade2})(MaterialGrade||{});var MaterialLine=/* @__PURE__ */(MaterialLine2=>{MaterialLine2["Carbon"]="Carbon";MaterialLine2["Phosphorus"]="Phosphorus";MaterialLine2["Sulphur"]="Sulphur";MaterialLine2["Iron"]="Iron";MaterialLine2["Nickel"]="Nickel";MaterialLine2["Rhenium"]="Rhenium";MaterialLine2["Lead"]="Lead";MaterialLine2["Chemical"]="Chemical";MaterialLine2["Thermic"]="Thermic";MaterialLine2["Heat"]="Heat";MaterialLine2["Conductive"]="Conductive";MaterialLine2["MechanicalComponents"]="Mechanical Components";MaterialLine2["Capacitors"]="Capacitors";MaterialLine2["Shielding"]="Shielding";MaterialLine2["Composite"]="Composite";MaterialLine2["Crystals"]="Crystals";MaterialLine2["Alloys"]="Alloys";MaterialLine2["EmissionData"]="Emission Data";MaterialLine2["WakeScans"]="Wake Scans";MaterialLine2["ShieldData"]="Shield Data";MaterialLine2["EncryptionFiles"]="Encryption Files";MaterialLine2["DataArchives"]="Data Archives";MaterialLine2["EncodedFirmware"]="Encoded Firmware";MaterialLine2["Guardian"]="Guardian";MaterialLine2["Thargoid"]="Thargoid";return MaterialLine2})(MaterialLine||{});var MATERIALS_BY_SYMBOL=/* @__PURE__ */createKeyIndex(ALL_MATERIALS,"symbol");var MATERIALS_BY_NAME=/* @__PURE__ */createKeyIndex(ALL_MATERIALS,"name");var MATERIALS_BY_ELEMENT=/* @__PURE__ */createKeyIndex(ALL_MATERIALS,"elementSymbol");function getMaterialBySymbol(symbol,materials=ALL_MATERIALS){return materials===ALL_MATERIALS?findInKeyIndex(MATERIALS_BY_SYMBOL,symbol,"getMaterialBySymbol: symbol"):findByKey(materials,"symbol",symbol,"getMaterialBySymbol: symbol")}function getMaterialByName(name,materials=ALL_MATERIALS){return materials===ALL_MATERIALS?findInKeyIndex(MATERIALS_BY_NAME,name,"getMaterialByName: name"):findByKey(materials,"name",name,"getMaterialByName: name")}function getMaterialByElementSymbol(elementSymbol,materials=ALL_MATERIALS){return materials===ALL_MATERIALS?findInKeyIndex(MATERIALS_BY_ELEMENT,elementSymbol,"getMaterialByElementSymbol: elementSymbol"):findByKey(materials,"elementSymbol",elementSymbol,"getMaterialByElementSymbol: elementSymbol")}function materialsByGrade(grade){if(grade==null)return[];if(typeof grade!=="number"){throw new TypeError(`materialsByGrade: grade must be a number, received ${describeValue(grade)}`)}return ALL_MATERIALS.filter(material=>material.grade===grade)}function materialsInLine(line){return filterByKey(ALL_MATERIALS,"line",line,"materialsInLine: line")}function materialsInCategory(category){return filterByKey(ALL_MATERIALS,"category",category,"materialsInCategory: category")}export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine};//# sourceMappingURL=chunk-ETREYN5U.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/materials/materials.ts"],"names":["ALL_MATERIALS","findInKeyIndex","findByKey","filterByKey","createKeyIndex","describeValue","MaterialGrade","MaterialLine","MATERIALS_BY_SYMBOL","MATERIALS_BY_NAME","MATERIALS_BY_ELEMENT","getMaterialBySymbol","symbol","materials","getMaterialByName","name","getMaterialByElementSymbol","elementSymbol","materialsByGrade","grade","TypeError","filter","material","materialsInLine","line","materialsInCategory","category"],"mappings":"O,4KAgFO,IAAKM,6BAAA,CAAAA,iBAERA,eAAAA,eAAA,cAAa,GAAb,aAEAA,eAAAA,eAAA,UAAS,GAAT,SAEAA,eAAAA,eAAA,YAAW,GAAX,WAEAA,eAAAA,eAAA,QAAO,GAAP,OAEAA,eAAAA,eAAA,YAAW,GAAX,WAVQ,OAAAA,cAAA,EAAA,CAAAA,eAAA,CAAA,GAuBL,IAAKC,4BAAA,CAAAA,gBAERA,cAAA,UAAS,SAETA,cAAA,cAAa,aAEbA,cAAA,WAAU,UAEVA,cAAA,QAAO,OAEPA,cAAA,UAAS,SAETA,cAAA,WAAU,UAEVA,cAAA,QAAO,OAEPA,cAAA,YAAW,WAEXA,cAAA,WAAU,UAEVA,cAAA,QAAO,OAEPA,cAAA,cAAa,aAEbA,cAAA,wBAAuB,wBAEvBA,cAAA,cAAa,aAEbA,cAAA,aAAY,YAEZA,cAAA,aAAY,YAEZA,cAAA,YAAW,WAEXA,cAAA,UAAS,SAETA,cAAA,gBAAe,gBAEfA,cAAA,aAAY,aAEZA,cAAA,cAAa,cAEbA,cAAA,mBAAkB,mBAElBA,cAAA,gBAAe,gBAEfA,cAAA,mBAAkB,mBAElBA,cAAA,YAAW,WAEXA,cAAA,YAAW,WAlDH,OAAAA,aAAA,EAAA,CAAAA,cAAA,CAAA,GAsFZ,IAAMC,mCAAsCJ,eAAeJ,cAAe,UAC1E,IAAMS,iCAAoCL,eAAeJ,cAAe,QACxE,IAAMU,oCAAuCN,eAAeJ,cAAe,iBA0BpE,SAASW,oBACZC,OACAC,UAAiCb,eAEjC,OAAOa,YAAcb,cACfC,eAAeO,oBAAqBI,OAAQ,+BAC5CV,UAAUW,UAAW,SAAUD,OAAQ,8BACjD,CAkBO,SAASE,kBACZC,KACAF,UAAiCb,eAEjC,OAAOa,YAAcb,cACfC,eAAeQ,kBAAmBM,KAAM,2BACxCb,UAAUW,UAAW,OAAQE,KAAM,0BAC7C,CAmBO,SAASC,2BACZC,cACAJ,UAAiCb,eAEjC,OAAOa,YAAcb,cACfC,eACIS,qBACAO,cACA,6CAEJf,UACIW,UACA,gBACAI,cACA,4CAEd,CAmBO,SAASC,iBAAiBC,OAC7B,GAAIA,OAAS,KAAM,MAAO,GAC1B,UAAWA,QAAU,SAAU,CAC3B,MAAM,IAAIC,UACN,sDAAsDf,cAAcc,SAE5E,CACA,OAAOnB,cAAcqB,OAAQC,UAAaA,SAASH,QAAUA,MACjE,CAkBO,SAASI,gBAAgBC,MAC5B,OAAOrB,YAAYH,cAAe,OAAQwB,KAAM,wBACpD,CAuBO,SAASC,oBAAoBC,UAChC,OAAOvB,YAAYH,cAAe,WAAY0B,SAAU,gCAC5D,QAAApB,cAAAC,aAAAS,2BAAAF,kBAAAH,oBAAAO,iBAAAO,oBAAAF"}
1
+ {"version":3,"sources":["../src/materials/materials.ts"],"names":["ALL_MATERIALS","findInKeyIndex","findByKey","filterByKey","createKeyIndex","describeValue","MaterialGrade","MaterialLine","MATERIALS_BY_SYMBOL","MATERIALS_BY_NAME","MATERIALS_BY_ELEMENT","getMaterialBySymbol","symbol","materials","getMaterialByName","name","getMaterialByElementSymbol","elementSymbol","materialsByGrade","grade","TypeError","filter","material","materialsInLine","line","materialsInCategory","category"],"mappings":"O,4KAmFO,IAAKM,6BAAA,CAAAA,iBAERA,eAAAA,eAAA,cAAa,GAAb,aAEAA,eAAAA,eAAA,UAAS,GAAT,SAEAA,eAAAA,eAAA,YAAW,GAAX,WAEAA,eAAAA,eAAA,QAAO,GAAP,OAEAA,eAAAA,eAAA,YAAW,GAAX,WAVQ,OAAAA,cAAA,EAAA,CAAAA,eAAA,CAAA,GAuBL,IAAKC,4BAAA,CAAAA,gBAERA,cAAA,UAAS,SAETA,cAAA,cAAa,aAEbA,cAAA,WAAU,UAEVA,cAAA,QAAO,OAEPA,cAAA,UAAS,SAETA,cAAA,WAAU,UAEVA,cAAA,QAAO,OAEPA,cAAA,YAAW,WAEXA,cAAA,WAAU,UAEVA,cAAA,QAAO,OAEPA,cAAA,cAAa,aAEbA,cAAA,wBAAuB,wBAEvBA,cAAA,cAAa,aAEbA,cAAA,aAAY,YAEZA,cAAA,aAAY,YAEZA,cAAA,YAAW,WAEXA,cAAA,UAAS,SAETA,cAAA,gBAAe,gBAEfA,cAAA,aAAY,aAEZA,cAAA,cAAa,cAEbA,cAAA,mBAAkB,mBAElBA,cAAA,gBAAe,gBAEfA,cAAA,mBAAkB,mBAElBA,cAAA,YAAW,WAEXA,cAAA,YAAW,WAlDH,OAAAA,aAAA,EAAA,CAAAA,cAAA,CAAA,GAsFZ,IAAMC,mCAAsCJ,eAAeJ,cAAe,UAC1E,IAAMS,iCAAoCL,eAAeJ,cAAe,QACxE,IAAMU,oCAAuCN,eAAeJ,cAAe,iBA0BpE,SAASW,oBACZC,OACAC,UAAiCb,eAEjC,OAAOa,YAAcb,cACfC,eAAeO,oBAAqBI,OAAQ,+BAC5CV,UAAUW,UAAW,SAAUD,OAAQ,8BACjD,CAkBO,SAASE,kBACZC,KACAF,UAAiCb,eAEjC,OAAOa,YAAcb,cACfC,eAAeQ,kBAAmBM,KAAM,2BACxCb,UAAUW,UAAW,OAAQE,KAAM,0BAC7C,CAmBO,SAASC,2BACZC,cACAJ,UAAiCb,eAEjC,OAAOa,YAAcb,cACfC,eACIS,qBACAO,cACA,6CAEJf,UACIW,UACA,gBACAI,cACA,4CAEd,CAmBO,SAASC,iBAAiBC,OAC7B,GAAIA,OAAS,KAAM,MAAO,GAC1B,UAAWA,QAAU,SAAU,CAC3B,MAAM,IAAIC,UACN,sDAAsDf,cAAcc,SAE5E,CACA,OAAOnB,cAAcqB,OAAQC,UAAaA,SAASH,QAAUA,MACjE,CAkBO,SAASI,gBAAgBC,MAC5B,OAAOrB,YAAYH,cAAe,OAAQwB,KAAM,wBACpD,CAuBO,SAASC,oBAAoBC,UAChC,OAAOvB,YAAYH,cAAe,WAAY0B,SAAU,gCAC5D,QAAApB,cAAAC,aAAAS,2BAAAF,kBAAAH,oBAAAO,iBAAAO,oBAAAF"}
@@ -1 +1 @@
1
- import{ENCODED_MATERIALS}from"./chunk-A5TCT2AJ.js";import{MANUFACTURED_MATERIALS}from"./chunk-PF3HZ73R.js";import{RAW_MATERIALS}from"./chunk-Q6YDPREF.js";var ALL_MATERIALS=Object.freeze([...RAW_MATERIALS,...MANUFACTURED_MATERIALS,...ENCODED_MATERIALS]);export{ALL_MATERIALS};//# sourceMappingURL=chunk-KBCA4GEZ.js.map
1
+ import{ENCODED_MATERIALS}from"./chunk-A5TCT2AJ.js";import{MANUFACTURED_MATERIALS}from"./chunk-PF3HZ73R.js";import{RAW_MATERIALS}from"./chunk-GZLD7RTK.js";var ALL_MATERIALS=Object.freeze([...RAW_MATERIALS,...MANUFACTURED_MATERIALS,...ENCODED_MATERIALS]);export{ALL_MATERIALS};//# sourceMappingURL=chunk-FP2TQJZP.js.map
@@ -1 +1 @@
1
- import{weaponsCapacitorMetrics}from"./chunk-M4FZRDAH.js";import{shieldCapacitorMetrics}from"./chunk-JCYOE3C4.js";import{cellBankSummary,shieldRecovery}from"./chunk-JMAXSXXQ.js";import{loadoutInternals,fittedThrusterParamsFor,preEngineeredVariantFor,powerConsumerFor,powerAvailable,heatInputResultFor,completeResult,cellBankInputsFor,armourInputFor,weaponStatsFor,weaponsCapacitorInputFor,mobilityInputResultFor,shieldInputResultFor,shieldCapacitorInputResultFor,shieldRecoveryInputResultFor,distributorInputResultFor,incompleteResult}from"./chunk-DHACRCLI.js";import{weaponMetrics,sumWeaponMetrics}from"./chunk-2OBUSQA7.js";import{shieldMetrics}from"./chunk-5VWACBTN.js";import{powerBudget}from"./chunk-GGQMIQPC.js";import{isNonOutfittingSlot,isBuiltInHullModule,orderBySlotLayout}from"./chunk-IN36YSS4.js";import{mobilityCapacitorMetrics}from"./chunk-VEEBJFJ7.js";import{mobilityMetrics}from"./chunk-A4QKXXZD.js";import{getExperimentalEffectCost}from"./chunk-CJK2IBI2.js";import{heatMetrics}from"./chunk-6HA2YIKW.js";import{frameShiftDriveMassFactor,singleJumpRange,fuelPerJump,totalRange}from"./chunk-VTMCSCXV.js";import{calculateUnladenMass}from"./chunk-C3LLPLLD.js";import{armourMetrics}from"./chunk-Q5ALV3DI.js";import{getBlueprintCost}from"./chunk-ETWMPMZP.js";import{sumMaterials}from"./chunk-A7IVMYNF.js";import{distributorMetrics}from"./chunk-M2TCZKRT.js";import{requirePips,requireFiniteNonNegative}from"./chunk-65FZECUX.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var FACADE="BuildMetrics";function requireLoadOptions(scope,options){for(const field of["fuel","cargo"]){const value=options[field];if(value!==void 0)requireFiniteNonNegative(scope,field,value)}}var BuildMetrics=class _BuildMetrics{#build;#state;constructor(build,state){this.#build=build;this.#state=state}static of(build){return new _BuildMetrics(build,loadoutInternals(build,`${FACADE}.of: build`))}loadout(){return this.#build}frameShiftDrive(){const drive=this.#state.resolveDrive();if(drive===null){throw new TypeError(`${FACADE}: build has no frame shift drive`)}return drive}thrusters(){return fittedThrusterParamsFor(this.#state.modules(),this.#state.statsFor)}frameShiftDriveMassFactor(options={}){requireLoadOptions(`${FACADE}.frameShiftDriveMassFactor`,options);return frameShiftDriveMassFactor(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}maxJumpRange(){const fsd=this.frameShiftDrive();return singleJumpRange(this.#loadedMass(0),this.#maxJumpFuel(fsd),fsd)}jumpRange(options={}){requireLoadOptions(`${FACADE}.jumpRange`,options);return singleJumpRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}ladenJumpRange(){return this.jumpRange({cargo:this.#build.cargoCapacity})}fuelPerJump(distance,options={}){requireLoadOptions(`${FACADE}.fuelPerJump`,options);return fuelPerJump(distance,this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}totalRange(options={}){requireLoadOptions(`${FACADE}.totalRange`,options);return totalRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}standardLoadResult(load){return this.#standardLoad(load)}jumpRangeSummary(){const maximum=this.#require(this.standardLoadResult("maximum"),"maximum load");const unladen=this.#require(this.standardLoadResult("unladen"),"unladen load");const laden=this.#require(this.standardLoadResult("laden"),"laden load");return{max:this.jumpRange(maximum),unladen:this.jumpRange(unladen),laden:this.jumpRange(laden),totalMax:this.totalRange(maximum),totalUnladen:this.totalRange(unladen),totalLaden:this.totalRange(laden)}}buildMass(options={}){requireLoadOptions(`${FACADE}.buildMass`,options);const unladen=this.#build.unladenMass;const fuel=options.fuel??this.#build.fuelCapacity.main;const cargo=options.cargo??0;return Object.freeze({hull:this.#state.ship.hullMass,modules:calculateUnladenMass(0,this.#state.calculationModules()),unladen:unladen,fuel:fuel,cargo:cargo,total:unladen+fuel+cargo})}buildCost(){const hull=this.#state.ship.hullCost;let modules=0;let mercCoins=0;const unpriced=[];const materials=[];for(const module of this.#state.modules()){const stats=this.#state.statsFor(module);if(stats?.cost!==void 0){modules+=stats.cost}else if(stats!==null||!isNonOutfittingSlot(module.Slot)&&!isBuiltInHullModule(module)){unpriced.push({slot:module.Slot,symbol:module.Item})}const variant=preEngineeredVariantFor(module);mercCoins+=variant?.mercCoinCost??0;const engineering=module.Engineering;if(!engineering)continue;const grade=engineering.Level;const bought=variant?.grade??0;if(Number.isInteger(grade)&&grade>bought&&grade<=5){const climb=getBlueprintCost(engineering.BlueprintName,grade,bought);if(climb){materials.push(climb.materials);mercCoins+=climb.mercCoins}}const experimental=engineering.ExperimentalEffect;if(experimental!==void 0&&experimental.toLowerCase()!==variant?.experimentalEffectSymbol?.toLowerCase()){const cost=getExperimentalEffectCost(experimental);if(cost)materials.push(cost)}}return deepFreeze({credits:{total:hull+modules,hull:hull,modules:modules,rebuy:Math.trunc((hull+modules)*.05),unpriced:unpriced},mercCoins:mercCoins,materials:sumMaterials(...materials)})}powerBudget(){const modules=this.#state.modules();const consumers=[];for(const module of modules){const consumer=powerConsumerFor(module,this.#state.statsFor(module));if(consumer)consumers.push(consumer)}return powerBudget(powerAvailable(modules,this.#state.statsFor),consumers)}heatMetricsResult(){const input=heatInputResultFor(this.#state.ship,this.#state.effectiveModules(),this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(heatMetrics(input.value)):input}mobilityMetricsResult(options={}){return this.#mobility(options)}mobilityCapacitorMetricsResult(options={}){return this.#mobilityCapacitor(options)}shieldMetricsResult(){return this.#shields()}shieldCapacitorMetricsResult(options={}){return this.#shieldCapacitor(options)}shieldRecoveryResult(options={}){return this.#recovery(options)}cellBanks(){return cellBankSummary(orderBySlotLayout(cellBankInputsFor(this.#state.modules(),this.powerBudget(),this.#state.statsFor),this.#state.layout(),bank=>bank.slot))}armourMetrics(){return armourMetrics(armourInputFor(this.#state.ship,this.#state.modules(),this.#state.statsFor))}weaponMetrics(){const weapons=[];for(const module of this.#state.modules()){const record=this.#state.statsFor(module);const stats=weaponStatsFor(this.#state.effectiveModule(module),record);if(!stats)continue;weapons.push({slot:module.Slot,symbol:module.Item,name:record?.name??module.Item,enabled:module.On!==false,metrics:weaponMetrics(stats),ammunition:ammunitionCapacity(stats),...stats.maximumRange===void 0?{}:{maximumRange:stats.maximumRange},...stats.falloffRange===void 0?{}:{falloffRange:stats.falloffRange},...stats.projectileRange===void 0?{}:{projectileRange:{...stats.projectileRange}},...stats.armourPiercing===void 0?{}:{armourPiercing:stats.armourPiercing}})}const orderedWeapons=orderBySlotLayout(weapons,this.#state.layout(),weapon=>weapon.slot);return{weapons:orderedWeapons,total:sumWeaponMetrics(orderedWeapons.filter(weapon=>weapon.enabled).map(weapon=>weapon.metrics))}}weaponsCapacitorMetrics(options={}){const weaponsPips=requirePips(`${FACADE}.weaponsCapacitorMetrics`,"weaponsPips",options.weaponsPips??4);return weaponsCapacitorMetrics(weaponsCapacitorInputFor(this.#state.effectiveModules(),weaponsPips,this.powerBudget(),this.#state.statsFor))}distributorMetricsResult(options={}){return this.#distributor(options)}#mobility(options){const input=this.#mobilityInput(`${FACADE}.mobilityMetricsResult`,options);return input.complete?completeResult(mobilityMetrics(input.value)):input}#mobilityCapacitor(options){const scope=`${FACADE}.mobilityCapacitorMetricsResult`;const enginesPips=requirePips(scope,"enginesPips",options.enginesPips??4);const input=this.#mobilityInput(scope,options);return input.complete?completeResult(mobilityCapacitorMetrics({...input.value,enginesPips:enginesPips})):input}#mobilityInput(scope,options){requireLoadOptions(scope,options);return mobilityInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),()=>this.#loadedMass(options.cargo??0)+(options.fuel??this.#state.statedMainFuel()??this.#build.fuelCapacity.main),this.#state.statsFor)}#shields(){const input=shieldInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(shieldMetrics(input.value)):input}#shieldCapacitor(options){const systemsPips=requirePips(`${FACADE}.shieldCapacitorMetricsResult`,"systemsPips",options.systemsPips??4);const input=shieldCapacitorInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldCapacitorMetrics(input.value)):input}#recovery(options){const systemsPips=requirePips(`${FACADE}.shieldRecoveryResult`,"systemsPips",options.systemsPips??4);const input=shieldRecoveryInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldRecovery(input.value)):input}#distributor(options){const scope=`${FACADE}.distributorMetricsResult`;const pips={systemsPips:requirePips(scope,"systemsPips",options.systemsPips??4),enginesPips:requirePips(scope,"enginesPips",options.enginesPips??4),weaponsPips:requirePips(scope,"weaponsPips",options.weaponsPips??4)};const input=distributorInputResultFor(this.#state.effectiveModules(),pips,this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(distributorMetrics(input.value)):input}#standardLoad(load){if(load!=="maximum"&&load!=="unladen"&&load!=="laden"){throw new RangeError(`${FACADE}.standardLoadResult: load must be 'maximum', 'unladen', or 'laden'`)}const fuel=this.#build.fuelCapacity;const cargo=load==="laden"?this.#build.cargoCapacity:0;const mass=load==="maximum"?this.#build.unladenMass:0;let drive=null;let maximumFuel=null;if(load==="maximum"){const fitted=this.#state.frameShiftDriveModule();let driveError=null;try{drive=this.#state.resolveDrive();maximumFuel=drive?.maxFuel??null}catch(error){if(!(error instanceof Error))throw error;driveError=error}if(maximumFuel===null){return incompleteResult([{field:"frameShiftDrive",reason:fitted?"unresolved":"missing",slot:fitted?.Slot??"FrameShiftDrive",...fitted?{symbol:fitted.Item}:{},message:driveError?.message??"FrameShiftDrive: no frame shift drive is fitted",params:fitted?{field:"frameShiftDrive",reason:"unresolved",slot:fitted.Slot,symbol:fitted.Item}:{field:"frameShiftDrive",reason:"missing",slot:"FrameShiftDrive"}}])}}const carriedFuel=load==="maximum"?Math.min(fuel.main,maximumFuel):fuel.main;const value=Object.freeze({fuel:carriedFuel,cargo:cargo,mass:this.#build.unladenMass+carriedFuel+cargo});if(load==="maximum"){try{this.jumpRange(value)}catch(error){if(!(error instanceof RangeError))throw error;const fitted=this.#state.frameShiftDriveModule();const field=drive!==null&&(!Number.isFinite(drive.maxFuel)||drive.maxFuel<0)?"frameShiftDrive":!Number.isFinite(value.fuel)||value.fuel<0?"fuelCapacity":!Number.isFinite(mass)||mass<0?"mass":"frameShiftDrive";const driveParams=field==="frameShiftDrive"&&fitted?{slot:fitted.Slot,symbol:fitted.Item}:{};return incompleteResult([{field:field,reason:"invalid",...driveParams,message:error.message,params:{field:field,reason:"invalid",...driveParams}}])}}return completeResult(value)}#require(result,what){if(result.value===null){throw new TypeError(`${FACADE}: cannot determine ${what} (${result.issues.map(issue=>issue.message).join("; ")})`)}return result.value}#loadedMass(cargo){return this.#build.unladenMass+cargo}#maxJumpFuel(fsd){return Math.min(this.#build.fuelCapacity.main,fsd.maxFuel)}};export{BuildMetrics};//# sourceMappingURL=chunk-YJAH6DFY.js.map
1
+ import{weaponsCapacitorMetrics}from"./chunk-M4FZRDAH.js";import{shieldCapacitorMetrics}from"./chunk-XQJERZUS.js";import{cellBankSummary,shieldRecovery}from"./chunk-JMAXSXXQ.js";import{loadoutInternals,fittedThrusterParamsFor,preEngineeredVariantFor,powerConsumerFor,powerAvailable,heatInputResultFor,completeResult,cellBankInputsFor,armourInputFor,weaponStatsFor,weaponsCapacitorInputFor,mobilityInputResultFor,shieldInputResultFor,shieldCapacitorInputResultFor,shieldRecoveryInputResultFor,distributorInputResultFor,incompleteResult}from"./chunk-ZBUTGTZ3.js";import{weaponMetrics,sumWeaponMetrics}from"./chunk-AAU7OM47.js";import{isNonOutfittingSlot,isBuiltInHullModule,orderBySlotLayout}from"./chunk-C3YZ5KTA.js";import{shieldMetrics}from"./chunk-5VWACBTN.js";import{powerBudget}from"./chunk-GGQMIQPC.js";import{frameShiftDriveMassFactor,singleJumpRange,fuelPerJump,totalRange}from"./chunk-VTMCSCXV.js";import{calculateUnladenMass}from"./chunk-C3LLPLLD.js";import{mobilityCapacitorMetrics}from"./chunk-VEEBJFJ7.js";import{mobilityMetrics}from"./chunk-A4QKXXZD.js";import{distributorMetrics}from"./chunk-M2TCZKRT.js";import{getExperimentalEffectCost}from"./chunk-CJK2IBI2.js";import{heatMetrics}from"./chunk-6HA2YIKW.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{armourMetrics}from"./chunk-Q5ALV3DI.js";import{requirePips,requireFiniteNonNegative}from"./chunk-65FZECUX.js";import{getBlueprintCost}from"./chunk-K5JK3XQB.js";import{sumMaterials}from"./chunk-U73MBQ45.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var FACADE="BuildMetrics";function requireLoadOptions(scope,options){for(const field of["fuel","cargo"]){const value=options[field];if(value!==void 0)requireFiniteNonNegative(scope,field,value)}}var BuildMetrics=class _BuildMetrics{#build;#state;constructor(build,state){this.#build=build;this.#state=state}static of(build){return new _BuildMetrics(build,loadoutInternals(build,`${FACADE}.of: build`))}loadout(){return this.#build}frameShiftDrive(){const drive=this.#state.resolveDrive();if(drive===null){throw new TypeError(`${FACADE}: build has no frame shift drive`)}return drive}thrusters(){return fittedThrusterParamsFor(this.#state.modules(),this.#state.statsFor)}frameShiftDriveMassFactor(options={}){requireLoadOptions(`${FACADE}.frameShiftDriveMassFactor`,options);return frameShiftDriveMassFactor(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}maxJumpRange(){const fsd=this.frameShiftDrive();return singleJumpRange(this.#loadedMass(0),this.#maxJumpFuel(fsd),fsd)}jumpRange(options={}){requireLoadOptions(`${FACADE}.jumpRange`,options);return singleJumpRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}ladenJumpRange(){return this.jumpRange({cargo:this.#build.cargoCapacity})}fuelPerJump(distance,options={}){requireLoadOptions(`${FACADE}.fuelPerJump`,options);return fuelPerJump(distance,this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}totalRange(options={}){requireLoadOptions(`${FACADE}.totalRange`,options);return totalRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}standardLoadResult(load){return this.#standardLoad(load)}jumpRangeSummary(){const maximum=this.#require(this.standardLoadResult("maximum"),"maximum load");const unladen=this.#require(this.standardLoadResult("unladen"),"unladen load");const laden=this.#require(this.standardLoadResult("laden"),"laden load");return{max:this.jumpRange(maximum),unladen:this.jumpRange(unladen),laden:this.jumpRange(laden),totalMax:this.totalRange(maximum),totalUnladen:this.totalRange(unladen),totalLaden:this.totalRange(laden)}}buildMass(options={}){requireLoadOptions(`${FACADE}.buildMass`,options);const unladen=this.#build.unladenMass;const fuel=options.fuel??this.#build.fuelCapacity.main;const cargo=options.cargo??0;return Object.freeze({hull:this.#state.ship.hullMass,modules:calculateUnladenMass(0,this.#state.calculationModules()),unladen:unladen,fuel:fuel,cargo:cargo,total:unladen+fuel+cargo})}buildCost(){const hull=this.#state.ship.hullCost;let modules=0;let mercCoins=0;const unpriced=[];const materials=[];for(const module of this.#state.modules()){const stats=this.#state.statsFor(module);if(stats?.cost!==void 0){modules+=stats.cost}else if(stats!==null||!isNonOutfittingSlot(module.Slot)&&!isBuiltInHullModule(module)){unpriced.push({slot:module.Slot,symbol:module.Item})}const variant=preEngineeredVariantFor(module);mercCoins+=variant?.mercCoinCost??0;const engineering=module.Engineering;if(!engineering)continue;const grade=engineering.Level;const bought=variant?.grade??0;if(Number.isInteger(grade)&&grade>bought&&grade<=5){const climb=getBlueprintCost(engineering.BlueprintName,grade,bought);if(climb){materials.push(climb.materials);mercCoins+=climb.mercCoins}}const experimental=engineering.ExperimentalEffect;if(experimental!==void 0&&experimental.toLowerCase()!==variant?.experimentalEffectSymbol?.toLowerCase()){const cost=getExperimentalEffectCost(experimental);if(cost)materials.push(cost)}}return deepFreeze({credits:{total:hull+modules,hull:hull,modules:modules,rebuy:Math.trunc((hull+modules)*.05),unpriced:unpriced},mercCoins:mercCoins,materials:sumMaterials(...materials)})}powerBudget(){const modules=this.#state.modules();const consumers=[];for(const module of modules){const consumer=powerConsumerFor(module,this.#state.statsFor(module));if(consumer)consumers.push(consumer)}return powerBudget(powerAvailable(modules,this.#state.statsFor),consumers)}heatMetricsResult(){const input=heatInputResultFor(this.#state.ship,this.#state.effectiveModules(),this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(heatMetrics(input.value)):input}mobilityMetricsResult(options={}){return this.#mobility(options)}mobilityCapacitorMetricsResult(options={}){return this.#mobilityCapacitor(options)}shieldMetricsResult(){return this.#shields()}shieldCapacitorMetricsResult(options={}){return this.#shieldCapacitor(options)}shieldRecoveryResult(options={}){return this.#recovery(options)}cellBanks(){return cellBankSummary(orderBySlotLayout(cellBankInputsFor(this.#state.modules(),this.powerBudget(),this.#state.statsFor),this.#state.layout(),bank=>bank.slot))}armourMetrics(){return armourMetrics(armourInputFor(this.#state.ship,this.#state.modules(),this.#state.statsFor))}weaponMetrics(){const weapons=[];for(const module of this.#state.modules()){const record=this.#state.statsFor(module);const stats=weaponStatsFor(this.#state.effectiveModule(module),record);if(!stats)continue;weapons.push({slot:module.Slot,symbol:module.Item,name:record?.name??module.Item,enabled:module.On!==false,metrics:weaponMetrics(stats),ammunition:ammunitionCapacity(stats),...stats.maximumRange===void 0?{}:{maximumRange:stats.maximumRange},...stats.falloffRange===void 0?{}:{falloffRange:stats.falloffRange},...stats.projectileRange===void 0?{}:{projectileRange:{...stats.projectileRange}},...stats.armourPiercing===void 0?{}:{armourPiercing:stats.armourPiercing}})}const orderedWeapons=orderBySlotLayout(weapons,this.#state.layout(),weapon=>weapon.slot);return{weapons:orderedWeapons,total:sumWeaponMetrics(orderedWeapons.filter(weapon=>weapon.enabled).map(weapon=>weapon.metrics))}}weaponsCapacitorMetrics(options={}){const weaponsPips=requirePips(`${FACADE}.weaponsCapacitorMetrics`,"weaponsPips",options.weaponsPips??4);return weaponsCapacitorMetrics(weaponsCapacitorInputFor(this.#state.effectiveModules(),weaponsPips,this.powerBudget(),this.#state.statsFor))}distributorMetricsResult(options={}){return this.#distributor(options)}#mobility(options){const input=this.#mobilityInput(`${FACADE}.mobilityMetricsResult`,options);return input.complete?completeResult(mobilityMetrics(input.value)):input}#mobilityCapacitor(options){const scope=`${FACADE}.mobilityCapacitorMetricsResult`;const enginesPips=requirePips(scope,"enginesPips",options.enginesPips??4);const input=this.#mobilityInput(scope,options);return input.complete?completeResult(mobilityCapacitorMetrics({...input.value,enginesPips:enginesPips})):input}#mobilityInput(scope,options){requireLoadOptions(scope,options);return mobilityInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),()=>this.#loadedMass(options.cargo??0)+(options.fuel??this.#state.statedMainFuel()??this.#build.fuelCapacity.main),this.#state.statsFor)}#shields(){const input=shieldInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(shieldMetrics(input.value)):input}#shieldCapacitor(options){const systemsPips=requirePips(`${FACADE}.shieldCapacitorMetricsResult`,"systemsPips",options.systemsPips??4);const input=shieldCapacitorInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldCapacitorMetrics(input.value)):input}#recovery(options){const systemsPips=requirePips(`${FACADE}.shieldRecoveryResult`,"systemsPips",options.systemsPips??4);const input=shieldRecoveryInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldRecovery(input.value)):input}#distributor(options){const scope=`${FACADE}.distributorMetricsResult`;const pips={systemsPips:requirePips(scope,"systemsPips",options.systemsPips??4),enginesPips:requirePips(scope,"enginesPips",options.enginesPips??4),weaponsPips:requirePips(scope,"weaponsPips",options.weaponsPips??4)};const input=distributorInputResultFor(this.#state.effectiveModules(),pips,this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(distributorMetrics(input.value)):input}#standardLoad(load){if(load!=="maximum"&&load!=="unladen"&&load!=="laden"){throw new RangeError(`${FACADE}.standardLoadResult: load must be 'maximum', 'unladen', or 'laden'`)}const fuel=this.#build.fuelCapacity;const cargo=load==="laden"?this.#build.cargoCapacity:0;const mass=load==="maximum"?this.#build.unladenMass:0;let drive=null;let maximumFuel=null;if(load==="maximum"){const fitted=this.#state.frameShiftDriveModule();let driveError=null;try{drive=this.#state.resolveDrive();maximumFuel=drive?.maxFuel??null}catch(error){if(!(error instanceof Error))throw error;driveError=error}if(maximumFuel===null){return incompleteResult([{field:"frameShiftDrive",reason:fitted?"unresolved":"missing",slot:fitted?.Slot??"FrameShiftDrive",...fitted?{symbol:fitted.Item}:{},message:driveError?.message??"FrameShiftDrive: no frame shift drive is fitted",params:fitted?{field:"frameShiftDrive",reason:"unresolved",slot:fitted.Slot,symbol:fitted.Item}:{field:"frameShiftDrive",reason:"missing",slot:"FrameShiftDrive"}}])}}const carriedFuel=load==="maximum"?Math.min(fuel.main,maximumFuel):fuel.main;const value=Object.freeze({fuel:carriedFuel,cargo:cargo,mass:this.#build.unladenMass+carriedFuel+cargo});if(load==="maximum"){try{this.jumpRange(value)}catch(error){if(!(error instanceof RangeError))throw error;const fitted=this.#state.frameShiftDriveModule();const field=drive!==null&&(!Number.isFinite(drive.maxFuel)||drive.maxFuel<0)?"frameShiftDrive":!Number.isFinite(value.fuel)||value.fuel<0?"fuelCapacity":!Number.isFinite(mass)||mass<0?"mass":"frameShiftDrive";const driveParams=field==="frameShiftDrive"&&fitted?{slot:fitted.Slot,symbol:fitted.Item}:{};return incompleteResult([{field:field,reason:"invalid",...driveParams,message:error.message,params:{field:field,reason:"invalid",...driveParams}}])}}return completeResult(value)}#require(result,what){if(result.value===null){throw new TypeError(`${FACADE}: cannot determine ${what} (${result.issues.map(issue=>issue.message).join("; ")})`)}return result.value}#loadedMass(cargo){return this.#build.unladenMass+cargo}#maxJumpFuel(fsd){return Math.min(this.#build.fuelCapacity.main,fsd.maxFuel)}};export{BuildMetrics};//# sourceMappingURL=chunk-G7WARJ3X.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/build-metrics.ts"],"names":["weaponsCapacitorMetrics","shieldCapacitorMetrics","cellBankSummary","shieldRecovery","loadoutInternals","fittedThrusterParamsFor","preEngineeredVariantFor","powerConsumerFor","powerAvailable","heatInputResultFor","completeResult","cellBankInputsFor","armourInputFor","weaponStatsFor","weaponsCapacitorInputFor","mobilityInputResultFor","shieldInputResultFor","shieldCapacitorInputResultFor","shieldRecoveryInputResultFor","distributorInputResultFor","incompleteResult","weaponMetrics","sumWeaponMetrics","isNonOutfittingSlot","isBuiltInHullModule","orderBySlotLayout","shieldMetrics","powerBudget","frameShiftDriveMassFactor","singleJumpRange","fuelPerJump","totalRange","calculateUnladenMass","mobilityCapacitorMetrics","mobilityMetrics","distributorMetrics","getExperimentalEffectCost","heatMetrics","ammunitionCapacity","armourMetrics","requirePips","requireFiniteNonNegative","getBlueprintCost","sumMaterials","deepFreeze","FACADE","requireLoadOptions","scope","options","field","value","BuildMetrics","_BuildMetrics","build","state","constructor","this","of","loadout","frameShiftDrive","drive","resolveDrive","TypeError","thrusters","modules","statsFor","loadedMass","cargo","fuel","fuelCapacity","main","maxJumpRange","fsd","maxJumpFuel","jumpRange","ladenJumpRange","cargoCapacity","distance","standardLoadResult","load","standardLoad","jumpRangeSummary","maximum","require","unladen","laden","max","totalMax","totalUnladen","totalLaden","buildMass","unladenMass","Object","freeze","hull","ship","hullMass","calculationModules","total","buildCost","hullCost","mercCoins","unpriced","materials","module","stats","cost","Slot","push","slot","symbol","Item","variant","mercCoinCost","engineering","Engineering","grade","Level","bought","Number","isInteger","climb","BlueprintName","experimental","ExperimentalEffect","toLowerCase","experimentalEffectSymbol","credits","rebuy","Math","trunc","consumers","consumer","heatMetricsResult","input","effectiveModules","complete","mobilityMetricsResult","mobility","mobilityCapacitorMetricsResult","mobilityCapacitor","shieldMetricsResult","shields","shieldCapacitorMetricsResult","shieldCapacitor","shieldRecoveryResult","recovery","cellBanks","layout","bank","weapons","record","effectiveModule","name","enabled","On","metrics","ammunition","maximumRange","falloffRange","projectileRange","armourPiercing","orderedWeapons","weapon","filter","map","weaponsPips","distributorMetricsResult","distributor","mobilityInput","enginesPips","statedMainFuel","systemsPips","pips","RangeError","mass","maximumFuel","fitted","frameShiftDriveModule","driveError","maxFuel","error","Error","reason","message","params","carriedFuel","min","isFinite","driveParams","result","what","issues","issue","join"],"mappings":"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"}