@elite-dangerous-almanac/core 0.2.0 → 0.2.1

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 (150) hide show
  1. package/PROVENANCE/ships/SOURCES.md +23 -0
  2. package/dist/chunk-37JIMWLK.js +1 -0
  3. package/dist/chunk-37JIMWLK.js.map +1 -0
  4. package/dist/chunk-4CBMQULR.js +1 -0
  5. package/dist/{chunk-4ZGUSHTP.js.map → chunk-4CBMQULR.js.map} +1 -1
  6. package/dist/{chunk-QTAMQ6ME.js → chunk-5VWACBTN.js} +1 -1
  7. package/dist/chunk-65FZECUX.js +1 -0
  8. package/dist/chunk-65FZECUX.js.map +1 -0
  9. package/dist/chunk-6BFQIYGZ.js +1 -0
  10. package/dist/chunk-6BFQIYGZ.js.map +1 -0
  11. package/dist/chunk-6HA2YIKW.js +1 -0
  12. package/dist/chunk-6HA2YIKW.js.map +1 -0
  13. package/dist/{chunk-7EE5VIHR.js → chunk-6HMIF2RJ.js} +1 -1
  14. package/dist/chunk-6S36AVA4.js +1 -0
  15. package/dist/chunk-6S36AVA4.js.map +1 -0
  16. package/dist/chunk-6WTUY6ZX.js +1 -0
  17. package/dist/{chunk-V3AEUBHV.js.map → chunk-6WTUY6ZX.js.map} +1 -1
  18. package/dist/chunk-77TT4K53.js +1 -0
  19. package/dist/{chunk-Y6KJJMIM.js → chunk-A4QKXXZD.js} +1 -1
  20. package/dist/chunk-AAE4KZ2V.js +1 -0
  21. package/dist/chunk-AAE4KZ2V.js.map +1 -0
  22. package/dist/{chunk-Q5XOGATC.js → chunk-AIEC3LBT.js} +1 -1
  23. package/dist/{chunk-QY3L5BKN.js → chunk-APEG4ZER.js} +1 -1
  24. package/dist/{chunk-JGOAQLYW.js → chunk-F44QX47A.js} +1 -1
  25. package/dist/{chunk-EVJ32UF3.js → chunk-FA5JVXVG.js} +1 -1
  26. package/dist/{chunk-EVJ32UF3.js.map → chunk-FA5JVXVG.js.map} +1 -1
  27. package/dist/chunk-GGQMIQPC.js +1 -0
  28. package/dist/chunk-GGQMIQPC.js.map +1 -0
  29. package/dist/{chunk-EYGVDJ2I.js → chunk-GMTAFUAG.js} +1 -1
  30. package/dist/{chunk-Z43DN4PY.js → chunk-GTEHRZPN.js} +1 -1
  31. package/dist/{chunk-Z43DN4PY.js.map → chunk-GTEHRZPN.js.map} +1 -1
  32. package/dist/{chunk-PA5EITW5.js → chunk-HUYYGTRM.js} +1 -1
  33. package/dist/{chunk-PA5EITW5.js.map → chunk-HUYYGTRM.js.map} +1 -1
  34. package/dist/{chunk-HKXXFIRI.js → chunk-ITKZKREP.js} +1 -1
  35. package/dist/{chunk-OYR5HUQZ.js → chunk-IWFQ4ZKF.js} +1 -1
  36. package/dist/{chunk-ZCEAPJDH.js → chunk-J7BM5NGK.js} +1 -1
  37. package/dist/chunk-JET673E5.js +1 -0
  38. package/dist/chunk-JET673E5.js.map +1 -0
  39. package/dist/chunk-JMAXSXXQ.js +1 -0
  40. package/dist/chunk-JMAXSXXQ.js.map +1 -0
  41. package/dist/chunk-JO52LYO3.js +1 -0
  42. package/dist/chunk-M2TCZKRT.js +1 -0
  43. package/dist/chunk-M2TCZKRT.js.map +1 -0
  44. package/dist/chunk-M4FZRDAH.js +1 -0
  45. package/dist/chunk-M4FZRDAH.js.map +1 -0
  46. package/dist/chunk-OJC6AUL7.js +1 -0
  47. package/dist/chunk-OJC6AUL7.js.map +1 -0
  48. package/dist/{chunk-FYVPZBXN.js → chunk-Q5ALV3DI.js} +1 -1
  49. package/dist/{chunk-SQS7672E.js → chunk-Q6YDPREF.js} +1 -1
  50. package/dist/chunk-SG6YLUQ4.js +1 -0
  51. package/dist/chunk-SG6YLUQ4.js.map +1 -0
  52. package/dist/{chunk-OVUHQEH5.js → chunk-T4MKUKYS.js} +1 -1
  53. package/dist/{chunk-OVUHQEH5.js.map → chunk-T4MKUKYS.js.map} +1 -1
  54. package/dist/{chunk-XUHAPOM6.js → chunk-VEEBJFJ7.js} +1 -1
  55. package/dist/{chunk-L747RVPO.js → chunk-VQJXRPYI.js} +1 -1
  56. package/dist/{chunk-L747RVPO.js.map → chunk-VQJXRPYI.js.map} +1 -1
  57. package/dist/chunk-VTMCSCXV.js +1 -0
  58. package/dist/chunk-VTMCSCXV.js.map +1 -0
  59. package/dist/chunk-XQJERZUS.js +1 -0
  60. package/dist/chunk-XQJERZUS.js.map +1 -0
  61. package/dist/commodities/commodities-all.js +1 -1
  62. package/dist/commodities/commodities-rare.js +1 -1
  63. package/dist/commodities/commodities-standard.js +1 -1
  64. package/dist/commodities/commodities.js +1 -1
  65. package/dist/commodities/index.js +1 -1
  66. package/dist/materials/index.js +1 -1
  67. package/dist/materials/materials-all.js +1 -1
  68. package/dist/materials/materials-encoded.js +1 -1
  69. package/dist/materials/materials-manufactured.js +1 -1
  70. package/dist/materials/materials-raw.js +1 -1
  71. package/dist/materials/materials.js +1 -1
  72. package/dist/ships/armour.js +1 -1
  73. package/dist/ships/build-metrics.js +1 -1
  74. package/dist/ships/distributor.js +1 -1
  75. package/dist/ships/heat.js +1 -1
  76. package/dist/ships/index.d.ts +1 -1
  77. package/dist/ships/index.js +1 -1
  78. package/dist/ships/jump-range.js +1 -1
  79. package/dist/ships/loadout-validation.d.ts +111 -5
  80. package/dist/ships/loadout-validation.js +1 -1
  81. package/dist/ships/mobility-capacitor.js +1 -1
  82. package/dist/ships/mobility.js +1 -1
  83. package/dist/ships/modules-all.js +1 -1
  84. package/dist/ships/modules-core.js +1 -1
  85. package/dist/ships/modules-internal.js +1 -1
  86. package/dist/ships/modules.d.ts +21 -1
  87. package/dist/ships/modules.js +1 -1
  88. package/dist/ships/power.js +1 -1
  89. package/dist/ships/pre-engineered-stats.d.ts +12 -7
  90. package/dist/ships/pre-engineered-stats.js +1 -1
  91. package/dist/ships/resistances.js +1 -1
  92. package/dist/ships/shield-capacitor.js +1 -1
  93. package/dist/ships/shield-recovery.js +1 -1
  94. package/dist/ships/shields.js +1 -1
  95. package/dist/ships/ship-loadout.d.ts +84 -17
  96. package/dist/ships/ship-loadout.js +1 -1
  97. package/dist/ships/slef.d.ts +4 -1
  98. package/dist/ships/slef.js +1 -1
  99. package/dist/ships/weapons-capacitor.js +1 -1
  100. package/dist/ships/weapons.js +1 -1
  101. package/package.json +1 -1
  102. package/dist/chunk-4KJ7CR74.js +0 -1
  103. package/dist/chunk-4KJ7CR74.js.map +0 -1
  104. package/dist/chunk-4ZGUSHTP.js +0 -1
  105. package/dist/chunk-6L56LWTT.js +0 -1
  106. package/dist/chunk-6L56LWTT.js.map +0 -1
  107. package/dist/chunk-6O4NRRSB.js +0 -1
  108. package/dist/chunk-6O4NRRSB.js.map +0 -1
  109. package/dist/chunk-7TQ2X6Q3.js +0 -1
  110. package/dist/chunk-7TQ2X6Q3.js.map +0 -1
  111. package/dist/chunk-B4ZSTOM4.js +0 -1
  112. package/dist/chunk-B4ZSTOM4.js.map +0 -1
  113. package/dist/chunk-D6YEHR5S.js +0 -1
  114. package/dist/chunk-D6YEHR5S.js.map +0 -1
  115. package/dist/chunk-EVW4Z4CB.js +0 -1
  116. package/dist/chunk-EVW4Z4CB.js.map +0 -1
  117. package/dist/chunk-GZYPQIO2.js +0 -1
  118. package/dist/chunk-GZYPQIO2.js.map +0 -1
  119. package/dist/chunk-JQG4C67D.js +0 -1
  120. package/dist/chunk-OYFMHDYT.js +0 -1
  121. package/dist/chunk-OYFMHDYT.js.map +0 -1
  122. package/dist/chunk-PY5L6WC5.js +0 -1
  123. package/dist/chunk-PY5L6WC5.js.map +0 -1
  124. package/dist/chunk-Q2L75GSI.js +0 -1
  125. package/dist/chunk-Q2L75GSI.js.map +0 -1
  126. package/dist/chunk-QJ7GB6FF.js +0 -1
  127. package/dist/chunk-QJ7GB6FF.js.map +0 -1
  128. package/dist/chunk-RRYBSAPX.js +0 -1
  129. package/dist/chunk-RRYBSAPX.js.map +0 -1
  130. package/dist/chunk-V3AEUBHV.js +0 -1
  131. package/dist/chunk-V4C6FIE2.js +0 -1
  132. package/dist/chunk-VYDQHPY2.js +0 -1
  133. package/dist/chunk-VYDQHPY2.js.map +0 -1
  134. package/dist/chunk-YXPZ7QQB.js +0 -1
  135. package/dist/chunk-YXPZ7QQB.js.map +0 -1
  136. /package/dist/{chunk-QTAMQ6ME.js.map → chunk-5VWACBTN.js.map} +0 -0
  137. /package/dist/{chunk-7EE5VIHR.js.map → chunk-6HMIF2RJ.js.map} +0 -0
  138. /package/dist/{chunk-JQG4C67D.js.map → chunk-77TT4K53.js.map} +0 -0
  139. /package/dist/{chunk-Y6KJJMIM.js.map → chunk-A4QKXXZD.js.map} +0 -0
  140. /package/dist/{chunk-Q5XOGATC.js.map → chunk-AIEC3LBT.js.map} +0 -0
  141. /package/dist/{chunk-QY3L5BKN.js.map → chunk-APEG4ZER.js.map} +0 -0
  142. /package/dist/{chunk-JGOAQLYW.js.map → chunk-F44QX47A.js.map} +0 -0
  143. /package/dist/{chunk-EYGVDJ2I.js.map → chunk-GMTAFUAG.js.map} +0 -0
  144. /package/dist/{chunk-HKXXFIRI.js.map → chunk-ITKZKREP.js.map} +0 -0
  145. /package/dist/{chunk-OYR5HUQZ.js.map → chunk-IWFQ4ZKF.js.map} +0 -0
  146. /package/dist/{chunk-ZCEAPJDH.js.map → chunk-J7BM5NGK.js.map} +0 -0
  147. /package/dist/{chunk-V4C6FIE2.js.map → chunk-JO52LYO3.js.map} +0 -0
  148. /package/dist/{chunk-FYVPZBXN.js.map → chunk-Q5ALV3DI.js.map} +0 -0
  149. /package/dist/{chunk-SQS7672E.js.map → chunk-Q6YDPREF.js.map} +0 -0
  150. /package/dist/{chunk-XUHAPOM6.js.map → chunk-VEEBJFJ7.js.map} +0 -0
@@ -1 +0,0 @@
1
- import{buildModuleCatalogue}from"./chunk-AFS6HN3D.js";var modules_internal_default=[{symbol:"Int_DockingComputer_Standard",familyId:"dockingComputers",name:"Standard Docking Computer",class:1,rating:"E",exclusionGroup:"dockingComputer",mass:0,integrity:10,powerDraw:.39,bootTime:3,cost:4500},{symbol:"Int_ShieldGenerator_Size1_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"E",exclusionGroup:"shieldGenerator",mass:1.3,integrity:32,powerDraw:.72,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:300},{symbol:"Int_ShieldGenerator_Size1_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"D",exclusionGroup:"shieldGenerator",mass:.5,integrity:24,powerDraw:.96,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1240},{symbol:"Int_ShieldGenerator_Size1_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"C",exclusionGroup:"shieldGenerator",mass:1.3,integrity:40,powerDraw:1.2,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5140},{symbol:"Int_ShieldGenerator_Size1_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"B",exclusionGroup:"shieldGenerator",mass:2,integrity:56,powerDraw:1.44,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6},{symbol:"Int_ShieldGenerator_Size1_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"A",exclusionGroup:"shieldGenerator",mass:1.3,integrity:48,powerDraw:1.68,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:88075},{symbol:"Int_ShieldGenerator_Size2_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"E",exclusionGroup:"shieldGenerator",mass:2.5,integrity:41,powerDraw:.9,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1978},{symbol:"Int_ShieldGenerator_Size2_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"D",exclusionGroup:"shieldGenerator",mass:1,integrity:31,powerDraw:1.2,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5934},{symbol:"Int_ShieldGenerator_Size2_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"C",exclusionGroup:"shieldGenerator",mass:2.5,integrity:51,powerDraw:1.5,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:17803},{symbol:"Int_ShieldGenerator_Size2_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"B",exclusionGroup:"shieldGenerator",mass:4,integrity:71,powerDraw:1.8,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:53408},{symbol:"Int_ShieldGenerator_Size2_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"A",exclusionGroup:"shieldGenerator",mass:2.5,integrity:61,powerDraw:2.1,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:160224},{symbol:"Int_ShieldGenerator_Size3_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"E",exclusionGroup:"shieldGenerator",mass:5,integrity:51,powerDraw:1.08,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:6271},{symbol:"Int_ShieldGenerator_Size3_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"D",exclusionGroup:"shieldGenerator",mass:2,integrity:38,powerDraw:1.44,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:18812},{symbol:"Int_ShieldGenerator_Size3_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"C",exclusionGroup:"shieldGenerator",mass:5,integrity:64,powerDraw:1.8,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:56435},{symbol:"Int_ShieldGenerator_Size3_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"B",exclusionGroup:"shieldGenerator",mass:8,integrity:90,powerDraw:2.16,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:169304},{symbol:"Int_ShieldGenerator_Size3_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"A",exclusionGroup:"shieldGenerator",mass:5,integrity:77,powerDraw:2.52,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:507912},{symbol:"Int_ShieldGenerator_Size4_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"E",exclusionGroup:"shieldGenerator",mass:10,integrity:64,powerDraw:1.32,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:19878},{symbol:"Int_ShieldGenerator_Size4_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"D",exclusionGroup:"shieldGenerator",mass:4,integrity:48,powerDraw:1.76,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:59633},{symbol:"Int_ShieldGenerator_Size4_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"C",exclusionGroup:"shieldGenerator",mass:10,integrity:80,powerDraw:2.2,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:178898},{symbol:"Int_ShieldGenerator_Size4_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"B",exclusionGroup:"shieldGenerator",mass:16,integrity:112,powerDraw:2.64,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:536693},{symbol:"Int_ShieldGenerator_Size4_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"A",exclusionGroup:"shieldGenerator",mass:10,integrity:96,powerDraw:3.08,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1610080},{symbol:"Int_ShieldGenerator_Size5_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"E",exclusionGroup:"shieldGenerator",mass:20,integrity:77,powerDraw:1.56,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:63012},{symbol:"Int_ShieldGenerator_Size5_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"D",exclusionGroup:"shieldGenerator",mass:8,integrity:58,powerDraw:2.08,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:189035},{symbol:"Int_ShieldGenerator_Size5_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"C",exclusionGroup:"shieldGenerator",mass:20,integrity:96,powerDraw:2.6,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:567106},{symbol:"Int_ShieldGenerator_Size5_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"B",exclusionGroup:"shieldGenerator",mass:32,integrity:134,powerDraw:3.12,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1701318},{symbol:"Int_ShieldGenerator_Size5_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"A",exclusionGroup:"shieldGenerator",mass:20,integrity:115,powerDraw:3.64,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5103953},{symbol:"Int_ShieldGenerator_Size6_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"E",exclusionGroup:"shieldGenerator",mass:40,integrity:90,powerDraw:1.86,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1.3,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:199747},{symbol:"Int_ShieldGenerator_Size6_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"D",exclusionGroup:"shieldGenerator",mass:16,integrity:68,powerDraw:2.48,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:599242},{symbol:"Int_ShieldGenerator_Size6_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"C",exclusionGroup:"shieldGenerator",mass:40,integrity:113,powerDraw:3.1,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1797726},{symbol:"Int_ShieldGenerator_Size6_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"B",exclusionGroup:"shieldGenerator",mass:64,integrity:158,powerDraw:3.72,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5393177},{symbol:"Int_ShieldGenerator_Size6_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"A",exclusionGroup:"shieldGenerator",mass:40,integrity:136,powerDraw:4.34,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:16179531},{symbol:"Int_ShieldGenerator_Size7_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"E",exclusionGroup:"shieldGenerator",mass:80,integrity:105,powerDraw:2.1,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:633199},{symbol:"Int_ShieldGenerator_Size7_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"D",exclusionGroup:"shieldGenerator",mass:32,integrity:79,powerDraw:2.8,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1899597},{symbol:"Int_ShieldGenerator_Size7_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"C",exclusionGroup:"shieldGenerator",mass:80,integrity:131,powerDraw:3.5,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5698790},{symbol:"Int_ShieldGenerator_Size7_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"B",exclusionGroup:"shieldGenerator",mass:128,integrity:183,powerDraw:4.2,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:17096371},{symbol:"Int_ShieldGenerator_Size7_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"A",exclusionGroup:"shieldGenerator",mass:80,integrity:157,powerDraw:4.9,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:51289112},{symbol:"Int_ShieldGenerator_Size8_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"E",exclusionGroup:"shieldGenerator",mass:160,integrity:120,powerDraw:2.4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:2007241},{symbol:"Int_ShieldGenerator_Size8_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"D",exclusionGroup:"shieldGenerator",mass:64,integrity:90,powerDraw:3.2,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:6021722},{symbol:"Int_ShieldGenerator_Size8_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"C",exclusionGroup:"shieldGenerator",mass:160,integrity:150,powerDraw:4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:18065165},{symbol:"Int_ShieldGenerator_Size8_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"B",exclusionGroup:"shieldGenerator",mass:256,integrity:210,powerDraw:4.8,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:54195495},{symbol:"Int_ShieldGenerator_Size8_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"A",exclusionGroup:"shieldGenerator",mass:160,integrity:180,powerDraw:5.6,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:162586486},{symbol:"Int_ShieldCellBank_Size1_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"E",mass:1.3,integrity:32,powerDraw:.41,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:170,shieldBankReinforcement:12,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:517},{symbol:"Int_ShieldCellBank_Size1_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"D",mass:.5,integrity:24,powerDraw:.55,bootTime:25,clipSize:1,ammoMaximum:1,thermalLoad:170,shieldBankReinforcement:16,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:1293},{symbol:"Int_ShieldCellBank_Size1_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.69,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:170,shieldBankReinforcement:20,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:3231},{symbol:"Int_ShieldCellBank_Size1_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"B",mass:2,integrity:56,powerDraw:.83,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:170,shieldBankReinforcement:24,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:8078},{symbol:"Int_ShieldCellBank_Size1_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"A",mass:1.3,integrity:48,powerDraw:.97,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:170,shieldBankReinforcement:28,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:20195},{symbol:"Int_ShieldCellBank_Size2_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"E",mass:2.5,integrity:41,powerDraw:.5,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:240,shieldBankReinforcement:14,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:1448},{symbol:"Int_ShieldCellBank_Size2_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"D",mass:1,integrity:31,powerDraw:.67,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:240,shieldBankReinforcement:18,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:3619},{symbol:"Int_ShieldCellBank_Size2_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"C",mass:2.5,integrity:51,powerDraw:.84,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:240,shieldBankReinforcement:23,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:9048},{symbol:"Int_ShieldCellBank_Size2_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"B",mass:4,integrity:71,powerDraw:1.01,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:240,shieldBankReinforcement:28,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:22619},{symbol:"Int_ShieldCellBank_Size2_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"A",mass:2.5,integrity:61,powerDraw:1.18,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:240,shieldBankReinforcement:32,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:56547},{symbol:"Int_ShieldCellBank_Size3_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"E",mass:5,integrity:51,powerDraw:.61,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:340,shieldBankReinforcement:17,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:4053},{symbol:"Int_ShieldCellBank_Size3_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"D",mass:2,integrity:38,powerDraw:.82,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:340,shieldBankReinforcement:23,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:10133},{symbol:"Int_ShieldCellBank_Size3_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"C",mass:5,integrity:64,powerDraw:1.02,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:340,shieldBankReinforcement:29,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:25333},{symbol:"Int_ShieldCellBank_Size3_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"B",mass:8,integrity:90,powerDraw:1.22,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:340,shieldBankReinforcement:35,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:63333},{symbol:"Int_ShieldCellBank_Size3_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"A",mass:5,integrity:77,powerDraw:1.43,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:340,shieldBankReinforcement:41,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:158331},{symbol:"Int_ShieldCellBank_Size4_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"E",mass:10,integrity:64,powerDraw:.74,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:410,shieldBankReinforcement:20,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:11349},{symbol:"Int_ShieldCellBank_Size4_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"D",mass:4,integrity:48,powerDraw:.98,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:410,shieldBankReinforcement:26,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:28373},{symbol:"Int_ShieldCellBank_Size4_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"C",mass:10,integrity:80,powerDraw:1.23,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:410,shieldBankReinforcement:33,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:70932},{symbol:"Int_ShieldCellBank_Size4_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"B",mass:16,integrity:112,powerDraw:1.48,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:410,shieldBankReinforcement:39,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:177331},{symbol:"Int_ShieldCellBank_Size4_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"A",mass:10,integrity:96,powerDraw:1.72,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:410,shieldBankReinforcement:46,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:443328},{symbol:"Int_ShieldCellBank_Size5_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"E",mass:20,integrity:77,powerDraw:.9,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:540,shieldBankReinforcement:21,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:31778},{symbol:"Int_ShieldCellBank_Size5_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"D",mass:8,integrity:58,powerDraw:1.2,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:540,shieldBankReinforcement:28,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:79444},{symbol:"Int_ShieldCellBank_Size5_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"C",mass:20,integrity:96,powerDraw:1.5,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:540,shieldBankReinforcement:35,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:198611},{symbol:"Int_ShieldCellBank_Size5_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"B",mass:32,integrity:134,powerDraw:1.8,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:540,shieldBankReinforcement:41,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:496527},{symbol:"Int_ShieldCellBank_Size5_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"A",mass:20,integrity:115,powerDraw:2.1,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:540,shieldBankReinforcement:48,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:1241317},{symbol:"Int_ShieldCellBank_Size6_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"E",mass:40,integrity:90,powerDraw:1.06,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:640,shieldBankReinforcement:20,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:88978},{symbol:"Int_ShieldCellBank_Size6_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"D",mass:16,integrity:68,powerDraw:1.42,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:640,shieldBankReinforcement:26,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:222444},{symbol:"Int_ShieldCellBank_Size6_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"C",mass:40,integrity:113,powerDraw:1.77,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:640,shieldBankReinforcement:33,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:556110},{symbol:"Int_ShieldCellBank_Size6_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"B",mass:64,integrity:158,powerDraw:2.12,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:640,shieldBankReinforcement:39,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:1390275},{symbol:"Int_ShieldCellBank_Size6_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"A",mass:40,integrity:136,powerDraw:2.48,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:640,shieldBankReinforcement:46,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:3475688},{symbol:"Int_ShieldCellBank_Size7_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"E",mass:80,integrity:105,powerDraw:1.24,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:720,shieldBankReinforcement:24,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:249137},{symbol:"Int_ShieldCellBank_Size7_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"D",mass:32,integrity:79,powerDraw:1.66,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:720,shieldBankReinforcement:32,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:622843},{symbol:"Int_ShieldCellBank_Size7_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"C",mass:80,integrity:131,powerDraw:2.07,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:720,shieldBankReinforcement:41,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:1557108},{symbol:"Int_ShieldCellBank_Size7_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"B",mass:128,integrity:183,powerDraw:2.48,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:720,shieldBankReinforcement:49,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:3892770},{symbol:"Int_ShieldCellBank_Size7_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"A",mass:80,integrity:157,powerDraw:2.9,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:720,shieldBankReinforcement:57,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:9731925},{symbol:"Int_ShieldCellBank_Size8_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"E",mass:160,integrity:120,powerDraw:1.44,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:800,shieldBankReinforcement:28,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:697584},{symbol:"Int_ShieldCellBank_Size8_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"D",mass:64,integrity:90,powerDraw:1.92,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:800,shieldBankReinforcement:37,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:1743961},{symbol:"Int_ShieldCellBank_Size8_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"C",mass:160,integrity:150,powerDraw:2.4,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:800,shieldBankReinforcement:47,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:4359903},{symbol:"Int_ShieldCellBank_Size8_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"B",mass:256,integrity:210,powerDraw:2.88,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:800,shieldBankReinforcement:56,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:10899756},{symbol:"Int_ShieldCellBank_Size8_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"A",mass:160,integrity:180,powerDraw:3.36,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:800,shieldBankReinforcement:65,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:27249391},{symbol:"Int_CargoRack_Size1_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:1,rating:"E",mass:0,cargoCapacity:2,cost:1e3},{symbol:"Int_CargoRack_Size2_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:2,rating:"E",mass:0,cargoCapacity:4,cost:3250},{symbol:"Int_CargoRack_Size3_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:3,rating:"E",mass:0,cargoCapacity:8,cost:10563},{symbol:"Int_CargoRack_Size4_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:4,rating:"E",mass:0,cargoCapacity:16,cost:34328},{symbol:"Int_CargoRack_Size5_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:5,rating:"E",mass:0,cargoCapacity:32,cost:111566},{symbol:"Int_CargoRack_Size6_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:6,rating:"E",mass:0,cargoCapacity:64,cost:362591},{symbol:"Int_CargoRack_Size7_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:7,rating:"E",mass:0,cargoCapacity:128,cost:1178420},{symbol:"Int_CargoRack_Size8_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:8,rating:"E",mass:0,cargoCapacity:256,cost:3829866},{symbol:"Int_DroneControl_ResourceSiphon",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"I",mass:0,integrity:20,powerDraw:.4,bootTime:0,cost:18040},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class1",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"E",mass:1.3,integrity:32,powerDraw:.12,bootTime:3,cost:600},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class2",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"D",mass:.5,integrity:24,powerDraw:.16,bootTime:3,cost:1200},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class3",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.2,bootTime:3,cost:2400},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class4",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"B",mass:2,integrity:56,powerDraw:.24,bootTime:3,cost:4800},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class5",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"A",mass:1.3,integrity:48,powerDraw:.28,bootTime:3,cost:9600},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class1",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"E",mass:5,integrity:51,powerDraw:.18,bootTime:3,cost:5400},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class2",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"D",mass:2,integrity:38,powerDraw:.24,bootTime:3,cost:10800},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class3",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.3,bootTime:3,cost:21600},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class4",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"B",mass:8,integrity:90,powerDraw:.36,bootTime:3,cost:43200},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class5",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"A",mass:5,integrity:77,powerDraw:.42,bootTime:3,cost:86400},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class1",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"E",mass:20,integrity:77,powerDraw:.3,bootTime:3,cost:48600},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class2",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"D",mass:8,integrity:58,powerDraw:.4,bootTime:3,cost:97200},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class3",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:3,cost:194400},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class4",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"B",mass:32,integrity:134,powerDraw:.6,bootTime:3,cost:388800},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class5",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"A",mass:20,integrity:115,powerDraw:.7,bootTime:3,cost:777600},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class1",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"E",mass:80,integrity:105,powerDraw:.42,bootTime:3,cost:437400},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class2",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"D",mass:32,integrity:79,powerDraw:.56,bootTime:3,cost:874800},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class3",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.7,bootTime:3,cost:1749600},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class4",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"B",mass:128,integrity:183,powerDraw:.84,bootTime:3,cost:3499200},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class5",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"A",mass:80,integrity:157,powerDraw:.98,bootTime:3,cost:6998400},{symbol:"Int_DetailedSurfaceScanner_Tiny",kind:"surfaceScanners",familyId:"surfaceScanners",name:"Detailed Surface Scanner",class:1,rating:"I",exclusionGroup:"detailedSurfaceScanner",mass:0,integrity:20,powerDraw:0,bootTime:0,probeRadius:20,cost:25e4},{symbol:"Int_ShieldGenerator_Size2_Class1_free",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"E",exclusionGroup:"shieldGenerator",mass:2.5,integrity:41,powerDraw:.9,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6},{symbol:"Int_CargoRack_Size2_Class1_free",familyId:"cargoRacks",name:"Cargo Rack",class:2,rating:"E",mass:0,cargoCapacity:4},{symbol:"Int_FuelScoop_Size1_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:32,powerDraw:.14,bootTime:4,refuelRate:.018,cost:309},{symbol:"Int_FuelScoop_Size2_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:41,powerDraw:.17,bootTime:4,refuelRate:.032,cost:1068},{symbol:"Int_FuelScoop_Size3_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:51,powerDraw:.2,bootTime:4,refuelRate:.075,cost:3386},{symbol:"Int_FuelScoop_Size4_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:64,powerDraw:.25,bootTime:4,refuelRate:.147,cost:10734},{symbol:"Int_FuelScoop_Size5_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:77,powerDraw:.3,bootTime:4,refuelRate:.247,cost:34026},{symbol:"Int_FuelScoop_Size6_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:90,powerDraw:.35,bootTime:4,refuelRate:.376,cost:107864},{symbol:"Int_FuelScoop_Size7_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:105,powerDraw:.41,bootTime:4,refuelRate:.534,cost:341927},{symbol:"Int_FuelScoop_Size8_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:120,powerDraw:.48,bootTime:4,refuelRate:.72,cost:1083910},{symbol:"Int_FuelScoop_Size1_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:24,powerDraw:.18,bootTime:4,refuelRate:.024,cost:1285},{symbol:"Int_FuelScoop_Size2_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:31,powerDraw:.22,bootTime:4,refuelRate:.043,cost:4451},{symbol:"Int_FuelScoop_Size3_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:38,powerDraw:.27,bootTime:4,refuelRate:.1,cost:14109},{symbol:"Int_FuelScoop_Size4_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:48,powerDraw:.33,bootTime:4,refuelRate:.196,cost:44724},{symbol:"Int_FuelScoop_Size5_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:58,powerDraw:.4,bootTime:4,refuelRate:.33,cost:141776},{symbol:"Int_FuelScoop_Size6_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:68,powerDraw:.47,bootTime:4,refuelRate:.502,cost:449431},{symbol:"Int_FuelScoop_Size7_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:79,powerDraw:.55,bootTime:4,refuelRate:.712,cost:1424698},{symbol:"Int_FuelScoop_Size8_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:90,powerDraw:.64,bootTime:4,refuelRate:.96,cost:4516291},{symbol:"Int_FuelScoop_Size1_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:40,powerDraw:.23,bootTime:4,refuelRate:.03,cost:5142},{symbol:"Int_FuelScoop_Size2_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:51,powerDraw:.28,bootTime:4,refuelRate:.054,cost:17803},{symbol:"Int_FuelScoop_Size3_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:64,powerDraw:.34,bootTime:4,refuelRate:.126,cost:56435},{symbol:"Int_FuelScoop_Size4_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:80,powerDraw:.41,bootTime:4,refuelRate:.245,cost:178898},{symbol:"Int_FuelScoop_Size5_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:96,powerDraw:.5,bootTime:4,refuelRate:.412,cost:567106},{symbol:"Int_FuelScoop_Size6_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:113,powerDraw:.59,bootTime:4,refuelRate:.627,cost:1797726},{symbol:"Int_FuelScoop_Size7_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:131,powerDraw:.69,bootTime:4,refuelRate:.89,cost:5698790},{symbol:"Int_FuelScoop_Size8_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:150,powerDraw:.8,bootTime:4,refuelRate:1.2,cost:18065165},{symbol:"Int_FuelScoop_Size1_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:56,powerDraw:.28,bootTime:4,refuelRate:.036,cost:20568},{symbol:"Int_FuelScoop_Size2_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:70,powerDraw:.34,bootTime:4,refuelRate:.065,cost:71211},{symbol:"Int_FuelScoop_Size3_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:90,powerDraw:.41,bootTime:4,refuelRate:.151,cost:225738},{symbol:"Int_FuelScoop_Size4_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:112,powerDraw:.49,bootTime:4,refuelRate:.294,cost:715591},{symbol:"Int_FuelScoop_Size5_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:134,powerDraw:.6,bootTime:4,refuelRate:.494,cost:2268424},{symbol:"Int_FuelScoop_Size6_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:158,powerDraw:.71,bootTime:4,refuelRate:.752,cost:7190903},{symbol:"Int_FuelScoop_Size7_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:183,powerDraw:.83,bootTime:4,refuelRate:1.068,cost:22795161},{symbol:"Int_FuelScoop_Size8_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:210,powerDraw:.96,bootTime:4,refuelRate:1.44,cost:72260660},{symbol:"Int_FuelScoop_Size1_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:48,powerDraw:.32,bootTime:4,refuelRate:.042,cost:82270},{symbol:"Int_FuelScoop_Size2_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:61,powerDraw:.39,bootTime:4,refuelRate:.075,cost:284844},{symbol:"Int_FuelScoop_Size3_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:77,powerDraw:.48,bootTime:4,refuelRate:.176,cost:902954},{symbol:"Int_FuelScoop_Size4_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:96,powerDraw:.57,bootTime:4,refuelRate:.343,cost:2862364},{symbol:"Int_FuelScoop_Size5_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:115,powerDraw:.7,bootTime:4,refuelRate:.577,cost:9073694},{symbol:"Int_FuelScoop_Size6_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:136,powerDraw:.83,bootTime:4,refuelRate:.878,cost:28763610},{symbol:"Int_FuelScoop_Size7_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:157,powerDraw:.97,bootTime:4,refuelRate:1.245,cost:91180644},{symbol:"Int_FuelScoop_Size8_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:180,powerDraw:1.12,bootTime:4,refuelRate:1.68,cost:289042641},{symbol:"Int_Refinery_Size1_Class1",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"E",exclusionGroup:"refinery",mass:0,integrity:32,powerDraw:.14,bootTime:10,cost:6e3},{symbol:"Int_Refinery_Size2_Class1",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"E",exclusionGroup:"refinery",mass:0,integrity:41,powerDraw:.17,bootTime:10,cost:12600},{symbol:"Int_Refinery_Size3_Class1",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"E",exclusionGroup:"refinery",mass:0,integrity:51,powerDraw:.2,bootTime:10,cost:26460},{symbol:"Int_Refinery_Size4_Class1",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"E",exclusionGroup:"refinery",mass:0,integrity:64,powerDraw:.25,bootTime:10,cost:55566},{symbol:"Int_Refinery_Size1_Class2",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"D",exclusionGroup:"refinery",mass:0,integrity:24,powerDraw:.18,bootTime:10,cost:18e3},{symbol:"Int_Refinery_Size2_Class2",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"D",exclusionGroup:"refinery",mass:0,integrity:31,powerDraw:.22,bootTime:10,cost:37800},{symbol:"Int_Refinery_Size3_Class2",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"D",exclusionGroup:"refinery",mass:0,integrity:38,powerDraw:.27,bootTime:10,cost:79380},{symbol:"Int_Refinery_Size4_Class2",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"D",exclusionGroup:"refinery",mass:0,integrity:48,powerDraw:.33,bootTime:10,cost:166698},{symbol:"Int_Refinery_Size1_Class3",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"C",exclusionGroup:"refinery",mass:0,integrity:40,powerDraw:.23,bootTime:10,cost:54e3},{symbol:"Int_Refinery_Size2_Class3",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"C",exclusionGroup:"refinery",mass:0,integrity:51,powerDraw:.28,bootTime:10,cost:113400},{symbol:"Int_Refinery_Size3_Class3",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"C",exclusionGroup:"refinery",mass:0,integrity:64,powerDraw:.34,bootTime:10,cost:238140},{symbol:"Int_Refinery_Size4_Class3",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"C",exclusionGroup:"refinery",mass:0,integrity:80,powerDraw:.41,bootTime:10,cost:500094},{symbol:"Int_Refinery_Size1_Class4",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"B",exclusionGroup:"refinery",mass:0,integrity:56,powerDraw:.28,bootTime:10,cost:162e3},{symbol:"Int_Refinery_Size2_Class4",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"B",exclusionGroup:"refinery",mass:0,integrity:71,powerDraw:.34,bootTime:10,cost:340200},{symbol:"Int_Refinery_Size3_Class4",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"B",exclusionGroup:"refinery",mass:0,integrity:90,powerDraw:.41,bootTime:10,cost:714420},{symbol:"Int_Refinery_Size4_Class4",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"B",exclusionGroup:"refinery",mass:0,integrity:112,powerDraw:.49,bootTime:10,cost:1500282},{symbol:"Int_Refinery_Size1_Class5",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"A",exclusionGroup:"refinery",mass:0,integrity:48,powerDraw:.32,bootTime:10,cost:486e3},{symbol:"Int_Refinery_Size2_Class5",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"A",exclusionGroup:"refinery",mass:0,integrity:61,powerDraw:.39,bootTime:10,cost:1020600},{symbol:"Int_Refinery_Size3_Class5",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"A",exclusionGroup:"refinery",mass:0,integrity:77,powerDraw:.48,bootTime:10,cost:2143260},{symbol:"Int_Refinery_Size4_Class5",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"A",exclusionGroup:"refinery",mass:0,integrity:96,powerDraw:.57,bootTime:10,cost:4500846},{symbol:"Int_FSDInterdictor_Size1_Class1",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:1.3,integrity:32,powerDraw:.14,bootTime:15,interdictorFacingLimit:50,interdictorRange:3,cost:12e3},{symbol:"Int_FSDInterdictor_Size2_Class1",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:2.5,integrity:41,powerDraw:.17,bootTime:15,interdictorFacingLimit:50,interdictorRange:6,cost:33600},{symbol:"Int_FSDInterdictor_Size3_Class1",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:5,integrity:51,powerDraw:.2,bootTime:15,interdictorFacingLimit:50,interdictorRange:9,cost:94080},{symbol:"Int_FSDInterdictor_Size4_Class1",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:10,integrity:64,powerDraw:.25,bootTime:15,interdictorFacingLimit:50,interdictorRange:12,cost:263424},{symbol:"Int_FSDInterdictor_Size1_Class2",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:.5,integrity:24,powerDraw:.18,bootTime:15,interdictorFacingLimit:50,interdictorRange:4,cost:36e3},{symbol:"Int_FSDInterdictor_Size2_Class2",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:1,integrity:31,powerDraw:.22,bootTime:15,interdictorFacingLimit:50,interdictorRange:7,cost:100800},{symbol:"Int_FSDInterdictor_Size3_Class2",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:2,integrity:38,powerDraw:.27,bootTime:15,interdictorFacingLimit:50,interdictorRange:10,cost:282240},{symbol:"Int_FSDInterdictor_Size4_Class2",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:4,integrity:48,powerDraw:.33,bootTime:15,interdictorFacingLimit:50,interdictorRange:13,cost:790272},{symbol:"Int_FSDInterdictor_Size1_Class3",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:1.3,integrity:40,powerDraw:.23,bootTime:15,interdictorFacingLimit:50,interdictorRange:5,cost:108e3},{symbol:"Int_FSDInterdictor_Size2_Class3",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:2.5,integrity:51,powerDraw:.28,bootTime:15,interdictorFacingLimit:50,interdictorRange:8,cost:302400},{symbol:"Int_FSDInterdictor_Size3_Class3",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:5,integrity:64,powerDraw:.34,bootTime:15,interdictorFacingLimit:50,interdictorRange:11,cost:846720},{symbol:"Int_FSDInterdictor_Size4_Class3",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:10,integrity:80,powerDraw:.41,bootTime:15,interdictorFacingLimit:50,interdictorRange:14,cost:2370816},{symbol:"Int_FSDInterdictor_Size1_Class4",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:2,integrity:56,powerDraw:.28,bootTime:15,interdictorFacingLimit:50,interdictorRange:6,cost:324e3},{symbol:"Int_FSDInterdictor_Size2_Class4",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:4,integrity:71,powerDraw:.34,bootTime:15,interdictorFacingLimit:50,interdictorRange:9,cost:907200},{symbol:"Int_FSDInterdictor_Size3_Class4",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:8,integrity:90,powerDraw:.41,bootTime:15,interdictorFacingLimit:50,interdictorRange:12,cost:2540160},{symbol:"Int_FSDInterdictor_Size4_Class4",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:16,integrity:112,powerDraw:.49,bootTime:15,interdictorFacingLimit:50,interdictorRange:15,cost:7112448},{symbol:"Int_FSDInterdictor_Size1_Class5",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:1.3,integrity:48,powerDraw:.32,bootTime:15,interdictorFacingLimit:50,interdictorRange:7,cost:972e3},{symbol:"Int_FSDInterdictor_Size2_Class5",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:2.5,integrity:61,powerDraw:.39,bootTime:15,interdictorFacingLimit:50,interdictorRange:10,cost:2721600},{symbol:"Int_FSDInterdictor_Size3_Class5",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:5,integrity:77,powerDraw:.48,bootTime:15,interdictorFacingLimit:50,interdictorRange:13,cost:7620480},{symbol:"Int_FSDInterdictor_Size4_Class5",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:10,integrity:96,powerDraw:.57,bootTime:15,interdictorFacingLimit:50,interdictorRange:16,cost:21337344},{symbol:"Int_Repairer_Size1_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"E",mass:0,integrity:32,powerDraw:.54,bootTime:9,ammoMaximum:1e3,cost:1e4},{symbol:"Int_Repairer_Size2_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"E",mass:0,integrity:41,powerDraw:.68,bootTime:9,ammoMaximum:2300,cost:18e3},{symbol:"Int_Repairer_Size3_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"E",mass:0,integrity:51,powerDraw:.81,bootTime:9,ammoMaximum:3600,cost:32400},{symbol:"Int_Repairer_Size4_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"E",mass:0,integrity:64,powerDraw:.99,bootTime:9,ammoMaximum:4900,cost:58320},{symbol:"Int_Repairer_Size5_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"E",mass:0,integrity:77,powerDraw:1.17,bootTime:9,ammoMaximum:6100,cost:104976},{symbol:"Int_Repairer_Size6_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"E",mass:0,integrity:90,powerDraw:1.4,bootTime:9,ammoMaximum:7400,cost:188957},{symbol:"Int_Repairer_Size7_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"E",mass:0,integrity:105,powerDraw:1.58,bootTime:9,ammoMaximum:8700,cost:340122},{symbol:"Int_Repairer_Size8_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"E",mass:0,integrity:120,powerDraw:1.8,bootTime:9,ammoMaximum:1e4,cost:612220},{symbol:"Int_Repairer_Size1_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"D",mass:0,integrity:24,powerDraw:.72,bootTime:9,ammoMaximum:900,cost:3e4},{symbol:"Int_Repairer_Size2_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"D",mass:0,integrity:31,powerDraw:.9,bootTime:9,ammoMaximum:2100,cost:54e3},{symbol:"Int_Repairer_Size3_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"D",mass:0,integrity:38,powerDraw:1.08,bootTime:9,ammoMaximum:3200,cost:97200},{symbol:"Int_Repairer_Size4_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"D",mass:0,integrity:48,powerDraw:1.32,bootTime:9,ammoMaximum:4400,cost:174960},{symbol:"Int_Repairer_Size5_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"D",mass:0,integrity:58,powerDraw:1.56,bootTime:9,ammoMaximum:5500,cost:314928},{symbol:"Int_Repairer_Size6_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"D",mass:0,integrity:68,powerDraw:1.86,bootTime:9,ammoMaximum:6700,cost:566870},{symbol:"Int_Repairer_Size7_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"D",mass:0,integrity:79,powerDraw:2.1,bootTime:9,ammoMaximum:7800,cost:1020367},{symbol:"Int_Repairer_Size8_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"D",mass:0,integrity:90,powerDraw:2.4,bootTime:9,ammoMaximum:9e3,cost:1836660},{symbol:"Int_Repairer_Size1_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"C",mass:0,integrity:40,powerDraw:.9,bootTime:9,ammoMaximum:1e3,cost:9e4},{symbol:"Int_Repairer_Size2_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"C",mass:0,integrity:51,powerDraw:1.13,bootTime:9,ammoMaximum:2300,cost:162e3},{symbol:"Int_Repairer_Size3_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"C",mass:0,integrity:64,powerDraw:1.35,bootTime:9,ammoMaximum:3600,cost:291600},{symbol:"Int_Repairer_Size4_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"C",mass:0,integrity:80,powerDraw:1.65,bootTime:9,ammoMaximum:4900,cost:524880},{symbol:"Int_Repairer_Size5_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"C",mass:0,integrity:96,powerDraw:1.95,bootTime:9,ammoMaximum:6100,cost:944784},{symbol:"Int_Repairer_Size6_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"C",mass:0,integrity:113,powerDraw:2.33,bootTime:9,ammoMaximum:7400,cost:1700611},{symbol:"Int_Repairer_Size7_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"C",mass:0,integrity:131,powerDraw:2.63,bootTime:9,ammoMaximum:8700,cost:3061100},{symbol:"Int_Repairer_Size8_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"C",mass:0,integrity:150,powerDraw:3,bootTime:9,ammoMaximum:1e4,cost:5509980},{symbol:"Int_Repairer_Size1_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"B",mass:0,integrity:56,powerDraw:1.04,bootTime:9,ammoMaximum:1200,cost:27e4},{symbol:"Int_Repairer_Size2_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"B",mass:0,integrity:71,powerDraw:1.29,bootTime:9,ammoMaximum:2800,cost:486e3},{symbol:"Int_Repairer_Size3_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"B",mass:0,integrity:90,powerDraw:1.55,bootTime:9,ammoMaximum:4300,cost:874800},{symbol:"Int_Repairer_Size4_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"B",mass:0,integrity:112,powerDraw:1.9,bootTime:9,ammoMaximum:5900,cost:1574640},{symbol:"Int_Repairer_Size5_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"B",mass:0,integrity:134,powerDraw:2.24,bootTime:9,ammoMaximum:7300,cost:2834352},{symbol:"Int_Repairer_Size6_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"B",mass:0,integrity:158,powerDraw:2.67,bootTime:9,ammoMaximum:8900,cost:5101834},{symbol:"Int_Repairer_Size7_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"B",mass:0,integrity:183,powerDraw:3.02,bootTime:9,ammoMaximum:10400,cost:9183300},{symbol:"Int_Repairer_Size8_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"B",mass:0,integrity:210,powerDraw:3.45,bootTime:9,ammoMaximum:12e3,cost:16529941},{symbol:"Int_Repairer_Size1_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"A",mass:0,integrity:46,powerDraw:1.26,bootTime:9,ammoMaximum:1100,cost:81e4},{symbol:"Int_Repairer_Size2_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"A",mass:0,integrity:59,powerDraw:1.58,bootTime:9,ammoMaximum:2500,cost:1458e3},{symbol:"Int_Repairer_Size3_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"A",mass:0,integrity:74,powerDraw:1.89,bootTime:9,ammoMaximum:4e3,cost:2624400},{symbol:"Int_Repairer_Size4_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"A",mass:0,integrity:92,powerDraw:2.31,bootTime:9,ammoMaximum:5400,cost:4723920},{symbol:"Int_Repairer_Size5_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"A",mass:0,integrity:110,powerDraw:2.73,bootTime:9,ammoMaximum:6700,cost:8503056},{symbol:"Int_Repairer_Size6_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"A",mass:0,integrity:130,powerDraw:3.26,bootTime:9,ammoMaximum:8100,cost:15305501},{symbol:"Int_Repairer_Size7_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"A",mass:0,integrity:151,powerDraw:3.68,bootTime:9,ammoMaximum:9600,cost:27549901},{symbol:"Int_Repairer_Size8_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"A",mass:0,integrity:173,powerDraw:4.2,bootTime:9,ammoMaximum:11e3,cost:49589823},{symbol:"Int_HullReinforcement_Size1_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:1,rating:"E",mass:2,kineticResistance:.005,thermalResistance:.005,explosiveResistance:.005,causticResistance:0,hullReinforcement:80,cost:5e3},{symbol:"Int_HullReinforcement_Size1_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:1,rating:"D",mass:1,kineticResistance:.005,thermalResistance:.005,explosiveResistance:.005,causticResistance:0,hullReinforcement:110,cost:15e3},{symbol:"Int_HullReinforcement_Size2_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:2,rating:"E",mass:4,kineticResistance:.01,thermalResistance:.01,explosiveResistance:.01,causticResistance:0,hullReinforcement:150,cost:12e3},{symbol:"Int_HullReinforcement_Size2_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:2,rating:"D",mass:2,kineticResistance:.01,thermalResistance:.01,explosiveResistance:.01,causticResistance:0,hullReinforcement:190,cost:36e3},{symbol:"Int_HullReinforcement_Size3_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:3,rating:"E",mass:8,kineticResistance:.015,thermalResistance:.015,explosiveResistance:.015,causticResistance:0,hullReinforcement:230,cost:28e3},{symbol:"Int_HullReinforcement_Size3_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:3,rating:"D",mass:4,kineticResistance:.015,thermalResistance:.015,explosiveResistance:.015,causticResistance:0,hullReinforcement:260,cost:84e3},{symbol:"Int_HullReinforcement_Size4_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:4,rating:"E",mass:16,kineticResistance:.02,thermalResistance:.02,explosiveResistance:.02,causticResistance:0,hullReinforcement:300,cost:65e3},{symbol:"Int_HullReinforcement_Size4_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:4,rating:"D",mass:8,kineticResistance:.02,thermalResistance:.02,explosiveResistance:.02,causticResistance:0,hullReinforcement:330,cost:195e3},{symbol:"Int_HullReinforcement_Size5_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:5,rating:"E",mass:32,kineticResistance:.025,thermalResistance:.025,explosiveResistance:.025,causticResistance:0,hullReinforcement:360,cost:15e4},{symbol:"Int_HullReinforcement_Size5_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:5,rating:"D",mass:16,kineticResistance:.025,thermalResistance:.025,explosiveResistance:.025,causticResistance:0,hullReinforcement:390,cost:45e4},{symbol:"Int_DroneControl_Collection_Size1_Class1",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"E",mass:.5,integrity:24,powerDraw:.14,bootTime:6,cost:600},{symbol:"Int_DroneControl_Collection_Size1_Class2",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.18,bootTime:6,cost:1200},{symbol:"Int_DroneControl_Collection_Size1_Class3",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:6,cost:2400},{symbol:"Int_DroneControl_Collection_Size1_Class4",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.28,bootTime:6,cost:4800},{symbol:"Int_DroneControl_Collection_Size1_Class5",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"A",mass:2,integrity:56,powerDraw:.32,bootTime:6,cost:9600},{symbol:"Int_DroneControl_Collection_Size3_Class1",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"E",mass:2,integrity:38,powerDraw:.2,bootTime:6,cost:5400},{symbol:"Int_DroneControl_Collection_Size3_Class2",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.27,bootTime:6,cost:10800},{symbol:"Int_DroneControl_Collection_Size3_Class3",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:6,cost:21600},{symbol:"Int_DroneControl_Collection_Size3_Class4",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.41,bootTime:6,cost:43200},{symbol:"Int_DroneControl_Collection_Size3_Class5",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"A",mass:8,integrity:90,powerDraw:.48,bootTime:6,cost:86400},{symbol:"Int_DroneControl_Collection_Size5_Class1",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"E",mass:8,integrity:58,powerDraw:.3,bootTime:6,cost:48600},{symbol:"Int_DroneControl_Collection_Size5_Class2",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.4,bootTime:6,cost:97200},{symbol:"Int_DroneControl_Collection_Size5_Class3",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:6,cost:194400},{symbol:"Int_DroneControl_Collection_Size5_Class4",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.6,bootTime:6,cost:388800},{symbol:"Int_DroneControl_Collection_Size5_Class5",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"A",mass:32,integrity:134,powerDraw:.7,bootTime:6,cost:777600},{symbol:"Int_DroneControl_Collection_Size7_Class1",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"E",mass:32,integrity:79,powerDraw:.41,bootTime:6,cost:437400},{symbol:"Int_DroneControl_Collection_Size7_Class2",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.55,bootTime:6,cost:874800},{symbol:"Int_DroneControl_Collection_Size7_Class3",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:6,cost:1749600},{symbol:"Int_DroneControl_Collection_Size7_Class4",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.83,bootTime:6,cost:3499200},{symbol:"Int_DroneControl_Collection_Size7_Class5",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"A",mass:128,integrity:183,powerDraw:.97,bootTime:6,cost:6998400},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class1",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:600},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class2",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.14,bootTime:10,cost:1200},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class3",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:10,cost:2400},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class4",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.32,bootTime:10,cost:4800},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class5",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"A",mass:1.3,integrity:56,powerDraw:.28,bootTime:10,cost:9600},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class1",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"E",mass:5,integrity:38,powerDraw:.27,bootTime:10,cost:5400},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class2",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:10800},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class3",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:10,cost:21600},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class4",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.48,bootTime:10,cost:43200},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class5",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"A",mass:5,integrity:90,powerDraw:.41,bootTime:10,cost:86400},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class1",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"E",mass:20,integrity:58,powerDraw:.4,bootTime:10,cost:48600},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class2",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.3,bootTime:10,cost:97200},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class3",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:10,cost:194400},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class4",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.72,bootTime:10,cost:388800},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class5",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"A",mass:20,integrity:134,powerDraw:.6,bootTime:10,cost:777600},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class1",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"E",mass:80,integrity:79,powerDraw:.55,bootTime:10,cost:437400},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class2",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.41,bootTime:10,cost:874800},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class3",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:10,cost:1749600},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class4",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:3499200},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class5",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"A",mass:80,integrity:183,powerDraw:.83,bootTime:10,cost:6998400},{symbol:"Int_DroneControl_Prospector_Size1_Class1",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:4,cost:600},{symbol:"Int_DroneControl_Prospector_Size1_Class2",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.14,bootTime:4,cost:1200},{symbol:"Int_DroneControl_Prospector_Size1_Class3",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:4,cost:2400},{symbol:"Int_DroneControl_Prospector_Size1_Class4",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.32,bootTime:4,cost:4800},{symbol:"Int_DroneControl_Prospector_Size1_Class5",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"A",mass:1.3,integrity:56,powerDraw:.28,bootTime:4,cost:9600},{symbol:"Int_DroneControl_Prospector_Size3_Class1",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"E",mass:5,integrity:38,powerDraw:.27,bootTime:4,cost:5400},{symbol:"Int_DroneControl_Prospector_Size3_Class2",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.2,bootTime:4,cost:10800},{symbol:"Int_DroneControl_Prospector_Size3_Class3",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:4,cost:21600},{symbol:"Int_DroneControl_Prospector_Size3_Class4",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.48,bootTime:4,cost:43200},{symbol:"Int_DroneControl_Prospector_Size3_Class5",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"A",mass:5,integrity:90,powerDraw:.41,bootTime:4,cost:86400},{symbol:"Int_DroneControl_Prospector_Size5_Class1",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"E",mass:20,integrity:58,powerDraw:.4,bootTime:4,cost:48600},{symbol:"Int_DroneControl_Prospector_Size5_Class2",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.3,bootTime:4,cost:97200},{symbol:"Int_DroneControl_Prospector_Size5_Class3",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:4,cost:194400},{symbol:"Int_DroneControl_Prospector_Size5_Class4",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.72,bootTime:4,cost:388800},{symbol:"Int_DroneControl_Prospector_Size5_Class5",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"A",mass:20,integrity:134,powerDraw:.6,bootTime:4,cost:777600},{symbol:"Int_DroneControl_Prospector_Size7_Class1",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"E",mass:80,integrity:79,powerDraw:.55,bootTime:4,cost:437400},{symbol:"Int_DroneControl_Prospector_Size7_Class2",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.41,bootTime:4,cost:874800},{symbol:"Int_DroneControl_Prospector_Size7_Class3",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:4,cost:1749600},{symbol:"Int_DroneControl_Prospector_Size7_Class4",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.97,bootTime:4,cost:3499200},{symbol:"Int_DroneControl_Prospector_Size7_Class5",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"A",mass:80,integrity:183,powerDraw:.83,bootTime:4,cost:6998400},{symbol:"Int_ShieldGenerator_Size1_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:1,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:2.6,integrity:48,powerDraw:2.52,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.2,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:132200},{symbol:"Int_ShieldGenerator_Size2_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:2,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:5,integrity:61,powerDraw:3.15,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.2,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:240340},{symbol:"Int_ShieldGenerator_Size3_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:3,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:10,integrity:77,powerDraw:3.78,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.3,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:761870},{symbol:"Int_ShieldGenerator_Size4_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:4,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:20,integrity:96,powerDraw:4.62,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.66,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:2415120},{symbol:"Int_ShieldGenerator_Size5_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:5,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:40,integrity:115,powerDraw:5.46,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:2.34,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:7655930},{symbol:"Int_ShieldGenerator_Size6_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:6,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:80,integrity:136,powerDraw:6.51,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:3.2,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:24269300},{symbol:"Int_ShieldGenerator_Size7_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:7,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:160,integrity:157,powerDraw:7.35,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1.06,shieldBrokenRegenRate:4.25,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:76933670},{symbol:"Int_ShieldGenerator_Size8_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:8,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:320,integrity:180,powerDraw:8.4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1.35,shieldBrokenRegenRate:5.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:243879730},{symbol:"Int_ShieldGenerator_Size1_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:1,rating:"C",exclusionGroup:"shieldGenerator",mass:1.3,integrity:40,powerDraw:1.2,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:2.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:7713},{symbol:"Int_ShieldGenerator_Size2_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:2,rating:"C",exclusionGroup:"shieldGenerator",mass:2.5,integrity:51,powerDraw:1.5,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:2.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:26705},{symbol:"Int_ShieldGenerator_Size3_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:3,rating:"C",exclusionGroup:"shieldGenerator",mass:5,integrity:64,powerDraw:1.8,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:2.8,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:84653},{symbol:"Int_ShieldGenerator_Size4_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:4,rating:"C",exclusionGroup:"shieldGenerator",mass:10,integrity:80,powerDraw:2.2,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:3.8,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:268347},{symbol:"Int_ShieldGenerator_Size5_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:5,rating:"C",exclusionGroup:"shieldGenerator",mass:20,integrity:96,powerDraw:2.6,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:2.25,shieldBrokenRegenRate:5.63,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:850659},{symbol:"Int_ShieldGenerator_Size6_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:6,rating:"C",exclusionGroup:"shieldGenerator",mass:40,integrity:113,powerDraw:3.1,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:3.2,shieldBrokenRegenRate:8,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:2696589},{symbol:"Int_ShieldGenerator_Size7_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:7,rating:"C",exclusionGroup:"shieldGenerator",mass:80,integrity:131,powerDraw:3.5,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:4.4,shieldBrokenRegenRate:11,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:8548185},{symbol:"Int_ShieldGenerator_Size8_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:8,rating:"C",exclusionGroup:"shieldGenerator",mass:160,integrity:150,powerDraw:4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:5.76,shieldBrokenRegenRate:14.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:27097748},{symbol:"Int_BuggyBay_Size2_Class1",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:2,rating:"H",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:12,integrity:30,powerDraw:.25,bootTime:5,cost:18e3},{symbol:"Int_BuggyBay_Size2_Class2",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:2,rating:"G",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:6,integrity:30,powerDraw:.75,bootTime:5,cost:21600},{symbol:"Int_BuggyBay_Size4_Class1",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:4,rating:"H",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:20,integrity:30,powerDraw:.4,bootTime:5,cost:72e3},{symbol:"Int_BuggyBay_Size4_Class2",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:4,rating:"G",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:10,integrity:30,powerDraw:1.2,bootTime:5,cost:86400},{symbol:"Int_BuggyBay_Size6_Class1",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:6,rating:"H",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:34,integrity:30,powerDraw:.6,bootTime:5,cost:576e3},{symbol:"Int_BuggyBay_Size6_Class2",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:6,rating:"G",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:17,integrity:30,powerDraw:1.8,bootTime:5,cost:691200},{symbol:"Int_PlanetApproachSuite",familyId:"planetaryApproachSuites",name:"Planetary Approach Suite",class:1,rating:"I",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,powerDraw:0,restrictedToSlot:"planetaryApproachSuite",cost:500},{symbol:"Int_CorrosionProofCargoRack_Size1_Class1",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:1,cost:6250},{symbol:"Int_CorrosionProofCargoRack_Size1_Class2",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:1,rating:"F",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:2,cost:12560},{symbol:"Int_CorrosionProofCargoRack_Size5_Class1",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:32},{symbol:"Int_CorrosionProofCargoRack_Size6_Class1",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:6,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:64},{symbol:"ModularCargoBayDoor",familyId:"cargoHatches",name:"Cargo Hatch",class:1,rating:"H",mass:0,integrity:20,powerDraw:.6,bootTime:2,cost:0},{symbol:"Int_PassengerCabin_Size4_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:4,rating:"E",mass:10,cost:18954},{symbol:"Int_PassengerCabin_Size4_Class2",familyId:"passengerCabins",name:"Business Class Passenger Cabin",class:4,rating:"D",mass:10,cost:56862},{symbol:"Int_PassengerCabin_Size4_Class3",familyId:"passengerCabins",name:"First Class Passenger Cabin",class:4,rating:"C",mass:10,cost:170586},{symbol:"Int_PassengerCabin_Size5_Class4",familyId:"passengerCabins",name:"Luxury Class Passenger Cabin",class:5,rating:"B",mass:20,cost:1658095},{symbol:"Int_PassengerCabin_Size6_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:6,rating:"E",mass:40,cost:61410},{symbol:"Int_PassengerCabin_Size6_Class2",familyId:"passengerCabins",name:"Business Class Passenger Cabin",class:6,rating:"D",mass:40,cost:184232},{symbol:"Int_PassengerCabin_Size6_Class3",familyId:"passengerCabins",name:"First Class Passenger Cabin",class:6,rating:"C",mass:40,cost:552698},{symbol:"Int_PassengerCabin_Size6_Class4",familyId:"passengerCabins",name:"Luxury Class Passenger Cabin",class:6,rating:"B",mass:40,cost:4974287},{symbol:"Int_FighterBay_Size5_Class1",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:20,integrity:60,powerDraw:.25,bootTime:5,cost:575643},{symbol:"Int_FighterBay_Size6_Class1",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:40,integrity:80,powerDraw:.35,bootTime:5,cost:1869340},{symbol:"Int_FighterBay_Size7_Class1",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:60,integrity:120,powerDraw:.35,bootTime:5,cost:2369320},{symbol:"Int_FighterBay_Size5_Class1_Free",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIFIGHTERBAY_FREE",mass:20,integrity:60,powerDraw:.25,bootTime:5},{symbol:"Int_FighterBay_Size6_Class1_Free",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIFIGHTERBAY_FREE",mass:40,integrity:80,powerDraw:.35,bootTime:5},{symbol:"Int_FighterBay_Size7_Class1_Free",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIFIGHTERBAY_FREE",mass:60,integrity:120,powerDraw:.35,bootTime:5},{symbol:"Int_FighterBayMk2_Size5_Class1",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",mass:10,integrity:60,powerDraw:.25,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size6_Class1",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",mass:20,integrity:80,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size7_Class1",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",mass:30,integrity:120,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size5_Class1_Free",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIIFIGHTERBAY_FREE",mass:10,integrity:60,powerDraw:.25,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size6_Class1_Free",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIIFIGHTERBAY_FREE",mass:20,integrity:80,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size7_Class1_Free",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIIFIGHTERBAY_FREE",mass:30,integrity:120,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_PassengerCabin_Size2_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:2,rating:"E",mass:2.5,cost:4312},{symbol:"Int_PassengerCabin_Size3_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:3,rating:"E",mass:5,cost:8657},{symbol:"Int_PassengerCabin_Size3_Class2",familyId:"passengerCabins",name:"Business Class Passenger Cabin",class:3,rating:"D",mass:5,cost:26705},{symbol:"Int_PassengerCabin_Size5_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:5,rating:"E",mass:20,cost:34954},{symbol:"Int_PassengerCabin_Size5_Class2",familyId:"passengerCabins",name:"Business Class Passenger Cabin",class:5,rating:"D",mass:20,cost:92362},{symbol:"Int_PassengerCabin_Size5_Class3",familyId:"passengerCabins",name:"First Class Passenger Cabin",class:5,rating:"C",mass:20,cost:340526},{symbol:"Int_ModuleReinforcement_Size1_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:1,rating:"E",mass:2,integrity:77,moduleProtection:.3,cost:5e3},{symbol:"Int_ModuleReinforcement_Size1_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:1,rating:"D",mass:1,integrity:70,moduleProtection:.6,cost:15e3},{symbol:"Int_ModuleReinforcement_Size2_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:2,rating:"E",mass:4,integrity:115,moduleProtection:.3,cost:12e3},{symbol:"Int_ModuleReinforcement_Size2_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:2,rating:"D",mass:2,integrity:105,moduleProtection:.6,cost:36e3},{symbol:"Int_ModuleReinforcement_Size3_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:3,rating:"E",mass:8,integrity:170,moduleProtection:.3,cost:28e3},{symbol:"Int_ModuleReinforcement_Size3_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:3,rating:"D",mass:4,integrity:155,moduleProtection:.6,cost:84e3},{symbol:"Int_ModuleReinforcement_Size4_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:4,rating:"E",mass:16,integrity:260,moduleProtection:.3,cost:65e3},{symbol:"Int_ModuleReinforcement_Size4_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:4,rating:"D",mass:8,integrity:235,moduleProtection:.6,cost:195e3},{symbol:"Int_ModuleReinforcement_Size5_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:5,rating:"E",mass:32,integrity:385,moduleProtection:.3,cost:15e4},{symbol:"Int_ModuleReinforcement_Size5_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:5,rating:"D",mass:16,integrity:350,moduleProtection:.6,cost:45e4},{symbol:"Int_DroneControl_Repair_Size1_Class1",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:600},{symbol:"Int_DroneControl_Repair_Size1_Class2",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.14,bootTime:10,cost:1200},{symbol:"Int_DroneControl_Repair_Size1_Class3",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:10,cost:2400},{symbol:"Int_DroneControl_Repair_Size1_Class4",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.32,bootTime:10,cost:4800},{symbol:"Int_DroneControl_Repair_Size1_Class5",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"A",mass:1.3,integrity:56,powerDraw:.28,bootTime:10,cost:9600},{symbol:"Int_DroneControl_Repair_Size3_Class1",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"E",mass:5,integrity:38,powerDraw:.27,bootTime:10,cost:5400},{symbol:"Int_DroneControl_Repair_Size3_Class2",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:10800},{symbol:"Int_DroneControl_Repair_Size3_Class3",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:10,cost:21600},{symbol:"Int_DroneControl_Repair_Size3_Class4",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.48,bootTime:10,cost:43200},{symbol:"Int_DroneControl_Repair_Size3_Class5",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"A",mass:5,integrity:90,powerDraw:.41,bootTime:10,cost:86400},{symbol:"Int_DroneControl_Repair_Size5_Class1",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"E",mass:20,integrity:58,powerDraw:.4,bootTime:10,cost:48600},{symbol:"Int_DroneControl_Repair_Size5_Class2",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.3,bootTime:10,cost:97200},{symbol:"Int_DroneControl_Repair_Size5_Class3",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:10,cost:194400},{symbol:"Int_DroneControl_Repair_Size5_Class4",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.72,bootTime:10,cost:388800},{symbol:"Int_DroneControl_Repair_Size5_Class5",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"A",mass:20,integrity:134,powerDraw:.6,bootTime:10,cost:777600},{symbol:"Int_DroneControl_Repair_Size7_Class1",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"E",mass:80,integrity:79,powerDraw:.55,bootTime:10,cost:437400},{symbol:"Int_DroneControl_Repair_Size7_Class2",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.41,bootTime:10,cost:874800},{symbol:"Int_DroneControl_Repair_Size7_Class3",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:10,cost:1749600},{symbol:"Int_DroneControl_Repair_Size7_Class4",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:3499200},{symbol:"Int_DroneControl_Repair_Size7_Class5",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"A",mass:80,integrity:183,powerDraw:.83,bootTime:10,cost:6998400},{symbol:"Int_DroneControl_UnkVesselResearch",familyId:"researchLimpets",name:"Research Limpet Controller",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:1.3,integrity:20,powerDraw:.4,bootTime:0,cost:1749600},{symbol:"Int_MetaAlloyHullReinforcement_Size1_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:2,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:72,cost:7501},{symbol:"Int_MetaAlloyHullReinforcement_Size1_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:1,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:99,cost:22501},{symbol:"Int_MetaAlloyHullReinforcement_Size2_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:4,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:135,cost:18e3},{symbol:"Int_MetaAlloyHullReinforcement_Size2_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:2,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:171,cost:54e3},{symbol:"Int_MetaAlloyHullReinforcement_Size3_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:8,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:207,cost:42e3},{symbol:"Int_MetaAlloyHullReinforcement_Size3_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:4,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:234,cost:126e3},{symbol:"Int_MetaAlloyHullReinforcement_Size4_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:16,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:270,cost:97501},{symbol:"Int_MetaAlloyHullReinforcement_Size4_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:8,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:297,cost:292501},{symbol:"Int_MetaAlloyHullReinforcement_Size5_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:32,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:324,cost:225001},{symbol:"Int_MetaAlloyHullReinforcement_Size5_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:16,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:351,cost:675001},{symbol:"Int_DroneControl_Decontamination_Size1_Class1",familyId:"decontaminationLimpets",name:"Decontamination Limpet Controller",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:3600},{symbol:"Int_DroneControl_Decontamination_Size3_Class1",familyId:"decontaminationLimpets",name:"Decontamination Limpet Controller",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:16200},{symbol:"Int_DroneControl_Decontamination_Size5_Class1",familyId:"decontaminationLimpets",name:"Decontamination Limpet Controller",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:20,integrity:96,powerDraw:.5,bootTime:10,cost:145800},{symbol:"Int_DroneControl_Decontamination_Size7_Class1",familyId:"decontaminationLimpets",name:"Decontamination Limpet Controller",class:7,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:1312200},{symbol:"Int_CorrosionProofCargoRack_Size4_Class1",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_CORROSIONCARGO_SIZE4",mass:0,cargoCapacity:16,cost:94330},{symbol:"Int_GuardianHullReinforcement_Size1_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:2,powerDraw:.45,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:100,cost:1e4},{symbol:"Int_GuardianHullReinforcement_Size1_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:1,powerDraw:.56,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:138,cost:3e4},{symbol:"Int_GuardianHullReinforcement_Size2_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:4,powerDraw:.68,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:188,cost:24e3},{symbol:"Int_GuardianHullReinforcement_Size2_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:2,powerDraw:.79,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:238,cost:72e3},{symbol:"Int_GuardianHullReinforcement_Size3_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:8,powerDraw:.9,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:288,cost:57600},{symbol:"Int_GuardianHullReinforcement_Size3_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:4,powerDraw:1.01,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:325,cost:172800},{symbol:"Int_GuardianHullReinforcement_Size4_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:16,powerDraw:1.13,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:375,cost:138240},{symbol:"Int_GuardianHullReinforcement_Size4_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:8,powerDraw:1.24,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:413,cost:414720},{symbol:"Int_GuardianHullReinforcement_Size5_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:32,powerDraw:1.35,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:450,cost:331778},{symbol:"Int_GuardianHullReinforcement_Size5_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:16,powerDraw:1.46,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:488,cost:995330},{symbol:"Int_GuardianModuleReinforcement_Size1_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:2,integrity:85,powerDraw:.27,bootTime:0,moduleProtection:.3,cost:1e4},{symbol:"Int_GuardianModuleReinforcement_Size1_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:1,integrity:77,powerDraw:.34,bootTime:0,moduleProtection:.6,cost:3e4},{symbol:"Int_GuardianModuleReinforcement_Size2_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:4,integrity:127,powerDraw:.41,bootTime:0,moduleProtection:.3,cost:24e3},{symbol:"Int_GuardianModuleReinforcement_Size2_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:2,integrity:116,powerDraw:.47,bootTime:0,moduleProtection:.6,cost:72e3},{symbol:"Int_GuardianModuleReinforcement_Size3_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:8,integrity:187,powerDraw:.54,bootTime:0,moduleProtection:.3,cost:57600},{symbol:"Int_GuardianModuleReinforcement_Size3_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:4,integrity:171,powerDraw:.61,bootTime:0,moduleProtection:.6,cost:172800},{symbol:"Int_GuardianModuleReinforcement_Size4_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:16,integrity:286,powerDraw:.68,bootTime:0,moduleProtection:.3,cost:138240},{symbol:"Int_GuardianModuleReinforcement_Size4_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:8,integrity:259,powerDraw:.74,bootTime:0,moduleProtection:.6,cost:414720},{symbol:"Int_GuardianModuleReinforcement_Size5_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:32,integrity:424,powerDraw:.81,bootTime:0,moduleProtection:.3,cost:331778},{symbol:"Int_GuardianModuleReinforcement_Size5_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:16,integrity:385,powerDraw:.88,bootTime:0,moduleProtection:.6,cost:995330},{symbol:"Int_GuardianShieldReinforcement_Size1_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:2,integrity:36,powerDraw:.35,bootTime:0,shieldAddition:44,cost:1e4},{symbol:"Int_GuardianShieldReinforcement_Size1_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:1,integrity:42,powerDraw:.46,bootTime:0,shieldAddition:61,cost:3e4},{symbol:"Int_GuardianShieldReinforcement_Size2_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:4,integrity:40,powerDraw:.56,bootTime:0,shieldAddition:83,cost:24e3},{symbol:"Int_GuardianShieldReinforcement_Size2_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:2,integrity:48,powerDraw:.67,bootTime:0,shieldAddition:105,cost:72e3},{symbol:"Int_GuardianShieldReinforcement_Size3_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:8,integrity:45,powerDraw:.74,bootTime:0,shieldAddition:127,cost:57600},{symbol:"Int_GuardianShieldReinforcement_Size3_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:4,integrity:55,powerDraw:.84,bootTime:0,shieldAddition:143,cost:172800},{symbol:"Int_GuardianShieldReinforcement_Size4_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:16,integrity:51,powerDraw:.95,bootTime:0,shieldAddition:165,cost:138240},{symbol:"Int_GuardianShieldReinforcement_Size4_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:8,integrity:63,powerDraw:1.05,bootTime:0,shieldAddition:182,cost:414720},{symbol:"Int_GuardianShieldReinforcement_Size5_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:32,integrity:58,powerDraw:1.16,bootTime:0,shieldAddition:198,cost:331778},{symbol:"Int_GuardianShieldReinforcement_Size5_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:16,integrity:72,powerDraw:1.26,bootTime:0,shieldAddition:215,cost:995330},{symbol:"Int_GuardianFSDBooster_Size1",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:1,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:.75,bootTime:15,jumpBoost:4,cost:405022},{symbol:"Int_GuardianFSDBooster_Size2",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:2,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:.98,bootTime:15,jumpBoost:6,cost:810521},{symbol:"Int_GuardianFSDBooster_Size3",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:3,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:1.27,bootTime:15,jumpBoost:7.75,cost:1620431},{symbol:"Int_GuardianFSDBooster_Size4",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:4,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:1.65,bootTime:15,jumpBoost:9.25,cost:3245013},{symbol:"Int_GuardianFSDBooster_Size5",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:5,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:2.14,bootTime:15,jumpBoost:10.5,cost:6483101},{symbol:"Int_GuardianPowerDistributor_Size1",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:1,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:1.4,integrity:35,powerDraw:.62,bootTime:5,weaponsCapacity:10,weaponsRecharge:2.5,enginesCapacity:9,enginesRecharge:.8,systemsCapacity:10,systemsRecharge:.8,cost:40957},{symbol:"Int_GuardianPowerDistributor_Size2",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:2,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:2.6,integrity:45,powerDraw:.73,bootTime:5,weaponsCapacity:13,weaponsRecharge:3.1,enginesCapacity:11,enginesRecharge:1,systemsCapacity:11,systemsRecharge:1,cost:111600},{symbol:"Int_GuardianPowerDistributor_Size3",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:3,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:5.25,integrity:56,powerDraw:.78,bootTime:5,weaponsCapacity:17,weaponsRecharge:3.9,enginesCapacity:14,enginesRecharge:1.7,systemsCapacity:14,systemsRecharge:1.7,cost:311365},{symbol:"Int_GuardianPowerDistributor_Size4",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:4,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:10.5,integrity:70,powerDraw:.87,bootTime:5,weaponsCapacity:22,weaponsRecharge:4.9,enginesCapacity:17,enginesRecharge:2.5,systemsCapacity:17,systemsRecharge:2.5,cost:868708},{symbol:"Int_GuardianPowerDistributor_Size5",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:5,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:21,integrity:99,powerDraw:.96,bootTime:5,weaponsCapacity:29,weaponsRecharge:6,enginesCapacity:22,enginesRecharge:3.3,systemsCapacity:22,systemsRecharge:3.3,cost:2423690},{symbol:"Int_GuardianPowerDistributor_Size6",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:6,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:42,integrity:99,powerDraw:1.07,bootTime:5,weaponsCapacity:35,weaponsRecharge:7.3,enginesCapacity:26,enginesRecharge:4.2,systemsCapacity:26,systemsRecharge:4.2,cost:6762091},{symbol:"Int_GuardianPowerDistributor_Size7",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:7,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:84,integrity:115,powerDraw:1.16,bootTime:5,weaponsCapacity:43,weaponsRecharge:8.5,enginesCapacity:31,enginesRecharge:5.2,systemsCapacity:31,systemsRecharge:5.2,cost:18866235},{symbol:"Int_GuardianPowerDistributor_Size8",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:8,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:168,integrity:132,powerDraw:1.25,bootTime:5,weaponsCapacity:50,weaponsRecharge:10.1,enginesCapacity:36,enginesRecharge:6.2,systemsCapacity:36,systemsRecharge:6.2,cost:52636793},{symbol:"Int_GuardianPowerplant_Size2",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:2,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:1.5,integrity:56,powerCapacity:12.7,heatEfficiency:.5,cost:192165},{symbol:"Int_GuardianPowerplant_Size3",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:3,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:2.9,integrity:70,powerCapacity:15.8,heatEfficiency:.5,cost:576493},{symbol:"Int_GuardianPowerplant_Size4",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:4,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:5.9,integrity:88,powerCapacity:20.6,heatEfficiency:.5,cost:1729480},{symbol:"Int_GuardianPowerplant_Size5",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:5,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:11.7,integrity:106,powerCapacity:26.9,heatEfficiency:.5,cost:5188441},{symbol:"Int_GuardianPowerplant_Size6",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:6,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:23.4,integrity:124,powerCapacity:33.3,heatEfficiency:.5,cost:15565317},{symbol:"Int_GuardianPowerplant_Size7",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:7,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:46.8,integrity:144,powerCapacity:39.6,heatEfficiency:.5,cost:46695951},{symbol:"Int_GuardianPowerplant_Size8",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:8,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:93.6,integrity:165,powerCapacity:47.5,heatEfficiency:.5,cost:140087850},{symbol:"Int_DroneControl_Recon_Size1_Class1",familyId:"reconLimpets",name:"Recon Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:2600},{symbol:"Int_DroneControl_Recon_Size3_Class1",familyId:"reconLimpets",name:"Recon Limpet Controller",class:3,rating:"E",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:8200},{symbol:"Int_DroneControl_Recon_Size5_Class1",familyId:"reconLimpets",name:"Recon Limpet Controller",class:5,rating:"E",mass:20,integrity:96,powerDraw:.5,bootTime:9.85,cost:75800},{symbol:"Int_DroneControl_Recon_Size7_Class1",familyId:"reconLimpets",name:"Recon Limpet Controller",class:7,rating:"E",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:612200},{symbol:"Int_SupercruiseAssist",familyId:"flightAssists",name:"Supercruise Assist",class:1,rating:"E",exclusionGroup:"supercruiseAssist",mass:0,integrity:10,powerDraw:.3,bootTime:3,cost:9121},{symbol:"Int_DockingComputer_Advanced",familyId:"dockingComputers",name:"Advanced Docking Computer",class:1,rating:"E",exclusionGroup:"dockingComputer",mass:0,integrity:10,powerDraw:.45,bootTime:3,cost:13507},{symbol:"Int_PlanetApproachSuite_Advanced",familyId:"planetaryApproachSuites",name:"Advanced Planetary Approach Suite",class:1,rating:"I",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,powerDraw:0,restrictedToSlot:"planetaryApproachSuite",cost:500},{symbol:"Int_MultiDroneControl_Mining_Size3_Class1",familyId:"miningMultiLimpetControllers",name:"Mining Multi Limpet Controller",class:3,rating:"E",exclusionGroup:"multiLimpetController",mass:12,integrity:45,powerDraw:.5,bootTime:6,cost:15e3},{symbol:"Int_MultiDroneControl_Mining_Size3_Class3",familyId:"miningMultiLimpetControllers",name:"Mining Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Operations_Size3_Class3",familyId:"multiLimpetControllers",name:"Operations Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Operations_Size3_Class4",familyId:"multiLimpetControllers",name:"Operations Multi Limpet Controller",class:3,rating:"B",exclusionGroup:"multiLimpetController",mass:15,integrity:80,powerDraw:.3,bootTime:6,cost:8e4},{symbol:"Int_MultiDroneControl_Rescue_Size3_Class2",familyId:"multiLimpetControllers",name:"Rescue Multi Limpet Controller",class:3,rating:"D",exclusionGroup:"multiLimpetController",mass:8,integrity:58,powerDraw:.4,bootTime:6,cost:3e4},{symbol:"Int_MultiDroneControl_Rescue_Size3_Class3",familyId:"multiLimpetControllers",name:"Rescue Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Xeno_Size3_Class3",familyId:"multiLimpetControllers",name:"Xeno Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Xeno_Size3_Class4",familyId:"multiLimpetControllers",name:"Xeno Multi Limpet Controller",class:3,rating:"B",exclusionGroup:"multiLimpetController",mass:15,integrity:80,powerDraw:.3,bootTime:6,cost:8e4},{symbol:"Int_MultiDroneControl_Universal_Size7_Class3",familyId:"multiLimpetControllers",name:"Universal Multi Limpet Controller",class:7,rating:"C",exclusionGroup:"multiLimpetController",mass:125,integrity:150,powerDraw:.8,bootTime:6,cost:4e6},{symbol:"Int_MultiDroneControl_Universal_Size7_Class5",familyId:"multiLimpetControllers",name:"Universal Multi Limpet Controller",class:7,rating:"A",exclusionGroup:"multiLimpetController",mass:140,integrity:200,powerDraw:1.1,bootTime:6,cost:8e6},{symbol:"Int_ExpModuleStabiliser_Size3_Class3",familyId:"experimentalWeaponStabilisers",name:"Experimental Weapon Stabiliser",class:3,rating:"F",exclusionGroup:"experimentalModuleStabiliser",limitIncrease:{group:"experimentalWeapon",amount:1},mass:8,powerDraw:0,cost:2e6},{symbol:"Int_ExpModuleStabiliser_Size5_Class3",familyId:"experimentalWeaponStabilisers",name:"Experimental Weapon Stabiliser",class:5,rating:"F",exclusionGroup:"experimentalModuleStabiliser",limitIncrease:{group:"experimentalWeapon",amount:2},entitlement:"ELITE_HORIZONS_V_EXPERIMENTALSTABILISER_SIZE5",mass:20,powerDraw:0,cost:4e6},{symbol:"Int_LargeCargoRack_Size7_Class1",familyId:"cargoRacks",name:"Mk II Cargo Rack",class:7,rating:"D",mass:0,cargoCapacity:192,restrictedToShips:["PantherMkII"],restrictedToSlot:"cargo",cost:1958680},{symbol:"Int_LargeCargoRack_Size8_class1",familyId:"cargoRacks",name:"Mk II Cargo Rack",class:8,rating:"D",mass:0,cargoCapacity:384,restrictedToShips:["PantherMkII"],restrictedToSlot:"cargo",cost:4929317},{symbol:"Int_MultiDroneControl_MiningV2_Size5_Class5",familyId:"miningMultiLimpetControllers",name:"Mk II Mining Multi-Limpet Controller",class:5,rating:"A",exclusionGroup:"multiLimpetController",mass:64,integrity:105,powerDraw:1.4,restrictedToShips:["LakonMiner"],restrictedToSlot:"limpetController",bootTime:6,cost:2332800},{symbol:"Int_MkII_PassengerCabin_Size2_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:2,rating:"D",mass:2.5,cost:5750},{symbol:"Int_MkII_PassengerCabin_Size3_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:3,rating:"D",mass:5,cost:11540},{symbol:"Int_MkII_PassengerCabin_Size3_Class2",familyId:"passengerCabins",name:"MkII Business Class Passenger Cabin",class:3,rating:"C",mass:5,cost:35610},{symbol:"Int_MkII_PassengerCabin_Size4_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:4,rating:"D",mass:10,cost:25270},{symbol:"Int_MkII_PassengerCabin_Size4_Class2",familyId:"passengerCabins",name:"MkII Business Class Passenger Cabin",class:4,rating:"C",mass:10,cost:75820},{symbol:"Int_MkII_PassengerCabin_Size5_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:5,rating:"D",mass:20,cost:46610},{symbol:"Int_MkII_PassengerCabin_Size5_Class2",familyId:"passengerCabins",name:"MkII Business Class Passenger Cabin",class:5,rating:"C",mass:20,cost:123150},{symbol:"Int_MkII_PassengerCabin_Size6_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:6,rating:"D",mass:40,cost:81880},{symbol:"Int_MkII_PassengerCabin_Size6_Class2",familyId:"passengerCabins",name:"MkII Business Class Passenger Cabin",class:6,rating:"C",mass:40,cost:245640}];var INTERNAL_MODULES=buildModuleCatalogue(modules_internal_default,"internal");export{INTERNAL_MODULES};//# sourceMappingURL=chunk-4ZGUSHTP.js.map
@@ -1 +0,0 @@
1
- import{capacitorRechargeAtPips}from"./chunk-JOTAOI5T.js";import{systemsResistance,mapDamageTypes,effectiveHitPoints}from"./chunk-JGOAQLYW.js";import{requirePips}from"./chunk-QJ7GB6FF.js";var DAMAGE_TYPES=["kinetic","thermal","explosive","caustic"];function requireFiniteNonNegative(scope,name,value){if(!Number.isFinite(value)||value<0){throw new RangeError(`${scope}: ${name} must be a finite non-negative number`)}}function shieldCapacitorMetrics(input){const scope="shieldCapacitorMetrics";const systemsPips=input.systemsPips??4;requirePips(scope,"systemsPips",systemsPips);for(const field of["strength","systemsCapacity","systemsRecharge"]){requireFiniteNonNegative(scope,field,input[field])}const resistances=input.resistances;if(typeof resistances!=="object"||resistances===null){throw new TypeError(`${scope}: resistances must carry the four damage types`)}for(const type of DAMAGE_TYPES){if(!Number.isFinite(input.resistances[type])){throw new RangeError(`${scope}: resistances.${type} must be a finite number`)}}const sysResistance=systemsResistance(systemsPips);const effectiveResistances=Object.freeze(mapDamageTypes(type=>1-(1-input.resistances[type])*(1-sysResistance)));return Object.freeze({systemsPips:systemsPips,capacity:input.systemsCapacity,rechargeRate:capacitorRechargeAtPips(input.systemsRecharge,systemsPips),systemsResistance:sysResistance,effectiveResistances:effectiveResistances,effectiveHitPoints:Object.freeze(effectiveHitPoints(input.strength,effectiveResistances))})}export{shieldCapacitorMetrics};//# sourceMappingURL=chunk-6L56LWTT.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ships/shield-capacitor.ts"],"names":["capacitorRechargeAtPips","systemsResistance","mapDamageTypes","effectiveHitPoints","requirePips","DAMAGE_TYPES","requireFiniteNonNegative","scope","name","value","Number","isFinite","RangeError","shieldCapacitorMetrics","input","systemsPips","field","resistances","TypeError","type","sysResistance","effectiveResistances","Object","freeze","capacity","systemsCapacity","rechargeRate","systemsRecharge","strength"],"mappings":"O,oLAwGA,IAAMK,aAAsC,CAAC,UAAW,UAAW,YAAa,WAEhF,SAASC,yBAAyBC,MAAeC,KAAcC,OAC3D,IAAKC,OAAOC,SAASF,QAAUA,MAAQ,EAAG,CACtC,MAAM,IAAIG,WAAW,GAAGL,UAAUC,4CACtC,CACJ,CAuCO,SAASK,uBAAuBC,OACnC,MAAMP,MAAQ,yBACd,MAAMQ,YAAcD,MAAMC,aAAe,EAGzCX,YAAYG,MAAO,cAAeQ,aAClC,IAAA,MAAWC,QAAS,CAAC,WAAY,kBAAmB,mBAA6B,CAC7EV,yBAAyBC,MAAOS,MAAOF,MAAME,OACjD,CACA,MAAMC,YAAuBH,MAAMG,YACnC,UAAWA,cAAgB,UAAYA,cAAgB,KAAM,CACzD,MAAM,IAAIC,UAAU,GAAGX,sDAC3B,CACA,IAAA,MAAWY,QAAQd,aAAc,CAC7B,IAAKK,OAAOC,SAASG,MAAMG,YAAYE,OAAQ,CAC3C,MAAM,IAAIP,WAAW,GAAGL,sBAAsBY,+BAClD,CACJ,CAEA,MAAMC,cAAgBnB,kBAAkBc,aAExC,MAAMM,qBAA0CC,OAAOC,OACnDrB,eAAgBiB,MAAS,GAAK,EAAIL,MAAMG,YAAYE,QAAU,EAAIC,iBAEtE,OAAOE,OAAOC,OAAO,CACjBR,wBACAS,SAAUV,MAAMW,gBAChBC,aAAc1B,wBAAwBc,MAAMa,gBAAiBZ,aAC7Dd,kBAAmBmB,cACnBC,0CACAlB,mBAAoBmB,OAAOC,OAAOpB,mBAAmBW,MAAMc,SAAUP,wBAE7E,QAAAR"}
@@ -1 +0,0 @@
1
- var MAX_TOTAL_RANGE_JUMPS=1e5;function requireNonNegative(scope,name,value){if(!Number.isFinite(value)||value<0){throw new RangeError(`${scope}: ${name} must be a finite non-negative number`)}}function requirePositive(scope,name,value){if(!Number.isFinite(value)||value<=0){throw new RangeError(`${scope}: fsd.${name} must be a finite positive number`)}}function validateFsd(scope,fsd){requirePositive(scope,"optMass",fsd.optMass);requireNonNegative(scope,"fsd.maxFuel",fsd.maxFuel);requirePositive(scope,"fuelMul",fsd.fuelMul);requirePositive(scope,"fuelPower",fsd.fuelPower);if(fsd.jumpBoost!==void 0){requireNonNegative(scope,"fsd.jumpBoost",fsd.jumpBoost)}}function frameShiftDriveMassFactorUnchecked(mass,fuel,fsd){return fsd.optMass/(mass+fuel)}function singleJumpRangeUnchecked(mass,fuel,fsd,scope){const burn=Math.min(fuel,fsd.maxFuel);if(burn<=0||mass+fuel<=0)return 0;const base=Math.pow(burn/fsd.fuelMul,1/fsd.fuelPower)*frameShiftDriveMassFactorUnchecked(mass,fuel,fsd);const range=base+(fsd.jumpBoost??0);if(!Number.isFinite(range)){throw new RangeError(`${scope}: parameters produce a non-finite range`)}return range}function frameShiftDriveMassFactor(mass,fuel,fsd){const scope="frameShiftDriveMassFactor";requireNonNegative(scope,"mass",mass);requireNonNegative(scope,"fuel",fuel);requirePositive(scope,"optMass",fsd.optMass);if(mass+fuel<=0){throw new RangeError(`${scope}: mass plus fuel must be positive`)}return frameShiftDriveMassFactorUnchecked(mass,fuel,fsd)}function singleJumpRange(mass,fuel,fsd){const scope="singleJumpRange";requireNonNegative(scope,"mass",mass);requireNonNegative(scope,"fuel",fuel);validateFsd(scope,fsd);return singleJumpRangeUnchecked(mass,fuel,fsd,scope)}function fuelPerJump(distance,mass,fuel,fsd){const scope="fuelPerJump";requireNonNegative(scope,"distance",distance);requireNonNegative(scope,"mass",mass);requireNonNegative(scope,"fuel",fuel);validateFsd(scope,fsd);if(distance<=0)return 0;const burn=Math.min(fuel,fsd.maxFuel);const maxDistance=singleJumpRangeUnchecked(mass,fuel,fsd,scope);if(maxDistance<=0)return 0;const cost=Math.pow(distance/maxDistance,fsd.fuelPower)*burn;return Math.min(cost,burn)}function totalRange(mass,fuel,fsd){const scope="totalRange";requireNonNegative(scope,"mass",mass);requireNonNegative(scope,"fuel",fuel);validateFsd(scope,fsd);if(fsd.maxFuel<=0)return Object.freeze({range:0,jumps:0});const jumps=fuel>0?Math.max(1,Math.ceil(fuel/fsd.maxFuel)):0;if(!Number.isFinite(jumps)||jumps>MAX_TOTAL_RANGE_JUMPS){throw new RangeError(`${scope}: fuel and fsd.maxFuel require more than ${MAX_TOTAL_RANGE_JUMPS} jumps`)}let range=0;let remaining=fuel;for(let i=0;i<jumps;i++){range+=singleJumpRangeUnchecked(mass,remaining,fsd,scope);if(!Number.isFinite(range)){throw new RangeError(`${scope}: parameters produce a non-finite total range`)}remaining=Math.max(0,remaining-fsd.maxFuel)}return Object.freeze({range:range,jumps:jumps})}export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange};//# sourceMappingURL=chunk-6O4NRRSB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ships/jump-range.ts"],"names":["MAX_TOTAL_RANGE_JUMPS","requireNonNegative","scope","name","value","Number","isFinite","RangeError","requirePositive","validateFsd","fsd","optMass","maxFuel","fuelMul","fuelPower","jumpBoost","frameShiftDriveMassFactorUnchecked","mass","fuel","singleJumpRangeUnchecked","burn","Math","min","base","pow","range","frameShiftDriveMassFactor","singleJumpRange","fuelPerJump","distance","maxDistance","cost","totalRange","Object","freeze","jumps","max","ceil","remaining","i"],"mappings":"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"}
@@ -1 +0,0 @@
1
- function combinedRateOfFire(weapon){const interval=weapon.burstInterval;if(interval===void 0||interval<=0)return void 0;const burst=weapon.burstRounds&&weapon.burstRounds>0?weapon.burstRounds:1;const burstRate=weapon.burstRateOfFire&&weapon.burstRateOfFire>0?weapon.burstRateOfFire:1;const cycle=(burst>1?(burst-1)/burstRate:0)+interval;return cycle>0?burst/cycle:void 0}var ZERO_SPLIT={kinetic:0,thermal:0,explosive:0,absolute:0,antiXeno:0};function splitDamage(damage,distribution){if(!distribution)return Object.freeze({...ZERO_SPLIT,absolute:damage});return Object.freeze({kinetic:damage*(distribution.kinetic??0),thermal:damage*(distribution.thermal??0),explosive:damage*(distribution.explosive??0),absolute:damage*(distribution.absolute??0),...(distribution.unclassified??0)===0?{}:{unclassified:damage*distribution.unclassified},antiXeno:damage*(distribution.antiXeno??0)})}function splitComponents(damage,components){const unclassified=(components.unclassified??[]).reduce((sum,value)=>sum+value,0);const conventional=(components.kinetic??0)+(components.thermal??0)+(components.explosive??0)+(components.absolute??0)+unclassified;if(conventional<=0)return Object.freeze({...ZERO_SPLIT,absolute:damage});const scale=damage/conventional;return Object.freeze({kinetic:(components.kinetic??0)*scale,thermal:(components.thermal??0)*scale,explosive:(components.explosive??0)*scale,absolute:(components.absolute??0)*scale,...unclassified===0?{}:{unclassified:unclassified*scale},antiXeno:(components.antiXeno??0)*scale})}function sustainedFireFactor(weapon){const rateOfFire=weapon.rateOfFire;const clip=weapon.clipSize===void 0?void 0:Math.ceil(weapon.clipSize);if(!rateOfFire||!clip||clip<=0)return 1;const burst=weapon.burstRounds&&weapon.burstRounds>0?weapon.burstRounds:1;const burstRate=weapon.burstRateOfFire&&weapon.burstRateOfFire>0?weapon.burstRateOfFire:1;const reload=weapon.reloadTime??0;const cycle=(clip-burst)/rateOfFire+(burst-1)/burstRate+reload;if(cycle<=0)return 1;const sustainedRate=clip/cycle;return Math.min(1,sustainedRate/rateOfFire)}function damagePerSecond(weapon){const damage=weapon.damage??0;const rounds=weapon.roundsPerShot&&weapon.roundsPerShot>0?weapon.roundsPerShot:1;return damage*rounds*(weapon.rateOfFire??1)}function sustainedDamagePerSecond(weapon){return damagePerSecond(weapon)*sustainedFireFactor(weapon)}function energyPerSecond(weapon){return(weapon.distributorDraw??0)*(weapon.rateOfFire??1)}function heatPerSecond(weapon){return(weapon.thermalLoad??0)*(weapon.rateOfFire??1)}function damageFalloff(weapon,metres){const maximum=weapon.maximumRange;if(maximum!==void 0&&metres>maximum)return 0;const falloff=weapon.falloffRange;if(falloff===void 0||maximum===void 0||metres<=falloff)return 1;const taper=maximum-falloff;if(taper<=0)return 1;return Math.max(0,1-(metres-falloff)/taper)}function armourPiercingFactor(armourPiercing,hardness){if(!Number.isFinite(armourPiercing)||armourPiercing<0){throw new RangeError("armourPiercingFactor: armour piercing must be a finite non-negative number")}if(!Number.isFinite(hardness)||hardness<0){throw new RangeError("armourPiercingFactor: hardness must be a finite non-negative number")}if(hardness===0)return 1;return Math.min(1,armourPiercing/hardness)}function weaponMetrics(weapon){const continuous=weapon.rateOfFire===void 0;const rateOfFire=weapon.rateOfFire??1;const factor=sustainedFireFactor(weapon);const dps=damagePerSecond(weapon);const sdps=dps*factor;const eps=energyPerSecond(weapon);const hps=heatPerSecond(weapon);const rounds=weapon.roundsPerShot&&weapon.roundsPerShot>0?weapon.roundsPerShot:1;return Object.freeze({damagePerShot:(weapon.damage??0)*rounds,rateOfFire:rateOfFire,sustainedRateOfFire:rateOfFire*factor,damagePerSecond:dps,sustainedDamagePerSecond:sdps,energyPerSecond:eps,sustainedEnergyPerSecond:eps*factor,heatPerSecond:hps,sustainedHeatPerSecond:hps*factor,thermalLoad:weapon.thermalLoad??0,powerDraw:weapon.powerDraw??0,damageByType:weapon.damageComponents?splitComponents(dps,weapon.damageComponents):splitDamage(dps,weapon.damageDistribution),sustainedDamageByType:weapon.damageComponents?splitComponents(sdps,weapon.damageComponents):splitDamage(sdps,weapon.damageDistribution),continuous:continuous})}function sumWeaponMetrics(metrics){const damageByType=emptyDamageSplitAccumulator();const sustainedDamageByType=emptyDamageSplitAccumulator();let damagePerSecond2=0;let sustainedDamagePerSecond2=0;let energyPerSecond2=0;let sustainedEnergyPerSecond=0;let heatPerSecond2=0;let sustainedHeatPerSecond=0;let thermalLoad=0;let powerDraw=0;for(const metric of metrics){damagePerSecond2+=metric.damagePerSecond;sustainedDamagePerSecond2+=metric.sustainedDamagePerSecond;energyPerSecond2+=metric.energyPerSecond;sustainedEnergyPerSecond+=metric.sustainedEnergyPerSecond;heatPerSecond2+=metric.heatPerSecond;sustainedHeatPerSecond+=metric.sustainedHeatPerSecond;thermalLoad+=metric.thermalLoad;powerDraw+=metric.powerDraw;addDamageSplit(damageByType,metric.damageByType);addDamageSplit(sustainedDamageByType,metric.sustainedDamageByType)}return Object.freeze({damagePerSecond:damagePerSecond2,sustainedDamagePerSecond:sustainedDamagePerSecond2,energyPerSecond:energyPerSecond2,sustainedEnergyPerSecond:sustainedEnergyPerSecond,heatPerSecond:heatPerSecond2,sustainedHeatPerSecond:sustainedHeatPerSecond,thermalLoad:thermalLoad,powerDraw:powerDraw,damageByType:finishDamageSplit(damageByType),sustainedDamageByType:finishDamageSplit(sustainedDamageByType)})}function emptyDamageSplitAccumulator(){return{kinetic:0,thermal:0,explosive:0,absolute:0,unclassified:0,antiXeno:0}}function addDamageSplit(total,split){total.kinetic+=split.kinetic;total.thermal+=split.thermal;total.explosive+=split.explosive;total.absolute+=split.absolute;total.unclassified+=split.unclassified??0;total.antiXeno+=split.antiXeno}function finishDamageSplit(total){const{unclassified:unclassified,...classified}=total;return Object.freeze(unclassified===0?classified:{...classified,unclassified:unclassified})}export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics};//# sourceMappingURL=chunk-7TQ2X6Q3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ships/weapons.ts"],"names":["combinedRateOfFire","weapon","interval","burstInterval","burst","burstRounds","burstRate","burstRateOfFire","cycle","ZERO_SPLIT","kinetic","thermal","explosive","absolute","antiXeno","splitDamage","damage","distribution","Object","freeze","unclassified","splitComponents","components","reduce","sum","value","conventional","scale","sustainedFireFactor","rateOfFire","clip","clipSize","Math","ceil","reload","reloadTime","sustainedRate","min","damagePerSecond","rounds","roundsPerShot","sustainedDamagePerSecond","energyPerSecond","distributorDraw","heatPerSecond","thermalLoad","damageFalloff","metres","maximum","maximumRange","falloff","falloffRange","taper","max","armourPiercingFactor","armourPiercing","hardness","Number","isFinite","RangeError","weaponMetrics","continuous","factor","dps","sdps","eps","hps","damagePerShot","sustainedRateOfFire","sustainedEnergyPerSecond","sustainedHeatPerSecond","powerDraw","damageByType","damageComponents","damageDistribution","sustainedDamageByType","sumWeaponMetrics","metrics","emptyDamageSplitAccumulator","metric","addDamageSplit","finishDamageSplit","total","split","classified"],"mappings":"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"}
@@ -1 +0,0 @@
1
- import{calculateModuleLimits}from"./chunk-KPETDYQX.js";import{describeValue,truncate}from"./chunk-PKWVG2JY.js";function isRequiredSlot(slot){return slot.kind==="core"||slot.kind==="armour"}function fixedSlotReason(slot){if(slot.kind==="cargoHatch")return"cargoHatch";return isRequiredSlot(slot)?"requiredSlot":null}function validateLoadout(input){if(!Array.isArray(input.slots)){throw new TypeError(`validateLoadout: input.slots must be an array, received ${describeValue(input.slots)}`)}const issues=[];const seen=/* @__PURE__ */new Map;for(const module of input.modules){const normalized=module.slot.toLowerCase();const previous=seen.get(normalized);if(previous!==void 0){issues.push({code:"duplicateSlot",severity:"error",slot:module.slot,symbol:module.symbol,params:{slot:module.slot,previousSlot:previous,symbol:module.symbol},message:`Slot ${truncate(module.slot)} occurs more than once (also ${truncate(previous)})`})}else{seen.set(normalized,module.slot)}}const exclusive=/* @__PURE__ */new Map;for(const module of input.modules){if(!module.exclusionGroup)continue;const previous=exclusive.get(module.exclusionGroup);if(previous){issues.push({code:"duplicateExclusiveModule",severity:"error",slot:module.slot,symbol:module.symbol,params:{exclusionGroup:module.exclusionGroup,slot:module.slot,symbol:module.symbol,previousSlot:previous.slot,previousSymbol:previous.symbol},message:`${truncate(module.slot)}: ${truncate(module.symbol)} conflicts with ${truncate(previous.symbol)} in ${truncate(previous.slot)} (${module.exclusionGroup} is limited to one per ship)`})}else{exclusive.set(module.exclusionGroup,module)}}for(const usage of calculateModuleLimits(input.modules)){if(usage.excess===0)continue;issues.push({code:"moduleLimitExceeded",severity:"error",params:{group:usage.group,count:usage.count,limit:usage.limit},message:`${usage.group} has ${usage.count} fitted modules but the ship allows ${usage.limit}`})}const knownSlots=new Map(input.slots.map(slot=>[slot.key.toLowerCase(),slot]));for(const module of input.modules){if(module.requiresKnownSlot!==false&&!knownSlots.has(module.slot.toLowerCase())){issues.push({code:"unknownSlot",severity:"error",slot:module.slot,symbol:module.symbol,message:`${truncate(module.slot)} is not a slot on ${truncate(input.shipSymbol)}`,params:{shipSymbol:input.shipSymbol,slot:module.slot,symbol:module.symbol}})}}for(const slot of input.slots){if(isRequiredSlot(slot)&&!seen.has(slot.key.toLowerCase())){issues.push({code:"missingRequiredSlot",severity:"incomplete",slot:slot.key,message:`${truncate(slot.key)} is required for an operational build`,params:{slot:slot.key}})}}for(const module of input.modules){if(module.fitError!==null){issues.push({code:"incompatibleModule",severity:"error",slot:module.slot,symbol:module.symbol,message:`${truncate(module.slot)}: ${truncate(module.symbol)} ${truncate(module.fitError)}`,params:{...module.fitParams,slot:module.slot,symbol:module.symbol,constraint:module.fitConstraint??"unknownConstraint"}})}}const frozen=Object.freeze(issues.map(issue=>Object.freeze({...issue,...issue.params?{params:Object.freeze(Object.fromEntries(Object.entries(issue.params).map(([key,value])=>[key,Array.isArray(value)?Object.freeze([...value]):value])))}:{}})));return Object.freeze({valid:!issues.some(issue=>issue.severity==="error"),complete:issues.length===0,issues:frozen})}export{fixedSlotReason,validateLoadout};//# sourceMappingURL=chunk-B4ZSTOM4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ships/internal/loadout-slot-rules.ts","../src/ships/loadout-validation.ts"],"names":["calculateModuleLimits","describeValue","truncate","isRequiredSlot","slot","kind","fixedSlotReason","validateLoadout","input","Array","isArray","slots","TypeError","issues","seen","Map","module","modules","normalized","toLowerCase","previous","get","push","code","severity","symbol","params","previousSlot","message","set","exclusive","exclusionGroup","previousSymbol","usage","excess","group","count","limit","knownSlots","map","key","requiresKnownSlot","has","shipSymbol","fitError","fitParams","constraint","fitConstraint","frozen","Object","freeze","issue","fromEntries","entries","value","valid","some","complete","length"],"mappings":"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"}
@@ -1 +0,0 @@
1
- var PRIORITY_GROUPS=5;var EPSILON=1e-9;function bandIndex(priority){if(priority===void 0||!Number.isFinite(priority))return 0;return Math.min(PRIORITY_GROUPS,Math.max(1,Math.trunc(priority)))-1}function powerBudget(available,consumers){if(!Number.isFinite(available)||available<0){throw new RangeError("powerBudget: available power must be a finite non-negative number")}const retractedByBand=Array(PRIORITY_GROUPS).fill(0);const deployedByBand=Array(PRIORITY_GROUPS).fill(0);for(const consumer of consumers){if(!Number.isFinite(consumer.draw)||consumer.draw<0){throw new RangeError("powerBudget: consumer draw must be a finite non-negative number")}}const consumerResults=consumers.map(consumer=>Object.freeze({...consumer.label===void 0?{}:{label:consumer.label},...consumer.symbol===void 0?{}:{symbol:consumer.symbol},draw:consumer.draw,enabled:consumer.enabled!==false,priority:bandIndex(consumer.priority)+1,deployedOnly:consumer.deployedOnly??false}));for(const consumer of consumers){if(consumer.enabled===false)continue;const draw=consumer.draw;if(draw===0)continue;const index=bandIndex(consumer.priority);if(consumer.deployedOnly)deployedByBand[index]+=draw;else retractedByBand[index]+=draw}const bands=[];let retractedTotal=0;let deployedTotal=0;for(let i=0;i<PRIORITY_GROUPS;i++){const retracted=retractedByBand[i];const deployed=deployedByBand[i];retractedTotal+=retracted;deployedTotal+=retracted+deployed;bands.push(Object.freeze({priority:i+1,retracted:retracted,deployed:retracted+deployed,retractedTotal:retractedTotal,deployedTotal:deployedTotal,poweredRetracted:retractedTotal<=available+EPSILON,poweredDeployed:deployedTotal<=available+EPSILON}))}return Object.freeze({available:available,retracted:retractedTotal,deployed:deployedTotal,headroom:available-deployedTotal,utilisation:available>0?deployedTotal/available:deployedTotal>0?Infinity:0,withinBudget:deployedTotal<=available+EPSILON,bands:Object.freeze(bands),consumers:Object.freeze(consumerResults)})}export{powerBudget};//# sourceMappingURL=chunk-D6YEHR5S.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ships/power.ts"],"names":["PRIORITY_GROUPS","EPSILON","bandIndex","priority","Number","isFinite","Math","min","max","trunc","powerBudget","available","consumers","RangeError","retractedByBand","Array","fill","deployedByBand","consumer","draw","consumerResults","map","Object","freeze","label","symbol","enabled","deployedOnly","index","bands","retractedTotal","deployedTotal","i","retracted","deployed","push","poweredRetracted","poweredDeployed","headroom","utilisation","Infinity","withinBudget"],"mappings":"AAoCA,IAAMA,gBAAkB,EAOxB,IAAMC,QAAU,KAwGhB,SAASC,UAAUC,UACf,GAAIA,gBAAa,IAAcC,OAAOC,SAASF,UAAW,OAAO,EACjE,OAAOG,KAAKC,IAAIP,gBAAiBM,KAAKE,IAAI,EAAGF,KAAKG,MAAMN,YAAc,CAC1E,CA+BO,SAASO,YAAYC,UAAmBC,WAC3C,IAAKR,OAAOC,SAASM,YAAcA,UAAY,EAAG,CAC9C,MAAM,IAAIE,WAAW,oEACzB,CAEA,MAAMC,gBAAkBC,MAAcf,iBAAiBgB,KAAK,GAC5D,MAAMC,eAAiBF,MAAcf,iBAAiBgB,KAAK,GAC3D,IAAA,MAAWE,YAAYN,UAAW,CAC9B,IAAKR,OAAOC,SAASa,SAASC,OAASD,SAASC,KAAO,EAAG,CACtD,MAAM,IAAIN,WAAW,kEACzB,CACJ,CACA,MAAMO,gBAAyCR,UAAUS,IAAKH,UAC1DI,OAAOC,OAAO,IACNL,SAASM,aAAU,EAAY,CAAA,EAAK,CAAEA,MAAON,SAASM,UACtDN,SAASO,cAAW,EAAY,CAAA,EAAK,CAAEA,OAAQP,SAASO,QAC5DN,KAAMD,SAASC,KACfO,QAASR,SAASQ,UAAY,MAC9BvB,SAAUD,UAAUgB,SAASf,UAAY,EACzCwB,aAAcT,SAASS,cAAgB,SAI/C,IAAA,MAAWT,YAAYN,UAAW,CAC9B,GAAIM,SAASQ,UAAY,MAAO,SAChC,MAAMP,KAAOD,SAASC,KACtB,GAAIA,OAAS,EAAG,SAChB,MAAMS,MAAQ1B,UAAUgB,SAASf,UACjC,GAAIe,SAASS,aAAcV,eAAeW,QAAWT,UAChDL,gBAAgBc,QAAWT,IACpC,CAEA,MAAMU,MAAqB,GAC3B,IAAIC,eAAiB,EACrB,IAAIC,cAAgB,EACpB,IAAA,IAASC,EAAI,EAAGA,EAAIhC,gBAAiBgC,IAAK,CACtC,MAAMC,UAAYnB,gBAAgBkB,GAClC,MAAME,SAAWjB,eAAee,GAChCF,gBAAkBG,UAElBF,eAAiBE,UAAYC,SAC7BL,MAAMM,KACFb,OAAOC,OAAO,CACVpB,SAAU6B,EAAI,EACdC,oBAEAC,SAAUD,UAAYC,SACtBJ,8BACAC,4BACAK,iBAAkBN,gBAAkBnB,UAAYV,QAChDoC,gBAAiBN,eAAiBpB,UAAYV,UAG1D,CAEA,OAAOqB,OAAOC,OAAO,CACjBZ,oBACAsB,UAAWH,eACXI,SAAUH,cACVO,SAAU3B,UAAYoB,cACtBQ,YAAa5B,UAAY,EAAIoB,cAAgBpB,UAAYoB,cAAgB,EAAIS,SAAW,EACxFC,aAAcV,eAAiBpB,UAAYV,QAC3C4B,MAAOP,OAAOC,OAAOM,OACrBjB,UAAWU,OAAOC,OAAOH,kBAEjC,QAAAV"}
@@ -1 +0,0 @@
1
- function requireFiniteNonNegative(scope,name,value){if(!Number.isFinite(value)||value<0){throw new RangeError(`${scope}: ${name} must be a finite non-negative number`)}}function validateMassCurve(label,curve){for(const field of["minMass","optMass","maxMass"]){requireFiniteNonNegative(label,field,curve[field])}const allMassesEqual=curve.minMass===curve.optMass&&curve.optMass===curve.maxMass;if(!allMassesEqual&&!(curve.minMass<curve.optMass&&curve.optMass<curve.maxMass)){throw new RangeError(`${label}: masses must be strictly ordered minMass < optMass < maxMass, or all equal`)}for(const field of["minMultiplier","optMultiplier","maxMultiplier"]){requireFiniteNonNegative(label,field,curve[field])}const allMultipliersEqual=curve.minMultiplier===curve.optMultiplier&&curve.optMultiplier===curve.maxMultiplier;const strictlyOrderedMultipliers=curve.minMultiplier<curve.optMultiplier&&curve.optMultiplier<curve.maxMultiplier;if(!allMultipliersEqual&&!strictlyOrderedMultipliers){throw new RangeError(`${label}: multipliers must be strictly ordered minMultiplier < optMultiplier < maxMultiplier, or all equal`)}if(allMassesEqual&&!allMultipliersEqual){throw new RangeError(`${label}: an all-equal mass curve must have equal multipliers`)}}function massCurveMultiplier(labels,mass,curve){requireFiniteNonNegative(labels.scope,labels.mass,mass);validateMassCurve(`${labels.scope}: ${labels.curve}`,curve);if(mass>curve.maxMass)return 0;const span=curve.maxMass-curve.minMass;if(span<=0||curve.maxMultiplier===curve.minMultiplier)return curve.optMultiplier;const normalised=Math.max(0,Math.min(1,(curve.maxMass-mass)/span));const optNormalised=Math.min(1,(curve.maxMass-curve.optMass)/span);const exponent=Math.log((curve.optMultiplier-curve.minMultiplier)/(curve.maxMultiplier-curve.minMultiplier))/Math.log(optNormalised);if(!Number.isFinite(exponent)){throw new RangeError(`${labels.scope}: curve values do not produce a finite exponent`)}return curve.minMultiplier+Math.pow(normalised,exponent)*(curve.maxMultiplier-curve.minMultiplier)}export{massCurveMultiplier,requireFiniteNonNegative,validateMassCurve};//# sourceMappingURL=chunk-EVW4Z4CB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ships/internal/mass-curve.ts"],"names":["requireFiniteNonNegative","scope","name","value","Number","isFinite","RangeError","validateMassCurve","label","curve","field","allMassesEqual","minMass","optMass","maxMass","allMultipliersEqual","minMultiplier","optMultiplier","maxMultiplier","strictlyOrderedMultipliers","massCurveMultiplier","labels","mass","span","normalised","Math","max","min","optNormalised","exponent","log","pow"],"mappings":"AAqEO,SAASA,yBAAyBC,MAAeC,KAAcC,OAClE,IAAKC,OAAOC,SAASF,QAAUA,MAAQ,EAAG,CACtC,MAAM,IAAIG,WAAW,GAAGL,UAAUC,4CACtC,CACJ,CAWO,SAASK,kBAAkBC,MAAeC,OAC7C,IAAA,MAAWC,QAAS,CAAC,UAAW,UAAW,WAAqB,CAC5DV,yBAAyBQ,MAAOE,MAAOD,MAAMC,OACjD,CACA,MAAMC,eAAiBF,MAAMG,UAAYH,MAAMI,SAAWJ,MAAMI,UAAYJ,MAAMK,QAClF,IAAKH,kBAAoBF,MAAMG,QAAUH,MAAMI,SAAWJ,MAAMI,QAAUJ,MAAMK,SAAU,CACtF,MAAM,IAAIR,WACN,GAAGE,mFAEX,CACA,IAAA,MAAWE,QAAS,CAAC,gBAAiB,gBAAiB,iBAA2B,CAC9EV,yBAAyBQ,MAAOE,MAAOD,MAAMC,OACjD,CACA,MAAMK,oBACFN,MAAMO,gBAAkBP,MAAMQ,eAAiBR,MAAMQ,gBAAkBR,MAAMS,cACjF,MAAMC,2BACFV,MAAMO,cAAgBP,MAAMQ,eAAiBR,MAAMQ,cAAgBR,MAAMS,cAC7E,IAAKH,sBAAwBI,2BAA4B,CACrD,MAAM,IAAIb,WACN,GAAGE,0GAEX,CACA,GAAIG,iBAAmBI,oBAAqB,CACxC,MAAM,IAAIT,WAAW,GAAGE,6DAC5B,CACJ,CAaO,SAASY,oBACZC,OACAC,KACAb,OAEAT,yBAAyBqB,OAAOpB,MAAOoB,OAAOC,KAAMA,MACpDf,kBAAkB,GAAGc,OAAOpB,UAAUoB,OAAOZ,QAASA,OACtD,GAAIa,KAAOb,MAAMK,QAAS,OAAO,EACjC,MAAMS,KAAOd,MAAMK,QAAUL,MAAMG,QACnC,GAAIW,MAAQ,GAAKd,MAAMS,gBAAkBT,MAAMO,cAAA,OAAsBP,MAAMQ,cAC3E,MAAMO,WAAaC,KAAKC,IAAI,EAAGD,KAAKE,IAAI,GAAIlB,MAAMK,QAAUQ,MAAQC,OACpE,MAAMK,cAAgBH,KAAKE,IAAI,GAAIlB,MAAMK,QAAUL,MAAMI,SAAWU,MACpE,MAAMM,SACFJ,KAAKK,KACArB,MAAMQ,cAAgBR,MAAMO,gBACxBP,MAAMS,cAAgBT,MAAMO,gBACjCS,KAAKK,IAAIF,eACjB,IAAKxB,OAAOC,SAASwB,UAAW,CAG5B,MAAM,IAAIvB,WAAW,GAAGe,OAAOpB,uDACnC,CACA,OACIQ,MAAMO,cACNS,KAAKM,IAAIP,WAAYK,WAAapB,MAAMS,cAAgBT,MAAMO,cAEtE,QAAAI,oBAAApB,yBAAAO"}
@@ -1 +0,0 @@
1
- import{combinedRateOfFire}from"./chunk-7TQ2X6Q3.js";import{getPreEngineeredVariants}from"./chunk-PL75RTA2.js";import{builtInModuleBySymbol,getModuleBySymbol}from"./chunk-PA5EITW5.js";import{ALL_MODULES}from"./chunk-QY3L5BKN.js";import{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"./chunk-77I24V6B.js";import{fieldForLabel,baseStats,computeModifiers,labelsForDamageType,scaleForLabel,preciseModifierValue,capabilityValueForLabel}from"./chunk-CJQ37JII.js";import{resolveBlueprintForModule}from"./chunk-OLKNYGGT.js";import{getBlueprintsForModule,getExperimentalsForModule,getEngineeringGroup}from"./chunk-GLWPSVFV.js";import{getBlueprintGrade,getBlueprint,BLUEPRINTS}from"./chunk-AYAKU4YA.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function scaleDamageComponents(components,baseDamage,effectiveDamage){const scale=baseDamage!==void 0&&baseDamage!==0&&effectiveDamage!==void 0?effectiveDamage/baseDamage:1;return{...components.kinetic===void 0?{}:{kinetic:components.kinetic*scale},...components.thermal===void 0?{}:{thermal:components.thermal*scale},...components.explosive===void 0?{}:{explosive:components.explosive*scale},...components.absolute===void 0?{}:{absolute:components.absolute*scale},...components.antiXeno===void 0?{}:{antiXeno:components.antiXeno*scale},...components.unclassified===void 0?{}:{unclassified:components.unclassified.map(value=>value*scale)}}}function fixedModifierFeatures(modifiers){return modifiers.map(modifier=>({label:modifier.label,method:modifier.method,min:modifier.value,max:modifier.value}))}var FITTED_ITEM="ShipLoadout: fitted module Item";function isNonOutfittingSlot(slotKey){return/^(paintjob|shipname\d+|shipid\d+|bobble\d+|decal\d+|shipkit.+|weaponcolour|enginecolour|vesselvoice|shipcockpit|stringlights)$/i.test(slotKey)}function isCargoHatchSlot(slotKey){return slotKey.toLowerCase()==="cargohatch"}function isBuiltInHullModule(module){return isCargoHatchSlot(module.Slot)&&module.Item.toLowerCase().startsWith("modularcargobaydoor")}function cloneLoadoutModule(module){return{Slot:module.Slot,Item:module.Item,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health},...module.Value===void 0?{}:{Value:module.Value},...module.Engineering===void 0?{}:{Engineering:{BlueprintName:module.Engineering.BlueprintName,Level:module.Engineering.Level,Quality:module.Engineering.Quality,...module.Engineering.ExperimentalEffect===void 0?{}:{ExperimentalEffect:module.Engineering.ExperimentalEffect},...module.Engineering.ExperimentalEffect_Localised===void 0?{}:{ExperimentalEffect_Localised:module.Engineering.ExperimentalEffect_Localised},...module.Engineering.Modifiers===void 0?{}:{Modifiers:module.Engineering.Modifiers.map(modifier=>({...modifier}))}}}}}function matchingKeyIn(keyed,slotKey){if(keyed.has(slotKey))return slotKey;const wanted=slotKey.toLowerCase();for(const key of keyed.keys()){if(key.toLowerCase()===wanted)return key}return null}function ownKeyIn(keyed,canonicalKey){return matchingKeyIn(keyed,canonicalKey)??(keyed.size>0&&[...keyed.keys()].every(key=>key===key.toLowerCase())?canonicalKey.toLowerCase():canonicalKey)}function orderBySlotLayout(values,layout,slotOf){const order=new Map(layout.map((slot,index)=>[slot.key.toLowerCase(),index]));return[...values].sort((left,right)=>(order.get(slotOf(left).toLowerCase())??Number.MAX_SAFE_INTEGER)-(order.get(slotOf(right).toLowerCase())??Number.MAX_SAFE_INTEGER))}function cloneModuleStats(module){try{return deepFreeze(structuredClone(module))}catch(error){if(!(error instanceof Error&&error.name==="DataCloneError"))throw error;return deepFreeze({...module,...module.restrictedToShips===void 0?{}:{restrictedToShips:[...module.restrictedToShips]},...module.limitIncrease===void 0?{}:{limitIncrease:{...module.limitIncrease}},...module.damageDistribution===void 0?{}:{damageDistribution:{...module.damageDistribution}},...module.damageComponents===void 0?{}:{damageComponents:{...module.damageComponents,...module.damageComponents.unclassified===void 0?{}:{unclassified:[...module.damageComponents.unclassified]}}},...module.projectileRange===void 0?{}:{projectileRange:{...module.projectileRange}}})}}var GUARDIAN_WEAPON_GROUPS=/* @__PURE__ */new Set(["guardianGauss","guardianPlasma","guardianShard"]);function missingBaseLabels(stats,base,features,experimental){const contributions=[...features,...experimental??[]];return[...new Set(contributions.map(contribution=>contribution.label).filter(label=>{if(base[label]!==void 0)return false;return fieldForLabel(label,stats)===null}))]}function recipeSignature(blueprintSymbol){const blueprint=getBlueprint(blueprintSymbol);if(!blueprint)return null;const grades=Object.entries(blueprint.grades).map(([grade,{features:features}])=>`${grade}:${features.map(feature=>`${feature.label}/${feature.method??""}`).sort().join(",")}`).sort().join(";");return`${blueprint.name.toLowerCase()}|${grades}`}var isGenericSpelling=blueprintSymbol=>blueprintSymbol.toLowerCase().startsWith("misc_");function isSoldWithBlueprint(item,wanted){return getPreEngineeredVariants(item).some(variant=>variant.acquisition==="mercenary"&&variant.blueprintSymbol.toLowerCase()===wanted)}function blueprintRoutesFor(item){const routes=/* @__PURE__ */new Map;for(const blueprintSymbol of getBlueprintsForModule(item))routes.set(blueprintSymbol,"ordinary");for(const variant of getPreEngineeredVariants(item)){if(variant.acquisition==="mercenary"&&!routes.has(variant.blueprintSymbol)){routes.set(variant.blueprintSymbol,"mercenary")}}return routes}function blueprintAvailableFor(item,blueprintSymbol){const offered=getBlueprintsForModule(item);const asWritten=normalizeKey(blueprintSymbol,"ShipLoadout.applyBlueprint: blueprintSymbol");const resolved=resolveBlueprintForModule(item,blueprintSymbol).trim();const wanted=resolved.toLowerCase();if(offered.some(id=>id.toLowerCase()===wanted))return true;if(isSoldWithBlueprint(item,wanted)||isSoldWithBlueprint(item,asWritten))return true;if(!isGenericSpelling(wanted))return false;const signature=recipeSignature(resolved);if(signature===null)return false;return offered.some(id=>recipeSignature(id)===signature&&!isGenericSpelling(id))}function experimentalAvailableFor(item,experimentalEffectSymbol){const wanted=normalizeKey(experimentalEffectSymbol,"ShipLoadout.applyBlueprint: options.experimentalEffectSymbol");return getExperimentalsForModule(item).some(id=>id.toLowerCase()===wanted)}function primitiveLabelFor(stats,label){if(label==="MaximumRange"&&stats.maximumRange!==void 0)return"Range";if(label==="DamageFalloffRange"&&stats.falloffRange!==void 0){return"FalloffRange"}if(label==="Range"&&stats.scannerRange!==void 0)return"ScannerRange";if(label==="DSS_PatchRadius")return"ProbeRadius";if(label==="FuelScoopRate")return"RefuelRate";if(label==="EnergyPerRegen"&&stats.shieldRegenRate!==void 0){return"DistributorDraw"}return label}function primitiveEngineeringInputsFor(stats,grade,experimental){const canonicalGrade={...grade,features:grade.features.map(feature=>{const label=primitiveLabelFor(stats,feature.label);return label===feature.label?feature:{...feature,label:label}})};if(!experimental)return{grade:canonicalGrade};return{grade:canonicalGrade,experimental:{...experimental,modifiers:experimental.modifiers.map(modifier=>{const label=primitiveLabelFor(stats,modifier.label);return label===modifier.label?modifier:{...modifier,label:label}})}}}function matchesCalculatedModifiers(captured,calculated){if(!captured||captured.length!==calculated.length)return false;const byLabel=new Map(captured.map(modifier=>[modifier.Label.trim().toLowerCase(),modifier]));if(byLabel.size!==captured.length)return false;return calculated.every(expected=>{const actual=byLabel.get(expected.Label.trim().toLowerCase());if(!actual)return false;if(expected.Value!==void 0){return actual.Value!==void 0&&Math.abs(actual.Value-expected.Value)<=1e-5*Math.max(1,Math.abs(expected.Value))}return actual.ValueStr===expected.ValueStr})}function ordinaryEngineeringProof(item,engineering,experimental){const recipe=resolveBlueprintForModule(item,engineering.BlueprintName);const fixedCandidate=getPreEngineeredVariants(item).some(candidate=>candidate.acquisition!=="mercenary"&&candidate.blueprintSymbol.trim().toLowerCase()===recipe.trim().toLowerCase());if(!fixedCandidate)return"notFixedCandidate";const grade=getBlueprintGrade(recipe,engineering.Level);const quality=engineering.Quality;const stock=builtInModuleBySymbol(item,FITTED_ITEM);if(!stock||!grade||experimental===null||!Number.isFinite(quality)||quality<0||quality>1){return"unproven"}const current=primitiveEngineeringInputsFor(stock,grade,experimental);if(missingBaseLabels(stock,baseStats(stock),current.grade.features,current.experimental?.modifiers).length>0){return"unproven"}const calculated=journalModifiersFor(stock,computeModifiers(baseStats(stock),current.grade,quality,current.experimental));const damageDistribution=current.experimental?.damageDistribution??current.grade.damageDistribution;if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;calculated.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(stock.damageDistribution?.[type]??0)*scaleForLabel(label)})}}return matchesCalculatedModifiers(engineering.Modifiers,calculated)?"proven":"unproven"}var round6=value=>{const rounded=Math.round(value*1e6)/1e6;return Object.is(rounded,-0)?0:rounded};function float32FiringCycle(interval,burstRounds,burstRateOfFire){if(interval<=0)return void 0;const withinBurst=burstRounds>1?Math.fround(Math.fround(burstRounds-1)/Math.fround(burstRateOfFire)):0;const cycle=Math.fround(withinBurst+Math.fround(interval));return cycle>0?cycle:void 0}function float32RateOfFire(interval,burstRounds,burstRateOfFire){const cycle=float32FiringCycle(interval,burstRounds,burstRateOfFire);return cycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/cycle)}function float32DamagePerSecond(damage,rounds,rate,burstRounds,cycle){if(cycle!==void 0&&(rounds!==1||burstRounds!==1)){const damagePerCycle=Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(burstRounds));return Math.fround(damagePerCycle/cycle)}return Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(rate))}var JOURNAL_MODIFIER_ORDER=["CargoCapacity","GuardianModuleResistance","Mass","Integrity","PowerDraw","BootTime","PowerCapacity","HeatEfficiency","FSDOptimalMass","MaxFuelPerJump","FSDHeatRate","EngineOptimalMass","EngineOptPerformance","EngineHeatRate","ShieldGenOptimalMass","ShieldGenStrength","DamagePerSecond","Damage","DistributorDraw","ThermalLoad","ArmourPenetration","MaximumRange","ShotSpeed","RateOfFire","DamageType","$Kinetic;","$Thermal;","$Explosive;","$Absolute;","AmmoClipSize","AmmoMaximum","ReloadTime","Jitter","DamageFalloffRange","DefenceModifierShieldMultiplier","DefenceModifierHealthMultiplier","DefenceModifierHealthAddition","DefenceModifierShieldAddition","RegenRate","BrokenRegenRate","EnergyPerRegen","KineticResistance","ThermicResistance","ExplosiveResistance","CausticResistance","DamageProtection","ModuleDefenceAbsorption","WeaponsCapacity","WeaponsRecharge","EnginesCapacity","EnginesRecharge","SystemsCapacity","SystemsRecharge","ShieldBankSpinUp","ShieldBankDuration","ShieldBankReinforcement","ShieldBankHeat","FSDInterdictorRange","FSDInterdictorFacingLimit","SensorTargetScanAngle","MaxAngle","ScannerTimeToScan","Range","DSS_PatchRadius","FuelScoopRate","FuelCapacity"];var JOURNAL_MODIFIER_RANK=new Map(JOURNAL_MODIFIER_ORDER.map((label,index)=>[label,index]));function sortJournalModifiers(modifiers){return modifiers.map((modifier,index)=>({modifier:modifier,index:index})).sort((a,b)=>(JOURNAL_MODIFIER_RANK.get(a.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)-(JOURNAL_MODIFIER_RANK.get(b.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)||a.index-b.index).map(({modifier:modifier})=>modifier)}function journalModifiersFor(stats,modifiers){const weapon=stats.damage!==void 0;const valueFor=(label,fallback)=>{const modifier=modifiers.find(candidate=>candidate.Label===label);return(modifier&&preciseModifierValue(modifier))??Math.fround(fallback)};const burstTouched=["BurstInterval","BurstSize","BurstRateOfFire"].some(label=>modifiers.some(modifier=>modifier.Label===label));const damageTouched=modifiers.some(modifier=>modifier.Label==="Damage");const rateTouched=burstTouched||modifiers.some(modifier=>modifier.Label==="RateOfFire");let damagePerSecond;let derivedRate;if(weapon&&(damageTouched||rateTouched)){const continuous=stats.burstInterval===void 0&&stats.rateOfFire===void 0;const baseDamage=Math.fround(stats.damage);const effectiveDamage=valueFor("Damage",stats.damage);if(continuous){damagePerSecond={Label:"DamagePerSecond",Value:round6(effectiveDamage),OriginalValue:round6(baseDamage)}}else{const burstRounds=valueFor("BurstSize",stats.burstRounds??1);const burstRate=valueFor("BurstRateOfFire",stats.burstRateOfFire??1);const baseBurstRounds=Math.fround(stats.burstRounds??1);const baseBurstRate=Math.fround(stats.burstRateOfFire??1);const baseInterval=stats.burstInterval===void 0?void 0:Math.fround(stats.burstInterval);const baseCycle=baseInterval===void 0?void 0:float32FiringCycle(baseInterval,baseBurstRounds,baseBurstRate);const baseRate=baseInterval!==void 0?float32RateOfFire(baseInterval,baseBurstRounds,baseBurstRate):stats.rateOfFire===void 0?void 0:Math.fround(stats.rateOfFire);const rateModifier=modifiers.find(modifier=>modifier.Label==="RateOfFire");const effectiveRate=rateModifier&&preciseModifierValue(rateModifier);const effectiveInterval=valueFor("BurstInterval",stats.burstInterval??0);const effectiveCycle=effectiveRate===void 0?float32FiringCycle(effectiveInterval,burstRounds,burstRate):void 0;const rate=effectiveRate??(effectiveCycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/effectiveCycle));if(baseRate!==void 0&&rate!==void 0){const stockRounds=Math.fround(stats.roundsPerShot??1);const effectiveRounds=Math.fround(modifiers.find(modifier=>modifier.Label==="Rounds"||modifier.Label==="RoundsPerShot")?.Value??stockRounds);damagePerSecond={Label:"DamagePerSecond",Value:round6(float32DamagePerSecond(effectiveDamage,effectiveRounds,rate,burstRounds,effectiveCycle)),OriginalValue:round6(float32DamagePerSecond(baseDamage,stockRounds,baseRate,baseBurstRounds,baseCycle))};if(burstTouched){derivedRate={Label:"RateOfFire",Value:round6(rate),OriginalValue:round6(baseRate)}}}}}const result=[];for(const modifier of modifiers){const label=modifier.Label;if(weapon&&["BurstInterval","BurstSize","BurstRateOfFire"].includes(label))continue;if(weapon&&label==="Damage"&&stats.rateOfFire===void 0)continue;let journalLabel=label;if(label==="Range"&&stats.maximumRange!==void 0)journalLabel="MaximumRange";else if(label==="FalloffRange"&&stats.falloffRange!==void 0){journalLabel="DamageFalloffRange"}else if(label==="ScannerRange"&&stats.scannerRange!==void 0){journalLabel="Range"}else if(label==="ProbeRadius")journalLabel="DSS_PatchRadius";else if(label==="RefuelRate")journalLabel="FuelScoopRate";else if(label==="DistributorDraw"&&stats.shieldRegenRate!==void 0){journalLabel="EnergyPerRegen"}result.push(journalLabel===label?modifier:{...modifier,Label:journalLabel})}if(damagePerSecond)result.push(damagePerSecond);if(derivedRate){const direct=result.findIndex(modifier=>modifier.Label==="RateOfFire");if(direct>=0)result[direct]=derivedRate;else result.push(derivedRate)}return sortJournalModifiers(result)}function isFinalGuardianWeaponEngineering(item,blueprint){const group=getEngineeringGroup(item);if(group===null||!GUARDIAN_WEAPON_GROUPS.has(group))return false;const resolved=resolveBlueprintForModule(item,blueprint);return getBlueprint(resolved)!==null&&!blueprintAvailableFor(item,blueprint)}function engineerableBase(item,statsOverride){const stats=statsOverride??builtInModuleBySymbol(item,FITTED_ITEM);if(!stats||stats.engineeringLocked)return null;return{stats:stats,base:baseStats(stats)}}function availableBlueprintsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;const available=[];for(const[blueprintSymbol,route]of blueprintRoutesFor(item)){const blueprint=BLUEPRINTS[blueprintSymbol];if(!blueprint)continue;const grades=Object.entries(blueprint.grades).filter(([,grade])=>missingBaseLabels(stats,base,grade.features).length===0).map(([grade])=>Number(grade)).filter(Number.isFinite).sort((a,b)=>a-b);if(grades.length>0)available.push({blueprintSymbol:blueprintSymbol,grades:grades,route:route})}return available}function availableExperimentalsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;return getExperimentalsForModule(item).filter(experimentalEffectSymbol=>{const effect=EXPERIMENTAL_EFFECTS[experimentalEffectSymbol];return effect!==void 0&&missingBaseLabels(stats,base,effect.modifiers).length===0})}var MAX_ENGINEERING_GRADE=5;function modifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;if(!module||!variant.modifiers?.length&&effectName==null)return null;const effect=effectName==null?void 0:getExperimentalEffect(effectName);if(effectName!==null&&effectName!==void 0&&!effect)return null;return computeModifiers(baseStats(module),fixedModifierFeatures(variant.modifiers??[]),1,effect??void 0)}function getPreEngineeredModifiers(variant){return modifiersWithExperimental(variant)??[]}function journalModifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return[];const modifiers=journalModifiersFor(module,modifiersWithExperimental(variant,experimental)??[]);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;const damageDistribution=effectName?getExperimentalEffect(effectName)?.damageDistribution:void 0;if(!damageDistribution)return modifiers;for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];const label=labelsForDamageType(type)[0];if(value===void 0||label===void 0)continue;modifiers.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(module.damageDistribution?.[type]??0)*scaleForLabel(label)})}return modifiers}function getPreEngineeredJournalModifiers(variant){return journalModifiersWithExperimental(variant)}function sameJournalNumber(actual,expected){return Math.abs(actual-expected)<=Math.max(1e-5,Math.abs(expected)*1e-6)}function modifierKey(modifier,module){return fieldForLabel(modifier.Label,module)??`label:${normalizeKey(modifier.Label,"identifyPreEngineeredVariant: module.Engineering.Modifiers[].Label")}`}function sameModifier(actual,expected){if(expected.Value!==void 0){return actual.Value!==void 0&&sameJournalNumber(actual.Value,expected.Value)}return expected.ValueStr!==void 0&&actual.ValueStr!==void 0}function matchesModifierSignature(actualByKey,expected,module){let matched=0;for(const predicted of expected){const actual=actualByKey.get(modifierKey(predicted,module));if(!actual)continue;if(!sameModifier(actual,predicted))return false;matched++}return matched>=Math.max(1,expected.length-1)}function identifyPreEngineeredVariant(module){const engineering=module.Engineering;if(!engineering)return null;requireStringIfPresent(module.Item,"identifyPreEngineeredVariant: module.Item");const stock=getModuleBySymbol(module.Item,ALL_MODULES);if(!stock)return null;const capturedBlueprint=normalizeKey(engineering.BlueprintName,"identifyPreEngineeredVariant: module.Engineering.BlueprintName");const variants=getPreEngineeredVariants(module.Item);const blueprintMatches=variants.filter(candidate=>candidate.blueprintSymbol.toLowerCase()===capturedBlueprint);const blueprintMatch=blueprintMatches.length===1?blueprintMatches[0]:null;const capturedGrade=engineering.Level;if(blueprintMatch?.acquisition==="mercenary"&&Number.isInteger(capturedGrade)&&capturedGrade>=blueprintMatch.grade&&capturedGrade<=MAX_ENGINEERING_GRADE){return blueprintMatch}if(engineering.Modifiers===void 0){const capturedExperimental=normalizeKey(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const identityMatches=blueprintMatches.filter(candidate=>candidate.engineeringLocked===true&&candidate.grade===capturedGrade&&(candidate.experimentalEffectSymbol===void 0?capturedExperimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimentalEffectSymbol.toLowerCase()===capturedExperimental));return identityMatches.length===1?identityMatches[0]:null}if(!engineering.Modifiers?.length)return null;const actualByKey=/* @__PURE__ */new Map;for(const modifier of engineering.Modifiers){actualByKey.set(modifierKey(modifier,stock),modifier)}requireStringIfPresent(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const matches=[];for(const candidate of variants){if(!candidate.modifiers?.length)continue;if(candidate.grade!==engineering.Level)continue;if(candidate.acquisition==="eventReward"&&(engineering.ExperimentalEffect!==void 0||engineering.ExperimentalEffect_Localised!==void 0||capturedBlueprint!==candidate.blueprintSymbol.toLowerCase())){continue}const primitive=modifiersWithExperimental(candidate,engineering.ExperimentalEffect??null);if(!primitive?.length)continue;const matched=matchesModifierSignature(actualByKey,primitive,stock)||matchesModifierSignature(actualByKey,journalModifiersWithExperimental(candidate,engineering.ExperimentalEffect??null),stock);if(matched)matches.push(candidate)}return matches.length===1?matches[0]:null}function unresolvedModifiers(variant){const resolved=new Set(getPreEngineeredModifiers(variant).map(modifier=>modifier.Label));return(variant.modifiers??[]).map(modifier=>modifier.label).filter(label=>!resolved.has(label))}function getPreEngineeredStats(variant){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return null;if(!variant.modifiers?.length&&!variant.engineeringLocked&&variant.experimentalEffectSymbol===void 0)return{...module};const modifiers=variant.modifiers??[];const resolved={...module,...variant.engineeringLocked?{engineeringLocked:true}:{}};for(const{Label:Label,Value:Value,ValueStr:ValueStr}of getPreEngineeredModifiers(variant)){const field=fieldForLabel(Label,module);if(field&&field!=="damageDistribution"&&Value!==void 0){Object.assign(resolved,{[field]:Value/scaleForLabel(Label)})}else if(field&&ValueStr!==void 0&&capabilityValueForLabel(Label)!==null){Object.assign(resolved,{[field]:true})}}const experimentalDamageDistribution=variant.experimentalEffectSymbol?getExperimentalEffect(variant.experimentalEffectSymbol)?.damageDistribution:void 0;if(experimentalDamageDistribution){resolved.damageDistribution={...experimentalDamageDistribution};delete resolved.damageComponents}if(resolved.rateOfFire!==void 0&&!modifiers.some(m=>m.label==="RateOfFire")&&modifiers.some(m=>m.label==="BurstSize"||m.label==="BurstRateOfFire"||m.label==="BurstInterval")){const rate=combinedRateOfFire(resolved);if(rate!==void 0)resolved.rateOfFire=rate}if(module.damageComponents&&!experimentalDamageDistribution){resolved.damageComponents=scaleDamageComponents(module.damageComponents,module.damage,resolved.damage)}return resolved}export{FITTED_ITEM,availableBlueprintsFor,availableExperimentalsFor,blueprintAvailableFor,blueprintRoutesFor,cloneLoadoutModule,cloneModuleStats,experimentalAvailableFor,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,isBuiltInHullModule,isCargoHatchSlot,isFinalGuardianWeaponEngineering,isNonOutfittingSlot,journalModifiersFor,matchingKeyIn,missingBaseLabels,orderBySlotLayout,ordinaryEngineeringProof,ownKeyIn,primitiveEngineeringInputsFor,scaleDamageComponents,unresolvedModifiers};//# sourceMappingURL=chunk-GZYPQIO2.js.map