@elite-dangerous-almanac/core 0.1.8 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PROVENANCE/i18n/SOURCES.md +2 -2
- package/PROVENANCE/ships/SOURCES.md +34 -9
- package/README.md +54 -40
- package/dist/astro/galaxy-grid.js +1 -1
- package/dist/astro/index.d.ts +1 -1
- package/dist/astro/index.js +1 -1
- package/dist/astro/naming-region-origins.d.ts +1 -1
- package/dist/astro/naming-region-origins.js +1 -1
- package/dist/astro/nebulae.d.ts +2 -2
- package/dist/astro/permit-locks.d.ts +2 -1
- package/dist/astro/permit-locks.js +1 -1
- package/dist/astro/procedural-system.d.ts +2 -1
- package/dist/astro/procedural-system.js +1 -1
- package/dist/astro/sector-name.d.ts +2 -1
- package/dist/astro/sector-name.js +1 -1
- package/dist/astro/system-address.d.ts +1 -1
- package/dist/astro/system-name.d.ts +14 -9
- package/dist/astro/system-name.js +1 -1
- package/dist/chunk-2W5MW376.js +1 -0
- package/dist/chunk-2W5MW376.js.map +1 -0
- package/dist/chunk-37JIMWLK.js +1 -0
- package/dist/chunk-37JIMWLK.js.map +1 -0
- package/dist/chunk-4CBMQULR.js +1 -0
- package/dist/{chunk-4ZGUSHTP.js.map → chunk-4CBMQULR.js.map} +1 -1
- package/dist/{chunk-6EUVIZAS.js → chunk-4QYTVSNR.js} +1 -1
- package/dist/chunk-5VWACBTN.js +1 -0
- package/dist/chunk-5VWACBTN.js.map +1 -0
- package/dist/{chunk-EKQCVCMK.js → chunk-5ZVYRX6Z.js} +1 -1
- package/dist/{chunk-EKQCVCMK.js.map → chunk-5ZVYRX6Z.js.map} +1 -1
- package/dist/chunk-65FZECUX.js +1 -0
- package/dist/chunk-65FZECUX.js.map +1 -0
- package/dist/chunk-6BFQIYGZ.js +1 -0
- package/dist/chunk-6BFQIYGZ.js.map +1 -0
- package/dist/chunk-6GJHUWMO.js +1 -0
- package/dist/chunk-6GJHUWMO.js.map +1 -0
- package/dist/chunk-6HA2YIKW.js +1 -0
- package/dist/chunk-6HA2YIKW.js.map +1 -0
- package/dist/{chunk-7EE5VIHR.js → chunk-6HMIF2RJ.js} +1 -1
- package/dist/chunk-6S36AVA4.js +1 -0
- package/dist/chunk-6S36AVA4.js.map +1 -0
- package/dist/{chunk-WNGQ3IAM.js → chunk-6UNAD74Z.js} +1 -1
- package/dist/{chunk-WNGQ3IAM.js.map → chunk-6UNAD74Z.js.map} +1 -1
- package/dist/chunk-6WTUY6ZX.js +1 -0
- package/dist/chunk-6WTUY6ZX.js.map +1 -0
- package/dist/{chunk-JPBMRJFC.js → chunk-77I24V6B.js} +1 -1
- package/dist/chunk-77I24V6B.js.map +1 -0
- package/dist/chunk-77TT4K53.js +1 -0
- package/dist/chunk-7ATBEOVC.js +1 -0
- package/dist/chunk-7ATBEOVC.js.map +1 -0
- package/dist/chunk-A4QKXXZD.js +1 -0
- package/dist/chunk-A4QKXXZD.js.map +1 -0
- package/dist/{chunk-6EPYVBAX.js → chunk-A6OINYNP.js} +1 -1
- package/dist/chunk-AAE4KZ2V.js +1 -0
- package/dist/chunk-AAE4KZ2V.js.map +1 -0
- package/dist/{chunk-Q5XOGATC.js → chunk-AIEC3LBT.js} +1 -1
- package/dist/{chunk-QY3L5BKN.js → chunk-APEG4ZER.js} +1 -1
- package/dist/{chunk-Q3QCLNVG.js → chunk-AYAKU4YA.js} +1 -1
- package/dist/chunk-AYAKU4YA.js.map +1 -0
- package/dist/chunk-B7EYTZRK.js +1 -0
- package/dist/chunk-B7EYTZRK.js.map +1 -0
- package/dist/{chunk-EBAHNZ36.js → chunk-CIULJH3G.js} +1 -1
- package/dist/{chunk-EBAHNZ36.js.map → chunk-CIULJH3G.js.map} +1 -1
- package/dist/{chunk-SNADUQSJ.js → chunk-CJK2IBI2.js} +1 -1
- package/dist/{chunk-SNADUQSJ.js.map → chunk-CJK2IBI2.js.map} +1 -1
- package/dist/{chunk-DYPOL3CI.js → chunk-CJQ37JII.js} +1 -1
- package/dist/chunk-CJQ37JII.js.map +1 -0
- package/dist/{chunk-Z6XMXMVI.js → chunk-DBDCOHI4.js} +1 -1
- package/dist/chunk-DBDCOHI4.js.map +1 -0
- package/dist/{chunk-AFVYCQWL.js → chunk-DCB4COCL.js} +1 -1
- package/dist/{chunk-AFVYCQWL.js.map → chunk-DCB4COCL.js.map} +1 -1
- package/dist/{chunk-CJWFY6OX.js → chunk-DSMLYA2M.js} +1 -1
- package/dist/{chunk-CJWFY6OX.js.map → chunk-DSMLYA2M.js.map} +1 -1
- package/dist/{chunk-UXBCLFGU.js → chunk-DWRNXUAX.js} +1 -1
- package/dist/{chunk-UXBCLFGU.js.map → chunk-DWRNXUAX.js.map} +1 -1
- package/dist/chunk-F44QX47A.js +1 -0
- package/dist/chunk-F44QX47A.js.map +1 -0
- package/dist/{chunk-EVJ32UF3.js → chunk-FA5JVXVG.js} +1 -1
- package/dist/{chunk-EVJ32UF3.js.map → chunk-FA5JVXVG.js.map} +1 -1
- package/dist/{chunk-4S6WB7QR.js → chunk-FF2X4K5P.js} +1 -1
- package/dist/chunk-FF2X4K5P.js.map +1 -0
- package/dist/chunk-GGQMIQPC.js +1 -0
- package/dist/chunk-GGQMIQPC.js.map +1 -0
- package/dist/{chunk-QTZPA2FR.js → chunk-GLWPSVFV.js} +1 -1
- package/dist/chunk-GLWPSVFV.js.map +1 -0
- package/dist/{chunk-EYGVDJ2I.js → chunk-GMTAFUAG.js} +1 -1
- package/dist/{chunk-Z43DN4PY.js → chunk-GTEHRZPN.js} +1 -1
- package/dist/{chunk-Z43DN4PY.js.map → chunk-GTEHRZPN.js.map} +1 -1
- package/dist/chunk-H47K3UWG.js +1 -0
- package/dist/chunk-H47K3UWG.js.map +1 -0
- package/dist/{chunk-PA5EITW5.js → chunk-HUYYGTRM.js} +1 -1
- package/dist/{chunk-PA5EITW5.js.map → chunk-HUYYGTRM.js.map} +1 -1
- package/dist/{chunk-HKXXFIRI.js → chunk-ITKZKREP.js} +1 -1
- package/dist/chunk-IWFQ4ZKF.js +1 -0
- package/dist/chunk-IWFQ4ZKF.js.map +1 -0
- package/dist/{chunk-Y6UZWNP4.js → chunk-J7BM5NGK.js} +1 -1
- package/dist/{chunk-Y6UZWNP4.js.map → chunk-J7BM5NGK.js.map} +1 -1
- package/dist/chunk-JET673E5.js +1 -0
- package/dist/chunk-JET673E5.js.map +1 -0
- package/dist/chunk-JMAXSXXQ.js +1 -0
- package/dist/chunk-JMAXSXXQ.js.map +1 -0
- package/dist/chunk-JO52LYO3.js +1 -0
- package/dist/chunk-M2TCZKRT.js +1 -0
- package/dist/chunk-M2TCZKRT.js.map +1 -0
- package/dist/chunk-M4FZRDAH.js +1 -0
- package/dist/chunk-M4FZRDAH.js.map +1 -0
- package/dist/{chunk-JWWYAMGD.js → chunk-MGRDB2BZ.js} +1 -1
- package/dist/{chunk-JWWYAMGD.js.map → chunk-MGRDB2BZ.js.map} +1 -1
- package/dist/{chunk-MKGJPVPS.js → chunk-MRTTQYT5.js} +1 -1
- package/dist/{chunk-MKGJPVPS.js.map → chunk-MRTTQYT5.js.map} +1 -1
- package/dist/chunk-MTJ4MS7W.js +1 -0
- package/dist/chunk-MTJ4MS7W.js.map +1 -0
- package/dist/chunk-NIURLW2F.js +1 -0
- package/dist/chunk-NIURLW2F.js.map +1 -0
- package/dist/chunk-OJC6AUL7.js +1 -0
- package/dist/chunk-OJC6AUL7.js.map +1 -0
- package/dist/chunk-OLKNYGGT.js +1 -0
- package/dist/chunk-OLKNYGGT.js.map +1 -0
- package/dist/chunk-PL75RTA2.js +1 -0
- package/dist/{chunk-2VPVZELZ.js.map → chunk-PL75RTA2.js.map} +1 -1
- package/dist/chunk-Q5ALV3DI.js +1 -0
- package/dist/chunk-Q5ALV3DI.js.map +1 -0
- package/dist/{chunk-SQS7672E.js → chunk-Q6YDPREF.js} +1 -1
- package/dist/chunk-SG6YLUQ4.js +1 -0
- package/dist/chunk-SG6YLUQ4.js.map +1 -0
- package/dist/{chunk-OVUHQEH5.js → chunk-T4MKUKYS.js} +1 -1
- package/dist/{chunk-OVUHQEH5.js.map → chunk-T4MKUKYS.js.map} +1 -1
- package/dist/{chunk-J42ZXLBL.js → chunk-T62GO4AA.js} +1 -1
- package/dist/chunk-T62GO4AA.js.map +1 -0
- package/dist/{chunk-E3BRVGJJ.js → chunk-TBZJIQ5P.js} +1 -1
- package/dist/{chunk-E3BRVGJJ.js.map → chunk-TBZJIQ5P.js.map} +1 -1
- package/dist/chunk-VEEBJFJ7.js +1 -0
- package/dist/chunk-VEEBJFJ7.js.map +1 -0
- package/dist/{chunk-L747RVPO.js → chunk-VQJXRPYI.js} +1 -1
- package/dist/{chunk-L747RVPO.js.map → chunk-VQJXRPYI.js.map} +1 -1
- package/dist/chunk-VTMCSCXV.js +1 -0
- package/dist/chunk-VTMCSCXV.js.map +1 -0
- package/dist/chunk-XQJERZUS.js +1 -0
- package/dist/chunk-XQJERZUS.js.map +1 -0
- package/dist/commodities/commodities-all.js +1 -1
- package/dist/commodities/commodities-rare.js +1 -1
- package/dist/commodities/commodities-standard.js +1 -1
- package/dist/commodities/commodities.d.ts +20 -10
- package/dist/commodities/commodities.js +1 -1
- package/dist/commodities/index.d.ts +15 -4
- package/dist/commodities/index.js +1 -1
- package/dist/equipment/index.js +1 -1
- package/dist/equipment/modification-costs.d.ts +2 -1
- package/dist/equipment/modification-costs.js.map +1 -1
- package/dist/equipment/modification-journal.js +1 -1
- package/dist/equipment/modifications.d.ts +2 -1
- package/dist/equipment/modifications.js +1 -1
- package/dist/equipment/suits.d.ts +6 -3
- package/dist/equipment/suits.js +1 -1
- package/dist/equipment/upgrade-costs.d.ts +8 -4
- package/dist/equipment/upgrade-costs.js +1 -1
- package/dist/equipment/upgrade-costs.js.map +1 -1
- package/dist/equipment/weapons.d.ts +13 -5
- package/dist/equipment/weapons.js +1 -1
- package/dist/i18n/blueprints.d.ts +6 -6
- package/dist/i18n/blueprints.js +1 -1
- package/dist/i18n/diagnostics.d.ts +1 -13
- package/dist/i18n/engineering-groups.d.ts +1 -0
- package/dist/i18n/engineering-groups.js +1 -1
- package/dist/i18n/experimental-effect-descriptions.d.ts +4 -3
- package/dist/i18n/experimental-effect-descriptions.js +1 -1
- package/dist/i18n/experimental-effects.d.ts +5 -4
- package/dist/i18n/experimental-effects.js +1 -1
- package/dist/i18n/index.d.ts +1 -13
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/pre-engineered.d.ts +7 -6
- package/dist/i18n/pre-engineered.js +1 -1
- package/dist/materials/index.d.ts +16 -4
- package/dist/materials/index.js +1 -1
- package/dist/materials/materials-all.js +1 -1
- package/dist/materials/materials-encoded.js +1 -1
- package/dist/materials/materials-manufactured.js +1 -1
- package/dist/materials/materials-raw.js +1 -1
- package/dist/materials/materials.d.ts +36 -19
- package/dist/materials/materials.js +1 -1
- package/dist/materials/micro-resources.d.ts +18 -7
- package/dist/materials/micro-resources.js +1 -1
- package/dist/ships/armour.d.ts +20 -4
- package/dist/ships/armour.js +1 -1
- package/dist/ships/blueprint-costs.d.ts +20 -17
- package/dist/ships/blueprint-costs.js +1 -1
- package/dist/ships/blueprint-journal.d.ts +9 -8
- package/dist/ships/blueprint-journal.js +1 -1
- package/dist/ships/blueprints.d.ts +14 -12
- package/dist/ships/blueprints.js +1 -1
- package/dist/ships/build-metrics.d.ts +1061 -0
- package/dist/ships/build-metrics.js +1 -0
- package/dist/ships/build-metrics.js.map +1 -0
- package/dist/ships/distributor.d.ts +10 -3
- package/dist/ships/distributor.js +1 -1
- package/dist/ships/engineering-options.d.ts +8 -6
- package/dist/ships/engineering-options.js +1 -1
- package/dist/ships/engineering.d.ts +2 -16
- package/dist/ships/engineering.js +1 -1
- package/dist/ships/experimental-effect-costs.d.ts +5 -5
- package/dist/ships/experimental-effect-costs.js +1 -1
- package/dist/ships/experimental-effects.d.ts +9 -8
- package/dist/ships/experimental-effects.js +1 -1
- package/dist/ships/heat.d.ts +7 -2
- package/dist/ships/heat.js +1 -1
- package/dist/ships/index.d.ts +35 -23
- package/dist/ships/index.js +1 -1
- package/dist/ships/jump-range.d.ts +10 -3
- package/dist/ships/jump-range.js +1 -1
- package/dist/ships/loadout-calculations.d.ts +1 -1
- package/dist/ships/loadout-calculations.js +1 -1
- package/dist/ships/loadout-validation.d.ts +111 -5
- package/dist/ships/loadout-validation.js +1 -1
- package/dist/ships/mobility-capacitor.d.ts +90 -0
- package/dist/ships/mobility-capacitor.js +1 -0
- package/dist/ships/mobility-capacitor.js.map +1 -0
- package/dist/ships/mobility.d.ts +29 -17
- package/dist/ships/mobility.js +1 -1
- package/dist/ships/modules-all.js +1 -1
- package/dist/ships/modules-core.js +1 -1
- package/dist/ships/modules-internal.js +1 -1
- package/dist/ships/modules.d.ts +21 -1
- package/dist/ships/modules.js +1 -1
- package/dist/ships/power.d.ts +12 -5
- package/dist/ships/power.js +1 -1
- package/dist/ships/pre-engineered-stats.d.ts +20 -13
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/pre-engineered.d.ts +6 -6
- package/dist/ships/pre-engineered.js +1 -1
- package/dist/ships/resistances.d.ts +2 -2
- package/dist/ships/resistances.js +1 -1
- package/dist/ships/shield-capacitor.d.ts +133 -0
- package/dist/ships/shield-capacitor.js +1 -0
- package/dist/ships/shield-capacitor.js.map +1 -0
- package/dist/ships/shield-recovery.d.ts +16 -2
- package/dist/ships/shield-recovery.js +1 -1
- package/dist/ships/shields.d.ts +86 -28
- package/dist/ships/shields.js +1 -1
- package/dist/ships/ship-loadout.d.ts +176 -815
- package/dist/ships/ship-loadout.js +1 -1
- package/dist/ships/ships.d.ts +7 -6
- package/dist/ships/ships.js +1 -1
- package/dist/ships/slef.d.ts +5 -2
- package/dist/ships/slef.js +1 -1
- package/dist/ships/source-purchase.d.ts +2 -1
- package/dist/ships/source-purchase.js +1 -1
- package/dist/ships/weapons-capacitor.d.ts +10 -3
- package/dist/ships/weapons-capacitor.js +1 -1
- package/dist/ships/weapons.d.ts +22 -6
- package/dist/ships/weapons.js +1 -1
- package/dist/{system-address-DYsN1qOT.d.ts → system-address-cyJaeZIS.d.ts} +2 -1
- package/package.json +17 -2
- package/dist/chunk-2FHHMYDC.js +0 -1
- package/dist/chunk-2FHHMYDC.js.map +0 -1
- package/dist/chunk-2TW4ZBI3.js +0 -1
- package/dist/chunk-2TW4ZBI3.js.map +0 -1
- package/dist/chunk-2VPVZELZ.js +0 -1
- package/dist/chunk-3BM5BHI3.js +0 -1
- package/dist/chunk-3BM5BHI3.js.map +0 -1
- package/dist/chunk-4S6WB7QR.js.map +0 -1
- package/dist/chunk-4ZGUSHTP.js +0 -1
- package/dist/chunk-6BO5JJNI.js +0 -1
- package/dist/chunk-6BO5JJNI.js.map +0 -1
- package/dist/chunk-B4ZSTOM4.js +0 -1
- package/dist/chunk-B4ZSTOM4.js.map +0 -1
- package/dist/chunk-CX7B67OI.js +0 -1
- package/dist/chunk-CX7B67OI.js.map +0 -1
- package/dist/chunk-DVL5RBKX.js +0 -1
- package/dist/chunk-DVL5RBKX.js.map +0 -1
- package/dist/chunk-DYPOL3CI.js.map +0 -1
- package/dist/chunk-FGXWVFN6.js +0 -1
- package/dist/chunk-FGXWVFN6.js.map +0 -1
- package/dist/chunk-FMPRCYKY.js +0 -1
- package/dist/chunk-FMPRCYKY.js.map +0 -1
- package/dist/chunk-G3265B27.js +0 -1
- package/dist/chunk-G3265B27.js.map +0 -1
- package/dist/chunk-GQ5GX5TB.js +0 -1
- package/dist/chunk-GQ5GX5TB.js.map +0 -1
- package/dist/chunk-IOJXLDJN.js +0 -1
- package/dist/chunk-IOJXLDJN.js.map +0 -1
- package/dist/chunk-IYU4WLFM.js +0 -1
- package/dist/chunk-IYU4WLFM.js.map +0 -1
- package/dist/chunk-J42ZXLBL.js.map +0 -1
- package/dist/chunk-JPBMRJFC.js.map +0 -1
- package/dist/chunk-JQG4C67D.js +0 -1
- package/dist/chunk-LJI7VXJD.js +0 -1
- package/dist/chunk-LJI7VXJD.js.map +0 -1
- package/dist/chunk-OCND33TO.js +0 -1
- package/dist/chunk-OCND33TO.js.map +0 -1
- package/dist/chunk-P2QOL63K.js +0 -1
- package/dist/chunk-P2QOL63K.js.map +0 -1
- package/dist/chunk-Q3QCLNVG.js.map +0 -1
- package/dist/chunk-QTZPA2FR.js.map +0 -1
- package/dist/chunk-RLUS76LZ.js +0 -1
- package/dist/chunk-RLUS76LZ.js.map +0 -1
- package/dist/chunk-TEOJCBSG.js +0 -1
- package/dist/chunk-TEOJCBSG.js.map +0 -1
- package/dist/chunk-TMMGS6TC.js +0 -1
- package/dist/chunk-TMMGS6TC.js.map +0 -1
- package/dist/chunk-V4C6FIE2.js +0 -1
- package/dist/chunk-VZZUNSDF.js +0 -1
- package/dist/chunk-VZZUNSDF.js.map +0 -1
- package/dist/chunk-W6EPHHTS.js +0 -1
- package/dist/chunk-W6EPHHTS.js.map +0 -1
- package/dist/chunk-Z6XMXMVI.js.map +0 -1
- package/dist/chunk-ZNCXENNB.js +0 -1
- package/dist/chunk-ZNCXENNB.js.map +0 -1
- /package/dist/{chunk-6EUVIZAS.js.map → chunk-4QYTVSNR.js.map} +0 -0
- /package/dist/{chunk-7EE5VIHR.js.map → chunk-6HMIF2RJ.js.map} +0 -0
- /package/dist/{chunk-JQG4C67D.js.map → chunk-77TT4K53.js.map} +0 -0
- /package/dist/{chunk-6EPYVBAX.js.map → chunk-A6OINYNP.js.map} +0 -0
- /package/dist/{chunk-Q5XOGATC.js.map → chunk-AIEC3LBT.js.map} +0 -0
- /package/dist/{chunk-QY3L5BKN.js.map → chunk-APEG4ZER.js.map} +0 -0
- /package/dist/{chunk-EYGVDJ2I.js.map → chunk-GMTAFUAG.js.map} +0 -0
- /package/dist/{chunk-HKXXFIRI.js.map → chunk-ITKZKREP.js.map} +0 -0
- /package/dist/{chunk-V4C6FIE2.js.map → chunk-JO52LYO3.js.map} +0 -0
- /package/dist/{chunk-SQS7672E.js.map → chunk-Q6YDPREF.js.map} +0 -0
package/dist/chunk-4ZGUSHTP.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{buildModuleCatalogue}from"./chunk-AFS6HN3D.js";var modules_internal_default=[{symbol:"Int_DockingComputer_Standard",familyId:"dockingComputers",name:"Standard Docking Computer",class:1,rating:"E",exclusionGroup:"dockingComputer",mass:0,integrity:10,powerDraw:.39,bootTime:3,cost:4500},{symbol:"Int_ShieldGenerator_Size1_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"E",exclusionGroup:"shieldGenerator",mass:1.3,integrity:32,powerDraw:.72,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:300},{symbol:"Int_ShieldGenerator_Size1_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"D",exclusionGroup:"shieldGenerator",mass:.5,integrity:24,powerDraw:.96,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1240},{symbol:"Int_ShieldGenerator_Size1_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"C",exclusionGroup:"shieldGenerator",mass:1.3,integrity:40,powerDraw:1.2,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5140},{symbol:"Int_ShieldGenerator_Size1_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"B",exclusionGroup:"shieldGenerator",mass:2,integrity:56,powerDraw:1.44,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6},{symbol:"Int_ShieldGenerator_Size1_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:1,rating:"A",exclusionGroup:"shieldGenerator",mass:1.3,integrity:48,powerDraw:1.68,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:88075},{symbol:"Int_ShieldGenerator_Size2_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"E",exclusionGroup:"shieldGenerator",mass:2.5,integrity:41,powerDraw:.9,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1978},{symbol:"Int_ShieldGenerator_Size2_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"D",exclusionGroup:"shieldGenerator",mass:1,integrity:31,powerDraw:1.2,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5934},{symbol:"Int_ShieldGenerator_Size2_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"C",exclusionGroup:"shieldGenerator",mass:2.5,integrity:51,powerDraw:1.5,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:17803},{symbol:"Int_ShieldGenerator_Size2_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"B",exclusionGroup:"shieldGenerator",mass:4,integrity:71,powerDraw:1.8,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:53408},{symbol:"Int_ShieldGenerator_Size2_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"A",exclusionGroup:"shieldGenerator",mass:2.5,integrity:61,powerDraw:2.1,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:160224},{symbol:"Int_ShieldGenerator_Size3_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"E",exclusionGroup:"shieldGenerator",mass:5,integrity:51,powerDraw:1.08,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:6271},{symbol:"Int_ShieldGenerator_Size3_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"D",exclusionGroup:"shieldGenerator",mass:2,integrity:38,powerDraw:1.44,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:18812},{symbol:"Int_ShieldGenerator_Size3_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"C",exclusionGroup:"shieldGenerator",mass:5,integrity:64,powerDraw:1.8,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:56435},{symbol:"Int_ShieldGenerator_Size3_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"B",exclusionGroup:"shieldGenerator",mass:8,integrity:90,powerDraw:2.16,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:169304},{symbol:"Int_ShieldGenerator_Size3_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:3,rating:"A",exclusionGroup:"shieldGenerator",mass:5,integrity:77,powerDraw:2.52,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:507912},{symbol:"Int_ShieldGenerator_Size4_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"E",exclusionGroup:"shieldGenerator",mass:10,integrity:64,powerDraw:1.32,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:19878},{symbol:"Int_ShieldGenerator_Size4_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"D",exclusionGroup:"shieldGenerator",mass:4,integrity:48,powerDraw:1.76,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:59633},{symbol:"Int_ShieldGenerator_Size4_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"C",exclusionGroup:"shieldGenerator",mass:10,integrity:80,powerDraw:2.2,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:178898},{symbol:"Int_ShieldGenerator_Size4_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"B",exclusionGroup:"shieldGenerator",mass:16,integrity:112,powerDraw:2.64,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:536693},{symbol:"Int_ShieldGenerator_Size4_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:4,rating:"A",exclusionGroup:"shieldGenerator",mass:10,integrity:96,powerDraw:3.08,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1610080},{symbol:"Int_ShieldGenerator_Size5_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"E",exclusionGroup:"shieldGenerator",mass:20,integrity:77,powerDraw:1.56,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:63012},{symbol:"Int_ShieldGenerator_Size5_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"D",exclusionGroup:"shieldGenerator",mass:8,integrity:58,powerDraw:2.08,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:189035},{symbol:"Int_ShieldGenerator_Size5_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"C",exclusionGroup:"shieldGenerator",mass:20,integrity:96,powerDraw:2.6,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:567106},{symbol:"Int_ShieldGenerator_Size5_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"B",exclusionGroup:"shieldGenerator",mass:32,integrity:134,powerDraw:3.12,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1701318},{symbol:"Int_ShieldGenerator_Size5_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:5,rating:"A",exclusionGroup:"shieldGenerator",mass:20,integrity:115,powerDraw:3.64,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5103953},{symbol:"Int_ShieldGenerator_Size6_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"E",exclusionGroup:"shieldGenerator",mass:40,integrity:90,powerDraw:1.86,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1.3,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:199747},{symbol:"Int_ShieldGenerator_Size6_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"D",exclusionGroup:"shieldGenerator",mass:16,integrity:68,powerDraw:2.48,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:599242},{symbol:"Int_ShieldGenerator_Size6_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"C",exclusionGroup:"shieldGenerator",mass:40,integrity:113,powerDraw:3.1,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1797726},{symbol:"Int_ShieldGenerator_Size6_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"B",exclusionGroup:"shieldGenerator",mass:64,integrity:158,powerDraw:3.72,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5393177},{symbol:"Int_ShieldGenerator_Size6_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:6,rating:"A",exclusionGroup:"shieldGenerator",mass:40,integrity:136,powerDraw:4.34,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:16179531},{symbol:"Int_ShieldGenerator_Size7_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"E",exclusionGroup:"shieldGenerator",mass:80,integrity:105,powerDraw:2.1,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:633199},{symbol:"Int_ShieldGenerator_Size7_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"D",exclusionGroup:"shieldGenerator",mass:32,integrity:79,powerDraw:2.8,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1899597},{symbol:"Int_ShieldGenerator_Size7_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"C",exclusionGroup:"shieldGenerator",mass:80,integrity:131,powerDraw:3.5,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5698790},{symbol:"Int_ShieldGenerator_Size7_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"B",exclusionGroup:"shieldGenerator",mass:128,integrity:183,powerDraw:4.2,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:17096371},{symbol:"Int_ShieldGenerator_Size7_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:7,rating:"A",exclusionGroup:"shieldGenerator",mass:80,integrity:157,powerDraw:4.9,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:51289112},{symbol:"Int_ShieldGenerator_Size8_Class1",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"E",exclusionGroup:"shieldGenerator",mass:160,integrity:120,powerDraw:2.4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:2007241},{symbol:"Int_ShieldGenerator_Size8_Class2",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"D",exclusionGroup:"shieldGenerator",mass:64,integrity:90,powerDraw:3.2,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:6021722},{symbol:"Int_ShieldGenerator_Size8_Class3",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"C",exclusionGroup:"shieldGenerator",mass:160,integrity:150,powerDraw:4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:18065165},{symbol:"Int_ShieldGenerator_Size8_Class4",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"B",exclusionGroup:"shieldGenerator",mass:256,integrity:210,powerDraw:4.8,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:54195495},{symbol:"Int_ShieldGenerator_Size8_Class5",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:8,rating:"A",exclusionGroup:"shieldGenerator",mass:160,integrity:180,powerDraw:5.6,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:162586486},{symbol:"Int_ShieldCellBank_Size1_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"E",mass:1.3,integrity:32,powerDraw:.41,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:170,shieldBankReinforcement:12,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:517},{symbol:"Int_ShieldCellBank_Size1_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"D",mass:.5,integrity:24,powerDraw:.55,bootTime:25,clipSize:1,ammoMaximum:1,thermalLoad:170,shieldBankReinforcement:16,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:1293},{symbol:"Int_ShieldCellBank_Size1_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.69,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:170,shieldBankReinforcement:20,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:3231},{symbol:"Int_ShieldCellBank_Size1_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"B",mass:2,integrity:56,powerDraw:.83,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:170,shieldBankReinforcement:24,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:8078},{symbol:"Int_ShieldCellBank_Size1_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"A",mass:1.3,integrity:48,powerDraw:.97,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:170,shieldBankReinforcement:28,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:20195},{symbol:"Int_ShieldCellBank_Size2_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"E",mass:2.5,integrity:41,powerDraw:.5,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:240,shieldBankReinforcement:14,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:1448},{symbol:"Int_ShieldCellBank_Size2_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"D",mass:1,integrity:31,powerDraw:.67,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:240,shieldBankReinforcement:18,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:3619},{symbol:"Int_ShieldCellBank_Size2_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"C",mass:2.5,integrity:51,powerDraw:.84,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:240,shieldBankReinforcement:23,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:9048},{symbol:"Int_ShieldCellBank_Size2_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"B",mass:4,integrity:71,powerDraw:1.01,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:240,shieldBankReinforcement:28,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:22619},{symbol:"Int_ShieldCellBank_Size2_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"A",mass:2.5,integrity:61,powerDraw:1.18,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:240,shieldBankReinforcement:32,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:56547},{symbol:"Int_ShieldCellBank_Size3_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"E",mass:5,integrity:51,powerDraw:.61,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:340,shieldBankReinforcement:17,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:4053},{symbol:"Int_ShieldCellBank_Size3_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"D",mass:2,integrity:38,powerDraw:.82,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:340,shieldBankReinforcement:23,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:10133},{symbol:"Int_ShieldCellBank_Size3_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"C",mass:5,integrity:64,powerDraw:1.02,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:340,shieldBankReinforcement:29,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:25333},{symbol:"Int_ShieldCellBank_Size3_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"B",mass:8,integrity:90,powerDraw:1.22,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:340,shieldBankReinforcement:35,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:63333},{symbol:"Int_ShieldCellBank_Size3_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"A",mass:5,integrity:77,powerDraw:1.43,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:340,shieldBankReinforcement:41,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:158331},{symbol:"Int_ShieldCellBank_Size4_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"E",mass:10,integrity:64,powerDraw:.74,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:410,shieldBankReinforcement:20,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:11349},{symbol:"Int_ShieldCellBank_Size4_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"D",mass:4,integrity:48,powerDraw:.98,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:410,shieldBankReinforcement:26,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:28373},{symbol:"Int_ShieldCellBank_Size4_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"C",mass:10,integrity:80,powerDraw:1.23,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:410,shieldBankReinforcement:33,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:70932},{symbol:"Int_ShieldCellBank_Size4_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"B",mass:16,integrity:112,powerDraw:1.48,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:410,shieldBankReinforcement:39,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:177331},{symbol:"Int_ShieldCellBank_Size4_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"A",mass:10,integrity:96,powerDraw:1.72,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:410,shieldBankReinforcement:46,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:443328},{symbol:"Int_ShieldCellBank_Size5_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"E",mass:20,integrity:77,powerDraw:.9,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:540,shieldBankReinforcement:21,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:31778},{symbol:"Int_ShieldCellBank_Size5_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"D",mass:8,integrity:58,powerDraw:1.2,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:540,shieldBankReinforcement:28,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:79444},{symbol:"Int_ShieldCellBank_Size5_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"C",mass:20,integrity:96,powerDraw:1.5,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:540,shieldBankReinforcement:35,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:198611},{symbol:"Int_ShieldCellBank_Size5_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"B",mass:32,integrity:134,powerDraw:1.8,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:540,shieldBankReinforcement:41,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:496527},{symbol:"Int_ShieldCellBank_Size5_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"A",mass:20,integrity:115,powerDraw:2.1,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:540,shieldBankReinforcement:48,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:1241317},{symbol:"Int_ShieldCellBank_Size6_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"E",mass:40,integrity:90,powerDraw:1.06,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:640,shieldBankReinforcement:20,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:88978},{symbol:"Int_ShieldCellBank_Size6_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"D",mass:16,integrity:68,powerDraw:1.42,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:640,shieldBankReinforcement:26,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:222444},{symbol:"Int_ShieldCellBank_Size6_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"C",mass:40,integrity:113,powerDraw:1.77,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:640,shieldBankReinforcement:33,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:556110},{symbol:"Int_ShieldCellBank_Size6_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"B",mass:64,integrity:158,powerDraw:2.12,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:640,shieldBankReinforcement:39,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:1390275},{symbol:"Int_ShieldCellBank_Size6_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"A",mass:40,integrity:136,powerDraw:2.48,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:640,shieldBankReinforcement:46,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:3475688},{symbol:"Int_ShieldCellBank_Size7_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"E",mass:80,integrity:105,powerDraw:1.24,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:720,shieldBankReinforcement:24,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:249137},{symbol:"Int_ShieldCellBank_Size7_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"D",mass:32,integrity:79,powerDraw:1.66,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:720,shieldBankReinforcement:32,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:622843},{symbol:"Int_ShieldCellBank_Size7_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"C",mass:80,integrity:131,powerDraw:2.07,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:720,shieldBankReinforcement:41,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:1557108},{symbol:"Int_ShieldCellBank_Size7_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"B",mass:128,integrity:183,powerDraw:2.48,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:720,shieldBankReinforcement:49,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:3892770},{symbol:"Int_ShieldCellBank_Size7_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"A",mass:80,integrity:157,powerDraw:2.9,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:720,shieldBankReinforcement:57,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:9731925},{symbol:"Int_ShieldCellBank_Size8_Class1",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"E",mass:160,integrity:120,powerDraw:1.44,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:800,shieldBankReinforcement:28,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:697584},{symbol:"Int_ShieldCellBank_Size8_Class2",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"D",mass:64,integrity:90,powerDraw:1.92,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:800,shieldBankReinforcement:37,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:1743961},{symbol:"Int_ShieldCellBank_Size8_Class3",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"C",mass:160,integrity:150,powerDraw:2.4,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:800,shieldBankReinforcement:47,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:4359903},{symbol:"Int_ShieldCellBank_Size8_Class4",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"B",mass:256,integrity:210,powerDraw:2.88,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:800,shieldBankReinforcement:56,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:10899756},{symbol:"Int_ShieldCellBank_Size8_Class5",kind:"shieldCellBanks",familyId:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"A",mass:160,integrity:180,powerDraw:3.36,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:800,shieldBankReinforcement:65,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:27249391},{symbol:"Int_CargoRack_Size1_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:1,rating:"E",mass:0,cargoCapacity:2,cost:1e3},{symbol:"Int_CargoRack_Size2_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:2,rating:"E",mass:0,cargoCapacity:4,cost:3250},{symbol:"Int_CargoRack_Size3_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:3,rating:"E",mass:0,cargoCapacity:8,cost:10563},{symbol:"Int_CargoRack_Size4_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:4,rating:"E",mass:0,cargoCapacity:16,cost:34328},{symbol:"Int_CargoRack_Size5_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:5,rating:"E",mass:0,cargoCapacity:32,cost:111566},{symbol:"Int_CargoRack_Size6_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:6,rating:"E",mass:0,cargoCapacity:64,cost:362591},{symbol:"Int_CargoRack_Size7_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:7,rating:"E",mass:0,cargoCapacity:128,cost:1178420},{symbol:"Int_CargoRack_Size8_Class1",familyId:"cargoRacks",name:"Cargo Rack",class:8,rating:"E",mass:0,cargoCapacity:256,cost:3829866},{symbol:"Int_DroneControl_ResourceSiphon",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"I",mass:0,integrity:20,powerDraw:.4,bootTime:0,cost:18040},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class1",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"E",mass:1.3,integrity:32,powerDraw:.12,bootTime:3,cost:600},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class2",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"D",mass:.5,integrity:24,powerDraw:.16,bootTime:3,cost:1200},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class3",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.2,bootTime:3,cost:2400},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class4",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"B",mass:2,integrity:56,powerDraw:.24,bootTime:3,cost:4800},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class5",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"A",mass:1.3,integrity:48,powerDraw:.28,bootTime:3,cost:9600},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class1",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"E",mass:5,integrity:51,powerDraw:.18,bootTime:3,cost:5400},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class2",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"D",mass:2,integrity:38,powerDraw:.24,bootTime:3,cost:10800},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class3",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.3,bootTime:3,cost:21600},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class4",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"B",mass:8,integrity:90,powerDraw:.36,bootTime:3,cost:43200},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class5",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"A",mass:5,integrity:77,powerDraw:.42,bootTime:3,cost:86400},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class1",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"E",mass:20,integrity:77,powerDraw:.3,bootTime:3,cost:48600},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class2",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"D",mass:8,integrity:58,powerDraw:.4,bootTime:3,cost:97200},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class3",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:3,cost:194400},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class4",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"B",mass:32,integrity:134,powerDraw:.6,bootTime:3,cost:388800},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class5",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"A",mass:20,integrity:115,powerDraw:.7,bootTime:3,cost:777600},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class1",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"E",mass:80,integrity:105,powerDraw:.42,bootTime:3,cost:437400},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class2",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"D",mass:32,integrity:79,powerDraw:.56,bootTime:3,cost:874800},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class3",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.7,bootTime:3,cost:1749600},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class4",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"B",mass:128,integrity:183,powerDraw:.84,bootTime:3,cost:3499200},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class5",kind:"hatchBreakerLimpets",familyId:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"A",mass:80,integrity:157,powerDraw:.98,bootTime:3,cost:6998400},{symbol:"Int_DetailedSurfaceScanner_Tiny",kind:"surfaceScanners",familyId:"surfaceScanners",name:"Detailed Surface Scanner",class:1,rating:"I",exclusionGroup:"detailedSurfaceScanner",mass:0,integrity:20,powerDraw:0,bootTime:0,probeRadius:20,cost:25e4},{symbol:"Int_ShieldGenerator_Size2_Class1_free",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Shield Generator",class:2,rating:"E",exclusionGroup:"shieldGenerator",mass:2.5,integrity:41,powerDraw:.9,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6},{symbol:"Int_CargoRack_Size2_Class1_free",familyId:"cargoRacks",name:"Cargo Rack",class:2,rating:"E",mass:0,cargoCapacity:4},{symbol:"Int_FuelScoop_Size1_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:32,powerDraw:.14,bootTime:4,refuelRate:.018,cost:309},{symbol:"Int_FuelScoop_Size2_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:41,powerDraw:.17,bootTime:4,refuelRate:.032,cost:1068},{symbol:"Int_FuelScoop_Size3_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:51,powerDraw:.2,bootTime:4,refuelRate:.075,cost:3386},{symbol:"Int_FuelScoop_Size4_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:64,powerDraw:.25,bootTime:4,refuelRate:.147,cost:10734},{symbol:"Int_FuelScoop_Size5_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:77,powerDraw:.3,bootTime:4,refuelRate:.247,cost:34026},{symbol:"Int_FuelScoop_Size6_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:90,powerDraw:.35,bootTime:4,refuelRate:.376,cost:107864},{symbol:"Int_FuelScoop_Size7_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:105,powerDraw:.41,bootTime:4,refuelRate:.534,cost:341927},{symbol:"Int_FuelScoop_Size8_Class1",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:120,powerDraw:.48,bootTime:4,refuelRate:.72,cost:1083910},{symbol:"Int_FuelScoop_Size1_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:24,powerDraw:.18,bootTime:4,refuelRate:.024,cost:1285},{symbol:"Int_FuelScoop_Size2_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:31,powerDraw:.22,bootTime:4,refuelRate:.043,cost:4451},{symbol:"Int_FuelScoop_Size3_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:38,powerDraw:.27,bootTime:4,refuelRate:.1,cost:14109},{symbol:"Int_FuelScoop_Size4_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:48,powerDraw:.33,bootTime:4,refuelRate:.196,cost:44724},{symbol:"Int_FuelScoop_Size5_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:58,powerDraw:.4,bootTime:4,refuelRate:.33,cost:141776},{symbol:"Int_FuelScoop_Size6_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:68,powerDraw:.47,bootTime:4,refuelRate:.502,cost:449431},{symbol:"Int_FuelScoop_Size7_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:79,powerDraw:.55,bootTime:4,refuelRate:.712,cost:1424698},{symbol:"Int_FuelScoop_Size8_Class2",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:90,powerDraw:.64,bootTime:4,refuelRate:.96,cost:4516291},{symbol:"Int_FuelScoop_Size1_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:40,powerDraw:.23,bootTime:4,refuelRate:.03,cost:5142},{symbol:"Int_FuelScoop_Size2_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:51,powerDraw:.28,bootTime:4,refuelRate:.054,cost:17803},{symbol:"Int_FuelScoop_Size3_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:64,powerDraw:.34,bootTime:4,refuelRate:.126,cost:56435},{symbol:"Int_FuelScoop_Size4_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:80,powerDraw:.41,bootTime:4,refuelRate:.245,cost:178898},{symbol:"Int_FuelScoop_Size5_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:96,powerDraw:.5,bootTime:4,refuelRate:.412,cost:567106},{symbol:"Int_FuelScoop_Size6_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:113,powerDraw:.59,bootTime:4,refuelRate:.627,cost:1797726},{symbol:"Int_FuelScoop_Size7_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:131,powerDraw:.69,bootTime:4,refuelRate:.89,cost:5698790},{symbol:"Int_FuelScoop_Size8_Class3",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:150,powerDraw:.8,bootTime:4,refuelRate:1.2,cost:18065165},{symbol:"Int_FuelScoop_Size1_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:56,powerDraw:.28,bootTime:4,refuelRate:.036,cost:20568},{symbol:"Int_FuelScoop_Size2_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:70,powerDraw:.34,bootTime:4,refuelRate:.065,cost:71211},{symbol:"Int_FuelScoop_Size3_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:90,powerDraw:.41,bootTime:4,refuelRate:.151,cost:225738},{symbol:"Int_FuelScoop_Size4_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:112,powerDraw:.49,bootTime:4,refuelRate:.294,cost:715591},{symbol:"Int_FuelScoop_Size5_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:134,powerDraw:.6,bootTime:4,refuelRate:.494,cost:2268424},{symbol:"Int_FuelScoop_Size6_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:158,powerDraw:.71,bootTime:4,refuelRate:.752,cost:7190903},{symbol:"Int_FuelScoop_Size7_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:183,powerDraw:.83,bootTime:4,refuelRate:1.068,cost:22795161},{symbol:"Int_FuelScoop_Size8_Class4",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:210,powerDraw:.96,bootTime:4,refuelRate:1.44,cost:72260660},{symbol:"Int_FuelScoop_Size1_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:1,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:48,powerDraw:.32,bootTime:4,refuelRate:.042,cost:82270},{symbol:"Int_FuelScoop_Size2_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:2,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:61,powerDraw:.39,bootTime:4,refuelRate:.075,cost:284844},{symbol:"Int_FuelScoop_Size3_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:3,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:77,powerDraw:.48,bootTime:4,refuelRate:.176,cost:902954},{symbol:"Int_FuelScoop_Size4_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:4,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:96,powerDraw:.57,bootTime:4,refuelRate:.343,cost:2862364},{symbol:"Int_FuelScoop_Size5_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:5,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:115,powerDraw:.7,bootTime:4,refuelRate:.577,cost:9073694},{symbol:"Int_FuelScoop_Size6_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:6,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:136,powerDraw:.83,bootTime:4,refuelRate:.878,cost:28763610},{symbol:"Int_FuelScoop_Size7_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:7,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:157,powerDraw:.97,bootTime:4,refuelRate:1.245,cost:91180644},{symbol:"Int_FuelScoop_Size8_Class5",kind:"fuelScoops",familyId:"fuelScoops",name:"Fuel Scoop",class:8,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:180,powerDraw:1.12,bootTime:4,refuelRate:1.68,cost:289042641},{symbol:"Int_Refinery_Size1_Class1",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"E",exclusionGroup:"refinery",mass:0,integrity:32,powerDraw:.14,bootTime:10,cost:6e3},{symbol:"Int_Refinery_Size2_Class1",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"E",exclusionGroup:"refinery",mass:0,integrity:41,powerDraw:.17,bootTime:10,cost:12600},{symbol:"Int_Refinery_Size3_Class1",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"E",exclusionGroup:"refinery",mass:0,integrity:51,powerDraw:.2,bootTime:10,cost:26460},{symbol:"Int_Refinery_Size4_Class1",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"E",exclusionGroup:"refinery",mass:0,integrity:64,powerDraw:.25,bootTime:10,cost:55566},{symbol:"Int_Refinery_Size1_Class2",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"D",exclusionGroup:"refinery",mass:0,integrity:24,powerDraw:.18,bootTime:10,cost:18e3},{symbol:"Int_Refinery_Size2_Class2",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"D",exclusionGroup:"refinery",mass:0,integrity:31,powerDraw:.22,bootTime:10,cost:37800},{symbol:"Int_Refinery_Size3_Class2",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"D",exclusionGroup:"refinery",mass:0,integrity:38,powerDraw:.27,bootTime:10,cost:79380},{symbol:"Int_Refinery_Size4_Class2",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"D",exclusionGroup:"refinery",mass:0,integrity:48,powerDraw:.33,bootTime:10,cost:166698},{symbol:"Int_Refinery_Size1_Class3",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"C",exclusionGroup:"refinery",mass:0,integrity:40,powerDraw:.23,bootTime:10,cost:54e3},{symbol:"Int_Refinery_Size2_Class3",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"C",exclusionGroup:"refinery",mass:0,integrity:51,powerDraw:.28,bootTime:10,cost:113400},{symbol:"Int_Refinery_Size3_Class3",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"C",exclusionGroup:"refinery",mass:0,integrity:64,powerDraw:.34,bootTime:10,cost:238140},{symbol:"Int_Refinery_Size4_Class3",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"C",exclusionGroup:"refinery",mass:0,integrity:80,powerDraw:.41,bootTime:10,cost:500094},{symbol:"Int_Refinery_Size1_Class4",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"B",exclusionGroup:"refinery",mass:0,integrity:56,powerDraw:.28,bootTime:10,cost:162e3},{symbol:"Int_Refinery_Size2_Class4",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"B",exclusionGroup:"refinery",mass:0,integrity:71,powerDraw:.34,bootTime:10,cost:340200},{symbol:"Int_Refinery_Size3_Class4",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"B",exclusionGroup:"refinery",mass:0,integrity:90,powerDraw:.41,bootTime:10,cost:714420},{symbol:"Int_Refinery_Size4_Class4",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"B",exclusionGroup:"refinery",mass:0,integrity:112,powerDraw:.49,bootTime:10,cost:1500282},{symbol:"Int_Refinery_Size1_Class5",kind:"refineries",familyId:"refineries",name:"Refinery",class:1,rating:"A",exclusionGroup:"refinery",mass:0,integrity:48,powerDraw:.32,bootTime:10,cost:486e3},{symbol:"Int_Refinery_Size2_Class5",kind:"refineries",familyId:"refineries",name:"Refinery",class:2,rating:"A",exclusionGroup:"refinery",mass:0,integrity:61,powerDraw:.39,bootTime:10,cost:1020600},{symbol:"Int_Refinery_Size3_Class5",kind:"refineries",familyId:"refineries",name:"Refinery",class:3,rating:"A",exclusionGroup:"refinery",mass:0,integrity:77,powerDraw:.48,bootTime:10,cost:2143260},{symbol:"Int_Refinery_Size4_Class5",kind:"refineries",familyId:"refineries",name:"Refinery",class:4,rating:"A",exclusionGroup:"refinery",mass:0,integrity:96,powerDraw:.57,bootTime:10,cost:4500846},{symbol:"Int_FSDInterdictor_Size1_Class1",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:1.3,integrity:32,powerDraw:.14,bootTime:15,interdictorFacingLimit:50,interdictorRange:3,cost:12e3},{symbol:"Int_FSDInterdictor_Size2_Class1",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:2.5,integrity:41,powerDraw:.17,bootTime:15,interdictorFacingLimit:50,interdictorRange:6,cost:33600},{symbol:"Int_FSDInterdictor_Size3_Class1",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:5,integrity:51,powerDraw:.2,bootTime:15,interdictorFacingLimit:50,interdictorRange:9,cost:94080},{symbol:"Int_FSDInterdictor_Size4_Class1",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:10,integrity:64,powerDraw:.25,bootTime:15,interdictorFacingLimit:50,interdictorRange:12,cost:263424},{symbol:"Int_FSDInterdictor_Size1_Class2",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:.5,integrity:24,powerDraw:.18,bootTime:15,interdictorFacingLimit:50,interdictorRange:4,cost:36e3},{symbol:"Int_FSDInterdictor_Size2_Class2",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:1,integrity:31,powerDraw:.22,bootTime:15,interdictorFacingLimit:50,interdictorRange:7,cost:100800},{symbol:"Int_FSDInterdictor_Size3_Class2",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:2,integrity:38,powerDraw:.27,bootTime:15,interdictorFacingLimit:50,interdictorRange:10,cost:282240},{symbol:"Int_FSDInterdictor_Size4_Class2",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:4,integrity:48,powerDraw:.33,bootTime:15,interdictorFacingLimit:50,interdictorRange:13,cost:790272},{symbol:"Int_FSDInterdictor_Size1_Class3",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:1.3,integrity:40,powerDraw:.23,bootTime:15,interdictorFacingLimit:50,interdictorRange:5,cost:108e3},{symbol:"Int_FSDInterdictor_Size2_Class3",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:2.5,integrity:51,powerDraw:.28,bootTime:15,interdictorFacingLimit:50,interdictorRange:8,cost:302400},{symbol:"Int_FSDInterdictor_Size3_Class3",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:5,integrity:64,powerDraw:.34,bootTime:15,interdictorFacingLimit:50,interdictorRange:11,cost:846720},{symbol:"Int_FSDInterdictor_Size4_Class3",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:10,integrity:80,powerDraw:.41,bootTime:15,interdictorFacingLimit:50,interdictorRange:14,cost:2370816},{symbol:"Int_FSDInterdictor_Size1_Class4",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:2,integrity:56,powerDraw:.28,bootTime:15,interdictorFacingLimit:50,interdictorRange:6,cost:324e3},{symbol:"Int_FSDInterdictor_Size2_Class4",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:4,integrity:71,powerDraw:.34,bootTime:15,interdictorFacingLimit:50,interdictorRange:9,cost:907200},{symbol:"Int_FSDInterdictor_Size3_Class4",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:8,integrity:90,powerDraw:.41,bootTime:15,interdictorFacingLimit:50,interdictorRange:12,cost:2540160},{symbol:"Int_FSDInterdictor_Size4_Class4",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:16,integrity:112,powerDraw:.49,bootTime:15,interdictorFacingLimit:50,interdictorRange:15,cost:7112448},{symbol:"Int_FSDInterdictor_Size1_Class5",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:1.3,integrity:48,powerDraw:.32,bootTime:15,interdictorFacingLimit:50,interdictorRange:7,cost:972e3},{symbol:"Int_FSDInterdictor_Size2_Class5",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:2.5,integrity:61,powerDraw:.39,bootTime:15,interdictorFacingLimit:50,interdictorRange:10,cost:2721600},{symbol:"Int_FSDInterdictor_Size3_Class5",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:5,integrity:77,powerDraw:.48,bootTime:15,interdictorFacingLimit:50,interdictorRange:13,cost:7620480},{symbol:"Int_FSDInterdictor_Size4_Class5",kind:"fsdInterdictors",familyId:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:10,integrity:96,powerDraw:.57,bootTime:15,interdictorFacingLimit:50,interdictorRange:16,cost:21337344},{symbol:"Int_Repairer_Size1_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"E",mass:0,integrity:32,powerDraw:.54,bootTime:9,ammoMaximum:1e3,cost:1e4},{symbol:"Int_Repairer_Size2_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"E",mass:0,integrity:41,powerDraw:.68,bootTime:9,ammoMaximum:2300,cost:18e3},{symbol:"Int_Repairer_Size3_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"E",mass:0,integrity:51,powerDraw:.81,bootTime:9,ammoMaximum:3600,cost:32400},{symbol:"Int_Repairer_Size4_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"E",mass:0,integrity:64,powerDraw:.99,bootTime:9,ammoMaximum:4900,cost:58320},{symbol:"Int_Repairer_Size5_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"E",mass:0,integrity:77,powerDraw:1.17,bootTime:9,ammoMaximum:6100,cost:104976},{symbol:"Int_Repairer_Size6_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"E",mass:0,integrity:90,powerDraw:1.4,bootTime:9,ammoMaximum:7400,cost:188957},{symbol:"Int_Repairer_Size7_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"E",mass:0,integrity:105,powerDraw:1.58,bootTime:9,ammoMaximum:8700,cost:340122},{symbol:"Int_Repairer_Size8_Class1",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"E",mass:0,integrity:120,powerDraw:1.8,bootTime:9,ammoMaximum:1e4,cost:612220},{symbol:"Int_Repairer_Size1_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"D",mass:0,integrity:24,powerDraw:.72,bootTime:9,ammoMaximum:900,cost:3e4},{symbol:"Int_Repairer_Size2_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"D",mass:0,integrity:31,powerDraw:.9,bootTime:9,ammoMaximum:2100,cost:54e3},{symbol:"Int_Repairer_Size3_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"D",mass:0,integrity:38,powerDraw:1.08,bootTime:9,ammoMaximum:3200,cost:97200},{symbol:"Int_Repairer_Size4_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"D",mass:0,integrity:48,powerDraw:1.32,bootTime:9,ammoMaximum:4400,cost:174960},{symbol:"Int_Repairer_Size5_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"D",mass:0,integrity:58,powerDraw:1.56,bootTime:9,ammoMaximum:5500,cost:314928},{symbol:"Int_Repairer_Size6_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"D",mass:0,integrity:68,powerDraw:1.86,bootTime:9,ammoMaximum:6700,cost:566870},{symbol:"Int_Repairer_Size7_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"D",mass:0,integrity:79,powerDraw:2.1,bootTime:9,ammoMaximum:7800,cost:1020367},{symbol:"Int_Repairer_Size8_Class2",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"D",mass:0,integrity:90,powerDraw:2.4,bootTime:9,ammoMaximum:9e3,cost:1836660},{symbol:"Int_Repairer_Size1_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"C",mass:0,integrity:40,powerDraw:.9,bootTime:9,ammoMaximum:1e3,cost:9e4},{symbol:"Int_Repairer_Size2_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"C",mass:0,integrity:51,powerDraw:1.13,bootTime:9,ammoMaximum:2300,cost:162e3},{symbol:"Int_Repairer_Size3_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"C",mass:0,integrity:64,powerDraw:1.35,bootTime:9,ammoMaximum:3600,cost:291600},{symbol:"Int_Repairer_Size4_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"C",mass:0,integrity:80,powerDraw:1.65,bootTime:9,ammoMaximum:4900,cost:524880},{symbol:"Int_Repairer_Size5_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"C",mass:0,integrity:96,powerDraw:1.95,bootTime:9,ammoMaximum:6100,cost:944784},{symbol:"Int_Repairer_Size6_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"C",mass:0,integrity:113,powerDraw:2.33,bootTime:9,ammoMaximum:7400,cost:1700611},{symbol:"Int_Repairer_Size7_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"C",mass:0,integrity:131,powerDraw:2.63,bootTime:9,ammoMaximum:8700,cost:3061100},{symbol:"Int_Repairer_Size8_Class3",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"C",mass:0,integrity:150,powerDraw:3,bootTime:9,ammoMaximum:1e4,cost:5509980},{symbol:"Int_Repairer_Size1_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"B",mass:0,integrity:56,powerDraw:1.04,bootTime:9,ammoMaximum:1200,cost:27e4},{symbol:"Int_Repairer_Size2_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"B",mass:0,integrity:71,powerDraw:1.29,bootTime:9,ammoMaximum:2800,cost:486e3},{symbol:"Int_Repairer_Size3_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"B",mass:0,integrity:90,powerDraw:1.55,bootTime:9,ammoMaximum:4300,cost:874800},{symbol:"Int_Repairer_Size4_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"B",mass:0,integrity:112,powerDraw:1.9,bootTime:9,ammoMaximum:5900,cost:1574640},{symbol:"Int_Repairer_Size5_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"B",mass:0,integrity:134,powerDraw:2.24,bootTime:9,ammoMaximum:7300,cost:2834352},{symbol:"Int_Repairer_Size6_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"B",mass:0,integrity:158,powerDraw:2.67,bootTime:9,ammoMaximum:8900,cost:5101834},{symbol:"Int_Repairer_Size7_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"B",mass:0,integrity:183,powerDraw:3.02,bootTime:9,ammoMaximum:10400,cost:9183300},{symbol:"Int_Repairer_Size8_Class4",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"B",mass:0,integrity:210,powerDraw:3.45,bootTime:9,ammoMaximum:12e3,cost:16529941},{symbol:"Int_Repairer_Size1_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:1,rating:"A",mass:0,integrity:46,powerDraw:1.26,bootTime:9,ammoMaximum:1100,cost:81e4},{symbol:"Int_Repairer_Size2_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:2,rating:"A",mass:0,integrity:59,powerDraw:1.58,bootTime:9,ammoMaximum:2500,cost:1458e3},{symbol:"Int_Repairer_Size3_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:3,rating:"A",mass:0,integrity:74,powerDraw:1.89,bootTime:9,ammoMaximum:4e3,cost:2624400},{symbol:"Int_Repairer_Size4_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:4,rating:"A",mass:0,integrity:92,powerDraw:2.31,bootTime:9,ammoMaximum:5400,cost:4723920},{symbol:"Int_Repairer_Size5_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:5,rating:"A",mass:0,integrity:110,powerDraw:2.73,bootTime:9,ammoMaximum:6700,cost:8503056},{symbol:"Int_Repairer_Size6_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:6,rating:"A",mass:0,integrity:130,powerDraw:3.26,bootTime:9,ammoMaximum:8100,cost:15305501},{symbol:"Int_Repairer_Size7_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:7,rating:"A",mass:0,integrity:151,powerDraw:3.68,bootTime:9,ammoMaximum:9600,cost:27549901},{symbol:"Int_Repairer_Size8_Class5",kind:"autoFieldMaintenanceUnits",familyId:"afms",name:"Auto Field-Maintenance Unit",class:8,rating:"A",mass:0,integrity:173,powerDraw:4.2,bootTime:9,ammoMaximum:11e3,cost:49589823},{symbol:"Int_HullReinforcement_Size1_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:1,rating:"E",mass:2,kineticResistance:.005,thermalResistance:.005,explosiveResistance:.005,causticResistance:0,hullReinforcement:80,cost:5e3},{symbol:"Int_HullReinforcement_Size1_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:1,rating:"D",mass:1,kineticResistance:.005,thermalResistance:.005,explosiveResistance:.005,causticResistance:0,hullReinforcement:110,cost:15e3},{symbol:"Int_HullReinforcement_Size2_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:2,rating:"E",mass:4,kineticResistance:.01,thermalResistance:.01,explosiveResistance:.01,causticResistance:0,hullReinforcement:150,cost:12e3},{symbol:"Int_HullReinforcement_Size2_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:2,rating:"D",mass:2,kineticResistance:.01,thermalResistance:.01,explosiveResistance:.01,causticResistance:0,hullReinforcement:190,cost:36e3},{symbol:"Int_HullReinforcement_Size3_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:3,rating:"E",mass:8,kineticResistance:.015,thermalResistance:.015,explosiveResistance:.015,causticResistance:0,hullReinforcement:230,cost:28e3},{symbol:"Int_HullReinforcement_Size3_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:3,rating:"D",mass:4,kineticResistance:.015,thermalResistance:.015,explosiveResistance:.015,causticResistance:0,hullReinforcement:260,cost:84e3},{symbol:"Int_HullReinforcement_Size4_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:4,rating:"E",mass:16,kineticResistance:.02,thermalResistance:.02,explosiveResistance:.02,causticResistance:0,hullReinforcement:300,cost:65e3},{symbol:"Int_HullReinforcement_Size4_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:4,rating:"D",mass:8,kineticResistance:.02,thermalResistance:.02,explosiveResistance:.02,causticResistance:0,hullReinforcement:330,cost:195e3},{symbol:"Int_HullReinforcement_Size5_Class1",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:5,rating:"E",mass:32,kineticResistance:.025,thermalResistance:.025,explosiveResistance:.025,causticResistance:0,hullReinforcement:360,cost:15e4},{symbol:"Int_HullReinforcement_Size5_Class2",kind:"hullReinforcements",familyId:"hullReinforcements",name:"Hull Reinforcement Package",class:5,rating:"D",mass:16,kineticResistance:.025,thermalResistance:.025,explosiveResistance:.025,causticResistance:0,hullReinforcement:390,cost:45e4},{symbol:"Int_DroneControl_Collection_Size1_Class1",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"E",mass:.5,integrity:24,powerDraw:.14,bootTime:6,cost:600},{symbol:"Int_DroneControl_Collection_Size1_Class2",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.18,bootTime:6,cost:1200},{symbol:"Int_DroneControl_Collection_Size1_Class3",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:6,cost:2400},{symbol:"Int_DroneControl_Collection_Size1_Class4",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.28,bootTime:6,cost:4800},{symbol:"Int_DroneControl_Collection_Size1_Class5",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:1,rating:"A",mass:2,integrity:56,powerDraw:.32,bootTime:6,cost:9600},{symbol:"Int_DroneControl_Collection_Size3_Class1",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"E",mass:2,integrity:38,powerDraw:.2,bootTime:6,cost:5400},{symbol:"Int_DroneControl_Collection_Size3_Class2",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.27,bootTime:6,cost:10800},{symbol:"Int_DroneControl_Collection_Size3_Class3",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:6,cost:21600},{symbol:"Int_DroneControl_Collection_Size3_Class4",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.41,bootTime:6,cost:43200},{symbol:"Int_DroneControl_Collection_Size3_Class5",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:3,rating:"A",mass:8,integrity:90,powerDraw:.48,bootTime:6,cost:86400},{symbol:"Int_DroneControl_Collection_Size5_Class1",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"E",mass:8,integrity:58,powerDraw:.3,bootTime:6,cost:48600},{symbol:"Int_DroneControl_Collection_Size5_Class2",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.4,bootTime:6,cost:97200},{symbol:"Int_DroneControl_Collection_Size5_Class3",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:6,cost:194400},{symbol:"Int_DroneControl_Collection_Size5_Class4",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.6,bootTime:6,cost:388800},{symbol:"Int_DroneControl_Collection_Size5_Class5",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:5,rating:"A",mass:32,integrity:134,powerDraw:.7,bootTime:6,cost:777600},{symbol:"Int_DroneControl_Collection_Size7_Class1",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"E",mass:32,integrity:79,powerDraw:.41,bootTime:6,cost:437400},{symbol:"Int_DroneControl_Collection_Size7_Class2",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.55,bootTime:6,cost:874800},{symbol:"Int_DroneControl_Collection_Size7_Class3",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:6,cost:1749600},{symbol:"Int_DroneControl_Collection_Size7_Class4",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.83,bootTime:6,cost:3499200},{symbol:"Int_DroneControl_Collection_Size7_Class5",kind:"collectionLimpets",familyId:"collectorLimpets",name:"Collector Limpet Controller",class:7,rating:"A",mass:128,integrity:183,powerDraw:.97,bootTime:6,cost:6998400},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class1",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:600},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class2",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.14,bootTime:10,cost:1200},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class3",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:10,cost:2400},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class4",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.32,bootTime:10,cost:4800},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class5",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"A",mass:1.3,integrity:56,powerDraw:.28,bootTime:10,cost:9600},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class1",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"E",mass:5,integrity:38,powerDraw:.27,bootTime:10,cost:5400},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class2",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:10800},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class3",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:10,cost:21600},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class4",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.48,bootTime:10,cost:43200},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class5",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"A",mass:5,integrity:90,powerDraw:.41,bootTime:10,cost:86400},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class1",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"E",mass:20,integrity:58,powerDraw:.4,bootTime:10,cost:48600},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class2",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.3,bootTime:10,cost:97200},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class3",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:10,cost:194400},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class4",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.72,bootTime:10,cost:388800},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class5",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"A",mass:20,integrity:134,powerDraw:.6,bootTime:10,cost:777600},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class1",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"E",mass:80,integrity:79,powerDraw:.55,bootTime:10,cost:437400},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class2",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.41,bootTime:10,cost:874800},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class3",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:10,cost:1749600},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class4",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:3499200},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class5",kind:"fuelTransferLimpets",familyId:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"A",mass:80,integrity:183,powerDraw:.83,bootTime:10,cost:6998400},{symbol:"Int_DroneControl_Prospector_Size1_Class1",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:4,cost:600},{symbol:"Int_DroneControl_Prospector_Size1_Class2",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.14,bootTime:4,cost:1200},{symbol:"Int_DroneControl_Prospector_Size1_Class3",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:4,cost:2400},{symbol:"Int_DroneControl_Prospector_Size1_Class4",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.32,bootTime:4,cost:4800},{symbol:"Int_DroneControl_Prospector_Size1_Class5",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"A",mass:1.3,integrity:56,powerDraw:.28,bootTime:4,cost:9600},{symbol:"Int_DroneControl_Prospector_Size3_Class1",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"E",mass:5,integrity:38,powerDraw:.27,bootTime:4,cost:5400},{symbol:"Int_DroneControl_Prospector_Size3_Class2",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.2,bootTime:4,cost:10800},{symbol:"Int_DroneControl_Prospector_Size3_Class3",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:4,cost:21600},{symbol:"Int_DroneControl_Prospector_Size3_Class4",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.48,bootTime:4,cost:43200},{symbol:"Int_DroneControl_Prospector_Size3_Class5",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"A",mass:5,integrity:90,powerDraw:.41,bootTime:4,cost:86400},{symbol:"Int_DroneControl_Prospector_Size5_Class1",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"E",mass:20,integrity:58,powerDraw:.4,bootTime:4,cost:48600},{symbol:"Int_DroneControl_Prospector_Size5_Class2",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.3,bootTime:4,cost:97200},{symbol:"Int_DroneControl_Prospector_Size5_Class3",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:4,cost:194400},{symbol:"Int_DroneControl_Prospector_Size5_Class4",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.72,bootTime:4,cost:388800},{symbol:"Int_DroneControl_Prospector_Size5_Class5",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"A",mass:20,integrity:134,powerDraw:.6,bootTime:4,cost:777600},{symbol:"Int_DroneControl_Prospector_Size7_Class1",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"E",mass:80,integrity:79,powerDraw:.55,bootTime:4,cost:437400},{symbol:"Int_DroneControl_Prospector_Size7_Class2",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.41,bootTime:4,cost:874800},{symbol:"Int_DroneControl_Prospector_Size7_Class3",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:4,cost:1749600},{symbol:"Int_DroneControl_Prospector_Size7_Class4",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.97,bootTime:4,cost:3499200},{symbol:"Int_DroneControl_Prospector_Size7_Class5",kind:"prospectingLimpets",familyId:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"A",mass:80,integrity:183,powerDraw:.83,bootTime:4,cost:6998400},{symbol:"Int_ShieldGenerator_Size1_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:1,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:2.6,integrity:48,powerDraw:2.52,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.2,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:132200},{symbol:"Int_ShieldGenerator_Size2_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:2,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:5,integrity:61,powerDraw:3.15,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.2,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:240340},{symbol:"Int_ShieldGenerator_Size3_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:3,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:10,integrity:77,powerDraw:3.78,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.3,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:761870},{symbol:"Int_ShieldGenerator_Size4_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:4,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:20,integrity:96,powerDraw:4.62,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.66,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:2415120},{symbol:"Int_ShieldGenerator_Size5_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:5,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:40,integrity:115,powerDraw:5.46,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:2.34,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:7655930},{symbol:"Int_ShieldGenerator_Size6_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:6,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:80,integrity:136,powerDraw:6.51,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:3.2,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:24269300},{symbol:"Int_ShieldGenerator_Size7_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:7,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:160,integrity:157,powerDraw:7.35,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1.06,shieldBrokenRegenRate:4.25,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:76933670},{symbol:"Int_ShieldGenerator_Size8_Class5_Strong",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Prismatic Shield Generator",class:8,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:320,integrity:180,powerDraw:8.4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1.35,shieldBrokenRegenRate:5.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:243879730},{symbol:"Int_ShieldGenerator_Size1_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:1,rating:"C",exclusionGroup:"shieldGenerator",mass:1.3,integrity:40,powerDraw:1.2,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:2.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:7713},{symbol:"Int_ShieldGenerator_Size2_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:2,rating:"C",exclusionGroup:"shieldGenerator",mass:2.5,integrity:51,powerDraw:1.5,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:2.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:26705},{symbol:"Int_ShieldGenerator_Size3_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:3,rating:"C",exclusionGroup:"shieldGenerator",mass:5,integrity:64,powerDraw:1.8,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:2.8,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:84653},{symbol:"Int_ShieldGenerator_Size4_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:4,rating:"C",exclusionGroup:"shieldGenerator",mass:10,integrity:80,powerDraw:2.2,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:3.8,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:268347},{symbol:"Int_ShieldGenerator_Size5_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:5,rating:"C",exclusionGroup:"shieldGenerator",mass:20,integrity:96,powerDraw:2.6,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:2.25,shieldBrokenRegenRate:5.63,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:850659},{symbol:"Int_ShieldGenerator_Size6_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:6,rating:"C",exclusionGroup:"shieldGenerator",mass:40,integrity:113,powerDraw:3.1,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:3.2,shieldBrokenRegenRate:8,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:2696589},{symbol:"Int_ShieldGenerator_Size7_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:7,rating:"C",exclusionGroup:"shieldGenerator",mass:80,integrity:131,powerDraw:3.5,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:4.4,shieldBrokenRegenRate:11,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:8548185},{symbol:"Int_ShieldGenerator_Size8_Class3_Fast",kind:"shieldGenerators",familyId:"shieldGenerators",name:"Bi-Weave Shield Generator",class:8,rating:"C",exclusionGroup:"shieldGenerator",mass:160,integrity:150,powerDraw:4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:5.76,shieldBrokenRegenRate:14.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:27097748},{symbol:"Int_BuggyBay_Size2_Class1",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:2,rating:"H",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:12,integrity:30,powerDraw:.25,bootTime:5,cost:18e3},{symbol:"Int_BuggyBay_Size2_Class2",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:2,rating:"G",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:6,integrity:30,powerDraw:.75,bootTime:5,cost:21600},{symbol:"Int_BuggyBay_Size4_Class1",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:4,rating:"H",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:20,integrity:30,powerDraw:.4,bootTime:5,cost:72e3},{symbol:"Int_BuggyBay_Size4_Class2",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:4,rating:"G",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:10,integrity:30,powerDraw:1.2,bootTime:5,cost:86400},{symbol:"Int_BuggyBay_Size6_Class1",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:6,rating:"H",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:34,integrity:30,powerDraw:.6,bootTime:5,cost:576e3},{symbol:"Int_BuggyBay_Size6_Class2",familyId:"planetaryVehicleHangars",name:"Planetary Vehicle Hangar",class:6,rating:"G",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:17,integrity:30,powerDraw:1.8,bootTime:5,cost:691200},{symbol:"Int_PlanetApproachSuite",familyId:"planetaryApproachSuites",name:"Planetary Approach Suite",class:1,rating:"I",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,powerDraw:0,restrictedToSlot:"planetaryApproachSuite",cost:500},{symbol:"Int_CorrosionProofCargoRack_Size1_Class1",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:1,cost:6250},{symbol:"Int_CorrosionProofCargoRack_Size1_Class2",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:1,rating:"F",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:2,cost:12560},{symbol:"Int_CorrosionProofCargoRack_Size5_Class1",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:32},{symbol:"Int_CorrosionProofCargoRack_Size6_Class1",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:6,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:64},{symbol:"ModularCargoBayDoor",familyId:"cargoHatches",name:"Cargo Hatch",class:1,rating:"H",mass:0,integrity:20,powerDraw:.6,bootTime:2,cost:0},{symbol:"Int_PassengerCabin_Size4_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:4,rating:"E",mass:10,cost:18954},{symbol:"Int_PassengerCabin_Size4_Class2",familyId:"passengerCabins",name:"Business Class Passenger Cabin",class:4,rating:"D",mass:10,cost:56862},{symbol:"Int_PassengerCabin_Size4_Class3",familyId:"passengerCabins",name:"First Class Passenger Cabin",class:4,rating:"C",mass:10,cost:170586},{symbol:"Int_PassengerCabin_Size5_Class4",familyId:"passengerCabins",name:"Luxury Class Passenger Cabin",class:5,rating:"B",mass:20,cost:1658095},{symbol:"Int_PassengerCabin_Size6_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:6,rating:"E",mass:40,cost:61410},{symbol:"Int_PassengerCabin_Size6_Class2",familyId:"passengerCabins",name:"Business Class Passenger Cabin",class:6,rating:"D",mass:40,cost:184232},{symbol:"Int_PassengerCabin_Size6_Class3",familyId:"passengerCabins",name:"First Class Passenger Cabin",class:6,rating:"C",mass:40,cost:552698},{symbol:"Int_PassengerCabin_Size6_Class4",familyId:"passengerCabins",name:"Luxury Class Passenger Cabin",class:6,rating:"B",mass:40,cost:4974287},{symbol:"Int_FighterBay_Size5_Class1",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:20,integrity:60,powerDraw:.25,bootTime:5,cost:575643},{symbol:"Int_FighterBay_Size6_Class1",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:40,integrity:80,powerDraw:.35,bootTime:5,cost:1869340},{symbol:"Int_FighterBay_Size7_Class1",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:60,integrity:120,powerDraw:.35,bootTime:5,cost:2369320},{symbol:"Int_FighterBay_Size5_Class1_Free",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIFIGHTERBAY_FREE",mass:20,integrity:60,powerDraw:.25,bootTime:5},{symbol:"Int_FighterBay_Size6_Class1_Free",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIFIGHTERBAY_FREE",mass:40,integrity:80,powerDraw:.35,bootTime:5},{symbol:"Int_FighterBay_Size7_Class1_Free",familyId:"vesselHangars",name:"Mk I Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIFIGHTERBAY_FREE",mass:60,integrity:120,powerDraw:.35,bootTime:5},{symbol:"Int_FighterBayMk2_Size5_Class1",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",mass:10,integrity:60,powerDraw:.25,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size6_Class1",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",mass:20,integrity:80,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size7_Class1",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",mass:30,integrity:120,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size5_Class1_Free",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIIFIGHTERBAY_FREE",mass:10,integrity:60,powerDraw:.25,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size6_Class1_Free",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIIFIGHTERBAY_FREE",mass:20,integrity:80,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size7_Class1_Free",familyId:"vesselHangars",name:"Mk II Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIIFIGHTERBAY_FREE",mass:30,integrity:120,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_PassengerCabin_Size2_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:2,rating:"E",mass:2.5,cost:4312},{symbol:"Int_PassengerCabin_Size3_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:3,rating:"E",mass:5,cost:8657},{symbol:"Int_PassengerCabin_Size3_Class2",familyId:"passengerCabins",name:"Business Class Passenger Cabin",class:3,rating:"D",mass:5,cost:26705},{symbol:"Int_PassengerCabin_Size5_Class1",familyId:"passengerCabins",name:"Economy Class Passenger Cabin",class:5,rating:"E",mass:20,cost:34954},{symbol:"Int_PassengerCabin_Size5_Class2",familyId:"passengerCabins",name:"Business Class Passenger Cabin",class:5,rating:"D",mass:20,cost:92362},{symbol:"Int_PassengerCabin_Size5_Class3",familyId:"passengerCabins",name:"First Class Passenger Cabin",class:5,rating:"C",mass:20,cost:340526},{symbol:"Int_ModuleReinforcement_Size1_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:1,rating:"E",mass:2,integrity:77,moduleProtection:.3,cost:5e3},{symbol:"Int_ModuleReinforcement_Size1_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:1,rating:"D",mass:1,integrity:70,moduleProtection:.6,cost:15e3},{symbol:"Int_ModuleReinforcement_Size2_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:2,rating:"E",mass:4,integrity:115,moduleProtection:.3,cost:12e3},{symbol:"Int_ModuleReinforcement_Size2_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:2,rating:"D",mass:2,integrity:105,moduleProtection:.6,cost:36e3},{symbol:"Int_ModuleReinforcement_Size3_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:3,rating:"E",mass:8,integrity:170,moduleProtection:.3,cost:28e3},{symbol:"Int_ModuleReinforcement_Size3_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:3,rating:"D",mass:4,integrity:155,moduleProtection:.6,cost:84e3},{symbol:"Int_ModuleReinforcement_Size4_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:4,rating:"E",mass:16,integrity:260,moduleProtection:.3,cost:65e3},{symbol:"Int_ModuleReinforcement_Size4_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:4,rating:"D",mass:8,integrity:235,moduleProtection:.6,cost:195e3},{symbol:"Int_ModuleReinforcement_Size5_Class1",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:5,rating:"E",mass:32,integrity:385,moduleProtection:.3,cost:15e4},{symbol:"Int_ModuleReinforcement_Size5_Class2",familyId:"moduleReinforcements",name:"Module Reinforcement Package",class:5,rating:"D",mass:16,integrity:350,moduleProtection:.6,cost:45e4},{symbol:"Int_DroneControl_Repair_Size1_Class1",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:600},{symbol:"Int_DroneControl_Repair_Size1_Class2",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.14,bootTime:10,cost:1200},{symbol:"Int_DroneControl_Repair_Size1_Class3",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:10,cost:2400},{symbol:"Int_DroneControl_Repair_Size1_Class4",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.32,bootTime:10,cost:4800},{symbol:"Int_DroneControl_Repair_Size1_Class5",familyId:"repairLimpets",name:"Repair Limpet Controller",class:1,rating:"A",mass:1.3,integrity:56,powerDraw:.28,bootTime:10,cost:9600},{symbol:"Int_DroneControl_Repair_Size3_Class1",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"E",mass:5,integrity:38,powerDraw:.27,bootTime:10,cost:5400},{symbol:"Int_DroneControl_Repair_Size3_Class2",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:10800},{symbol:"Int_DroneControl_Repair_Size3_Class3",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:10,cost:21600},{symbol:"Int_DroneControl_Repair_Size3_Class4",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.48,bootTime:10,cost:43200},{symbol:"Int_DroneControl_Repair_Size3_Class5",familyId:"repairLimpets",name:"Repair Limpet Controller",class:3,rating:"A",mass:5,integrity:90,powerDraw:.41,bootTime:10,cost:86400},{symbol:"Int_DroneControl_Repair_Size5_Class1",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"E",mass:20,integrity:58,powerDraw:.4,bootTime:10,cost:48600},{symbol:"Int_DroneControl_Repair_Size5_Class2",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.3,bootTime:10,cost:97200},{symbol:"Int_DroneControl_Repair_Size5_Class3",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:10,cost:194400},{symbol:"Int_DroneControl_Repair_Size5_Class4",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.72,bootTime:10,cost:388800},{symbol:"Int_DroneControl_Repair_Size5_Class5",familyId:"repairLimpets",name:"Repair Limpet Controller",class:5,rating:"A",mass:20,integrity:134,powerDraw:.6,bootTime:10,cost:777600},{symbol:"Int_DroneControl_Repair_Size7_Class1",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"E",mass:80,integrity:79,powerDraw:.55,bootTime:10,cost:437400},{symbol:"Int_DroneControl_Repair_Size7_Class2",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.41,bootTime:10,cost:874800},{symbol:"Int_DroneControl_Repair_Size7_Class3",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:10,cost:1749600},{symbol:"Int_DroneControl_Repair_Size7_Class4",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:3499200},{symbol:"Int_DroneControl_Repair_Size7_Class5",familyId:"repairLimpets",name:"Repair Limpet Controller",class:7,rating:"A",mass:80,integrity:183,powerDraw:.83,bootTime:10,cost:6998400},{symbol:"Int_DroneControl_UnkVesselResearch",familyId:"researchLimpets",name:"Research Limpet Controller",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:1.3,integrity:20,powerDraw:.4,bootTime:0,cost:1749600},{symbol:"Int_MetaAlloyHullReinforcement_Size1_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:2,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:72,cost:7501},{symbol:"Int_MetaAlloyHullReinforcement_Size1_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:1,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:99,cost:22501},{symbol:"Int_MetaAlloyHullReinforcement_Size2_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:4,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:135,cost:18e3},{symbol:"Int_MetaAlloyHullReinforcement_Size2_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:2,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:171,cost:54e3},{symbol:"Int_MetaAlloyHullReinforcement_Size3_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:8,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:207,cost:42e3},{symbol:"Int_MetaAlloyHullReinforcement_Size3_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:4,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:234,cost:126e3},{symbol:"Int_MetaAlloyHullReinforcement_Size4_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:16,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:270,cost:97501},{symbol:"Int_MetaAlloyHullReinforcement_Size4_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:8,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:297,cost:292501},{symbol:"Int_MetaAlloyHullReinforcement_Size5_Class1",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:32,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:324,cost:225001},{symbol:"Int_MetaAlloyHullReinforcement_Size5_Class2",familyId:"hullReinforcements",name:"Meta Alloy Hull Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:16,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:351,cost:675001},{symbol:"Int_DroneControl_Decontamination_Size1_Class1",familyId:"decontaminationLimpets",name:"Decontamination Limpet Controller",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:3600},{symbol:"Int_DroneControl_Decontamination_Size3_Class1",familyId:"decontaminationLimpets",name:"Decontamination Limpet Controller",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:16200},{symbol:"Int_DroneControl_Decontamination_Size5_Class1",familyId:"decontaminationLimpets",name:"Decontamination Limpet Controller",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:20,integrity:96,powerDraw:.5,bootTime:10,cost:145800},{symbol:"Int_DroneControl_Decontamination_Size7_Class1",familyId:"decontaminationLimpets",name:"Decontamination Limpet Controller",class:7,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:1312200},{symbol:"Int_CorrosionProofCargoRack_Size4_Class1",familyId:"cargoRacks",name:"Corrosion Resistant Cargo Rack",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_CORROSIONCARGO_SIZE4",mass:0,cargoCapacity:16,cost:94330},{symbol:"Int_GuardianHullReinforcement_Size1_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:2,powerDraw:.45,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:100,cost:1e4},{symbol:"Int_GuardianHullReinforcement_Size1_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:1,powerDraw:.56,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:138,cost:3e4},{symbol:"Int_GuardianHullReinforcement_Size2_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:4,powerDraw:.68,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:188,cost:24e3},{symbol:"Int_GuardianHullReinforcement_Size2_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:2,powerDraw:.79,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:238,cost:72e3},{symbol:"Int_GuardianHullReinforcement_Size3_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:8,powerDraw:.9,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:288,cost:57600},{symbol:"Int_GuardianHullReinforcement_Size3_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:4,powerDraw:1.01,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:325,cost:172800},{symbol:"Int_GuardianHullReinforcement_Size4_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:16,powerDraw:1.13,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:375,cost:138240},{symbol:"Int_GuardianHullReinforcement_Size4_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:8,powerDraw:1.24,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:413,cost:414720},{symbol:"Int_GuardianHullReinforcement_Size5_Class1",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:32,powerDraw:1.35,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:450,cost:331778},{symbol:"Int_GuardianHullReinforcement_Size5_Class2",kind:"guardianHullReinforcements",familyId:"hullReinforcements",name:"Guardian Hull Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:16,powerDraw:1.46,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:488,cost:995330},{symbol:"Int_GuardianModuleReinforcement_Size1_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:2,integrity:85,powerDraw:.27,bootTime:0,moduleProtection:.3,cost:1e4},{symbol:"Int_GuardianModuleReinforcement_Size1_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:1,integrity:77,powerDraw:.34,bootTime:0,moduleProtection:.6,cost:3e4},{symbol:"Int_GuardianModuleReinforcement_Size2_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:4,integrity:127,powerDraw:.41,bootTime:0,moduleProtection:.3,cost:24e3},{symbol:"Int_GuardianModuleReinforcement_Size2_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:2,integrity:116,powerDraw:.47,bootTime:0,moduleProtection:.6,cost:72e3},{symbol:"Int_GuardianModuleReinforcement_Size3_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:8,integrity:187,powerDraw:.54,bootTime:0,moduleProtection:.3,cost:57600},{symbol:"Int_GuardianModuleReinforcement_Size3_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:4,integrity:171,powerDraw:.61,bootTime:0,moduleProtection:.6,cost:172800},{symbol:"Int_GuardianModuleReinforcement_Size4_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:16,integrity:286,powerDraw:.68,bootTime:0,moduleProtection:.3,cost:138240},{symbol:"Int_GuardianModuleReinforcement_Size4_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:8,integrity:259,powerDraw:.74,bootTime:0,moduleProtection:.6,cost:414720},{symbol:"Int_GuardianModuleReinforcement_Size5_Class1",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:32,integrity:424,powerDraw:.81,bootTime:0,moduleProtection:.3,cost:331778},{symbol:"Int_GuardianModuleReinforcement_Size5_Class2",kind:"moduleReinforcements",familyId:"moduleReinforcements",name:"Guardian Module Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:16,integrity:385,powerDraw:.88,bootTime:0,moduleProtection:.6,cost:995330},{symbol:"Int_GuardianShieldReinforcement_Size1_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:2,integrity:36,powerDraw:.35,bootTime:0,shieldAddition:44,cost:1e4},{symbol:"Int_GuardianShieldReinforcement_Size1_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:1,integrity:42,powerDraw:.46,bootTime:0,shieldAddition:61,cost:3e4},{symbol:"Int_GuardianShieldReinforcement_Size2_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:4,integrity:40,powerDraw:.56,bootTime:0,shieldAddition:83,cost:24e3},{symbol:"Int_GuardianShieldReinforcement_Size2_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:2,integrity:48,powerDraw:.67,bootTime:0,shieldAddition:105,cost:72e3},{symbol:"Int_GuardianShieldReinforcement_Size3_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:8,integrity:45,powerDraw:.74,bootTime:0,shieldAddition:127,cost:57600},{symbol:"Int_GuardianShieldReinforcement_Size3_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:4,integrity:55,powerDraw:.84,bootTime:0,shieldAddition:143,cost:172800},{symbol:"Int_GuardianShieldReinforcement_Size4_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:16,integrity:51,powerDraw:.95,bootTime:0,shieldAddition:165,cost:138240},{symbol:"Int_GuardianShieldReinforcement_Size4_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:8,integrity:63,powerDraw:1.05,bootTime:0,shieldAddition:182,cost:414720},{symbol:"Int_GuardianShieldReinforcement_Size5_Class1",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:32,integrity:58,powerDraw:1.16,bootTime:0,shieldAddition:198,cost:331778},{symbol:"Int_GuardianShieldReinforcement_Size5_Class2",kind:"shieldReinforcements",familyId:"guardianShieldReinforcementPackages",name:"Guardian Shield Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:16,integrity:72,powerDraw:1.26,bootTime:0,shieldAddition:215,cost:995330},{symbol:"Int_GuardianFSDBooster_Size1",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:1,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:.75,bootTime:15,jumpBoost:4,cost:405022},{symbol:"Int_GuardianFSDBooster_Size2",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:2,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:.98,bootTime:15,jumpBoost:6,cost:810521},{symbol:"Int_GuardianFSDBooster_Size3",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:3,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:1.27,bootTime:15,jumpBoost:7.75,cost:1620431},{symbol:"Int_GuardianFSDBooster_Size4",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:4,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:1.65,bootTime:15,jumpBoost:9.25,cost:3245013},{symbol:"Int_GuardianFSDBooster_Size5",kind:"fsdBoosters",familyId:"fsdBoosters",name:"Guardian FSD Booster",class:5,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:2.14,bootTime:15,jumpBoost:10.5,cost:6483101},{symbol:"Int_GuardianPowerDistributor_Size1",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:1,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:1.4,integrity:35,powerDraw:.62,bootTime:5,weaponsCapacity:10,weaponsRecharge:2.5,enginesCapacity:9,enginesRecharge:.8,systemsCapacity:10,systemsRecharge:.8,cost:40957},{symbol:"Int_GuardianPowerDistributor_Size2",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:2,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:2.6,integrity:45,powerDraw:.73,bootTime:5,weaponsCapacity:13,weaponsRecharge:3.1,enginesCapacity:11,enginesRecharge:1,systemsCapacity:11,systemsRecharge:1,cost:111600},{symbol:"Int_GuardianPowerDistributor_Size3",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:3,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:5.25,integrity:56,powerDraw:.78,bootTime:5,weaponsCapacity:17,weaponsRecharge:3.9,enginesCapacity:14,enginesRecharge:1.7,systemsCapacity:14,systemsRecharge:1.7,cost:311365},{symbol:"Int_GuardianPowerDistributor_Size4",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:4,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:10.5,integrity:70,powerDraw:.87,bootTime:5,weaponsCapacity:22,weaponsRecharge:4.9,enginesCapacity:17,enginesRecharge:2.5,systemsCapacity:17,systemsRecharge:2.5,cost:868708},{symbol:"Int_GuardianPowerDistributor_Size5",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:5,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:21,integrity:99,powerDraw:.96,bootTime:5,weaponsCapacity:29,weaponsRecharge:6,enginesCapacity:22,enginesRecharge:3.3,systemsCapacity:22,systemsRecharge:3.3,cost:2423690},{symbol:"Int_GuardianPowerDistributor_Size6",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:6,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:42,integrity:99,powerDraw:1.07,bootTime:5,weaponsCapacity:35,weaponsRecharge:7.3,enginesCapacity:26,enginesRecharge:4.2,systemsCapacity:26,systemsRecharge:4.2,cost:6762091},{symbol:"Int_GuardianPowerDistributor_Size7",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:7,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:84,integrity:115,powerDraw:1.16,bootTime:5,weaponsCapacity:43,weaponsRecharge:8.5,enginesCapacity:31,enginesRecharge:5.2,systemsCapacity:31,systemsRecharge:5.2,cost:18866235},{symbol:"Int_GuardianPowerDistributor_Size8",kind:"guardianPowerDistributors",familyId:"guardianHybridPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:8,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:168,integrity:132,powerDraw:1.25,bootTime:5,weaponsCapacity:50,weaponsRecharge:10.1,enginesCapacity:36,enginesRecharge:6.2,systemsCapacity:36,systemsRecharge:6.2,cost:52636793},{symbol:"Int_GuardianPowerplant_Size2",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:2,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:1.5,integrity:56,powerCapacity:12.7,heatEfficiency:.5,cost:192165},{symbol:"Int_GuardianPowerplant_Size3",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:3,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:2.9,integrity:70,powerCapacity:15.8,heatEfficiency:.5,cost:576493},{symbol:"Int_GuardianPowerplant_Size4",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:4,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:5.9,integrity:88,powerCapacity:20.6,heatEfficiency:.5,cost:1729480},{symbol:"Int_GuardianPowerplant_Size5",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:5,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:11.7,integrity:106,powerCapacity:26.9,heatEfficiency:.5,cost:5188441},{symbol:"Int_GuardianPowerplant_Size6",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:6,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:23.4,integrity:124,powerCapacity:33.3,heatEfficiency:.5,cost:15565317},{symbol:"Int_GuardianPowerplant_Size7",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:7,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:46.8,integrity:144,powerCapacity:39.6,heatEfficiency:.5,cost:46695951},{symbol:"Int_GuardianPowerplant_Size8",kind:"guardianPowerPlants",familyId:"guardianHybridPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:8,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:93.6,integrity:165,powerCapacity:47.5,heatEfficiency:.5,cost:140087850},{symbol:"Int_DroneControl_Recon_Size1_Class1",familyId:"reconLimpets",name:"Recon Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:2600},{symbol:"Int_DroneControl_Recon_Size3_Class1",familyId:"reconLimpets",name:"Recon Limpet Controller",class:3,rating:"E",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:8200},{symbol:"Int_DroneControl_Recon_Size5_Class1",familyId:"reconLimpets",name:"Recon Limpet Controller",class:5,rating:"E",mass:20,integrity:96,powerDraw:.5,bootTime:9.85,cost:75800},{symbol:"Int_DroneControl_Recon_Size7_Class1",familyId:"reconLimpets",name:"Recon Limpet Controller",class:7,rating:"E",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:612200},{symbol:"Int_SupercruiseAssist",familyId:"flightAssists",name:"Supercruise Assist",class:1,rating:"E",exclusionGroup:"supercruiseAssist",mass:0,integrity:10,powerDraw:.3,bootTime:3,cost:9121},{symbol:"Int_DockingComputer_Advanced",familyId:"dockingComputers",name:"Advanced Docking Computer",class:1,rating:"E",exclusionGroup:"dockingComputer",mass:0,integrity:10,powerDraw:.45,bootTime:3,cost:13507},{symbol:"Int_PlanetApproachSuite_Advanced",familyId:"planetaryApproachSuites",name:"Advanced Planetary Approach Suite",class:1,rating:"I",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,powerDraw:0,restrictedToSlot:"planetaryApproachSuite",cost:500},{symbol:"Int_MultiDroneControl_Mining_Size3_Class1",familyId:"miningMultiLimpetControllers",name:"Mining Multi Limpet Controller",class:3,rating:"E",exclusionGroup:"multiLimpetController",mass:12,integrity:45,powerDraw:.5,bootTime:6,cost:15e3},{symbol:"Int_MultiDroneControl_Mining_Size3_Class3",familyId:"miningMultiLimpetControllers",name:"Mining Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Operations_Size3_Class3",familyId:"multiLimpetControllers",name:"Operations Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Operations_Size3_Class4",familyId:"multiLimpetControllers",name:"Operations Multi Limpet Controller",class:3,rating:"B",exclusionGroup:"multiLimpetController",mass:15,integrity:80,powerDraw:.3,bootTime:6,cost:8e4},{symbol:"Int_MultiDroneControl_Rescue_Size3_Class2",familyId:"multiLimpetControllers",name:"Rescue Multi Limpet Controller",class:3,rating:"D",exclusionGroup:"multiLimpetController",mass:8,integrity:58,powerDraw:.4,bootTime:6,cost:3e4},{symbol:"Int_MultiDroneControl_Rescue_Size3_Class3",familyId:"multiLimpetControllers",name:"Rescue Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Xeno_Size3_Class3",familyId:"multiLimpetControllers",name:"Xeno Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Xeno_Size3_Class4",familyId:"multiLimpetControllers",name:"Xeno Multi Limpet Controller",class:3,rating:"B",exclusionGroup:"multiLimpetController",mass:15,integrity:80,powerDraw:.3,bootTime:6,cost:8e4},{symbol:"Int_MultiDroneControl_Universal_Size7_Class3",familyId:"multiLimpetControllers",name:"Universal Multi Limpet Controller",class:7,rating:"C",exclusionGroup:"multiLimpetController",mass:125,integrity:150,powerDraw:.8,bootTime:6,cost:4e6},{symbol:"Int_MultiDroneControl_Universal_Size7_Class5",familyId:"multiLimpetControllers",name:"Universal Multi Limpet Controller",class:7,rating:"A",exclusionGroup:"multiLimpetController",mass:140,integrity:200,powerDraw:1.1,bootTime:6,cost:8e6},{symbol:"Int_ExpModuleStabiliser_Size3_Class3",familyId:"experimentalWeaponStabilisers",name:"Experimental Weapon Stabiliser",class:3,rating:"F",exclusionGroup:"experimentalModuleStabiliser",limitIncrease:{group:"experimentalWeapon",amount:1},mass:8,powerDraw:0,cost:2e6},{symbol:"Int_ExpModuleStabiliser_Size5_Class3",familyId:"experimentalWeaponStabilisers",name:"Experimental Weapon Stabiliser",class:5,rating:"F",exclusionGroup:"experimentalModuleStabiliser",limitIncrease:{group:"experimentalWeapon",amount:2},entitlement:"ELITE_HORIZONS_V_EXPERIMENTALSTABILISER_SIZE5",mass:20,powerDraw:0,cost:4e6},{symbol:"Int_LargeCargoRack_Size7_Class1",familyId:"cargoRacks",name:"Mk II Cargo Rack",class:7,rating:"D",mass:0,cargoCapacity:192,restrictedToShips:["PantherMkII"],restrictedToSlot:"cargo",cost:1958680},{symbol:"Int_LargeCargoRack_Size8_class1",familyId:"cargoRacks",name:"Mk II Cargo Rack",class:8,rating:"D",mass:0,cargoCapacity:384,restrictedToShips:["PantherMkII"],restrictedToSlot:"cargo",cost:4929317},{symbol:"Int_MultiDroneControl_MiningV2_Size5_Class5",familyId:"miningMultiLimpetControllers",name:"Mk II Mining Multi-Limpet Controller",class:5,rating:"A",exclusionGroup:"multiLimpetController",mass:64,integrity:105,powerDraw:1.4,restrictedToShips:["LakonMiner"],restrictedToSlot:"limpetController",bootTime:6,cost:2332800},{symbol:"Int_MkII_PassengerCabin_Size2_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:2,rating:"D",mass:2.5,cost:5750},{symbol:"Int_MkII_PassengerCabin_Size3_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:3,rating:"D",mass:5,cost:11540},{symbol:"Int_MkII_PassengerCabin_Size3_Class2",familyId:"passengerCabins",name:"MkII Business Class Passenger Cabin",class:3,rating:"C",mass:5,cost:35610},{symbol:"Int_MkII_PassengerCabin_Size4_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:4,rating:"D",mass:10,cost:25270},{symbol:"Int_MkII_PassengerCabin_Size4_Class2",familyId:"passengerCabins",name:"MkII Business Class Passenger Cabin",class:4,rating:"C",mass:10,cost:75820},{symbol:"Int_MkII_PassengerCabin_Size5_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:5,rating:"D",mass:20,cost:46610},{symbol:"Int_MkII_PassengerCabin_Size5_Class2",familyId:"passengerCabins",name:"MkII Business Class Passenger Cabin",class:5,rating:"C",mass:20,cost:123150},{symbol:"Int_MkII_PassengerCabin_Size6_Class1",familyId:"passengerCabins",name:"MkII Economy Class Passenger Cabin",class:6,rating:"D",mass:40,cost:81880},{symbol:"Int_MkII_PassengerCabin_Size6_Class2",familyId:"passengerCabins",name:"MkII Business Class Passenger Cabin",class:6,rating:"C",mass:40,cost:245640}];var INTERNAL_MODULES=buildModuleCatalogue(modules_internal_default,"internal");export{INTERNAL_MODULES};//# sourceMappingURL=chunk-4ZGUSHTP.js.map
|
package/dist/chunk-6BO5JJNI.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ships/internal/damage-components.ts","../src/ships/internal/fixed-modifier-features.ts","../src/ships/internal/loadout-state.ts","../src/ships/internal/loadout-engineering.ts","../src/ships/pre-engineered-stats.ts"],"names":["combinedRateOfFire","builtInModuleBySymbol","getModuleBySymbol","getPreEngineeredVariants","ALL_MODULES","EXPERIMENTAL_EFFECTS","getExperimentalEffect","fieldForLabel","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","preciseModifierValue","capabilityValueForLabel","resolveBlueprintForModule","getBlueprintsForModule","getExperimentalsForModule","getEngineeringGroup","getBlueprintGrade","getBlueprint","BLUEPRINTS","normalizeKey","requireStringIfPresent","deepFreeze","scaleDamageComponents","components","baseDamage","effectiveDamage","scale","kinetic","thermal","explosive","absolute","antiXeno","unclassified","map","value","fixedModifierFeatures","modifiers","modifier","label","method","min","max","FITTED_ITEM","isNonOutfittingSlot","slotKey","test","isCargoHatchSlot","toLowerCase","isBuiltInHullModule","module","Slot","Item","startsWith","cloneLoadoutModule","On","Priority","Health","Value","Engineering","BlueprintName","Level","Quality","ExperimentalEffect","ExperimentalEffect_Localised","Modifiers","matchingKeyIn","keyed","has","wanted","key","keys","ownKeyIn","canonicalKey","size","every","orderBySlotLayout","values","layout","slotOf","order","Map","slot","index","sort","left","right","get","Number","MAX_SAFE_INTEGER","cloneModuleStats","structuredClone","error","Error","name","restrictedToShips","limitIncrease","damageDistribution","damageComponents","projectileRange","GUARDIAN_WEAPON_GROUPS","Set","missingBaseLabels","stats","base","features","experimental","contributions","contribution","filter","recipeSignature","fdname","blueprint","grades","Object","entries","grade","feature","join","isGenericSpelling","isSoldWithBlueprint","item","some","variant","acquisition","blueprintRoutesFor","routes","set","blueprintAvailableFor","offered","asWritten","resolved","trim","id","signature","experimentalAvailableFor","primitiveLabelFor","maximumRange","falloffRange","scannerRange","shieldRegenRate","primitiveEngineeringInputsFor","canonicalGrade","matchesCalculatedModifiers","captured","calculated","length","byLabel","Label","expected","actual","Math","abs","ValueStr","ordinaryEngineeringProof","engineering","recipe","fixedCandidate","candidate","quality","stock","isFinite","current","journalModifiersFor","type","push","OriginalValue","round6","rounded","round","is","float32FiringCycle","interval","burstRounds","burstRateOfFire","withinBurst","fround","cycle","float32RateOfFire","float32DamagePerSecond","damage","rounds","rate","damagePerCycle","JOURNAL_MODIFIER_ORDER","JOURNAL_MODIFIER_RANK","sortJournalModifiers","a","b","weapon","valueFor","fallback","find","burstTouched","damageTouched","rateTouched","damagePerSecond","derivedRate","continuous","burstInterval","rateOfFire","burstRate","baseBurstRounds","baseBurstRate","baseInterval","baseCycle","baseRate","rateModifier","effectiveRate","effectiveInterval","effectiveCycle","stockRounds","roundsPerShot","effectiveRounds","result","includes","journalLabel","direct","findIndex","isFinalGuardianWeaponEngineering","group","engineerableBase","statsOverride","engineeringLocked","availableBlueprintsFor","engineerable","available","route","availableExperimentalsFor","effect","MAX_ENGINEERING_GRADE","modifiersWithExperimental","symbol","effectName","getPreEngineeredModifiers","journalModifiersWithExperimental","getPreEngineeredJournalModifiers","sameJournalNumber","modifierKey","sameModifier","matchesModifierSignature","actualByKey","matched","predicted","identifyPreEngineeredVariant","capturedBlueprint","variants","blueprintMatches","blueprintMatch","capturedGrade","isInteger","capturedExperimental","identityMatches","matches","primitive","unresolvedModifiers","getPreEngineeredStats","field","assign","experimentalDamageDistribution","m"],"mappings":"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"}
|
package/dist/chunk-B4ZSTOM4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{calculateModuleLimits}from"./chunk-KPETDYQX.js";import{describeValue,truncate}from"./chunk-PKWVG2JY.js";function isRequiredSlot(slot){return slot.kind==="core"||slot.kind==="armour"}function fixedSlotReason(slot){if(slot.kind==="cargoHatch")return"cargoHatch";return isRequiredSlot(slot)?"requiredSlot":null}function validateLoadout(input){if(!Array.isArray(input.slots)){throw new TypeError(`validateLoadout: input.slots must be an array, received ${describeValue(input.slots)}`)}const issues=[];const seen=/* @__PURE__ */new Map;for(const module of input.modules){const normalized=module.slot.toLowerCase();const previous=seen.get(normalized);if(previous!==void 0){issues.push({code:"duplicateSlot",severity:"error",slot:module.slot,symbol:module.symbol,params:{slot:module.slot,previousSlot:previous,symbol:module.symbol},message:`Slot ${truncate(module.slot)} occurs more than once (also ${truncate(previous)})`})}else{seen.set(normalized,module.slot)}}const exclusive=/* @__PURE__ */new Map;for(const module of input.modules){if(!module.exclusionGroup)continue;const previous=exclusive.get(module.exclusionGroup);if(previous){issues.push({code:"duplicateExclusiveModule",severity:"error",slot:module.slot,symbol:module.symbol,params:{exclusionGroup:module.exclusionGroup,slot:module.slot,symbol:module.symbol,previousSlot:previous.slot,previousSymbol:previous.symbol},message:`${truncate(module.slot)}: ${truncate(module.symbol)} conflicts with ${truncate(previous.symbol)} in ${truncate(previous.slot)} (${module.exclusionGroup} is limited to one per ship)`})}else{exclusive.set(module.exclusionGroup,module)}}for(const usage of calculateModuleLimits(input.modules)){if(usage.excess===0)continue;issues.push({code:"moduleLimitExceeded",severity:"error",params:{group:usage.group,count:usage.count,limit:usage.limit},message:`${usage.group} has ${usage.count} fitted modules but the ship allows ${usage.limit}`})}const knownSlots=new Map(input.slots.map(slot=>[slot.key.toLowerCase(),slot]));for(const module of input.modules){if(module.requiresKnownSlot!==false&&!knownSlots.has(module.slot.toLowerCase())){issues.push({code:"unknownSlot",severity:"error",slot:module.slot,symbol:module.symbol,message:`${truncate(module.slot)} is not a slot on ${truncate(input.shipSymbol)}`,params:{shipSymbol:input.shipSymbol,slot:module.slot,symbol:module.symbol}})}}for(const slot of input.slots){if(isRequiredSlot(slot)&&!seen.has(slot.key.toLowerCase())){issues.push({code:"missingRequiredSlot",severity:"incomplete",slot:slot.key,message:`${truncate(slot.key)} is required for an operational build`,params:{slot:slot.key}})}}for(const module of input.modules){if(module.fitError!==null){issues.push({code:"incompatibleModule",severity:"error",slot:module.slot,symbol:module.symbol,message:`${truncate(module.slot)}: ${truncate(module.symbol)} ${truncate(module.fitError)}`,params:{...module.fitParams,slot:module.slot,symbol:module.symbol,constraint:module.fitConstraint??"unknownConstraint"}})}}const frozen=Object.freeze(issues.map(issue=>Object.freeze({...issue,...issue.params?{params:Object.freeze(Object.fromEntries(Object.entries(issue.params).map(([key,value])=>[key,Array.isArray(value)?Object.freeze([...value]):value])))}:{}})));return Object.freeze({valid:!issues.some(issue=>issue.severity==="error"),complete:issues.length===0,issues:frozen})}export{fixedSlotReason,validateLoadout};//# sourceMappingURL=chunk-B4ZSTOM4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ships/internal/loadout-slot-rules.ts","../src/ships/loadout-validation.ts"],"names":["calculateModuleLimits","describeValue","truncate","isRequiredSlot","slot","kind","fixedSlotReason","validateLoadout","input","Array","isArray","slots","TypeError","issues","seen","Map","module","modules","normalized","toLowerCase","previous","get","push","code","severity","symbol","params","previousSlot","message","set","exclusive","exclusionGroup","previousSymbol","usage","excess","group","count","limit","knownSlots","map","key","requiresKnownSlot","has","shipSymbol","fitError","fitParams","constraint","fitConstraint","frozen","Object","freeze","issue","fromEntries","entries","value","valid","some","complete","length"],"mappings":"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"}
|
package/dist/chunk-CX7B67OI.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ships/mobility.ts"],"names":["requireFiniteNonNegative","scope","name","value","Number","isFinite","RangeError","requireFiniteRange","minimum","maximum","validateCurve","curve","field","allMassesEqual","minMass","optMass","maxMass","allMultipliersEqual","minMultiplier","optMultiplier","maxMultiplier","strictlyOrderedMultipliers","curveMultiplier","mass","thrusters","span","normalised","Math","max","min","optNormalised","exponent","log","pow","thrusterMassCurveMultiplier","mobilityMetrics","input","pips","enginesPips","minimumSpeed","maximumSpeed","massCurveMultiplier","speedCurve","rotationMassCurveMultiplier","rotationCurve","pipMultiplier","speedAtPips","handlingAtPips","loadedMass","speed","boost","pitch","minPitch","roll","minRoll","yaw","minYaw"],"mappings":"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"}
|
package/dist/chunk-DVL5RBKX.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{normalizeKey}from"./chunk-BKWLI44T.js";import{describeValue,requireStringIfPresent}from"./chunk-PKWVG2JY.js";var PREFIXES=["Th","Eo","Oo","Eu","Tr","Sly","Dry","Ou","Tz","Phl","Ae","Sch","Hyp","Syst","Ai","Kyl","Phr","Eae","Ph","Fl","Ao","Scr","Shr","Fly","Pl","Fr","Au","Pry","Pr","Hyph","Py","Chr","Phyl","Tyr","Bl","Cry","Gl","Br","Gr","By","Aae","Myc","Gyr","Ly","Myl","Lych","Myn","Ch","Myr","Cl","Rh","Wh","Pyr","Cr","Syn","Str","Syr","Cy","Wr","Hy","My","Sty","Sc","Sph","Spl","A","Sh","B","C","D","Sk","Io","Dr","E","Sl","F","Sm","G","H","I","Sp","J","Sq","K","L","Pyth","M","St","N","O","Ny","Lyr","P","Sw","Thr","Lys","Q","R","S","T","Ea","U","V","W","Schr","X","Ee","Y","Z","Ei","Oe"];var INFIXES1=["o","ai","a","oi","ea","ie","u","e","ee","oo","ue","i","oa","au","ae","oe"];var INFIXES2=["ll","ss","b","c","d","f","dg","g","ng","h","j","k","l","m","n","mb","p","q","gn","th","r","s","t","ch","tch","v","w","wh","ck","x","y","z","ph","sh","ct","wr"];var SUFFIXES1=["oe","io","oea","oi","aa","ua","eia","ae","ooe","oo","a","ue","ai","e","iae","oae","ou","uae","i","ao","au","o","eae","u","aea","ia","ie","eou","aei","ea","uia","oa","aae","eau","ee"];var SUFFIXES2=["b","scs","wsy","c","d","vsky","f","sms","dst","g","rb","h","nts","ch","rd","rld","k","lls","ck","rgh","l","rg","m","n","hm","p","hn","rk","q","rl","r","rm","s","cs","wyg","rn","ct","t","hs","rbs","rp","tts","v","wn","ms","w","rr","mt","x","rs","cy","y","rt","z","ws","lch","my","ry","nks","nd","sc","ng","sh","nk","sk","nn","ds","sm","sp","ns","nt","dy","ss","st","rrs","xt","nz","sy","xy","rsch","rphs","sts","sys","sty","th","tl","tls","rds","nch","rns","ts","wls","rnt","tt","rdy","rst","pps","tz","tch","sks","ppy","ff","sps","kh","sky","ph","lts","wnst","rth","ths","fs","pp","ft","ks","pr","ps","pt","fy","rts","ky","rshch","mly","py","bb","nds","wry","zz","nns","ld","lf","gh","lks","sly","lk","ll","rph","ln","bs","rsts","gs","ls","vvy","lt","rks","qs","rps","gy","wns","lz","nth","phs"];var C2_PREFIX_SUFFIX2=new Set(["Eo","Oo","Eu","Ou","Ae","Ai","Eae","Ao","Au","Aae"].map(s=>s.toLowerCase()));var C1_PREFIX_INFIX2=new Set(["Eo","Oo","Eu","Ou","Ae","Ai","Eae","Ao","Au","Aae","A","Io","E","I","O","Ea","U","Ee","Ei","Oe"].map(s=>s.toLowerCase()));var PREFIX_RUN_LENGTHS=/* @__PURE__ */new Map([["eu",31],["sly",4],["tz",1],["phl",13],["ae",12],["hyp",25],["kyl",30],["phr",10],["eae",4],["ao",5],["scr",24],["shr",11],["fly",20],["pry",3],["hyph",14],["py",12],["phyl",8],["tyr",25],["cry",5],["aae",5],["myc",2],["gyr",10],["myl",12],["lych",3],["myn",10],["myr",4],["rh",15],["wr",31],["sty",4],["spl",16],["sk",27],["sq",7],["pyth",1],["lyr",10],["sw",24],["thr",32],["lys",10],["schr",3],["z",34]]);var INFIX_RUN_LENGTHS=/* @__PURE__ */new Map([["oi",88],["ue",147],["oa",57],["au",119],["ae",12],["oe",39],["dg",31],["tch",20],["wr",31]]);var PREFIX_DEFAULT_RUN_LENGTH=35;function buildOffsets(items,runLengths,defaultLen){const offsets=/* @__PURE__ */new Map;let cnt=0;for(const item of items){const key=item.toLowerCase();const len=runLengths.get(key)??defaultLen;if(!runLengths.has(key))runLengths.set(key,len);offsets.set(key,cnt);cnt+=len}return{offsets:offsets,total:cnt}}var prefixTable=buildOffsets(PREFIXES,PREFIX_RUN_LENGTHS,PREFIX_DEFAULT_RUN_LENGTH);var prefixOffsets=prefixTable.offsets;var prefixTotalRunLength=prefixTable.total;var infix1Table=buildOffsets(INFIXES1,INFIX_RUN_LENGTHS,SUFFIXES2.length);var infix2Table=buildOffsets(INFIXES2,INFIX_RUN_LENGTHS,SUFFIXES1.length);var infixOffsets=new Map([...infix1Table.offsets,...infix2Table.offsets]);var infix1TotalRunLength=infix1Table.total;var infix2TotalRunLength=infix2Table.total;var prefixRunLength=key=>PREFIX_RUN_LENGTHS.get(key)??PREFIX_DEFAULT_RUN_LENGTH;var infixRunLength=key=>INFIX_RUN_LENGTHS.get(key)??PREFIX_DEFAULT_RUN_LENGTH;function emptyFragment(value){return{value:value,isPrefix:false,isC1VowelPrefix:false,isC2VowelPrefix:false,isInfix:false,isVowelInfix:false,isSuffix:false,isVowelSuffix:false,suffixIndex:0}}var FRAGMENTS=(()=>{const frags=/* @__PURE__ */new Map;const get=v=>{const key=v.toLowerCase();let f=frags.get(key);if(!f){f=emptyFragment(key);frags.set(key,f)}return f};for(const p of PREFIXES){const f=get(p);const key=p.toLowerCase();f.isPrefix=true;f.isC1VowelPrefix=C1_PREFIX_INFIX2.has(key);f.isC2VowelPrefix=C2_PREFIX_SUFFIX2.has(key)}for(const p of INFIXES1){const f=get(p);f.isInfix=true;f.isVowelInfix=true}for(const p of INFIXES2){const f=get(p);f.isInfix=true;f.isVowelInfix=false}for(let i=0;i<SUFFIXES1.length;i++){const f=get(SUFFIXES1[i]);f.isSuffix=true;f.isVowelSuffix=true;f.suffixIndex=i}for(let i=0;i<SUFFIXES2.length;i++){const f=get(SUFFIXES2[i]);f.isSuffix=true;f.isVowelSuffix=false;f.suffixIndex=i}return[...frags.values()].sort((a,b)=>b.value.length-a.value.length||a.value.localeCompare(b.value))})();function isC1Sector(offset){let key=offset>>>0;key=key+(key<<12)>>>0;key^=key>>>22;key=key+(key<<4)>>>0;key^=key>>>9;key=key+(key<<10)>>>0;key^=key>>>2;key=key+(key<<7)>>>0;key^=key>>>12;return(key&1)===0}function c1Name(offset){const frags=[];const prefixCnt=Math.floor(offset/prefixTotalRunLength);let curOffset=offset%prefixTotalRunLength;let prefix="";for(const p of PREFIXES){if((prefixOffsets.get(p.toLowerCase())??0)<=curOffset)prefix=p}const prefixLower=prefix.toLowerCase();frags.push(prefix);curOffset-=prefixOffsets.get(prefixLower)??0;const infix1IsConsonant=C1_PREFIX_INFIX2.has(prefixLower);const infix1Total=infix1IsConsonant?infix2TotalRunLength:infix1TotalRunLength;const infix1Table2=infix1IsConsonant?INFIXES2:INFIXES1;const scaled=prefixCnt*prefixRunLength(prefixLower)+curOffset;const infix1Cnt=Math.floor(scaled/infix1Total);curOffset=scaled%infix1Total;let infix1="";for(const p of infix1Table2){const key=p.toLowerCase();if((infixOffsets.get(key)??0)<=curOffset)infix1=key}frags.push(infix1);curOffset-=infixOffsets.get(infix1)??0;let suffixes=infix1IsConsonant?SUFFIXES1:SUFFIXES2;let nextIdx=infixRunLength(infix1)*infix1Cnt+curOffset;if(nextIdx>=suffixes.length){const infix2IsConsonant=!infix1IsConsonant;const infix2Total=infix2IsConsonant?infix2TotalRunLength:infix1TotalRunLength;const infix2Cnt=Math.floor(nextIdx/infix2Total);curOffset=nextIdx%infix2Total;const infix2Table2=infix2IsConsonant?INFIXES2:INFIXES1;let infix2="";for(const p of infix2Table2){const key=p.toLowerCase();if((infixOffsets.get(key)??0)<=curOffset)infix2=key}frags.push(infix2);curOffset-=infixOffsets.get(infix2)??0;suffixes=infix2IsConsonant?SUFFIXES1:SUFFIXES2;nextIdx=infixRunLength(infix2)*infix2Cnt+curOffset}if(nextIdx>=suffixes.length)return null;frags.push(suffixes[nextIdx].toLowerCase());return frags.join("")}function c2Name(offset){const[idx0,idx1]=deinterleave2(offset);let p1="";for(const p of PREFIXES){if((prefixOffsets.get(p.toLowerCase())??0)<=idx0)p1=p}let p2="";for(const p of PREFIXES){if((prefixOffsets.get(p.toLowerCase())??0)<=idx1)p2=p}const p1Lower=p1.toLowerCase();const p2Lower=p2.toLowerCase();const s1s=C2_PREFIX_SUFFIX2.has(p1Lower)?SUFFIXES2:SUFFIXES1;const s2s=C2_PREFIX_SUFFIX2.has(p2Lower)?SUFFIXES2:SUFFIXES1;const s1=s1s[idx0-(prefixOffsets.get(p1Lower)??0)];const s2=s2s[idx1-(prefixOffsets.get(p2Lower)??0)];return`${p1}${s1.toLowerCase()} ${p2}${s2.toLowerCase()}`}function sectorNameFromGridPosition(position){for(const v of[position.sectorX,position.sectorY,position.sectorZ]){if(!Number.isInteger(v)||v<0||v>127){throw new RangeError(`Sector grid position out of range (expected integer 0–127): ${describeValue(position)}`)}}const offset=(position.sectorZ<<14)+(position.sectorY<<7)+position.sectorX;const name=isC1Sector(offset)?c1Name(offset):c2Name(offset);if(name===null){throw new RangeError(`Sector grid position has no procedural name: ${describeValue(position)}`)}return name}function splitFragmentCandidates(normalizedName){const candidates=[];const visit=(remaining,out)=>{if(remaining.length===0){candidates.push([...out]);return}if(out.length>=4)return;const spaceStart=remaining.startsWith(" ");const current=remaining.trimStart();if(current.length===0)return;for(const match of FRAGMENTS){if(!current.startsWith(match.value))continue;const frag={...match};if(spaceStart){frag.isSuffix=false;frag.isInfix=false}else if(out.length>0&&frag.isInfix&&frag.isVowelInfix!==out[out.length-1].isVowelInfix){frag.isPrefix=false}visit(current.substring(frag.value.length),[...out,frag])}};visit(normalizedName,[]);return candidates}function c1ProcessInfix(frag,offset){const runLen=infixRunLength(frag.value);const rem=offset%runLen;let out=Math.floor(offset/runLen);out*=frag.isVowelInfix?infix1TotalRunLength:infix2TotalRunLength;out+=rem;out+=infixOffsets.get(frag.value)??0;return out}function c1ProcessPrefix(frag,offset){const runLen=prefixRunLength(frag.value);const rem=offset%runLen;let out=Math.floor(offset/runLen);out*=prefixTotalRunLength;out+=rem;out+=prefixOffsets.get(frag.value)??0;return out}function coordsFromOffset(offset){return{sectorX:offset&127,sectorY:offset>>7&127,sectorZ:offset>>14&127}}function c2SectorGridPosition(f){if(f[0].isC2VowelPrefix===f[1].isVowelSuffix||f[2].isC2VowelPrefix===f[3].isVowelSuffix){return null}const idx0=(prefixOffsets.get(f[0].value)??0)+f[1].suffixIndex;const idx1=(prefixOffsets.get(f[2].value)??0)+f[3].suffixIndex;return coordsFromOffset(interleave2(idx0,idx1))}function c1SectorGridPosition3(f){if(f[0].isC1VowelPrefix===f[1].isVowelInfix||f[1].isVowelInfix===f[2].isVowelSuffix){return null}let offset=f[2].suffixIndex;offset=c1ProcessInfix(f[1],offset);offset=c1ProcessPrefix(f[0],offset);return coordsFromOffset(offset)}function c1SectorGridPosition4(f){if(f[0].isC1VowelPrefix===f[1].isVowelInfix||f[1].isVowelInfix===f[2].isVowelInfix||f[2].isVowelInfix===f[3].isVowelSuffix){return null}let offset=f[3].suffixIndex;offset=c1ProcessInfix(f[2],offset);offset=c1ProcessInfix(f[1],offset);offset=c1ProcessPrefix(f[0],offset);return coordsFromOffset(offset)}function sectorGridPositionFromName(name){if(name==null)return null;const normalized=normalizeKey(name,"sectorGridPositionFromName: name");const candidates=splitFragmentCandidates(normalized);const normalizedName=normalized.replace(/\s+/g," ");for(const f of candidates){let coords=null;if(f.length===4&&f[0].isPrefix&&f[1].isSuffix&&f[2].isPrefix&&f[3].isSuffix){coords=c2SectorGridPosition(f)}else if(f.length===3&&f[0].isPrefix&&f[1].isInfix&&f[2].isSuffix){coords=c1SectorGridPosition3(f)}else if(f.length===4&&f[0].isPrefix&&f[1].isInfix&&f[2].isInfix&&f[3].isSuffix){coords=c1SectorGridPosition4(f)}if(!coords)continue;try{const canonicalName=sectorNameFromGridPosition(coords);if(canonicalName.toLowerCase()===normalizedName)return coords}catch(error){if(!(error instanceof RangeError))throw error}}return null}function canonicalizeSectorName(name){requireStringIfPresent(name,"canonicalizeSectorName: name");const position=sectorGridPositionFromName(name);return position?sectorNameFromGridPosition(position):null}function interleave2(v1,v2){let x=BigInt(v1)|BigInt(v2)<<32n;x=(x|x<<8n)&0x00ff00ff00ff00ffn;x=(x|x<<4n)&0x0f0f0f0f0f0f0f0fn;x=(x|x<<2n)&0x3333333333333333n;x=(x|x<<1n)&0x5555555555555555n;return Number((x|x>>31n)&0xffffffffn)}function deinterleave2(val){const v=BigInt(val);let x=v&0x55555555n|(v&0xaaaaaaaan)<<31n;x=(x|x>>1n)&0x3333333333333333n;x=(x|x>>2n)&0x0f0f0f0f0f0f0f0fn;x=(x|x>>4n)&0x00ff00ff00ff00ffn;x=(x|x>>8n)&0x0000ffff0000ffffn;return[Number(x&0xffffn),Number(x>>32n&0xffffn)]}export{canonicalizeSectorName,sectorGridPositionFromName,sectorNameFromGridPosition};//# sourceMappingURL=chunk-DVL5RBKX.js.map
|