@elite-dangerous-almanac/core 0.1.6 → 0.1.8
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.
- package/PROVENANCE/i18n/SOURCES.md +92 -35
- package/PROVENANCE/ships/SOURCES.md +54 -14
- package/THIRD_PARTY_NOTICES.md +3 -0
- package/dist/chunk-3BM5BHI3.js +1 -0
- package/dist/chunk-3BM5BHI3.js.map +1 -0
- package/dist/{chunk-EWAS7KMF.js → chunk-4S6WB7QR.js} +1 -1
- package/dist/chunk-4TFAZX73.js +1 -0
- package/dist/{chunk-PYV7VI6I.js.map → chunk-4TFAZX73.js.map} +1 -1
- package/dist/chunk-4ZGUSHTP.js +1 -0
- package/dist/{chunk-5V4OXZLE.js.map → chunk-4ZGUSHTP.js.map} +1 -1
- package/dist/{chunk-BZDTEXXM.js → chunk-6BO5JJNI.js} +1 -1
- package/dist/{chunk-3MPLVD2R.js → chunk-6G6TYW2D.js} +1 -1
- package/dist/chunk-AFS6HN3D.js +1 -0
- package/dist/chunk-AFS6HN3D.js.map +1 -0
- package/dist/chunk-CJWFY6OX.js +1 -0
- package/dist/{chunk-JKWV3CZN.js.map → chunk-CJWFY6OX.js.map} +1 -1
- package/dist/{chunk-24INI4U7.js → chunk-CX7B67OI.js} +1 -1
- package/dist/chunk-CX7B67OI.js.map +1 -0
- package/dist/chunk-EKQCVCMK.js +1 -0
- package/dist/{chunk-WHAU3C4E.js.map → chunk-EKQCVCMK.js.map} +1 -1
- package/dist/chunk-ELT3FEA4.js +1 -0
- package/dist/{chunk-6FKBZPI6.js.map → chunk-ELT3FEA4.js.map} +1 -1
- package/dist/{chunk-3EO7PTAP.js → chunk-EVJ32UF3.js} +1 -1
- package/dist/{chunk-3EO7PTAP.js.map → chunk-EVJ32UF3.js.map} +1 -1
- package/dist/chunk-GRSNX36B.js +1 -0
- package/dist/{chunk-JXLCRQH5.js.map → chunk-GRSNX36B.js.map} +1 -1
- package/dist/chunk-GVNTKCVF.js +1 -0
- package/dist/chunk-GVNTKCVF.js.map +1 -0
- package/dist/{chunk-FEER4ERG.js → chunk-IOJXLDJN.js} +1 -1
- package/dist/{chunk-EVEFYI7K.js → chunk-J42ZXLBL.js} +1 -1
- package/dist/{chunk-EVEFYI7K.js.map → chunk-J42ZXLBL.js.map} +1 -1
- package/dist/chunk-KJFUNIIY.js +1 -0
- package/dist/{chunk-NCKOVFBJ.js.map → chunk-KJFUNIIY.js.map} +1 -1
- package/dist/{chunk-RC6F6RAU.js → chunk-LZYHBFJC.js} +1 -1
- package/dist/{chunk-RC6F6RAU.js.map → chunk-LZYHBFJC.js.map} +1 -1
- package/dist/chunk-M6G3UDTX.js +1 -0
- package/dist/chunk-M6G3UDTX.js.map +1 -0
- package/dist/{chunk-DLLBARN5.js → chunk-MKGJPVPS.js} +1 -1
- package/dist/{chunk-UXFMVZAY.js → chunk-OVUHQEH5.js} +1 -1
- package/dist/{chunk-UXFMVZAY.js.map → chunk-OVUHQEH5.js.map} +1 -1
- package/dist/{chunk-UPUC5X2C.js → chunk-PA5EITW5.js} +1 -1
- package/dist/{chunk-UPUC5X2C.js.map → chunk-PA5EITW5.js.map} +1 -1
- package/dist/chunk-QY3L5BKN.js +1 -0
- package/dist/{chunk-PEHOKSSD.js.map → chunk-QY3L5BKN.js.map} +1 -1
- package/dist/chunk-RVIYOHYF.js +1 -0
- package/dist/chunk-RVIYOHYF.js.map +1 -0
- package/dist/chunk-SD6GNFDX.js +1 -0
- package/dist/chunk-SD6GNFDX.js.map +1 -0
- package/dist/chunk-TW7LUBHD.js +1 -0
- package/dist/{chunk-QGAZWX7G.js.map → chunk-TW7LUBHD.js.map} +1 -1
- package/dist/chunk-V4C6FIE2.js +1 -0
- package/dist/{chunk-TLA6LHLN.js.map → chunk-V4C6FIE2.js.map} +1 -1
- package/dist/chunk-Z6XMXMVI.js +1 -0
- package/dist/{chunk-NEFUW32I.js.map → chunk-Z6XMXMVI.js.map} +1 -1
- package/dist/{chunk-T4CV4CDF.js → chunk-ZRG35JSH.js} +1 -1
- package/dist/i18n/blueprints.d.ts +2 -1
- package/dist/i18n/blueprints.js +1 -1
- package/dist/i18n/diagnostics.d.ts +1 -0
- package/dist/i18n/diagnostics.js +1 -1
- package/dist/i18n/engineering-groups.js +1 -1
- package/dist/i18n/experimental-effect-descriptions.js +1 -1
- package/dist/i18n/experimental-effects.js +1 -1
- package/dist/i18n/index.d.ts +9 -6
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/materials.js +1 -1
- package/dist/i18n/micro-resources.js +1 -1
- package/dist/i18n/module-families.d.ts +32 -0
- package/dist/i18n/module-families.js +1 -0
- package/dist/i18n/module-families.js.map +1 -0
- package/dist/i18n/modules.js +1 -1
- package/dist/i18n/pre-engineered.js +1 -1
- package/dist/i18n/ships.js +1 -1
- package/dist/i18n/slots.js +1 -1
- package/dist/materials/index.js +1 -1
- package/dist/materials/materials-all.js +1 -1
- package/dist/materials/materials.js +1 -1
- package/dist/materials/micro-resources-all.js +1 -1
- package/dist/materials/micro-resources.js +1 -1
- package/dist/ships/blueprint-costs.d.ts +1 -0
- package/dist/ships/blueprints.d.ts +1 -0
- package/dist/ships/engineering.d.ts +1 -0
- package/dist/ships/experimental-effect-costs.d.ts +1 -0
- package/dist/ships/experimental-effects.d.ts +1 -0
- package/dist/ships/index.d.ts +2 -1
- package/dist/ships/index.js +1 -1
- package/dist/ships/loadout-validation.d.ts +1 -0
- package/dist/ships/mobility.d.ts +12 -0
- package/dist/ships/mobility.js +1 -1
- package/dist/ships/module-capabilities.d.ts +1 -0
- package/dist/ships/module-families.d.ts +49 -0
- package/dist/ships/module-families.js +1 -0
- package/dist/ships/module-families.js.map +1 -0
- package/dist/ships/module-limits.d.ts +1 -0
- package/dist/ships/modules-all.d.ts +1 -0
- package/dist/ships/modules-all.js +1 -1
- package/dist/ships/modules-core.d.ts +1 -0
- package/dist/ships/modules-core.js +1 -1
- package/dist/ships/modules-hardpoint.d.ts +2 -1
- package/dist/ships/modules-hardpoint.js +1 -1
- package/dist/ships/modules-internal.d.ts +2 -1
- package/dist/ships/modules-internal.js +1 -1
- package/dist/ships/modules-utility.d.ts +2 -1
- package/dist/ships/modules-utility.js +1 -1
- package/dist/ships/modules.d.ts +41 -14
- package/dist/ships/modules.js +1 -1
- package/dist/ships/pre-engineered-stats.d.ts +1 -0
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/ship-loadout.d.ts +143 -7
- package/dist/ships/ship-loadout.js +1 -1
- package/dist/ships/slef.d.ts +10 -8
- package/dist/ships/slef.js +1 -1
- package/dist/ships/weapons.d.ts +1 -0
- package/package.json +9 -1
- package/dist/chunk-24INI4U7.js.map +0 -1
- package/dist/chunk-5V4OXZLE.js +0 -1
- package/dist/chunk-6FKBZPI6.js +0 -1
- package/dist/chunk-DAQ3PJ4R.js +0 -1
- package/dist/chunk-DAQ3PJ4R.js.map +0 -1
- package/dist/chunk-JKWV3CZN.js +0 -1
- package/dist/chunk-JXLCRQH5.js +0 -1
- package/dist/chunk-NCKOVFBJ.js +0 -1
- package/dist/chunk-NEFUW32I.js +0 -1
- package/dist/chunk-NWBWTJM3.js +0 -1
- package/dist/chunk-NWBWTJM3.js.map +0 -1
- package/dist/chunk-PEHOKSSD.js +0 -1
- package/dist/chunk-PYV7VI6I.js +0 -1
- package/dist/chunk-QGAZWX7G.js +0 -1
- package/dist/chunk-SU352DIW.js +0 -1
- package/dist/chunk-SU352DIW.js.map +0 -1
- package/dist/chunk-TLA6LHLN.js +0 -1
- package/dist/chunk-WHAU3C4E.js +0 -1
- package/dist/chunk-ZKU7CMAH.js +0 -1
- package/dist/chunk-ZKU7CMAH.js.map +0 -1
- /package/dist/{chunk-EWAS7KMF.js.map → chunk-4S6WB7QR.js.map} +0 -0
- /package/dist/{chunk-BZDTEXXM.js.map → chunk-6BO5JJNI.js.map} +0 -0
- /package/dist/{chunk-3MPLVD2R.js.map → chunk-6G6TYW2D.js.map} +0 -0
- /package/dist/{chunk-FEER4ERG.js.map → chunk-IOJXLDJN.js.map} +0 -0
- /package/dist/{chunk-DLLBARN5.js.map → chunk-MKGJPVPS.js.map} +0 -0
- /package/dist/{chunk-T4CV4CDF.js.map → chunk-ZRG35JSH.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ships/modules-internal.ts"],"names":["buildModuleCatalogue","modules_internal_default","INTERNAL_MODULES"],"mappings":"O,
|
|
1
|
+
{"version":3,"sources":["../src/ships/modules-internal.ts"],"names":["buildModuleCatalogue","modules_internal_default","INTERNAL_MODULES"],"mappings":"O,6y+HAsCO,IAAME,iBAAgDF,qBACzDC,yBACA,mBACJC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{combinedRateOfFire}from"./chunk-LJI7VXJD.js";import{builtInModuleBySymbol,getModuleBySymbol}from"./chunk-UPUC5X2C.js";import{getPreEngineeredVariants}from"./chunk-2VPVZELZ.js";import{ALL_MODULES}from"./chunk-PEHOKSSD.js";import{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"./chunk-JPBMRJFC.js";import{fieldForLabel,baseStats,computeModifiers,labelsForDamageType,scaleForLabel,preciseModifierValue,capabilityValueForLabel}from"./chunk-DYPOL3CI.js";import{resolveBlueprintForModule}from"./chunk-2TW4ZBI3.js";import{getBlueprintsForModule,getExperimentalsForModule,getEngineeringGroup}from"./chunk-QTZPA2FR.js";import{getBlueprintGrade,getBlueprint,BLUEPRINTS}from"./chunk-Q3QCLNVG.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function scaleDamageComponents(components,baseDamage,effectiveDamage){const scale=baseDamage!==void 0&&baseDamage!==0&&effectiveDamage!==void 0?effectiveDamage/baseDamage:1;return{...components.kinetic===void 0?{}:{kinetic:components.kinetic*scale},...components.thermal===void 0?{}:{thermal:components.thermal*scale},...components.explosive===void 0?{}:{explosive:components.explosive*scale},...components.absolute===void 0?{}:{absolute:components.absolute*scale},...components.antiXeno===void 0?{}:{antiXeno:components.antiXeno*scale},...components.unclassified===void 0?{}:{unclassified:components.unclassified.map(value=>value*scale)}}}function fixedModifierFeatures(modifiers){return modifiers.map(modifier=>({label:modifier.label,method:modifier.method,min:modifier.value,max:modifier.value}))}var FITTED_ITEM="ShipLoadout: fitted module Item";function isNonOutfittingSlot(slotKey){return/^(paintjob|shipname\d+|shipid\d+|bobble\d+|decal\d+|shipkit.+|weaponcolour|enginecolour|vesselvoice|shipcockpit|stringlights)$/i.test(slotKey)}function isCargoHatchSlot(slotKey){return slotKey.toLowerCase()==="cargohatch"}function isBuiltInHullModule(module){return isCargoHatchSlot(module.Slot)&&module.Item.toLowerCase().startsWith("modularcargobaydoor")}function cloneLoadoutModule(module){return{Slot:module.Slot,Item:module.Item,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health},...module.Value===void 0?{}:{Value:module.Value},...module.Engineering===void 0?{}:{Engineering:{BlueprintName:module.Engineering.BlueprintName,Level:module.Engineering.Level,Quality:module.Engineering.Quality,...module.Engineering.ExperimentalEffect===void 0?{}:{ExperimentalEffect:module.Engineering.ExperimentalEffect},...module.Engineering.ExperimentalEffect_Localised===void 0?{}:{ExperimentalEffect_Localised:module.Engineering.ExperimentalEffect_Localised},...module.Engineering.Modifiers===void 0?{}:{Modifiers:module.Engineering.Modifiers.map(modifier=>({...modifier}))}}}}}function matchingKeyIn(keyed,slotKey){if(keyed.has(slotKey))return slotKey;const wanted=slotKey.toLowerCase();for(const key of keyed.keys()){if(key.toLowerCase()===wanted)return key}return null}function ownKeyIn(keyed,canonicalKey){return matchingKeyIn(keyed,canonicalKey)??(keyed.size>0&&[...keyed.keys()].every(key=>key===key.toLowerCase())?canonicalKey.toLowerCase():canonicalKey)}function orderBySlotLayout(values,layout,slotOf){const order=new Map(layout.map((slot,index)=>[slot.key.toLowerCase(),index]));return[...values].sort((left,right)=>(order.get(slotOf(left).toLowerCase())??Number.MAX_SAFE_INTEGER)-(order.get(slotOf(right).toLowerCase())??Number.MAX_SAFE_INTEGER))}function cloneModuleStats(module){try{return deepFreeze(structuredClone(module))}catch(error){if(!(error instanceof Error&&error.name==="DataCloneError"))throw error;return deepFreeze({...module,...module.restrictedToShips===void 0?{}:{restrictedToShips:[...module.restrictedToShips]},...module.limitIncrease===void 0?{}:{limitIncrease:{...module.limitIncrease}},...module.damageDistribution===void 0?{}:{damageDistribution:{...module.damageDistribution}},...module.damageComponents===void 0?{}:{damageComponents:{...module.damageComponents,...module.damageComponents.unclassified===void 0?{}:{unclassified:[...module.damageComponents.unclassified]}}},...module.projectileRange===void 0?{}:{projectileRange:{...module.projectileRange}}})}}var GUARDIAN_WEAPON_GROUPS=/* @__PURE__ */new Set(["guardianGauss","guardianPlasma","guardianShard"]);function missingBaseLabels(stats,base,features,experimental){const contributions=[...features,...experimental??[]];return[...new Set(contributions.map(contribution=>contribution.label).filter(label=>{if(base[label]!==void 0)return false;return fieldForLabel(label,stats)===null}))]}function recipeSignature(fdname){const blueprint=getBlueprint(fdname);if(!blueprint)return null;const grades=Object.entries(blueprint.grades).map(([grade,{features:features}])=>`${grade}:${features.map(feature=>`${feature.label}/${feature.method??""}`).sort().join(",")}`).sort().join(";");return`${blueprint.name.toLowerCase()}|${grades}`}var isGenericSpelling=fdname=>fdname.toLowerCase().startsWith("misc_");function isSoldWithBlueprint(item,wanted){return getPreEngineeredVariants(item).some(variant=>variant.acquisition==="mercenary"&&variant.blueprint.toLowerCase()===wanted)}function blueprintRoutesFor(item){const routes=/* @__PURE__ */new Map;for(const fdname of getBlueprintsForModule(item))routes.set(fdname,"ordinary");for(const variant of getPreEngineeredVariants(item)){if(variant.acquisition==="mercenary"&&!routes.has(variant.blueprint)){routes.set(variant.blueprint,"mercenary")}}return routes}function blueprintAvailableFor(item,fdname){const offered=getBlueprintsForModule(item);const asWritten=normalizeKey(fdname,"ShipLoadout.applyBlueprint: fdname");const resolved=resolveBlueprintForModule(item,fdname).trim();const wanted=resolved.toLowerCase();if(offered.some(id=>id.toLowerCase()===wanted))return true;if(isSoldWithBlueprint(item,wanted)||isSoldWithBlueprint(item,asWritten))return true;if(!isGenericSpelling(wanted))return false;const signature=recipeSignature(resolved);if(signature===null)return false;return offered.some(id=>recipeSignature(id)===signature&&!isGenericSpelling(id))}function experimentalAvailableFor(item,fdname){const wanted=normalizeKey(fdname,"ShipLoadout.applyBlueprint: options.experimental");return getExperimentalsForModule(item).some(id=>id.toLowerCase()===wanted)}function primitiveLabelFor(stats,label){if(label==="MaximumRange"&&stats.maximumRange!==void 0)return"Range";if(label==="DamageFalloffRange"&&stats.falloffRange!==void 0){return"FalloffRange"}if(label==="Range"&&stats.scannerRange!==void 0)return"ScannerRange";if(label==="DSS_PatchRadius")return"ProbeRadius";if(label==="FuelScoopRate")return"RefuelRate";if(label==="EnergyPerRegen"&&stats.shieldRegenRate!==void 0){return"DistributorDraw"}return label}function primitiveEngineeringInputsFor(stats,grade,experimental){const canonicalGrade={...grade,features:grade.features.map(feature=>{const label=primitiveLabelFor(stats,feature.label);return label===feature.label?feature:{...feature,label:label}})};if(!experimental)return{grade:canonicalGrade};return{grade:canonicalGrade,experimental:{...experimental,modifiers:experimental.modifiers.map(modifier=>{const label=primitiveLabelFor(stats,modifier.label);return label===modifier.label?modifier:{...modifier,label:label}})}}}function matchesCalculatedModifiers(captured,calculated){if(!captured||captured.length!==calculated.length)return false;const byLabel=new Map(captured.map(modifier=>[modifier.Label.trim().toLowerCase(),modifier]));if(byLabel.size!==captured.length)return false;return calculated.every(expected=>{const actual=byLabel.get(expected.Label.trim().toLowerCase());if(!actual)return false;if(expected.Value!==void 0){return actual.Value!==void 0&&Math.abs(actual.Value-expected.Value)<=1e-5*Math.max(1,Math.abs(expected.Value))}return actual.ValueStr===expected.ValueStr})}function ordinaryEngineeringProof(item,engineering,experimental){const recipe=resolveBlueprintForModule(item,engineering.BlueprintName);const fixedCandidate=getPreEngineeredVariants(item).some(candidate=>candidate.acquisition!=="mercenary"&&candidate.blueprint.trim().toLowerCase()===recipe.trim().toLowerCase());if(!fixedCandidate)return"notFixedCandidate";const grade=getBlueprintGrade(recipe,engineering.Level);const quality=engineering.Quality;const stock=builtInModuleBySymbol(item,FITTED_ITEM);if(!stock||!grade||experimental===null||!Number.isFinite(quality)||quality<0||quality>1){return"unproven"}const current=primitiveEngineeringInputsFor(stock,grade,experimental);if(missingBaseLabels(stock,baseStats(stock),current.grade.features,current.experimental?.modifiers).length>0){return"unproven"}const calculated=journalModifiersFor(stock,computeModifiers(baseStats(stock),current.grade,quality,current.experimental));const damageDistribution=current.experimental?.damageDistribution??current.grade.damageDistribution;if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;calculated.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(stock.damageDistribution?.[type]??0)*scaleForLabel(label)})}}return matchesCalculatedModifiers(engineering.Modifiers,calculated)?"proven":"unproven"}var round6=value=>{const rounded=Math.round(value*1e6)/1e6;return Object.is(rounded,-0)?0:rounded};function float32FiringCycle(interval,burstRounds,burstRateOfFire){if(interval<=0)return void 0;const withinBurst=burstRounds>1?Math.fround(Math.fround(burstRounds-1)/Math.fround(burstRateOfFire)):0;const cycle=Math.fround(withinBurst+Math.fround(interval));return cycle>0?cycle:void 0}function float32RateOfFire(interval,burstRounds,burstRateOfFire){const cycle=float32FiringCycle(interval,burstRounds,burstRateOfFire);return cycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/cycle)}function float32DamagePerSecond(damage,rounds,rate,burstRounds,cycle){if(cycle!==void 0&&(rounds!==1||burstRounds!==1)){const damagePerCycle=Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(burstRounds));return Math.fround(damagePerCycle/cycle)}return Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(rate))}var JOURNAL_MODIFIER_ORDER=["CargoCapacity","GuardianModuleResistance","Mass","Integrity","PowerDraw","BootTime","PowerCapacity","HeatEfficiency","FSDOptimalMass","MaxFuelPerJump","FSDHeatRate","EngineOptimalMass","EngineOptPerformance","EngineHeatRate","ShieldGenOptimalMass","ShieldGenStrength","DamagePerSecond","Damage","DistributorDraw","ThermalLoad","ArmourPenetration","MaximumRange","ShotSpeed","RateOfFire","DamageType","$Kinetic;","$Thermal;","$Explosive;","$Absolute;","AmmoClipSize","AmmoMaximum","ReloadTime","Jitter","DamageFalloffRange","DefenceModifierShieldMultiplier","DefenceModifierHealthMultiplier","DefenceModifierHealthAddition","DefenceModifierShieldAddition","RegenRate","BrokenRegenRate","EnergyPerRegen","KineticResistance","ThermicResistance","ExplosiveResistance","CausticResistance","DamageProtection","ModuleDefenceAbsorption","WeaponsCapacity","WeaponsRecharge","EnginesCapacity","EnginesRecharge","SystemsCapacity","SystemsRecharge","ShieldBankSpinUp","ShieldBankDuration","ShieldBankReinforcement","ShieldBankHeat","FSDInterdictorRange","FSDInterdictorFacingLimit","SensorTargetScanAngle","MaxAngle","ScannerTimeToScan","Range","DSS_PatchRadius","FuelScoopRate","FuelCapacity"];var JOURNAL_MODIFIER_RANK=new Map(JOURNAL_MODIFIER_ORDER.map((label,index)=>[label,index]));function sortJournalModifiers(modifiers){return modifiers.map((modifier,index)=>({modifier:modifier,index:index})).sort((a,b)=>(JOURNAL_MODIFIER_RANK.get(a.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)-(JOURNAL_MODIFIER_RANK.get(b.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)||a.index-b.index).map(({modifier:modifier})=>modifier)}function journalModifiersFor(stats,modifiers){const weapon=stats.damage!==void 0;const valueFor=(label,fallback)=>{const modifier=modifiers.find(candidate=>candidate.Label===label);return(modifier&&preciseModifierValue(modifier))??Math.fround(fallback)};const burstTouched=["BurstInterval","BurstSize","BurstRateOfFire"].some(label=>modifiers.some(modifier=>modifier.Label===label));const damageTouched=modifiers.some(modifier=>modifier.Label==="Damage");const rateTouched=burstTouched||modifiers.some(modifier=>modifier.Label==="RateOfFire");let damagePerSecond;let derivedRate;if(weapon&&(damageTouched||rateTouched)){const continuous=stats.burstInterval===void 0&&stats.rateOfFire===void 0;const baseDamage=Math.fround(stats.damage);const effectiveDamage=valueFor("Damage",stats.damage);if(continuous){damagePerSecond={Label:"DamagePerSecond",Value:round6(effectiveDamage),OriginalValue:round6(baseDamage)}}else{const burstRounds=valueFor("BurstSize",stats.burstRounds??1);const burstRate=valueFor("BurstRateOfFire",stats.burstRateOfFire??1);const baseBurstRounds=Math.fround(stats.burstRounds??1);const baseBurstRate=Math.fround(stats.burstRateOfFire??1);const baseInterval=stats.burstInterval===void 0?void 0:Math.fround(stats.burstInterval);const baseCycle=baseInterval===void 0?void 0:float32FiringCycle(baseInterval,baseBurstRounds,baseBurstRate);const baseRate=baseInterval!==void 0?float32RateOfFire(baseInterval,baseBurstRounds,baseBurstRate):stats.rateOfFire===void 0?void 0:Math.fround(stats.rateOfFire);const rateModifier=modifiers.find(modifier=>modifier.Label==="RateOfFire");const effectiveRate=rateModifier&&preciseModifierValue(rateModifier);const effectiveInterval=valueFor("BurstInterval",stats.burstInterval??0);const effectiveCycle=effectiveRate===void 0?float32FiringCycle(effectiveInterval,burstRounds,burstRate):void 0;const rate=effectiveRate??(effectiveCycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/effectiveCycle));if(baseRate!==void 0&&rate!==void 0){const stockRounds=Math.fround(stats.roundsPerShot??1);const effectiveRounds=Math.fround(modifiers.find(modifier=>modifier.Label==="Rounds"||modifier.Label==="RoundsPerShot")?.Value??stockRounds);damagePerSecond={Label:"DamagePerSecond",Value:round6(float32DamagePerSecond(effectiveDamage,effectiveRounds,rate,burstRounds,effectiveCycle)),OriginalValue:round6(float32DamagePerSecond(baseDamage,stockRounds,baseRate,baseBurstRounds,baseCycle))};if(burstTouched){derivedRate={Label:"RateOfFire",Value:round6(rate),OriginalValue:round6(baseRate)}}}}}const result=[];for(const modifier of modifiers){const label=modifier.Label;if(weapon&&["BurstInterval","BurstSize","BurstRateOfFire"].includes(label))continue;if(weapon&&label==="Damage"&&stats.rateOfFire===void 0)continue;let journalLabel=label;if(label==="Range"&&stats.maximumRange!==void 0)journalLabel="MaximumRange";else if(label==="FalloffRange"&&stats.falloffRange!==void 0){journalLabel="DamageFalloffRange"}else if(label==="ScannerRange"&&stats.scannerRange!==void 0){journalLabel="Range"}else if(label==="ProbeRadius")journalLabel="DSS_PatchRadius";else if(label==="RefuelRate")journalLabel="FuelScoopRate";else if(label==="DistributorDraw"&&stats.shieldRegenRate!==void 0){journalLabel="EnergyPerRegen"}result.push(journalLabel===label?modifier:{...modifier,Label:journalLabel})}if(damagePerSecond)result.push(damagePerSecond);if(derivedRate){const direct=result.findIndex(modifier=>modifier.Label==="RateOfFire");if(direct>=0)result[direct]=derivedRate;else result.push(derivedRate)}return sortJournalModifiers(result)}function isFinalGuardianWeaponEngineering(item,blueprint){const group=getEngineeringGroup(item);if(group===null||!GUARDIAN_WEAPON_GROUPS.has(group))return false;const resolved=resolveBlueprintForModule(item,blueprint);return getBlueprint(resolved)!==null&&!blueprintAvailableFor(item,blueprint)}function engineerableBase(item,statsOverride){const stats=statsOverride??builtInModuleBySymbol(item,FITTED_ITEM);if(!stats||stats.engineeringLocked)return null;return{stats:stats,base:baseStats(stats)}}function availableBlueprintsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;const available=[];for(const[fdname,route]of blueprintRoutesFor(item)){const blueprint=BLUEPRINTS[fdname];if(!blueprint)continue;const grades=Object.entries(blueprint.grades).filter(([,grade])=>missingBaseLabels(stats,base,grade.features).length===0).map(([grade])=>Number(grade)).filter(Number.isFinite).sort((a,b)=>a-b);if(grades.length>0)available.push({fdname:fdname,grades:grades,route:route})}return available}function availableExperimentalsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;return getExperimentalsForModule(item).filter(fdname=>{const effect=EXPERIMENTAL_EFFECTS[fdname];return effect!==void 0&&missingBaseLabels(stats,base,effect.modifiers).length===0})}var MAX_ENGINEERING_GRADE=5;function modifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);const effectName=experimental===void 0?variant.experimental:experimental;if(!module||!variant.modifiers?.length&&effectName==null)return null;const effect=effectName==null?void 0:getExperimentalEffect(effectName);if(effectName!==null&&effectName!==void 0&&!effect)return null;return computeModifiers(baseStats(module),fixedModifierFeatures(variant.modifiers??[]),1,effect??void 0)}function getPreEngineeredModifiers(variant){return modifiersWithExperimental(variant)??[]}function journalModifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return[];const modifiers=journalModifiersFor(module,modifiersWithExperimental(variant,experimental)??[]);const effectName=experimental===void 0?variant.experimental:experimental;const damageDistribution=effectName?getExperimentalEffect(effectName)?.damageDistribution:void 0;if(!damageDistribution)return modifiers;for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];const label=labelsForDamageType(type)[0];if(value===void 0||label===void 0)continue;modifiers.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(module.damageDistribution?.[type]??0)*scaleForLabel(label)})}return modifiers}function getPreEngineeredJournalModifiers(variant){return journalModifiersWithExperimental(variant)}function sameJournalNumber(actual,expected){return Math.abs(actual-expected)<=Math.max(1e-5,Math.abs(expected)*1e-6)}function modifierKey(modifier,module){return fieldForLabel(modifier.Label,module)??`label:${normalizeKey(modifier.Label,"identifyPreEngineeredVariant: module.Engineering.Modifiers[].Label")}`}function sameModifier(actual,expected){if(expected.Value!==void 0){return actual.Value!==void 0&&sameJournalNumber(actual.Value,expected.Value)}return expected.ValueStr!==void 0&&actual.ValueStr!==void 0}function matchesModifierSignature(actualByKey,expected,module){let matched=0;for(const predicted of expected){const actual=actualByKey.get(modifierKey(predicted,module));if(!actual)continue;if(!sameModifier(actual,predicted))return false;matched++}return matched>=Math.max(1,expected.length-1)}function identifyPreEngineeredVariant(module){const engineering=module.Engineering;if(!engineering)return null;requireStringIfPresent(module.Item,"identifyPreEngineeredVariant: module.Item");const stock=getModuleBySymbol(module.Item,ALL_MODULES);if(!stock)return null;const capturedBlueprint=normalizeKey(engineering.BlueprintName,"identifyPreEngineeredVariant: module.Engineering.BlueprintName");const variants=getPreEngineeredVariants(module.Item);const blueprintMatches=variants.filter(candidate=>candidate.blueprint.toLowerCase()===capturedBlueprint);const blueprintMatch=blueprintMatches.length===1?blueprintMatches[0]:null;const capturedGrade=engineering.Level;if(blueprintMatch?.acquisition==="mercenary"&&Number.isInteger(capturedGrade)&&capturedGrade>=blueprintMatch.grade&&capturedGrade<=MAX_ENGINEERING_GRADE){return blueprintMatch}if(engineering.Modifiers===void 0){const capturedExperimental=normalizeKey(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const identityMatches=blueprintMatches.filter(candidate=>candidate.engineeringLocked===true&&candidate.grade===capturedGrade&&(candidate.experimental===void 0?capturedExperimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimental.toLowerCase()===capturedExperimental));return identityMatches.length===1?identityMatches[0]:null}if(!engineering.Modifiers?.length)return null;const actualByKey=/* @__PURE__ */new Map;for(const modifier of engineering.Modifiers){actualByKey.set(modifierKey(modifier,stock),modifier)}requireStringIfPresent(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const matches=[];for(const candidate of variants){if(!candidate.modifiers?.length)continue;if(candidate.grade!==engineering.Level)continue;if(candidate.acquisition==="eventReward"&&(engineering.ExperimentalEffect!==void 0||engineering.ExperimentalEffect_Localised!==void 0||capturedBlueprint!==candidate.blueprint.toLowerCase())){continue}const primitive=modifiersWithExperimental(candidate,engineering.ExperimentalEffect??null);if(!primitive?.length)continue;const matched=matchesModifierSignature(actualByKey,primitive,stock)||matchesModifierSignature(actualByKey,journalModifiersWithExperimental(candidate,engineering.ExperimentalEffect??null),stock);if(matched)matches.push(candidate)}return matches.length===1?matches[0]:null}function unresolvedModifiers(variant){const resolved=new Set(getPreEngineeredModifiers(variant).map(modifier=>modifier.Label));return(variant.modifiers??[]).map(modifier=>modifier.label).filter(label=>!resolved.has(label))}function getPreEngineeredStats(variant){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return null;if(!variant.modifiers?.length&&!variant.engineeringLocked&&variant.experimental===void 0)return module;const modifiers=variant.modifiers??[];const resolved={...module,...variant.engineeringLocked?{engineeringLocked:true}:{}};for(const{Label:Label,Value:Value,ValueStr:ValueStr}of getPreEngineeredModifiers(variant)){const field=fieldForLabel(Label,module);if(field&&field!=="damageDistribution"&&Value!==void 0){Object.assign(resolved,{[field]:Value/scaleForLabel(Label)})}else if(field&&ValueStr!==void 0&&capabilityValueForLabel(Label)!==null){Object.assign(resolved,{[field]:true})}}const experimentalDamageDistribution=variant.experimental?getExperimentalEffect(variant.experimental)?.damageDistribution:void 0;if(experimentalDamageDistribution){resolved.damageDistribution={...experimentalDamageDistribution};delete resolved.damageComponents}if(resolved.rateOfFire!==void 0&&!modifiers.some(m=>m.label==="RateOfFire")&&modifiers.some(m=>m.label==="BurstSize"||m.label==="BurstRateOfFire"||m.label==="BurstInterval")){const rate=combinedRateOfFire(resolved);if(rate!==void 0)resolved.rateOfFire=rate}if(module.damageComponents&&!experimentalDamageDistribution){resolved.damageComponents=scaleDamageComponents(module.damageComponents,module.damage,resolved.damage)}return resolved}export{FITTED_ITEM,availableBlueprintsFor,availableExperimentalsFor,blueprintAvailableFor,blueprintRoutesFor,cloneLoadoutModule,cloneModuleStats,experimentalAvailableFor,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,isBuiltInHullModule,isCargoHatchSlot,isFinalGuardianWeaponEngineering,isNonOutfittingSlot,journalModifiersFor,matchingKeyIn,missingBaseLabels,orderBySlotLayout,ordinaryEngineeringProof,ownKeyIn,primitiveEngineeringInputsFor,scaleDamageComponents,unresolvedModifiers};//# sourceMappingURL=chunk-BZDTEXXM.js.map
|
|
1
|
+
import{combinedRateOfFire}from"./chunk-LJI7VXJD.js";import{builtInModuleBySymbol,getModuleBySymbol}from"./chunk-PA5EITW5.js";import{getPreEngineeredVariants}from"./chunk-2VPVZELZ.js";import{ALL_MODULES}from"./chunk-QY3L5BKN.js";import{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"./chunk-JPBMRJFC.js";import{fieldForLabel,baseStats,computeModifiers,labelsForDamageType,scaleForLabel,preciseModifierValue,capabilityValueForLabel}from"./chunk-DYPOL3CI.js";import{resolveBlueprintForModule}from"./chunk-2TW4ZBI3.js";import{getBlueprintsForModule,getExperimentalsForModule,getEngineeringGroup}from"./chunk-QTZPA2FR.js";import{getBlueprintGrade,getBlueprint,BLUEPRINTS}from"./chunk-Q3QCLNVG.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function scaleDamageComponents(components,baseDamage,effectiveDamage){const scale=baseDamage!==void 0&&baseDamage!==0&&effectiveDamage!==void 0?effectiveDamage/baseDamage:1;return{...components.kinetic===void 0?{}:{kinetic:components.kinetic*scale},...components.thermal===void 0?{}:{thermal:components.thermal*scale},...components.explosive===void 0?{}:{explosive:components.explosive*scale},...components.absolute===void 0?{}:{absolute:components.absolute*scale},...components.antiXeno===void 0?{}:{antiXeno:components.antiXeno*scale},...components.unclassified===void 0?{}:{unclassified:components.unclassified.map(value=>value*scale)}}}function fixedModifierFeatures(modifiers){return modifiers.map(modifier=>({label:modifier.label,method:modifier.method,min:modifier.value,max:modifier.value}))}var FITTED_ITEM="ShipLoadout: fitted module Item";function isNonOutfittingSlot(slotKey){return/^(paintjob|shipname\d+|shipid\d+|bobble\d+|decal\d+|shipkit.+|weaponcolour|enginecolour|vesselvoice|shipcockpit|stringlights)$/i.test(slotKey)}function isCargoHatchSlot(slotKey){return slotKey.toLowerCase()==="cargohatch"}function isBuiltInHullModule(module){return isCargoHatchSlot(module.Slot)&&module.Item.toLowerCase().startsWith("modularcargobaydoor")}function cloneLoadoutModule(module){return{Slot:module.Slot,Item:module.Item,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health},...module.Value===void 0?{}:{Value:module.Value},...module.Engineering===void 0?{}:{Engineering:{BlueprintName:module.Engineering.BlueprintName,Level:module.Engineering.Level,Quality:module.Engineering.Quality,...module.Engineering.ExperimentalEffect===void 0?{}:{ExperimentalEffect:module.Engineering.ExperimentalEffect},...module.Engineering.ExperimentalEffect_Localised===void 0?{}:{ExperimentalEffect_Localised:module.Engineering.ExperimentalEffect_Localised},...module.Engineering.Modifiers===void 0?{}:{Modifiers:module.Engineering.Modifiers.map(modifier=>({...modifier}))}}}}}function matchingKeyIn(keyed,slotKey){if(keyed.has(slotKey))return slotKey;const wanted=slotKey.toLowerCase();for(const key of keyed.keys()){if(key.toLowerCase()===wanted)return key}return null}function ownKeyIn(keyed,canonicalKey){return matchingKeyIn(keyed,canonicalKey)??(keyed.size>0&&[...keyed.keys()].every(key=>key===key.toLowerCase())?canonicalKey.toLowerCase():canonicalKey)}function orderBySlotLayout(values,layout,slotOf){const order=new Map(layout.map((slot,index)=>[slot.key.toLowerCase(),index]));return[...values].sort((left,right)=>(order.get(slotOf(left).toLowerCase())??Number.MAX_SAFE_INTEGER)-(order.get(slotOf(right).toLowerCase())??Number.MAX_SAFE_INTEGER))}function cloneModuleStats(module){try{return deepFreeze(structuredClone(module))}catch(error){if(!(error instanceof Error&&error.name==="DataCloneError"))throw error;return deepFreeze({...module,...module.restrictedToShips===void 0?{}:{restrictedToShips:[...module.restrictedToShips]},...module.limitIncrease===void 0?{}:{limitIncrease:{...module.limitIncrease}},...module.damageDistribution===void 0?{}:{damageDistribution:{...module.damageDistribution}},...module.damageComponents===void 0?{}:{damageComponents:{...module.damageComponents,...module.damageComponents.unclassified===void 0?{}:{unclassified:[...module.damageComponents.unclassified]}}},...module.projectileRange===void 0?{}:{projectileRange:{...module.projectileRange}}})}}var GUARDIAN_WEAPON_GROUPS=/* @__PURE__ */new Set(["guardianGauss","guardianPlasma","guardianShard"]);function missingBaseLabels(stats,base,features,experimental){const contributions=[...features,...experimental??[]];return[...new Set(contributions.map(contribution=>contribution.label).filter(label=>{if(base[label]!==void 0)return false;return fieldForLabel(label,stats)===null}))]}function recipeSignature(fdname){const blueprint=getBlueprint(fdname);if(!blueprint)return null;const grades=Object.entries(blueprint.grades).map(([grade,{features:features}])=>`${grade}:${features.map(feature=>`${feature.label}/${feature.method??""}`).sort().join(",")}`).sort().join(";");return`${blueprint.name.toLowerCase()}|${grades}`}var isGenericSpelling=fdname=>fdname.toLowerCase().startsWith("misc_");function isSoldWithBlueprint(item,wanted){return getPreEngineeredVariants(item).some(variant=>variant.acquisition==="mercenary"&&variant.blueprint.toLowerCase()===wanted)}function blueprintRoutesFor(item){const routes=/* @__PURE__ */new Map;for(const fdname of getBlueprintsForModule(item))routes.set(fdname,"ordinary");for(const variant of getPreEngineeredVariants(item)){if(variant.acquisition==="mercenary"&&!routes.has(variant.blueprint)){routes.set(variant.blueprint,"mercenary")}}return routes}function blueprintAvailableFor(item,fdname){const offered=getBlueprintsForModule(item);const asWritten=normalizeKey(fdname,"ShipLoadout.applyBlueprint: fdname");const resolved=resolveBlueprintForModule(item,fdname).trim();const wanted=resolved.toLowerCase();if(offered.some(id=>id.toLowerCase()===wanted))return true;if(isSoldWithBlueprint(item,wanted)||isSoldWithBlueprint(item,asWritten))return true;if(!isGenericSpelling(wanted))return false;const signature=recipeSignature(resolved);if(signature===null)return false;return offered.some(id=>recipeSignature(id)===signature&&!isGenericSpelling(id))}function experimentalAvailableFor(item,fdname){const wanted=normalizeKey(fdname,"ShipLoadout.applyBlueprint: options.experimental");return getExperimentalsForModule(item).some(id=>id.toLowerCase()===wanted)}function primitiveLabelFor(stats,label){if(label==="MaximumRange"&&stats.maximumRange!==void 0)return"Range";if(label==="DamageFalloffRange"&&stats.falloffRange!==void 0){return"FalloffRange"}if(label==="Range"&&stats.scannerRange!==void 0)return"ScannerRange";if(label==="DSS_PatchRadius")return"ProbeRadius";if(label==="FuelScoopRate")return"RefuelRate";if(label==="EnergyPerRegen"&&stats.shieldRegenRate!==void 0){return"DistributorDraw"}return label}function primitiveEngineeringInputsFor(stats,grade,experimental){const canonicalGrade={...grade,features:grade.features.map(feature=>{const label=primitiveLabelFor(stats,feature.label);return label===feature.label?feature:{...feature,label:label}})};if(!experimental)return{grade:canonicalGrade};return{grade:canonicalGrade,experimental:{...experimental,modifiers:experimental.modifiers.map(modifier=>{const label=primitiveLabelFor(stats,modifier.label);return label===modifier.label?modifier:{...modifier,label:label}})}}}function matchesCalculatedModifiers(captured,calculated){if(!captured||captured.length!==calculated.length)return false;const byLabel=new Map(captured.map(modifier=>[modifier.Label.trim().toLowerCase(),modifier]));if(byLabel.size!==captured.length)return false;return calculated.every(expected=>{const actual=byLabel.get(expected.Label.trim().toLowerCase());if(!actual)return false;if(expected.Value!==void 0){return actual.Value!==void 0&&Math.abs(actual.Value-expected.Value)<=1e-5*Math.max(1,Math.abs(expected.Value))}return actual.ValueStr===expected.ValueStr})}function ordinaryEngineeringProof(item,engineering,experimental){const recipe=resolveBlueprintForModule(item,engineering.BlueprintName);const fixedCandidate=getPreEngineeredVariants(item).some(candidate=>candidate.acquisition!=="mercenary"&&candidate.blueprint.trim().toLowerCase()===recipe.trim().toLowerCase());if(!fixedCandidate)return"notFixedCandidate";const grade=getBlueprintGrade(recipe,engineering.Level);const quality=engineering.Quality;const stock=builtInModuleBySymbol(item,FITTED_ITEM);if(!stock||!grade||experimental===null||!Number.isFinite(quality)||quality<0||quality>1){return"unproven"}const current=primitiveEngineeringInputsFor(stock,grade,experimental);if(missingBaseLabels(stock,baseStats(stock),current.grade.features,current.experimental?.modifiers).length>0){return"unproven"}const calculated=journalModifiersFor(stock,computeModifiers(baseStats(stock),current.grade,quality,current.experimental));const damageDistribution=current.experimental?.damageDistribution??current.grade.damageDistribution;if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;calculated.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(stock.damageDistribution?.[type]??0)*scaleForLabel(label)})}}return matchesCalculatedModifiers(engineering.Modifiers,calculated)?"proven":"unproven"}var round6=value=>{const rounded=Math.round(value*1e6)/1e6;return Object.is(rounded,-0)?0:rounded};function float32FiringCycle(interval,burstRounds,burstRateOfFire){if(interval<=0)return void 0;const withinBurst=burstRounds>1?Math.fround(Math.fround(burstRounds-1)/Math.fround(burstRateOfFire)):0;const cycle=Math.fround(withinBurst+Math.fround(interval));return cycle>0?cycle:void 0}function float32RateOfFire(interval,burstRounds,burstRateOfFire){const cycle=float32FiringCycle(interval,burstRounds,burstRateOfFire);return cycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/cycle)}function float32DamagePerSecond(damage,rounds,rate,burstRounds,cycle){if(cycle!==void 0&&(rounds!==1||burstRounds!==1)){const damagePerCycle=Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(burstRounds));return Math.fround(damagePerCycle/cycle)}return Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(rate))}var JOURNAL_MODIFIER_ORDER=["CargoCapacity","GuardianModuleResistance","Mass","Integrity","PowerDraw","BootTime","PowerCapacity","HeatEfficiency","FSDOptimalMass","MaxFuelPerJump","FSDHeatRate","EngineOptimalMass","EngineOptPerformance","EngineHeatRate","ShieldGenOptimalMass","ShieldGenStrength","DamagePerSecond","Damage","DistributorDraw","ThermalLoad","ArmourPenetration","MaximumRange","ShotSpeed","RateOfFire","DamageType","$Kinetic;","$Thermal;","$Explosive;","$Absolute;","AmmoClipSize","AmmoMaximum","ReloadTime","Jitter","DamageFalloffRange","DefenceModifierShieldMultiplier","DefenceModifierHealthMultiplier","DefenceModifierHealthAddition","DefenceModifierShieldAddition","RegenRate","BrokenRegenRate","EnergyPerRegen","KineticResistance","ThermicResistance","ExplosiveResistance","CausticResistance","DamageProtection","ModuleDefenceAbsorption","WeaponsCapacity","WeaponsRecharge","EnginesCapacity","EnginesRecharge","SystemsCapacity","SystemsRecharge","ShieldBankSpinUp","ShieldBankDuration","ShieldBankReinforcement","ShieldBankHeat","FSDInterdictorRange","FSDInterdictorFacingLimit","SensorTargetScanAngle","MaxAngle","ScannerTimeToScan","Range","DSS_PatchRadius","FuelScoopRate","FuelCapacity"];var JOURNAL_MODIFIER_RANK=new Map(JOURNAL_MODIFIER_ORDER.map((label,index)=>[label,index]));function sortJournalModifiers(modifiers){return modifiers.map((modifier,index)=>({modifier:modifier,index:index})).sort((a,b)=>(JOURNAL_MODIFIER_RANK.get(a.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)-(JOURNAL_MODIFIER_RANK.get(b.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)||a.index-b.index).map(({modifier:modifier})=>modifier)}function journalModifiersFor(stats,modifiers){const weapon=stats.damage!==void 0;const valueFor=(label,fallback)=>{const modifier=modifiers.find(candidate=>candidate.Label===label);return(modifier&&preciseModifierValue(modifier))??Math.fround(fallback)};const burstTouched=["BurstInterval","BurstSize","BurstRateOfFire"].some(label=>modifiers.some(modifier=>modifier.Label===label));const damageTouched=modifiers.some(modifier=>modifier.Label==="Damage");const rateTouched=burstTouched||modifiers.some(modifier=>modifier.Label==="RateOfFire");let damagePerSecond;let derivedRate;if(weapon&&(damageTouched||rateTouched)){const continuous=stats.burstInterval===void 0&&stats.rateOfFire===void 0;const baseDamage=Math.fround(stats.damage);const effectiveDamage=valueFor("Damage",stats.damage);if(continuous){damagePerSecond={Label:"DamagePerSecond",Value:round6(effectiveDamage),OriginalValue:round6(baseDamage)}}else{const burstRounds=valueFor("BurstSize",stats.burstRounds??1);const burstRate=valueFor("BurstRateOfFire",stats.burstRateOfFire??1);const baseBurstRounds=Math.fround(stats.burstRounds??1);const baseBurstRate=Math.fround(stats.burstRateOfFire??1);const baseInterval=stats.burstInterval===void 0?void 0:Math.fround(stats.burstInterval);const baseCycle=baseInterval===void 0?void 0:float32FiringCycle(baseInterval,baseBurstRounds,baseBurstRate);const baseRate=baseInterval!==void 0?float32RateOfFire(baseInterval,baseBurstRounds,baseBurstRate):stats.rateOfFire===void 0?void 0:Math.fround(stats.rateOfFire);const rateModifier=modifiers.find(modifier=>modifier.Label==="RateOfFire");const effectiveRate=rateModifier&&preciseModifierValue(rateModifier);const effectiveInterval=valueFor("BurstInterval",stats.burstInterval??0);const effectiveCycle=effectiveRate===void 0?float32FiringCycle(effectiveInterval,burstRounds,burstRate):void 0;const rate=effectiveRate??(effectiveCycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/effectiveCycle));if(baseRate!==void 0&&rate!==void 0){const stockRounds=Math.fround(stats.roundsPerShot??1);const effectiveRounds=Math.fround(modifiers.find(modifier=>modifier.Label==="Rounds"||modifier.Label==="RoundsPerShot")?.Value??stockRounds);damagePerSecond={Label:"DamagePerSecond",Value:round6(float32DamagePerSecond(effectiveDamage,effectiveRounds,rate,burstRounds,effectiveCycle)),OriginalValue:round6(float32DamagePerSecond(baseDamage,stockRounds,baseRate,baseBurstRounds,baseCycle))};if(burstTouched){derivedRate={Label:"RateOfFire",Value:round6(rate),OriginalValue:round6(baseRate)}}}}}const result=[];for(const modifier of modifiers){const label=modifier.Label;if(weapon&&["BurstInterval","BurstSize","BurstRateOfFire"].includes(label))continue;if(weapon&&label==="Damage"&&stats.rateOfFire===void 0)continue;let journalLabel=label;if(label==="Range"&&stats.maximumRange!==void 0)journalLabel="MaximumRange";else if(label==="FalloffRange"&&stats.falloffRange!==void 0){journalLabel="DamageFalloffRange"}else if(label==="ScannerRange"&&stats.scannerRange!==void 0){journalLabel="Range"}else if(label==="ProbeRadius")journalLabel="DSS_PatchRadius";else if(label==="RefuelRate")journalLabel="FuelScoopRate";else if(label==="DistributorDraw"&&stats.shieldRegenRate!==void 0){journalLabel="EnergyPerRegen"}result.push(journalLabel===label?modifier:{...modifier,Label:journalLabel})}if(damagePerSecond)result.push(damagePerSecond);if(derivedRate){const direct=result.findIndex(modifier=>modifier.Label==="RateOfFire");if(direct>=0)result[direct]=derivedRate;else result.push(derivedRate)}return sortJournalModifiers(result)}function isFinalGuardianWeaponEngineering(item,blueprint){const group=getEngineeringGroup(item);if(group===null||!GUARDIAN_WEAPON_GROUPS.has(group))return false;const resolved=resolveBlueprintForModule(item,blueprint);return getBlueprint(resolved)!==null&&!blueprintAvailableFor(item,blueprint)}function engineerableBase(item,statsOverride){const stats=statsOverride??builtInModuleBySymbol(item,FITTED_ITEM);if(!stats||stats.engineeringLocked)return null;return{stats:stats,base:baseStats(stats)}}function availableBlueprintsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;const available=[];for(const[fdname,route]of blueprintRoutesFor(item)){const blueprint=BLUEPRINTS[fdname];if(!blueprint)continue;const grades=Object.entries(blueprint.grades).filter(([,grade])=>missingBaseLabels(stats,base,grade.features).length===0).map(([grade])=>Number(grade)).filter(Number.isFinite).sort((a,b)=>a-b);if(grades.length>0)available.push({fdname:fdname,grades:grades,route:route})}return available}function availableExperimentalsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;return getExperimentalsForModule(item).filter(fdname=>{const effect=EXPERIMENTAL_EFFECTS[fdname];return effect!==void 0&&missingBaseLabels(stats,base,effect.modifiers).length===0})}var MAX_ENGINEERING_GRADE=5;function modifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);const effectName=experimental===void 0?variant.experimental:experimental;if(!module||!variant.modifiers?.length&&effectName==null)return null;const effect=effectName==null?void 0:getExperimentalEffect(effectName);if(effectName!==null&&effectName!==void 0&&!effect)return null;return computeModifiers(baseStats(module),fixedModifierFeatures(variant.modifiers??[]),1,effect??void 0)}function getPreEngineeredModifiers(variant){return modifiersWithExperimental(variant)??[]}function journalModifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return[];const modifiers=journalModifiersFor(module,modifiersWithExperimental(variant,experimental)??[]);const effectName=experimental===void 0?variant.experimental:experimental;const damageDistribution=effectName?getExperimentalEffect(effectName)?.damageDistribution:void 0;if(!damageDistribution)return modifiers;for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];const label=labelsForDamageType(type)[0];if(value===void 0||label===void 0)continue;modifiers.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(module.damageDistribution?.[type]??0)*scaleForLabel(label)})}return modifiers}function getPreEngineeredJournalModifiers(variant){return journalModifiersWithExperimental(variant)}function sameJournalNumber(actual,expected){return Math.abs(actual-expected)<=Math.max(1e-5,Math.abs(expected)*1e-6)}function modifierKey(modifier,module){return fieldForLabel(modifier.Label,module)??`label:${normalizeKey(modifier.Label,"identifyPreEngineeredVariant: module.Engineering.Modifiers[].Label")}`}function sameModifier(actual,expected){if(expected.Value!==void 0){return actual.Value!==void 0&&sameJournalNumber(actual.Value,expected.Value)}return expected.ValueStr!==void 0&&actual.ValueStr!==void 0}function matchesModifierSignature(actualByKey,expected,module){let matched=0;for(const predicted of expected){const actual=actualByKey.get(modifierKey(predicted,module));if(!actual)continue;if(!sameModifier(actual,predicted))return false;matched++}return matched>=Math.max(1,expected.length-1)}function identifyPreEngineeredVariant(module){const engineering=module.Engineering;if(!engineering)return null;requireStringIfPresent(module.Item,"identifyPreEngineeredVariant: module.Item");const stock=getModuleBySymbol(module.Item,ALL_MODULES);if(!stock)return null;const capturedBlueprint=normalizeKey(engineering.BlueprintName,"identifyPreEngineeredVariant: module.Engineering.BlueprintName");const variants=getPreEngineeredVariants(module.Item);const blueprintMatches=variants.filter(candidate=>candidate.blueprint.toLowerCase()===capturedBlueprint);const blueprintMatch=blueprintMatches.length===1?blueprintMatches[0]:null;const capturedGrade=engineering.Level;if(blueprintMatch?.acquisition==="mercenary"&&Number.isInteger(capturedGrade)&&capturedGrade>=blueprintMatch.grade&&capturedGrade<=MAX_ENGINEERING_GRADE){return blueprintMatch}if(engineering.Modifiers===void 0){const capturedExperimental=normalizeKey(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const identityMatches=blueprintMatches.filter(candidate=>candidate.engineeringLocked===true&&candidate.grade===capturedGrade&&(candidate.experimental===void 0?capturedExperimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimental.toLowerCase()===capturedExperimental));return identityMatches.length===1?identityMatches[0]:null}if(!engineering.Modifiers?.length)return null;const actualByKey=/* @__PURE__ */new Map;for(const modifier of engineering.Modifiers){actualByKey.set(modifierKey(modifier,stock),modifier)}requireStringIfPresent(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const matches=[];for(const candidate of variants){if(!candidate.modifiers?.length)continue;if(candidate.grade!==engineering.Level)continue;if(candidate.acquisition==="eventReward"&&(engineering.ExperimentalEffect!==void 0||engineering.ExperimentalEffect_Localised!==void 0||capturedBlueprint!==candidate.blueprint.toLowerCase())){continue}const primitive=modifiersWithExperimental(candidate,engineering.ExperimentalEffect??null);if(!primitive?.length)continue;const matched=matchesModifierSignature(actualByKey,primitive,stock)||matchesModifierSignature(actualByKey,journalModifiersWithExperimental(candidate,engineering.ExperimentalEffect??null),stock);if(matched)matches.push(candidate)}return matches.length===1?matches[0]:null}function unresolvedModifiers(variant){const resolved=new Set(getPreEngineeredModifiers(variant).map(modifier=>modifier.Label));return(variant.modifiers??[]).map(modifier=>modifier.label).filter(label=>!resolved.has(label))}function getPreEngineeredStats(variant){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return null;if(!variant.modifiers?.length&&!variant.engineeringLocked&&variant.experimental===void 0)return module;const modifiers=variant.modifiers??[];const resolved={...module,...variant.engineeringLocked?{engineeringLocked:true}:{}};for(const{Label:Label,Value:Value,ValueStr:ValueStr}of getPreEngineeredModifiers(variant)){const field=fieldForLabel(Label,module);if(field&&field!=="damageDistribution"&&Value!==void 0){Object.assign(resolved,{[field]:Value/scaleForLabel(Label)})}else if(field&&ValueStr!==void 0&&capabilityValueForLabel(Label)!==null){Object.assign(resolved,{[field]:true})}}const experimentalDamageDistribution=variant.experimental?getExperimentalEffect(variant.experimental)?.damageDistribution:void 0;if(experimentalDamageDistribution){resolved.damageDistribution={...experimentalDamageDistribution};delete resolved.damageComponents}if(resolved.rateOfFire!==void 0&&!modifiers.some(m=>m.label==="RateOfFire")&&modifiers.some(m=>m.label==="BurstSize"||m.label==="BurstRateOfFire"||m.label==="BurstInterval")){const rate=combinedRateOfFire(resolved);if(rate!==void 0)resolved.rateOfFire=rate}if(module.damageComponents&&!experimentalDamageDistribution){resolved.damageComponents=scaleDamageComponents(module.damageComponents,module.damage,resolved.damage)}return resolved}export{FITTED_ITEM,availableBlueprintsFor,availableExperimentalsFor,blueprintAvailableFor,blueprintRoutesFor,cloneLoadoutModule,cloneModuleStats,experimentalAvailableFor,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,isBuiltInHullModule,isCargoHatchSlot,isFinalGuardianWeaponEngineering,isNonOutfittingSlot,journalModifiersFor,matchingKeyIn,missingBaseLabels,orderBySlotLayout,ordinaryEngineeringProof,ownKeyIn,primitiveEngineeringInputsFor,scaleDamageComponents,unresolvedModifiers};//# sourceMappingURL=chunk-6BO5JJNI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getLocalizedText}from"./chunk-
|
|
1
|
+
import{getLocalizedText}from"./chunk-RVIYOHYF.js";import{requireObject,requireString}from"./chunk-PKWVG2JY.js";function diagnosticMessage(diagnostic,locale,functionName,parameterName){requireObject(diagnostic,`${functionName}: ${parameterName}`);const message=requireString(diagnostic.message,`${functionName}: ${parameterName}.message`);return getLocalizedText({en:message},locale,functionName)}function getLoadoutIssueMessage(issue,locale){return diagnosticMessage(issue,locale,"getLoadoutIssueMessage","issue")}function getCalculationIssueMessage(issue,locale){return diagnosticMessage(issue,locale,"getCalculationIssueMessage","issue")}function getSlefDiagnosticMessage(diagnostic,locale){return diagnosticMessage(diagnostic,locale,"getSlefDiagnosticMessage","diagnostic")}function getLoadoutEditErrorMessage(error,locale){return diagnosticMessage(error,locale,"getLoadoutEditErrorMessage","error")}export{getCalculationIssueMessage,getLoadoutEditErrorMessage,getLoadoutIssueMessage,getSlefDiagnosticMessage};//# sourceMappingURL=chunk-6G6TYW2D.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{deepFreeze}from"./chunk-DURKO7JU.js";var CORE_SLOT_FAMILY={armour:"armour",powerPlant:"powerPlants",thrusters:"engines",frameShiftDrive:"fsd",lifeSupport:"lifeSupport",powerDistributor:"powerDistributors",sensors:"sensors",fuelTank:"fuelTanks"};function buildModuleCatalogue(records,category){return deepFreeze(records.map(({kind:kind,...record})=>({...record,familyId:record.familyId??CORE_SLOT_FAMILY[record.slot],engineeringGroup:kind??null,category:category})))}export{buildModuleCatalogue};//# sourceMappingURL=chunk-AFS6HN3D.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ships/internal/module-catalogue.ts"],"names":["deepFreeze","CORE_SLOT_FAMILY","armour","powerPlant","thrusters","frameShiftDrive","lifeSupport","powerDistributor","sensors","fuelTank","buildModuleCatalogue","records","category","map","kind","record","familyId","slot","engineeringGroup"],"mappings":"O,qCA2BA,IAAMC,iBAAkF,CACpFC,OAAQ,SACRC,WAAY,cACZC,UAAW,UACXC,gBAAiB,MACjBC,YAAa,cACbC,iBAAkB,oBAClBC,QAAS,UACTC,SAAU,aAUP,SAASC,qBACZC,QACAC,UASA,OAAOZ,WACHW,QAAQE,IAAI,EAAGC,aAASC,WAAO,IACxBA,OAGHC,SAAUD,OAAOC,UAAYf,iBAAiBc,OAAOE,MACrDC,iBAAkBJ,MAAQ,KAC1BF,qBAGZ,QAAAF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getLocalizedName,createLocalizedNameIndex}from"./chunk-RVIYOHYF.js";var experimental_effect_names_default={special_armour_chunky:{en:"Deep Plating",de:"Tiefenüberzug",es:"Enchapado profundo",fr:"Blindage épais",pt:"Revestimento espesso",ru:"Утолщенная броня"},special_armour_explosive:{en:"Layered Plating",de:"Schichtüberzug",es:"Enchapado a capas",fr:"Blindage à couches",pt:"Revestimento em camadas",ru:"Многослойная броня"},special_armour_kinetic:{en:"Angled Plating",de:"Winkelüberzug",es:"Enchapado en ángulo",fr:"Blindage anguleux",pt:"Revestimento inclinado",ru:"Угловая броня"},special_armour_thermic:{en:"Reflective Plating",de:"Reflektorüberzug",es:"Enchapado reflectante",fr:"Blindage réfléchissant",pt:"Revestimento refletor",ru:"Отражающая броня"},special_auto_loader:{en:"Auto Loader",de:"Auto-Laden",es:"Autocargador",fr:"Rechargement automatique",pt:"Carregador Automático",ru:"Автоматическая система заряжения"},special_blinding_shell:{en:"Dazzle Shell",de:"Blendgranate",es:"Proyectil deslumbrante",fr:"Obus aveuglant",pt:"Projétil Cegante",ru:"Ослепляющие снаряды"},special_choke_canister:{en:"Ion Disruption",de:"Ionen-Disruption",es:"Disruptor de iones",fr:"Perturbation ionique",pt:"Perturbação de Íon",ru:"Ионный дестабилизатор"},special_concordant_sequence:{en:"Concordant Sequence",de:"Konkordante Sequenz",es:"Secuencia concordante",fr:"Séquence concordante",pt:"Sequência Concordante",ru:"Последовательность координации"},special_corrosive_shell:{en:"Corrosive Shell",de:"Korrosionsgranate",es:"Proyectil corrosivo",fr:"Obus corrosif",pt:"Projétil Corrosivo",ru:"Разъедающие снаряды"},special_deep_cut_payload:{en:"Penetrator Payload",de:"Durchdringungsladung",es:"Carga explosiva penetradora",fr:"Charge explosive perforante",pt:"Carga Penetrante",ru:"Бронебойные снаряды"},special_dispersal_field:{en:"Dispersal Field",de:"Streuungsfeld",es:"Campo de dispersión",fr:"Champ de dispersion",pt:"Campo de Dispersão",ru:"Рассеивающее поле"},special_distortion_field:{en:"Inertial Impact",de:"Inertialeinschlag",es:"Impacto inercial",fr:"Impact inertiel",pt:"Impacto Inercial",ru:"Инерционный удар"},special_drag_munitions:{en:"Drag Munitions",de:"Ableitungsmunition",es:"Munición lastre",fr:"Munitions à inertie",pt:"Munições de arrasto",ru:"Замедляющие боеприпасы"},special_emissive_munitions:{en:"Emissive Munitions",de:"Emissionsmunition",es:"Munición de emisiones",fr:"Munitions à émissions",pt:"Munições Emissivas",ru:"Эмиссионные боеприпасы"},special_engine_cooled:{en:"Thermal Spread",de:"Thermischer Verteiler",es:"Difusión térmica",fr:"Répartition thermique",pt:"Propagação térmica",ru:"Рассеивание тепла"},special_engine_haulage:{en:"Drive Distributors",de:"Antriebsdistributoren",es:"Distribuidores de motor",fr:"Répartiteurs de réacteur",pt:"Distribuidores do motor",ru:"Распределители тяги"},special_engine_lightweight:{en:"Stripped Down",de:"Reduktion",es:"Reducido",fr:"Désossage",pt:"Modelo leve",ru:"Урезанный вариант"},special_engine_overloaded:{en:"Drag Drives",de:"Drag-Antriebe",es:"Motores de arrastre",fr:"Débridage des réacteurs",pt:"Motores de arrasto",ru:"Ускорители"},special_engine_toughened:{en:"Double Braced",de:"Doppelt versteift",es:"Doble puntal",fr:"Armature renforcée",pt:"Braçadeira dupla",ru:"Двойная прочность"},special_feedback_cascade_cooled:{en:"Feedback Cascade",de:"Rückkopplungskaskade",es:"Retroalimentación en cascada",fr:"Réverbération énergétique",pt:"Cascata de Realimentação",ru:"Ответный залп"},special_force_shell:{en:"Force Shell",de:"Impulsgranate",es:"Proyectil de fuerza",fr:"Munition surpuissante",pt:"Projétil de Força",ru:"Усиленные снаряды"},special_fsd_cooled:{en:"Thermal Spread",de:"Thermischer Verteiler",es:"Difusión térmica",fr:"Répartition thermique",pt:"Propagação térmica",ru:"Рассеивание тепла"},special_fsd_fuelcapacity:{en:"Deep Charge",de:"Tieflader",es:"Carga intensa",fr:"Charge profonde",pt:"Carga intensa",ru:"Заряд повышенной мощности"},special_fsd_heavy:{en:"Mass Manager",de:"Massemanager",es:"Gestión de masa",fr:"Gestionnaire de masse",pt:"Gestor de massa",ru:"Распределитель гравитации"},special_fsd_interrupt:{en:"FSD Interrupt",de:"FSA-Unterbrechung",es:"Interrupción MDD",fr:"Interruption FSD",pt:"Interruptor de MDD",ru:"Помеха для FSD"},special_fsd_lightweight:{en:"Stripped Down",de:"Reduktion",es:"Reducido",fr:"Désossage",pt:"Modelo leve",ru:"Урезанный вариант"},special_fsd_toughened:{en:"Double Braced",de:"Doppelt versteift",es:"Doble puntal",fr:"Armature renforcée",pt:"Braçadeira dupla",ru:"Двойная прочность"},special_high_yield_shell:{en:"High Yield Shell",de:"Hocheffizienzgranate",es:"Proyectil de alto rendimiento",fr:"Obus à fragmentation",pt:"Projétil de Alto Rendimento",ru:"Снаряды большой мощности"},special_hullreinforcement_chunky:{en:"Deep Plating",de:"Tiefenüberzug",es:"Enchapado profundo",fr:"Blindage épais",pt:"Revestimento espesso",ru:"Утолщенная броня"},special_hullreinforcement_explosive:{en:"Layered Plating",de:"Schichtüberzug",es:"Enchapado a capas",fr:"Blindage à couches",pt:"Revestimento em camadas",ru:"Многослойная броня"},special_hullreinforcement_kinetic:{en:"Angled Plating",de:"Winkelüberzug",es:"Enchapado en ángulo",fr:"Blindage anguleux",pt:"Revestimento inclinado",ru:"Угловая броня"},special_hullreinforcement_thermic:{en:"Reflective Plating",de:"Reflektorüberzug",es:"Enchapado reflectante",fr:"Blindage réfléchissant",pt:"Revestimento refletor",ru:"Отражающая броня"},special_incendiary_rounds:{en:"Incendiary Rounds",de:"Hitzesalven",es:"Munición incendiaria",fr:"Munitions incendiaires",pt:"Munição Incendiária",ru:"Зажигательные боеприпасы"},special_lock_breaker:{en:"Target Lock Breaker",de:"Zielvisierbrecher",es:"Interruptor de selección",fr:"Interrupteur de verrouillage de cible",pt:"Quebra de Trava de Alvo",ru:"Генератор помех для системы захвата цели"},special_mass_lock:{en:"Mass Lock Munition",de:"Massesperremunition",es:"Munición de bloqueo de masa",fr:"Munitions à champ gravitationnel",pt:"Munição de Bloqueio de Massa",ru:"Боеприпасы с гравитационным захватом"},special_overload_munitions:{en:"Overload Munitions",de:"Überladungsmunition",es:"Munición sobrecargada",fr:"Munitions à surcharge",pt:"Munições de Sobrecarga",ru:"Вызывающие перегрузку боеприпасы"},special_penetrator_munitions:{en:"Penetrator Munitions",de:"Penetrationsmunition",es:"Munición penetradora",fr:"Munitions perforantes",pt:"Munições Penetrantes",ru:"Бронебойные боеголовки"},special_phasing_sequence:{en:"Phasing Sequence",de:"Phasensequenz",es:"Secuencia de fase",fr:"Séquence de phase",pt:"Sequência Faseada",ru:"Последовательность фазирования"},special_plasma_slug:{en:"Plasma Slug",de:"Plasmaprojektil",es:"Proyectil de plasma",fr:"Munitions à plasma",pt:"Projétil de Plasma",ru:"Плазменный рельсовый снаряд"},special_plasma_slug_cooled:{en:"Plasma Slug",de:"Plasmaprojektil",es:"Proyectil de plasma",fr:"Munitions à plasma",pt:"Projétil de Plasma",ru:"Плазменный рельсовый снаряд"},special_powerdistributor_capacity:{en:"Cluster Capacitors",de:"Cluster-Kondensatoren",es:"Agrupación de capacitadores",fr:"Batterie de condensateurs",pt:"Banco de capacitores",ru:"Кассетные конденсаторы"},special_powerdistributor_efficient:{en:"Flow Control",de:"Flusssteuerung",es:"Control de flujo",fr:"Contrôle du flux",pt:"Controle de fluxo",ru:"Контроль интенсивности"},special_powerdistributor_fast:{en:"Super Conduits",de:"Superleiter",es:"Superconductores",fr:"Super conduits",pt:"Supercondutores",ru:"Сверхпроводники"},special_powerdistributor_lightweight:{en:"Stripped Down",de:"Reduktion",es:"Reducido",fr:"Désossage",pt:"Modelo leve",ru:"Урезанный вариант"},special_powerdistributor_toughened:{en:"Double Braced",de:"Doppelt versteift",es:"Doble puntal",fr:"Armature renforcée",pt:"Braçadeira dupla",ru:"Двойная прочность"},special_powerplant_cooled:{en:"Thermal Spread",de:"Thermischer Verteiler",es:"Difusión térmica",fr:"Répartition thermique",pt:"Propagação térmica",ru:"Рассеивание тепла"},special_powerplant_highcharge:{en:"Monstered",de:"Monsterhaft",es:"A lo bestia",fr:"Modèle XXL",pt:"Parrudo",ru:"Монстрация"},special_powerplant_lightweight:{en:"Stripped Down",de:"Reduktion",es:"Reducido",fr:"Désossage",pt:"Modelo leve",ru:"Урезанный вариант"},special_powerplant_toughened:{en:"Double Braced",de:"Doppelt versteift",es:"Doble puntal",fr:"Armature renforcée",pt:"Braçadeira dupla",ru:"Двойная прочность"},special_radiant_canister:{en:"Radiant Canister",de:"Strahlenbehältnis",es:"Cartucho radiactivo",fr:"Cartouche irradiante",pt:"Mina Radiante",ru:"Светящаяся кассета"},special_regeneration_sequence:{en:"Regeneration Sequence",de:"Regenerierungssequenz",es:"Secuencia de regeneración",fr:"Séquence de régénération",pt:"Sequência de Regeneração",ru:"Последовательность восстановления"},special_reverberating_cascade:{en:"Reverberating Cascade",de:"Rückstrahlkaskade",es:"Reverberación en cascada",fr:"Réverbération en série",pt:"Cascata Reverberante",ru:"Отраженный залп"},special_scramble_spectrum:{en:"Scramble Spectrum",de:"Störspektrum",es:"Espectro de interferencias",fr:"Spectre de brouillage",pt:"Espectro Randômico",ru:"Отключающая сетка"},special_screening_shell:{en:"Screening Shell",de:"Sperrgranate",es:"Proyectil de pantalla",fr:"Obus de criblage",pt:"Projétil de Triagem",ru:"Заслоняющие снаряды"},special_shield_efficient:{en:"Lo-draw",de:"Leichtbedarf",es:"Consumo reducido",fr:"Consommation réduite",pt:"Baixo consumo",ru:"Пониженное потребление"},special_shield_health:{en:"Hi-Cap",de:"Hochkondensatoren",es:"Límite elevado",fr:"Puissance renforcée",pt:"Alta capacitância",ru:"Высокая емкость"},special_shield_kinetic:{en:"Force Block",de:"Kraft-Block",es:"Bloqueo de fuerza",fr:"Blocage de force",pt:"Bloqueio cinético",ru:"Усиленная блокировка"},special_shield_lightweight:{en:"Stripped Down",de:"Reduktion",es:"Reducido",fr:"Désossage",pt:"Modelo leve",ru:"Урезанный вариант"},special_shield_regenerative:{en:"Fast Charge",de:"Schnelllader",es:"Carga rápida",fr:"Chargement rapide",pt:"Carga rápida",ru:"Быстрый заряд"},special_shield_resistive:{en:"Multi-weave",de:"Multigewebe",es:"Multitejido",fr:"Filaments multiples",pt:"Rede múltipla",ru:"Мультипрошивка"},special_shield_thermic:{en:"Thermo Block",de:"Thermo-Block",es:"Bloqueo térmico",fr:"Blocage thermique",pt:"Bloqueio térmico",ru:"Блокировка тепла"},special_shield_toughened:{en:"Double Braced",de:"Doppelt versteift",es:"Doble puntal",fr:"Armature renforcée",pt:"Braçadeira dupla",ru:"Двойная прочность"},special_shieldbooster_chunky:{en:"Super Capacitors",de:"Superkondensatoren",es:"Supercapacitadores",fr:"Super condensateurs",pt:"Supercapacitores",ru:"Суперконденсаторы"},special_shieldbooster_efficient:{en:"Flow Control",de:"Flusssteuerung",es:"Control de flujo",fr:"Contrôle du flux",pt:"Controle de fluxo",ru:"Контроль интенсивности"},special_shieldbooster_explosive:{en:"Blast Block",de:"Blast-Block",es:"Bloqueo de explosivos",fr:"Blocage d'explosion",pt:"Bloqueio explosivo",ru:"Блокировка взрыва"},special_shieldbooster_kinetic:{en:"Force Block",de:"Kraft-Block",es:"Bloqueo de fuerza",fr:"Blocage de force",pt:"Bloqueio cinético",ru:"Усиленная блокировка"},special_shieldbooster_thermic:{en:"Thermo Block",de:"Thermo-Block",es:"Bloqueo térmico",fr:"Blocage thermique",pt:"Bloqueio térmico",ru:"Блокировка тепла"},special_shieldbooster_toughened:{en:"Double Braced",de:"Doppelt versteift",es:"Doble puntal",fr:"Armature renforcée",pt:"Braçadeira dupla",ru:"Двойная прочность"},special_shieldcell_efficient:{en:"Flow Control",de:"Flusssteuerung",es:"Control de flujo",fr:"Contrôle du flux",pt:"Controle de fluxo",ru:"Контроль интенсивности"},special_shieldcell_gradual:{en:"Recycling Cell",de:"Recyclingzelle",es:"Célula de reciclaje",fr:"Recyclage des cellules",pt:"Célula de reciclagem",ru:"Рециркуляционная ячейка"},special_shieldcell_lightweight:{en:"Stripped Down",de:"Reduktion",es:"Reducido",fr:"Désossage",pt:"Modelo leve",ru:"Урезанный вариант"},special_shieldcell_oversized:{en:"Boss Cells",de:"Bosszellen",es:"Células excelentes",fr:"Cellules XXL",pt:"Células resistentes",ru:"Босс-ячейки"},special_shieldcell_toughened:{en:"Double Braced",de:"Doppelt versteift",es:"Doble puntal",fr:"Armature renforcée",pt:"Braçadeira dupla",ru:"Двойная прочность"},special_shiftlock_canister:{en:"Shift-lock Canister",de:"Frameshift-Blocker",es:"Cartucho bloqueador",fr:"Cartouche de verrouillage FSD",pt:"Mina de Trava de Distorção",ru:"Рамоблокирующая кассета"},special_smart_rounds:{en:"Smart Rounds",de:"Intelligente Munition",es:"Munición inteligente",fr:"Munitions intelligentes",pt:"Projéteis Inteligentes",ru:"Умные боеприпасы"},special_super_penetrator:{en:"Super Penetrator"},special_super_penetrator_cooled:{en:"Super Penetrator",de:"Super-Durchdringer",es:"Súper penetrador",fr:"Munitions ultra perforantes",pt:"Super Penetrador",ru:"Модуль сверхпробития"},special_thermal_cascade:{en:"Thermal Cascade",de:"Thermalkaskade",es:"Cascada térmica",fr:"Réverbération thermique",pt:"Cascata Térmica",ru:"Термический залп"},special_thermal_conduit:{en:"Thermal Conduit",de:"Thermischer Verstärker",es:"Conductor térmico",fr:"Décupleur thermique",pt:"Condutor Térmico",ru:"Проводник тепла"},special_thermal_vent:{en:"Thermal Vent",de:"Thermische Entlastung",es:"Ventilación térmica",fr:"Ventilation thermique",pt:"Exaustor Térmico",ru:"Теплоотдача"},special_thermalshock:{en:"Thermal Shock",de:"Thermischer Schock",es:"Choque térmico",fr:"Choc thermique",pt:"Choque Térmico",ru:"Тепловой удар"},special_weapon_damage:{en:"Oversized",de:"Übergröße",es:"Mayor tamaño",fr:"Arme XXL",pt:"Reforçado",ru:"Сверхразмер"},special_weapon_efficient:{en:"Flow Control",de:"Flusssteuerung",es:"Control de flujo",fr:"Contrôle du flux",pt:"Controle de fluxo",ru:"Контроль интенсивности"},special_weapon_lightweight:{en:"Stripped Down",de:"Reduktion",es:"Reducido",fr:"Désossage",pt:"Modelo leve",ru:"Урезанный вариант"},special_weapon_rateoffire:{en:"Multi-servos",es:"Multiservos",fr:"Servomécanismes multiples",pt:"Servos múltiplos",ru:"Сервосистема"},special_weapon_toughened:{en:"Double Braced",de:"Doppelt versteift",es:"Doble puntal",fr:"Armature renforcée",pt:"Braçadeira dupla",ru:"Двойная прочность"}};var EXPERIMENTAL_EFFECT_NAMES=/* @__PURE__ */createLocalizedNameIndex(experimental_effect_names_default);function getExperimentalEffectName(fdname,locale){return getLocalizedName(EXPERIMENTAL_EFFECT_NAMES,fdname,locale,"getExperimentalEffectName","fdname")}export{getExperimentalEffectName};//# sourceMappingURL=chunk-CJWFY6OX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/i18n/experimental-effects.ts"],"names":["getLocalizedName","createLocalizedNameIndex","experimental_effect_names_default","EXPERIMENTAL_EFFECT_NAMES","getExperimentalEffectName","fdname","locale"],"mappings":"O,
|
|
1
|
+
{"version":3,"sources":["../src/i18n/experimental-effects.ts"],"names":["getLocalizedName","createLocalizedNameIndex","experimental_effect_names_default","EXPERIMENTAL_EFFECT_NAMES","getExperimentalEffectName","fdname","locale"],"mappings":"O,+0bASA,IAAMG,yCAA4CF,yBAC9CC,mCA6BG,SAASE,0BAA0BC,OAAgBC,QACtD,OAAON,iBACHG,0BACAE,OACAC,OACA,4BACA,SAER,QAAAF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var requireFiniteNonNegative=(scope,name,value)=>{if(!Number.isFinite(value)||value<0){throw new RangeError(`${scope}: ${name} must be a finite non-negative number`)}};var requireFiniteRange=(scope,name,value,minimum,maximum)=>{if(!Number.isFinite(value)||value<minimum||value>maximum){throw new RangeError(`${scope}: ${name} must be a finite number from ${minimum} to ${maximum}`)}};var validateCurve=(scope,curve)=>{for(const field of["minMass","optMass","maxMass"]){requireFiniteNonNegative(scope,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(`${scope}: masses must be strictly ordered minMass < optMass < maxMass, or all equal`)}for(const field of["minMultiplier","optMultiplier","maxMultiplier"]){requireFiniteNonNegative(scope,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(`${scope}: multipliers must be strictly ordered minMultiplier < optMultiplier < maxMultiplier, or all equal`)}if(allMassesEqual&&!allMultipliersEqual){throw new RangeError(`${scope}: an all-equal mass curve must have equal multipliers`)}};var curveMultiplier=(scope,mass,thrusters)=>{requireFiniteNonNegative(scope,"mass",mass);validateCurve(`${scope}: thrusters`,thrusters);if(mass>thrusters.maxMass)return 0;const span=thrusters.maxMass-thrusters.minMass;if(span<=0||thrusters.maxMultiplier===thrusters.minMultiplier){return thrusters.optMultiplier}const normalised=Math.max(0,Math.min(1,(thrusters.maxMass-mass)/span));const optNormalised=Math.min(1,(thrusters.maxMass-thrusters.optMass)/span);const exponent=Math.log((thrusters.optMultiplier-thrusters.minMultiplier)/(thrusters.maxMultiplier-thrusters.minMultiplier))/Math.log(optNormalised);if(!Number.isFinite(exponent)){throw new RangeError(`${scope}: curve values do not produce a finite exponent`)}return thrusters.minMultiplier+Math.pow(normalised,exponent)*(thrusters.maxMultiplier-thrusters.minMultiplier)};function thrusterMassCurveMultiplier(mass,thrusters){return curveMultiplier("thrusterMassCurveMultiplier",mass,thrusters)}function mobilityMetrics(input){const pips=input.enginesPips??4;requireFiniteRange("mobilityMetrics","enginesPips",pips,0,4);for(const field of["minimumSpeed","maximumSpeed","boost","pitch","roll","yaw","mass"]){requireFiniteNonNegative("mobilityMetrics",field,input[field])}if(input.minimumSpeed>input.maximumSpeed){throw new RangeError("mobilityMetrics: minimumSpeed must not exceed maximumSpeed")}for(const[minimum,maximum]of[["minPitch","pitch"],["minRoll","roll"],["minYaw","yaw"]]){requireFiniteRange("mobilityMetrics",minimum,input[minimum],0,input[maximum])}if(!input.thrusters)return null;validateCurve("mobilityMetrics: thrusters",input.thrusters);const massCurveMultiplier=curveMultiplier("mobilityMetrics: speed curve",input.mass,input.thrusters.speedCurve??input.thrusters);const rotationMassCurveMultiplier=curveMultiplier("mobilityMetrics: rotation curve",input.mass,input.thrusters.rotationCurve??input.thrusters);const pipMultiplier=pips/4;const speedAtPips=input.minimumSpeed+(input.maximumSpeed-input.minimumSpeed)*pipMultiplier;const handlingAtPips=(maximum,minimum)=>minimum+(maximum-minimum)*pipMultiplier;return{speed:speedAtPips*massCurveMultiplier,boost:input.boost*massCurveMultiplier,pitch:handlingAtPips(input.pitch,input.minPitch)*rotationMassCurveMultiplier,roll:handlingAtPips(input.roll,input.minRoll)*rotationMassCurveMultiplier,yaw:handlingAtPips(input.yaw,input.minYaw)*rotationMassCurveMultiplier,massCurveMultiplier:massCurveMultiplier,rotationMassCurveMultiplier:rotationMassCurveMultiplier}}export{mobilityMetrics,thrusterMassCurveMultiplier};//# sourceMappingURL=chunk-
|
|
1
|
+
var requireFiniteNonNegative=(scope,name,value)=>{if(!Number.isFinite(value)||value<0){throw new RangeError(`${scope}: ${name} must be a finite non-negative number`)}};var requireFiniteRange=(scope,name,value,minimum,maximum)=>{if(!Number.isFinite(value)||value<minimum||value>maximum){throw new RangeError(`${scope}: ${name} must be a finite number from ${minimum} to ${maximum}`)}};var validateCurve=(scope,curve)=>{for(const field of["minMass","optMass","maxMass"]){requireFiniteNonNegative(scope,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(`${scope}: masses must be strictly ordered minMass < optMass < maxMass, or all equal`)}for(const field of["minMultiplier","optMultiplier","maxMultiplier"]){requireFiniteNonNegative(scope,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(`${scope}: multipliers must be strictly ordered minMultiplier < optMultiplier < maxMultiplier, or all equal`)}if(allMassesEqual&&!allMultipliersEqual){throw new RangeError(`${scope}: an all-equal mass curve must have equal multipliers`)}};var curveMultiplier=(scope,mass,thrusters)=>{requireFiniteNonNegative(scope,"mass",mass);validateCurve(`${scope}: thrusters`,thrusters);if(mass>thrusters.maxMass)return 0;const span=thrusters.maxMass-thrusters.minMass;if(span<=0||thrusters.maxMultiplier===thrusters.minMultiplier){return thrusters.optMultiplier}const normalised=Math.max(0,Math.min(1,(thrusters.maxMass-mass)/span));const optNormalised=Math.min(1,(thrusters.maxMass-thrusters.optMass)/span);const exponent=Math.log((thrusters.optMultiplier-thrusters.minMultiplier)/(thrusters.maxMultiplier-thrusters.minMultiplier))/Math.log(optNormalised);if(!Number.isFinite(exponent)){throw new RangeError(`${scope}: curve values do not produce a finite exponent`)}return thrusters.minMultiplier+Math.pow(normalised,exponent)*(thrusters.maxMultiplier-thrusters.minMultiplier)};function thrusterMassCurveMultiplier(mass,thrusters){return curveMultiplier("thrusterMassCurveMultiplier",mass,thrusters)}function mobilityMetrics(input){const pips=input.enginesPips??4;requireFiniteRange("mobilityMetrics","enginesPips",pips,0,4);for(const field of["minimumSpeed","maximumSpeed","boost","pitch","roll","yaw","mass"]){requireFiniteNonNegative("mobilityMetrics",field,input[field])}if(input.minimumSpeed>input.maximumSpeed){throw new RangeError("mobilityMetrics: minimumSpeed must not exceed maximumSpeed")}for(const[minimum,maximum]of[["minPitch","pitch"],["minRoll","roll"],["minYaw","yaw"]]){requireFiniteRange("mobilityMetrics",minimum,input[minimum],0,input[maximum])}if(!input.thrusters)return null;validateCurve("mobilityMetrics: thrusters",input.thrusters);const massCurveMultiplier=curveMultiplier("mobilityMetrics: speed curve",input.mass,input.thrusters.speedCurve??input.thrusters);const rotationMassCurveMultiplier=curveMultiplier("mobilityMetrics: rotation curve",input.mass,input.thrusters.rotationCurve??input.thrusters);const pipMultiplier=pips/4;const speedAtPips=input.minimumSpeed+(input.maximumSpeed-input.minimumSpeed)*pipMultiplier;const handlingAtPips=(maximum,minimum)=>minimum+(maximum-minimum)*pipMultiplier;return{loadedMass:input.mass,speed:speedAtPips*massCurveMultiplier,boost:input.boost*massCurveMultiplier,pitch:handlingAtPips(input.pitch,input.minPitch)*rotationMassCurveMultiplier,roll:handlingAtPips(input.roll,input.minRoll)*rotationMassCurveMultiplier,yaw:handlingAtPips(input.yaw,input.minYaw)*rotationMassCurveMultiplier,massCurveMultiplier:massCurveMultiplier,rotationMassCurveMultiplier:rotationMassCurveMultiplier}}export{mobilityMetrics,thrusterMassCurveMultiplier};//# sourceMappingURL=chunk-CX7B67OI.js.map
|