@elite-dangerous-almanac/core 0.2.0 → 0.2.2
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/ships/SOURCES.md +23 -0
- package/README.md +3 -2
- package/THIRD_PARTY_NOTICES.md +24 -2
- package/dist/astro/body-orbit.d.ts +174 -0
- package/dist/astro/body-orbit.js +1 -0
- package/dist/astro/body-orbit.js.map +1 -0
- package/dist/astro/body-physics.d.ts +228 -0
- package/dist/astro/body-physics.js +1 -0
- package/dist/astro/body-physics.js.map +1 -0
- package/dist/astro/body-rings.d.ts +223 -0
- package/dist/astro/body-rings.js +1 -0
- package/dist/astro/body-rings.js.map +1 -0
- package/dist/astro/codex-region-lookup.js +1 -1
- package/dist/astro/codex-region-lookup.js.map +1 -1
- package/dist/astro/index.d.ts +38 -1
- package/dist/astro/index.js +1 -1
- package/dist/astro/nebulae.d.ts +4 -4
- package/dist/astro/procedural-system.js +1 -1
- package/dist/astro/star-physics.d.ts +255 -0
- package/dist/astro/star-physics.js +1 -0
- package/dist/astro/star-physics.js.map +1 -0
- package/dist/body-scan-CEUYjCfH.d.ts +416 -0
- package/dist/chunk-37JIMWLK.js +1 -0
- package/dist/chunk-37JIMWLK.js.map +1 -0
- package/dist/{chunk-PA5EITW5.js → chunk-3LZXB2MC.js} +1 -1
- package/dist/{chunk-PA5EITW5.js.map → chunk-3LZXB2MC.js.map} +1 -1
- package/dist/chunk-3RTUSDQF.js +1 -0
- package/dist/chunk-3RTUSDQF.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-GZYPQIO2.js → chunk-4OTQBHQL.js} +1 -1
- package/dist/chunk-4OTQBHQL.js.map +1 -0
- package/dist/{chunk-QTAMQ6ME.js → chunk-5VWACBTN.js} +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-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-6WTUY6ZX.js +1 -0
- package/dist/{chunk-V3AEUBHV.js.map → chunk-6WTUY6ZX.js.map} +1 -1
- package/dist/chunk-77TT4K53.js +1 -0
- package/dist/{chunk-MRTTQYT5.js → chunk-7EWZGDWY.js} +1 -1
- package/dist/{chunk-TBZJIQ5P.js → chunk-7TVFV3VO.js} +1 -1
- package/dist/chunk-7TVFV3VO.js.map +1 -0
- package/dist/chunk-7ZERP4TB.js +1 -0
- package/dist/{chunk-QY3L5BKN.js.map → chunk-7ZERP4TB.js.map} +1 -1
- package/dist/{chunk-Y6KJJMIM.js → chunk-A4QKXXZD.js} +1 -1
- package/dist/{chunk-Q5XOGATC.js → chunk-AIEC3LBT.js} +1 -1
- package/dist/chunk-B5VTFOK4.js +1 -0
- package/dist/chunk-B5VTFOK4.js.map +1 -0
- package/dist/chunk-DAQ3PJ4R.js +1 -0
- package/dist/chunk-DAQ3PJ4R.js.map +1 -0
- package/dist/{chunk-JGOAQLYW.js → chunk-F44QX47A.js} +1 -1
- 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-GBTCWNO6.js +1 -0
- package/dist/chunk-GBTCWNO6.js.map +1 -0
- package/dist/chunk-GGQMIQPC.js +1 -0
- package/dist/chunk-GGQMIQPC.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-HKXXFIRI.js → chunk-ITKZKREP.js} +1 -1
- package/dist/{chunk-OYR5HUQZ.js → chunk-IWFQ4ZKF.js} +1 -1
- package/dist/{chunk-ZCEAPJDH.js → chunk-J7BM5NGK.js} +1 -1
- 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-NEXDA73Y.js +1 -0
- package/dist/chunk-NEXDA73Y.js.map +1 -0
- package/dist/chunk-OJC6AUL7.js +1 -0
- package/dist/chunk-OJC6AUL7.js.map +1 -0
- package/dist/chunk-P2MUFVJC.js +1 -0
- package/dist/chunk-P2MUFVJC.js.map +1 -0
- package/dist/{chunk-FYVPZBXN.js → chunk-Q5ALV3DI.js} +1 -1
- package/dist/{chunk-SQS7672E.js → chunk-Q6YDPREF.js} +1 -1
- package/dist/chunk-SS6XK336.js +1 -0
- package/dist/chunk-SS6XK336.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-TMXKC6JL.js +1 -0
- package/dist/chunk-TMXKC6JL.js.map +1 -0
- package/dist/{chunk-XUHAPOM6.js → chunk-VEEBJFJ7.js} +1 -1
- 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/chunk-ZZ376WHL.js +1 -0
- package/dist/chunk-ZZ376WHL.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 +1 -1
- package/dist/commodities/commodities.js +1 -1
- package/dist/commodities/index.js +1 -1
- package/dist/equipment/index.js +1 -1
- package/dist/equipment/upgrade-costs.js +1 -1
- package/dist/equipment/upgrade-costs.js.map +1 -1
- package/dist/i18n/index.js +1 -1
- 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 +1 -1
- package/dist/materials/materials.js +1 -1
- package/dist/materials/micro-resources-all.js +1 -1
- package/dist/materials/micro-resources.d.ts +1 -1
- package/dist/materials/micro-resources.js +1 -1
- package/dist/ships/armour.js +1 -1
- package/dist/ships/build-metrics.d.ts +21 -232
- package/dist/ships/build-metrics.js +1 -1
- package/dist/ships/distributor.d.ts +1 -1
- package/dist/ships/distributor.js +1 -1
- package/dist/ships/heat.d.ts +1 -1
- package/dist/ships/heat.js +1 -1
- package/dist/ships/index.d.ts +3 -3
- package/dist/ships/index.js +1 -1
- package/dist/ships/jump-range.js +1 -1
- package/dist/ships/loadout-calculations.d.ts +2 -2
- package/dist/ships/loadout-validation.d.ts +111 -5
- package/dist/ships/loadout-validation.js +1 -1
- package/dist/ships/mobility-capacitor.d.ts +1 -1
- package/dist/ships/mobility-capacitor.js +1 -1
- 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.js +1 -1
- package/dist/ships/pre-engineered-stats.d.ts +17 -10
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/resistances.js +1 -1
- package/dist/ships/shield-capacitor.d.ts +1 -1
- package/dist/ships/shield-capacitor.js +1 -1
- package/dist/ships/shield-recovery.js +1 -1
- package/dist/ships/shields.d.ts +1 -1
- package/dist/ships/shields.js +1 -1
- package/dist/ships/ship-loadout.d.ts +140 -18
- package/dist/ships/ship-loadout.js +1 -1
- package/dist/ships/slef.d.ts +4 -1
- package/dist/ships/slef.js +1 -1
- package/dist/ships/weapons-capacitor.js +1 -1
- package/dist/ships/weapons.js +1 -1
- package/package.json +18 -3
- package/dist/chunk-4KJ7CR74.js +0 -1
- package/dist/chunk-4KJ7CR74.js.map +0 -1
- package/dist/chunk-4ZGUSHTP.js +0 -1
- package/dist/chunk-6L56LWTT.js +0 -1
- package/dist/chunk-6L56LWTT.js.map +0 -1
- package/dist/chunk-6O4NRRSB.js +0 -1
- package/dist/chunk-6O4NRRSB.js.map +0 -1
- package/dist/chunk-7TQ2X6Q3.js +0 -1
- package/dist/chunk-7TQ2X6Q3.js.map +0 -1
- package/dist/chunk-B4ZSTOM4.js +0 -1
- package/dist/chunk-B4ZSTOM4.js.map +0 -1
- package/dist/chunk-D6YEHR5S.js +0 -1
- package/dist/chunk-D6YEHR5S.js.map +0 -1
- package/dist/chunk-EVW4Z4CB.js +0 -1
- package/dist/chunk-EVW4Z4CB.js.map +0 -1
- package/dist/chunk-GVNTKCVF.js +0 -1
- package/dist/chunk-GVNTKCVF.js.map +0 -1
- package/dist/chunk-GZYPQIO2.js.map +0 -1
- package/dist/chunk-JQG4C67D.js +0 -1
- package/dist/chunk-OYFMHDYT.js +0 -1
- package/dist/chunk-OYFMHDYT.js.map +0 -1
- package/dist/chunk-PY5L6WC5.js +0 -1
- package/dist/chunk-PY5L6WC5.js.map +0 -1
- package/dist/chunk-Q2L75GSI.js +0 -1
- package/dist/chunk-Q2L75GSI.js.map +0 -1
- package/dist/chunk-QJ7GB6FF.js +0 -1
- package/dist/chunk-QJ7GB6FF.js.map +0 -1
- package/dist/chunk-QY3L5BKN.js +0 -1
- package/dist/chunk-RRYBSAPX.js +0 -1
- package/dist/chunk-RRYBSAPX.js.map +0 -1
- package/dist/chunk-TBZJIQ5P.js.map +0 -1
- package/dist/chunk-V3AEUBHV.js +0 -1
- package/dist/chunk-V4C6FIE2.js +0 -1
- package/dist/chunk-VYDQHPY2.js +0 -1
- package/dist/chunk-VYDQHPY2.js.map +0 -1
- package/dist/chunk-YXPZ7QQB.js +0 -1
- package/dist/chunk-YXPZ7QQB.js.map +0 -1
- /package/dist/{chunk-QTAMQ6ME.js.map → chunk-5VWACBTN.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-MRTTQYT5.js.map → chunk-7EWZGDWY.js.map} +0 -0
- /package/dist/{chunk-Y6KJJMIM.js.map → chunk-A4QKXXZD.js.map} +0 -0
- /package/dist/{chunk-Q5XOGATC.js.map → chunk-AIEC3LBT.js.map} +0 -0
- /package/dist/{chunk-JGOAQLYW.js.map → chunk-F44QX47A.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-OYR5HUQZ.js.map → chunk-IWFQ4ZKF.js.map} +0 -0
- /package/dist/{chunk-ZCEAPJDH.js.map → chunk-J7BM5NGK.js.map} +0 -0
- /package/dist/{chunk-V4C6FIE2.js.map → chunk-JO52LYO3.js.map} +0 -0
- /package/dist/{chunk-FYVPZBXN.js.map → chunk-Q5ALV3DI.js.map} +0 -0
- /package/dist/{chunk-SQS7672E.js.map → chunk-Q6YDPREF.js.map} +0 -0
- /package/dist/{chunk-XUHAPOM6.js.map → chunk-VEEBJFJ7.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{requireFiniteNonNegative}from"./chunk-65FZECUX.js";var OVERHEAT_HEAT_LEVEL=1.5;var DRAINED_CAPACITOR_MULTIPLIER=5;function equilibriumHeatLevel(dissipation,thermalLoad){requireFiniteNonNegative("equilibriumHeatLevel","dissipation",dissipation);requireFiniteNonNegative("equilibriumHeatLevel","thermal load",thermalLoad);if(dissipation===0)return thermalLoad===0?0:Infinity;return Math.sqrt(thermalLoad/dissipation)}function effectiveWeaponThermalLoad(thermalLoad,distributorDraw,weaponsCapacity,capacitorLevel){requireFiniteNonNegative("effectiveWeaponThermalLoad","thermal load",thermalLoad);requireFiniteNonNegative("effectiveWeaponThermalLoad","distributor draw",distributorDraw);requireFiniteNonNegative("effectiveWeaponThermalLoad","weapons capacity",weaponsCapacity);requireFiniteNonNegative("effectiveWeaponThermalLoad","capacitor level",capacitorLevel);if(capacitorLevel>1){throw new RangeError("effectiveWeaponThermalLoad: capacitor level must be at most 1")}if(weaponsCapacity===0){return thermalLoad*(distributorDraw>0?DRAINED_CAPACITOR_MULTIPLIER:1)}const shortfall=clamp(1-(weaponsCapacity*capacitorLevel-distributorDraw)/weaponsCapacity);return thermalLoad*(1+(DRAINED_CAPACITOR_MULTIPLIER-1)*shortfall)}function heatLevelAtTime(params){const{heatCapacity:heatCapacity,heatDissipation:heatDissipation,thermalLoad:thermalLoad,startLevel:startLevel,seconds:seconds}=params;validateHeatParams("heatLevelAtTime",heatCapacity,heatDissipation,thermalLoad,startLevel);requireFiniteNonNegative("heatLevelAtTime","seconds",seconds);if(seconds===0)return startLevel;const linearRate=(thermalLoad-heatDissipation)/heatCapacity;if(startLevel>=1){if(linearRate>=0)return startLevel+linearRate*seconds;const secondsToOne=(startLevel-1)/-linearRate;if(seconds<=secondsToOne)return startLevel+linearRate*seconds;return belowOneLevelAtTime(heatCapacity,heatDissipation,thermalLoad,1,seconds-secondsToOne)}if(thermalLoad>heatDissipation){const secondsToOne=belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,startLevel,1);if(seconds>secondsToOne)return 1+linearRate*(seconds-secondsToOne)}return belowOneLevelAtTime(heatCapacity,heatDissipation,thermalLoad,startLevel,seconds)}function secondsToHeatLevel(params){const{heatCapacity:heatCapacity,heatDissipation:heatDissipation,thermalLoad:thermalLoad,startLevel:startLevel,targetLevel:targetLevel}=params;validateHeatParams("secondsToHeatLevel",heatCapacity,heatDissipation,thermalLoad,startLevel);requireFiniteNonNegative("secondsToHeatLevel","target level",targetLevel);if(targetLevel===startLevel)return 0;const linearRate=(thermalLoad-heatDissipation)/heatCapacity;if(targetLevel>startLevel){let seconds2=0;let level2=startLevel;if(level2<1){const to=Math.min(targetLevel,1);seconds2=belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,level2,to);if(!Number.isFinite(seconds2)||targetLevel<=1)return seconds2;level2=1}if(linearRate<=0)return Infinity;return seconds2+(targetLevel-level2)/linearRate}let seconds=0;let level=startLevel;if(level>1){if(linearRate>=0)return Infinity;const to=Math.max(targetLevel,1);seconds=(level-to)/-linearRate;if(targetLevel>=1)return seconds;level=1}return seconds+belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,level,targetLevel)}function heatMetrics(input){const{heatCapacity:heatCapacity,heatDissipation:heatDissipation,heatEfficiency:heatEfficiency}=input;requireFiniteNonNegative("heatMetrics","heat capacity",heatCapacity);requireFiniteNonNegative("heatMetrics","heat dissipation",heatDissipation);if(heatCapacity===0)throw new RangeError("heatMetrics: heat capacity must be above 0");requireFiniteNonNegative("heatMetrics","heat efficiency",heatEfficiency);const retracted=requireFiniteNonNegative("heatMetrics","retracted power draw",input.retractedPowerDraw??0);const deployed=requireFiniteNonNegative("heatMetrics","deployed power draw",input.deployedPowerDraw??retracted);const thrusterHeat=requireFiniteNonNegative("heatMetrics","thruster heat rate",input.thrusterHeatRate??0);const deployedThrusterHeat=requireFiniteNonNegative("heatMetrics","deployed thruster heat rate",input.deployedThrusterHeatRate??thrusterHeat);const fsdHeat=requireFiniteNonNegative("heatMetrics","FSD heat rate",input.fsdHeatRate??0);const weaponsCapacity=requireFiniteNonNegative("heatMetrics","weapons capacity",input.weaponsCapacity??0);const idleLoad=retracted*heatEfficiency;const deployedLoad=deployed*heatEfficiency;const weaponHeat=capacitorLevel=>(input.weapons??[]).reduce((total,weapon)=>total+effectiveWeaponThermalLoad(weapon.heatPerSecond??0,weapon.distributorDraw??0,weaponsCapacity,capacitorLevel),0);const firingBase=deployedLoad+deployedThrusterHeat;const state=(load,base)=>heatState(heatCapacity,heatDissipation,load,base);return Object.freeze({heatEfficiency:heatEfficiency,hullHeatCapacity:heatCapacity,hullHeatDissipation:heatDissipation,idle:state(idleLoad,0),thrusters:state(idleLoad+thrusterHeat,idleLoad),fsdCharging:state(idleLoad+thrusterHeat+fsdHeat,idleLoad+thrusterHeat),firingSustained:state(firingBase+weaponHeat(1),firingBase),firingDrained:state(firingBase+weaponHeat(0),firingBase)})}function heatState(heatCapacity,heatDissipation,thermalLoad,baseLoad){const overheats=thermalLoad>heatDissipation;const heatLevel=overheats?Infinity:equilibriumHeatLevel(heatDissipation,thermalLoad);const baseLevel=baseLoad>heatDissipation?1:equilibriumHeatLevel(heatDissipation,baseLoad);return Object.freeze({thermalLoad:thermalLoad,heatLevel:heatLevel,gauge:heatLevel/OVERHEAT_HEAT_LEVEL,overheats:overheats,secondsToOverheat:overheats?secondsToHeatLevel({heatCapacity:heatCapacity,heatDissipation:heatDissipation,thermalLoad:thermalLoad,startLevel:baseLevel,targetLevel:OVERHEAT_HEAT_LEVEL}):null})}function belowOneLevelAtTime(heatCapacity,heatDissipation,thermalLoad,startLevel,seconds){const dissipationRate=heatDissipation/heatCapacity;if(heatDissipation===0)return startLevel+thermalLoad/heatCapacity*seconds;if(thermalLoad===0){if(startLevel===0)return 0;return 1/(1/startLevel+dissipationRate*seconds)}const loadRate=thermalLoad/heatCapacity;const settled=Math.sqrt(loadRate/dissipationRate);const rate=Math.sqrt(dissipationRate*loadRate);if(startLevel===settled)return settled;if(startLevel<settled){return settled*Math.tanh(rate*seconds+Math.atanh(startLevel/settled))}return settled/Math.tanh(rate*seconds+Math.atanh(settled/startLevel))}function belowOneSecondsToLevel(heatCapacity,heatDissipation,thermalLoad,startLevel,targetLevel){const dissipationRate=heatDissipation/heatCapacity;if(heatDissipation===0){if(targetLevel<startLevel||thermalLoad===0)return Infinity;return(targetLevel-startLevel)*heatCapacity/thermalLoad}if(thermalLoad===0){if(targetLevel>startLevel)return Infinity;if(targetLevel===0)return Infinity;return(1/targetLevel-1/startLevel)/dissipationRate}const loadRate=thermalLoad/heatCapacity;const settled=Math.sqrt(loadRate/dissipationRate);const rate=Math.sqrt(dissipationRate*loadRate);if(targetLevel>startLevel?targetLevel>=settled:targetLevel<=settled)return Infinity;const from=startLevel<settled?startLevel/settled:settled/startLevel;const to=startLevel<settled?targetLevel/settled:settled/targetLevel;return(Math.atanh(to)-Math.atanh(from))/rate}function clamp(value){return Math.min(Math.max(value,0),1)}function validateHeatParams(caller,heatCapacity,heatDissipation,thermalLoad,startLevel){requireFiniteNonNegative(caller,"heat capacity",heatCapacity);requireFiniteNonNegative(caller,"heat dissipation",heatDissipation);requireFiniteNonNegative(caller,"thermal load",thermalLoad);requireFiniteNonNegative(caller,"start level",startLevel);if(heatCapacity===0)throw new RangeError(`${caller}: heat capacity must be above 0`)}export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel};//# sourceMappingURL=chunk-6HA2YIKW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ships/heat.ts"],"names":["requireFiniteNonNegative","OVERHEAT_HEAT_LEVEL","DRAINED_CAPACITOR_MULTIPLIER","equilibriumHeatLevel","dissipation","thermalLoad","Infinity","Math","sqrt","effectiveWeaponThermalLoad","distributorDraw","weaponsCapacity","capacitorLevel","RangeError","shortfall","clamp","heatLevelAtTime","params","heatCapacity","heatDissipation","startLevel","seconds","validateHeatParams","linearRate","secondsToOne","belowOneLevelAtTime","belowOneSecondsToLevel","secondsToHeatLevel","targetLevel","level","to","min","Number","isFinite","max","heatMetrics","input","heatEfficiency","retracted","retractedPowerDraw","deployed","deployedPowerDraw","thrusterHeat","thrusterHeatRate","deployedThrusterHeat","deployedThrusterHeatRate","fsdHeat","fsdHeatRate","idleLoad","deployedLoad","weaponHeat","weapons","reduce","total","weapon","heatPerSecond","firingBase","state","load","base","heatState","Object","freeze","hullHeatCapacity","hullHeatDissipation","idle","thrusters","fsdCharging","firingSustained","firingDrained","baseLoad","overheats","heatLevel","baseLevel","gauge","secondsToOverheat","dissipationRate","loadRate","settled","rate","tanh","atanh","from","value","caller"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{buildCommodityCatalogue}from"./chunk-L747RVPO.js";var commodities_default=[{symbol:"Platinum",name:"Platinum",category:"Metals"},{symbol:"Palladium",name:"Palladium",category:"Metals"},{symbol:"Gold",name:"Gold",category:"Metals"},{symbol:"Silver",name:"Silver",category:"Metals"},{symbol:"Bertrandite",name:"Bertrandite",category:"Minerals"},{symbol:"Indite",name:"Indite",category:"Minerals"},{symbol:"Gallite",name:"Gallite",category:"Minerals"},{symbol:"Coltan",name:"Coltan",category:"Minerals"},{symbol:"Uraninite",name:"Uraninite",category:"Minerals"},{symbol:"Lepidolite",name:"Lepidolite",category:"Minerals"},{symbol:"Cobalt",name:"Cobalt",category:"Metals"},{symbol:"Rutile",name:"Rutile",category:"Minerals"},{symbol:"Bauxite",name:"Bauxite",category:"Minerals"},{symbol:"Water",name:"Water",category:"Chemicals"},{symbol:"Beryllium",name:"Beryllium",category:"Metals"},{symbol:"Indium",name:"Indium",category:"Metals"},{symbol:"Gallium",name:"Gallium",category:"Metals"},{symbol:"Tantalum",name:"Tantalum",category:"Metals"},{symbol:"Uranium",name:"Uranium",category:"Metals"},{symbol:"Lithium",name:"Lithium",category:"Metals"},{symbol:"Titanium",name:"Titanium",category:"Metals"},{symbol:"Copper",name:"Copper",category:"Metals"},{symbol:"Aluminium",name:"Aluminium",category:"Metals"},{symbol:"Algae",name:"Algae",category:"Foods"},{symbol:"FruitAndVegetables",name:"Fruit and Vegetables",category:"Foods"},{symbol:"Grain",name:"Grain",category:"Foods"},{symbol:"Animalmeat",name:"Animal Meat",category:"Foods"},{symbol:"Fish",name:"Fish",category:"Foods"},{symbol:"FoodCartridges",name:"Food Cartridges",category:"Foods"},{symbol:"SyntheticMeat",name:"Synthetic Meat",category:"Foods"},{symbol:"Tea",name:"Tea",category:"Foods"},{symbol:"Coffee",name:"Coffee",category:"Foods"},{symbol:"Leather",name:"Leather",category:"Textiles"},{symbol:"NaturalFabrics",name:"Natural Fabrics",category:"Textiles"},{symbol:"SyntheticFabrics",name:"Synthetic Fabrics",category:"Textiles"},{symbol:"Polymers",name:"Polymers",category:"Industrial Materials"},{symbol:"Semiconductors",name:"Semiconductors",category:"Industrial Materials"},{symbol:"Superconductors",name:"Superconductors",category:"Industrial Materials"},{symbol:"HydrogenFuel",name:"Hydrogen Fuel",category:"Chemicals"},{symbol:"MineralOil",name:"Mineral Oil",category:"Chemicals"},{symbol:"Explosives",name:"Explosives",category:"Chemicals"},{symbol:"Pesticides",name:"Pesticides",category:"Chemicals"},{symbol:"AgriculturalMedicines",name:"Agri-Medicines",category:"Medicines"},{symbol:"PerformanceEnhancers",name:"Performance Enhancers",category:"Medicines"},{symbol:"BasicMedicines",name:"Basic Medicines",category:"Medicines"},{symbol:"BasicNarcotics",name:"Narcotics",category:"Legal Drugs"},{symbol:"Tobacco",name:"Tobacco",category:"Legal Drugs"},{symbol:"Beer",name:"Beer",category:"Legal Drugs"},{symbol:"Wine",name:"Wine",category:"Legal Drugs"},{symbol:"Liquor",name:"Liquor",category:"Legal Drugs"},{symbol:"PowerGenerators",name:"Power Generators",category:"Machinery"},{symbol:"WaterPurifiers",name:"Water Purifiers",category:"Machinery"},{symbol:"HeliostaticFurnaces",name:"Microbial Furnaces",category:"Machinery"},{symbol:"MineralExtractors",name:"Mineral Extractors",category:"Machinery"},{symbol:"CropHarvesters",name:"Crop Harvesters",category:"Machinery"},{symbol:"MarineSupplies",name:"Marine Equipment",category:"Machinery"},{symbol:"ComputerComponents",name:"Computer Components",category:"Technology"},{symbol:"HazardousEnvironmentSuits",name:"H.E. Suits",category:"Technology"},{symbol:"Robotics",name:"Robotics",category:"Technology"},{symbol:"AutoFabricators",name:"Auto-Fabricators",category:"Technology"},{symbol:"AnimalMonitors",name:"Animal Monitors",category:"Technology"},{symbol:"AquaponicSystems",name:"Aquaponic Systems",category:"Technology"},{symbol:"AdvancedCatalysers",name:"Advanced Catalysers",category:"Technology"},{symbol:"TerrainEnrichmentSystems",name:"Land Enrichment Systems",category:"Technology"},{symbol:"PersonalWeapons",name:"Personal Weapons",category:"Weapons"},{symbol:"BattleWeapons",name:"Battle Weapons",category:"Weapons"},{symbol:"ReactiveArmour",name:"Reactive Armour",category:"Weapons"},{symbol:"NonLethalWeapons",name:"Non-Lethal Weapons",category:"Weapons"},{symbol:"DomesticAppliances",name:"Domestic Appliances",category:"Consumer Items"},{symbol:"ConsumerTechnology",name:"Consumer Technology",category:"Consumer Items"},{symbol:"Clothing",name:"Clothing",category:"Consumer Items"},{symbol:"Slaves",name:"Slaves",category:"Slavery"},{symbol:"Biowaste",name:"Biowaste",category:"Waste"},{symbol:"ToxicWaste",name:"Toxic Waste",category:"Waste"},{symbol:"ChemicalWaste",name:"Chemical Waste",category:"Waste"},{symbol:"Scrap",name:"Scrap",category:"Waste"},{symbol:"ProgenitorCells",name:"Progenitor Cells",category:"Medicines"},{symbol:"CombatStabilisers",name:"Combat Stabilisers",category:"Medicines"},{symbol:"ResonatingSeparators",name:"Resonating Separators",category:"Technology"},{symbol:"BioReducingLichen",name:"Bioreducing Lichen",category:"Technology"},{symbol:"AtmosphericExtractors",name:"Atmospheric Processors",category:"Machinery"},{symbol:"Drones",name:"Limpets",category:"NonMarketable"},{symbol:"USSCargoBlackBox",name:"Black Box",category:"Salvage"},{symbol:"USSCargoTradeData",name:"Trade Data",category:"Salvage"},{symbol:"USSCargoMilitaryPlans",name:"Military Plans",category:"Salvage"},{symbol:"USSCargoAncientArtefact",name:"Ancient Artefact",category:"Salvage"},{symbol:"USSCargoRareArtwork",name:"Rare Artwork",category:"Salvage"},{symbol:"USSCargoExperimentalChemicals",name:"Experimental Chemicals",category:"Salvage"},{symbol:"USSCargoRebelTransmissions",name:"Rebel Transmissions",category:"Salvage"},{symbol:"USSCargoPrototypeTech",name:"Prototype Tech",category:"Salvage"},{symbol:"USSCargoTechnicalBlueprints",name:"Technical Blueprints",category:"Salvage"},{symbol:"ImperialSlaves",name:"Imperial Slaves",category:"Slavery"},{symbol:"UnknownArtifact",name:"Thargoid Sensor",category:"Salvage"},{symbol:"AiRelics",name:"AI Relics",category:"Salvage"},{symbol:"Hafnium178",name:"Hafnium 178",category:"Metals"},{symbol:"Painite",name:"Painite",category:"Minerals"},{symbol:"Antiquities",name:"Antiquities",category:"Salvage"},{symbol:"MilitaryIntelligence",name:"Military Intelligence",category:"Salvage"},{symbol:"Osmium",name:"Osmium",category:"Metals"},{symbol:"SAP8CoreContainer",name:"SAP 8 Core Container",category:"Salvage"},{symbol:"TrinketsOfFortune",name:"Trinkets of Hidden Fortune",category:"Consumer Items"},{symbol:"WreckageComponents",name:"Wreckage Components",category:"Salvage"},{symbol:"EncriptedDataStorage",name:"Encrypted Data Storage",category:"Salvage"},{symbol:"OccupiedCryoPod",name:"Occupied Escape Pod",category:"Salvage"},{symbol:"PersonalEffects",name:"Personal Effects",category:"Salvage"},{symbol:"ComercialSamples",name:"Commercial Samples",category:"Salvage"},{symbol:"TacticalData",name:"Tactical Data",category:"Salvage"},{symbol:"AssaultPlans",name:"Assault Plans",category:"Salvage"},{symbol:"EncryptedCorrespondence",name:"Encrypted Correspondence",category:"Salvage"},{symbol:"DiplomaticBag",name:"Diplomatic Bag",category:"Salvage"},{symbol:"ScientificResearch",name:"Scientific Research",category:"Salvage"},{symbol:"ScientificSamples",name:"Scientific Samples",category:"Salvage"},{symbol:"PoliticalPrisoner",name:"Political Prisoners",category:"Salvage"},{symbol:"Hostage",name:"Hostages",category:"Salvage"},{symbol:"LargeExplorationDataCash",name:"Large Survey Data Cache",category:"Salvage"},{symbol:"SmallExplorationDataCash",name:"Small Survey Data Cache",category:"Salvage"},{symbol:"AntiqueJewellery",name:"Antique Jewellery",category:"Salvage"},{symbol:"PreciousGems",name:"Precious Gems",category:"Salvage"},{symbol:"EarthRelics",name:"Earth Relics",category:"Salvage"},{symbol:"GeneBank",name:"Gene Bank",category:"Salvage"},{symbol:"TimeCapsule",name:"Time Capsule",category:"Salvage"},{symbol:"Cryolite",name:"Cryolite",category:"Minerals"},{symbol:"Goslarite",name:"Goslarite",category:"Minerals"},{symbol:"Moissanite",name:"Moissanite",category:"Minerals"},{symbol:"Pyrophyllite",name:"Pyrophyllite",category:"Minerals"},{symbol:"Lanthanum",name:"Lanthanum",category:"Metals"},{symbol:"Thallium",name:"Thallium",category:"Metals"},{symbol:"Bismuth",name:"Bismuth",category:"Metals"},{symbol:"Thorium",name:"Thorium",category:"Metals"},{symbol:"CeramicComposites",name:"Ceramic Composites",category:"Industrial Materials"},{symbol:"SyntheticReagents",name:"Synthetic Reagents",category:"Chemicals"},{symbol:"NerveAgents",name:"Nerve Agents",category:"Chemicals"},{symbol:"SurfaceStabilisers",name:"Surface Stabilisers",category:"Chemicals"},{symbol:"BootlegLiquor",name:"Bootleg Liquor",category:"Legal Drugs"},{symbol:"GeologicalEquipment",name:"Geological Equipment",category:"Machinery"},{symbol:"ThermalCoolingUnits",name:"Thermal Cooling Units",category:"Machinery"},{symbol:"BuildingFabricators",name:"Building Fabricators",category:"Machinery"},{symbol:"MuTomImager",name:"Muon Imager",category:"Technology"},{symbol:"StructuralRegulators",name:"Structural Regulators",category:"Technology"},{symbol:"Landmines",name:"Landmines",category:"Weapons"},{symbol:"SkimerComponents",name:"Skimmer Components",category:"Machinery"},{symbol:"EvacuationShelter",name:"Evacuation Shelter",category:"Consumer Items"},{symbol:"GeologicalSamples",name:"Geological Samples",category:"Salvage"},{symbol:"MetaAlloys",name:"Meta-Alloys",category:"Industrial Materials"},{symbol:"Taaffeite",name:"Taaffeite",category:"Minerals"},{symbol:"Jadeite",name:"Jadeite",category:"Minerals"},{symbol:"UnstableDataCore",name:"Unstable Data Core",category:"Salvage"},{symbol:"DamagedEscapePod",name:"Damaged Escape Pod",category:"Salvage"},{symbol:"Praseodymium",name:"Praseodymium",category:"Metals"},{symbol:"Bromellite",name:"Bromellite",category:"Minerals"},{symbol:"Samarium",name:"Samarium",category:"Metals"},{symbol:"LowTemperatureDiamond",name:"Low Temperature Diamonds",category:"Minerals"},{symbol:"HydrogenPeroxide",name:"Hydrogen Peroxide",category:"Chemicals"},{symbol:"LiquidOxygen",name:"Liquid oxygen",category:"Chemicals"},{symbol:"MethanolMonohydrateCrystals",name:"Methanol Monohydrate Crystals",category:"Minerals"},{symbol:"LithiumHydroxide",name:"Lithium Hydroxide",category:"Minerals"},{symbol:"MethaneClathrate",name:"Methane Clathrate",category:"Minerals"},{symbol:"InsulatingMembrane",name:"Insulating Membrane",category:"Industrial Materials"},{symbol:"CMMComposite",name:"CMM Composite",category:"Industrial Materials"},{symbol:"CoolingHoses",name:"Micro-weave Cooling Hoses",category:"Industrial Materials"},{symbol:"NeofabricInsulation",name:"Neofabric Insulation",category:"Industrial Materials"},{symbol:"ArticulationMotors",name:"Articulation Motors",category:"Machinery"},{symbol:"HNShockMount",name:"HN Shock Mount",category:"Machinery"},{symbol:"EmergencyPowerCells",name:"Emergency Power Cells",category:"Machinery"},{symbol:"PowerConverter",name:"Power Converter",category:"Machinery"},{symbol:"PowerGridAssembly",name:"Energy Grid Assembly",category:"Machinery"},{symbol:"PowerTransferConduits",name:"Power Transfer Bus",category:"Machinery"},{symbol:"RadiationBaffle",name:"Radiation Baffle",category:"Machinery"},{symbol:"ExhaustManifold",name:"Exhaust Manifold",category:"Machinery"},{symbol:"ReinforcedMountingPlate",name:"Reinforced Mounting Plate",category:"Machinery"},{symbol:"HeatsinkInterlink",name:"Heatsink Interlink",category:"Machinery"},{symbol:"MagneticEmitterCoil",name:"Magnetic Emitter Coil",category:"Machinery"},{symbol:"ModularTerminals",name:"Modular Terminals",category:"Machinery"},{symbol:"Nanobreakers",name:"Nanobreakers",category:"Technology"},{symbol:"TelemetrySuite",name:"Telemetry Suite",category:"Technology"},{symbol:"MicroControllers",name:"Micro Controllers",category:"Technology"},{symbol:"IonDistributor",name:"Ion Distributor",category:"Machinery"},{symbol:"DiagnosticSensor",name:"Hardware Diagnostic Sensor",category:"Technology"},{symbol:"UnknownArtifact2",name:"Thargoid Probe",category:"Salvage"},{symbol:"ConductiveFabrics",name:"Conductive Fabrics",category:"Textiles"},{symbol:"MilitaryGradeFabrics",name:"Military Grade Fabrics",category:"Textiles"},{symbol:"AdvancedMedicines",name:"Advanced Medicines",category:"Medicines"},{symbol:"MedicalDiagnosticEquipment",name:"Medical Diagnostic Equipment",category:"Technology"},{symbol:"SurvivalEquipment",name:"Survival Equipment",category:"Consumer Items"},{symbol:"DataCore",name:"Data Core",category:"Salvage"},{symbol:"MysteriousIdol",name:"Mysterious Idol",category:"Salvage"},{symbol:"ProhibitedResearchMaterials",name:"Prohibited Research Materials",category:"Salvage"},{symbol:"AntimatterContainmentUnit",name:"Antimatter Containment Unit",category:"Salvage"},{symbol:"SpacePioneerRelics",name:"Space Pioneer Relics",category:"Salvage"},{symbol:"FossilRemnants",name:"Fossil Remnants",category:"Salvage"},{symbol:"AncientRelic",name:"Guardian Relic",category:"Salvage"},{symbol:"AncientOrb",name:"Guardian Orb",category:"Salvage"},{symbol:"AncientCasket",name:"Guardian Casket",category:"Salvage"},{symbol:"AncientTablet",name:"Guardian Tablet",category:"Salvage"},{symbol:"AncientUrn",name:"Guardian Urn",category:"Salvage"},{symbol:"AncientTotem",name:"Guardian Totem",category:"Salvage"},{symbol:"UnknownResin",name:"Thargoid Resin",category:"Salvage"},{symbol:"UnknownBiologicalMatter",name:"Thargoid Biological Matter",category:"Salvage"},{symbol:"UnknownTechnologySamples",name:"Thargoid Technology Samples",category:"Salvage"},{symbol:"UnknownArtifact3",name:"Thargoid Link",category:"Salvage"},{symbol:"ThargoidHeart",name:"Thargoid Heart",category:"Salvage"},{symbol:"ThargoidTissueSampleType1",name:"Thargoid Cyclops Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType2",name:"Thargoid Basilisk Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType3",name:"Thargoid Medusa Tissue Sample",category:"Salvage"},{symbol:"ThargoidScoutTissueSample",name:"Thargoid Scout Tissue Sample",category:"Salvage"},{symbol:"AncientKey",name:"Ancient Key",category:"Salvage"},{symbol:"ThargoidTissueSampleType4",name:"Thargoid Hydra Tissue Sample",category:"Salvage"},{symbol:"M_TissueSample_Fluid",name:"Mollusc Fluid",category:"Salvage"},{symbol:"M_TissueSample_Soft",name:"Mollusc Soft Tissue",category:"Salvage"},{symbol:"M_TissueSample_Nerves",name:"Mollusc Brain Tissue",category:"Salvage"},{symbol:"S_TissueSample_Cells",name:"Pod Core Tissue",category:"Salvage"},{symbol:"S_TissueSample_Surface",name:"Pod Dead Tissue",category:"Salvage"},{symbol:"S_TissueSample_Core",name:"Pod Surface Tissue",category:"Salvage"},{symbol:"P_ParticulateSample",name:"Anomaly Particles",category:"Salvage"},{symbol:"S9_TissueSample_Shell",name:"Pod Tissue",category:"Salvage"},{symbol:"M3_TissueSample_Membrane",name:"Mollusc Membrane",category:"Salvage"},{symbol:"M3_TissueSample_Mycelium",name:"Mollusc Mycelium",category:"Salvage"},{symbol:"M3_TissueSample_Spores",name:"Mollusc Spores",category:"Salvage"},{symbol:"S6_TissueSample_Mesoglea",name:"Pod Mesoglea",category:"Salvage"},{symbol:"S6_TissueSample_Cells",name:"Pod Outer Tissue",category:"Salvage"},{symbol:"S6_TissueSample_Coenosarc",name:"Pod Shell Tissue",category:"Salvage"},{symbol:"Rhodplumsite",name:"Rhodplumsite",category:"Minerals"},{symbol:"Serendibite",name:"Serendibite",category:"Minerals"},{symbol:"Monazite",name:"Monazite",category:"Minerals"},{symbol:"Musgravite",name:"Musgravite",category:"Minerals"},{symbol:"Benitoite",name:"Benitoite",category:"Minerals"},{symbol:"Grandidierite",name:"Grandidierite",category:"Minerals"},{symbol:"Alexandrite",name:"Alexandrite",category:"Minerals"},{symbol:"Opal",name:"Void Opal",category:"Minerals"},{symbol:"RockforthFertiliser",name:"Rockforth Fertiliser",category:"Chemicals"},{symbol:"AgronomicTreatment",name:"Agronomic Treatment",category:"Chemicals"},{symbol:"Tritium",name:"Tritium",category:"Chemicals"},{symbol:"OnionHeadC",name:"Onionhead Gamma Strain",category:"Legal Drugs"},{symbol:"AncientRelicTG",name:"Unclassified Relic",category:"Salvage"},{symbol:"ThargoidTissueSampleType5",name:"Thargoid Orthrus Tissue Sample",category:"Salvage"},{symbol:"ThargoidGeneratorTissueSample",name:"Caustic Tissue Sample",category:"Salvage"},{symbol:"UnocuppiedEscapePod",name:"Unoccupied Escape Pod",category:"Salvage"},{symbol:"ThargoidTissueSampleType6",name:"Thargoid Glaive Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType7",name:"Thargoid Scythe Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9a",name:"Titan Deep Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9b",name:"Titan Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9c",name:"Titan Partial Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10a",name:"Titan Maw Deep Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10b",name:"Titan Maw Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10c",name:"Titan Maw Partial Tissue Sample",category:"Salvage"},{symbol:"UnknownSack",name:"Protective Membrane Scrap",category:"Salvage"},{symbol:"ThargoidPod",name:"Xenobiological Prison Pod",category:"Salvage"},{symbol:"CoralSap",name:"Coral Sap",category:"Salvage"},{symbol:"UnknownMineral",name:"Impure Spire Mineral",category:"Salvage"},{symbol:"UnknownRefinedMineral",name:"Semi-Refined Spire Mineral",category:"Salvage"},{symbol:"ThargoidTitanDriveComponent",name:"Titan Drive Component",category:"Salvage"},{symbol:"ThargoidCystSpecimen",name:"Cyst Specimen",category:"Salvage"},{symbol:"ThargoidBoneFragments",name:"Bone Fragments",category:"Salvage"},{symbol:"ThargoidOrganSample",name:"Organ Sample",category:"Salvage"},{symbol:"Steel",name:"Steel",category:"Metals"},{symbol:"Haematite",name:"Haematite",category:"Minerals"},{symbol:"curatedcommodity",name:"Curated Commodity Package",category:"Industrial Materials"}];var COMMODITIES=buildCommodityCatalogue(commodities_default,false);export{COMMODITIES};//# sourceMappingURL=chunk-7EE5VIHR.js.map
|
|
1
|
+
import{buildCommodityCatalogue}from"./chunk-VQJXRPYI.js";var commodities_default=[{symbol:"Platinum",name:"Platinum",category:"Metals"},{symbol:"Palladium",name:"Palladium",category:"Metals"},{symbol:"Gold",name:"Gold",category:"Metals"},{symbol:"Silver",name:"Silver",category:"Metals"},{symbol:"Bertrandite",name:"Bertrandite",category:"Minerals"},{symbol:"Indite",name:"Indite",category:"Minerals"},{symbol:"Gallite",name:"Gallite",category:"Minerals"},{symbol:"Coltan",name:"Coltan",category:"Minerals"},{symbol:"Uraninite",name:"Uraninite",category:"Minerals"},{symbol:"Lepidolite",name:"Lepidolite",category:"Minerals"},{symbol:"Cobalt",name:"Cobalt",category:"Metals"},{symbol:"Rutile",name:"Rutile",category:"Minerals"},{symbol:"Bauxite",name:"Bauxite",category:"Minerals"},{symbol:"Water",name:"Water",category:"Chemicals"},{symbol:"Beryllium",name:"Beryllium",category:"Metals"},{symbol:"Indium",name:"Indium",category:"Metals"},{symbol:"Gallium",name:"Gallium",category:"Metals"},{symbol:"Tantalum",name:"Tantalum",category:"Metals"},{symbol:"Uranium",name:"Uranium",category:"Metals"},{symbol:"Lithium",name:"Lithium",category:"Metals"},{symbol:"Titanium",name:"Titanium",category:"Metals"},{symbol:"Copper",name:"Copper",category:"Metals"},{symbol:"Aluminium",name:"Aluminium",category:"Metals"},{symbol:"Algae",name:"Algae",category:"Foods"},{symbol:"FruitAndVegetables",name:"Fruit and Vegetables",category:"Foods"},{symbol:"Grain",name:"Grain",category:"Foods"},{symbol:"Animalmeat",name:"Animal Meat",category:"Foods"},{symbol:"Fish",name:"Fish",category:"Foods"},{symbol:"FoodCartridges",name:"Food Cartridges",category:"Foods"},{symbol:"SyntheticMeat",name:"Synthetic Meat",category:"Foods"},{symbol:"Tea",name:"Tea",category:"Foods"},{symbol:"Coffee",name:"Coffee",category:"Foods"},{symbol:"Leather",name:"Leather",category:"Textiles"},{symbol:"NaturalFabrics",name:"Natural Fabrics",category:"Textiles"},{symbol:"SyntheticFabrics",name:"Synthetic Fabrics",category:"Textiles"},{symbol:"Polymers",name:"Polymers",category:"Industrial Materials"},{symbol:"Semiconductors",name:"Semiconductors",category:"Industrial Materials"},{symbol:"Superconductors",name:"Superconductors",category:"Industrial Materials"},{symbol:"HydrogenFuel",name:"Hydrogen Fuel",category:"Chemicals"},{symbol:"MineralOil",name:"Mineral Oil",category:"Chemicals"},{symbol:"Explosives",name:"Explosives",category:"Chemicals"},{symbol:"Pesticides",name:"Pesticides",category:"Chemicals"},{symbol:"AgriculturalMedicines",name:"Agri-Medicines",category:"Medicines"},{symbol:"PerformanceEnhancers",name:"Performance Enhancers",category:"Medicines"},{symbol:"BasicMedicines",name:"Basic Medicines",category:"Medicines"},{symbol:"BasicNarcotics",name:"Narcotics",category:"Legal Drugs"},{symbol:"Tobacco",name:"Tobacco",category:"Legal Drugs"},{symbol:"Beer",name:"Beer",category:"Legal Drugs"},{symbol:"Wine",name:"Wine",category:"Legal Drugs"},{symbol:"Liquor",name:"Liquor",category:"Legal Drugs"},{symbol:"PowerGenerators",name:"Power Generators",category:"Machinery"},{symbol:"WaterPurifiers",name:"Water Purifiers",category:"Machinery"},{symbol:"HeliostaticFurnaces",name:"Microbial Furnaces",category:"Machinery"},{symbol:"MineralExtractors",name:"Mineral Extractors",category:"Machinery"},{symbol:"CropHarvesters",name:"Crop Harvesters",category:"Machinery"},{symbol:"MarineSupplies",name:"Marine Equipment",category:"Machinery"},{symbol:"ComputerComponents",name:"Computer Components",category:"Technology"},{symbol:"HazardousEnvironmentSuits",name:"H.E. Suits",category:"Technology"},{symbol:"Robotics",name:"Robotics",category:"Technology"},{symbol:"AutoFabricators",name:"Auto-Fabricators",category:"Technology"},{symbol:"AnimalMonitors",name:"Animal Monitors",category:"Technology"},{symbol:"AquaponicSystems",name:"Aquaponic Systems",category:"Technology"},{symbol:"AdvancedCatalysers",name:"Advanced Catalysers",category:"Technology"},{symbol:"TerrainEnrichmentSystems",name:"Land Enrichment Systems",category:"Technology"},{symbol:"PersonalWeapons",name:"Personal Weapons",category:"Weapons"},{symbol:"BattleWeapons",name:"Battle Weapons",category:"Weapons"},{symbol:"ReactiveArmour",name:"Reactive Armour",category:"Weapons"},{symbol:"NonLethalWeapons",name:"Non-Lethal Weapons",category:"Weapons"},{symbol:"DomesticAppliances",name:"Domestic Appliances",category:"Consumer Items"},{symbol:"ConsumerTechnology",name:"Consumer Technology",category:"Consumer Items"},{symbol:"Clothing",name:"Clothing",category:"Consumer Items"},{symbol:"Slaves",name:"Slaves",category:"Slavery"},{symbol:"Biowaste",name:"Biowaste",category:"Waste"},{symbol:"ToxicWaste",name:"Toxic Waste",category:"Waste"},{symbol:"ChemicalWaste",name:"Chemical Waste",category:"Waste"},{symbol:"Scrap",name:"Scrap",category:"Waste"},{symbol:"ProgenitorCells",name:"Progenitor Cells",category:"Medicines"},{symbol:"CombatStabilisers",name:"Combat Stabilisers",category:"Medicines"},{symbol:"ResonatingSeparators",name:"Resonating Separators",category:"Technology"},{symbol:"BioReducingLichen",name:"Bioreducing Lichen",category:"Technology"},{symbol:"AtmosphericExtractors",name:"Atmospheric Processors",category:"Machinery"},{symbol:"Drones",name:"Limpets",category:"NonMarketable"},{symbol:"USSCargoBlackBox",name:"Black Box",category:"Salvage"},{symbol:"USSCargoTradeData",name:"Trade Data",category:"Salvage"},{symbol:"USSCargoMilitaryPlans",name:"Military Plans",category:"Salvage"},{symbol:"USSCargoAncientArtefact",name:"Ancient Artefact",category:"Salvage"},{symbol:"USSCargoRareArtwork",name:"Rare Artwork",category:"Salvage"},{symbol:"USSCargoExperimentalChemicals",name:"Experimental Chemicals",category:"Salvage"},{symbol:"USSCargoRebelTransmissions",name:"Rebel Transmissions",category:"Salvage"},{symbol:"USSCargoPrototypeTech",name:"Prototype Tech",category:"Salvage"},{symbol:"USSCargoTechnicalBlueprints",name:"Technical Blueprints",category:"Salvage"},{symbol:"ImperialSlaves",name:"Imperial Slaves",category:"Slavery"},{symbol:"UnknownArtifact",name:"Thargoid Sensor",category:"Salvage"},{symbol:"AiRelics",name:"AI Relics",category:"Salvage"},{symbol:"Hafnium178",name:"Hafnium 178",category:"Metals"},{symbol:"Painite",name:"Painite",category:"Minerals"},{symbol:"Antiquities",name:"Antiquities",category:"Salvage"},{symbol:"MilitaryIntelligence",name:"Military Intelligence",category:"Salvage"},{symbol:"Osmium",name:"Osmium",category:"Metals"},{symbol:"SAP8CoreContainer",name:"SAP 8 Core Container",category:"Salvage"},{symbol:"TrinketsOfFortune",name:"Trinkets of Hidden Fortune",category:"Consumer Items"},{symbol:"WreckageComponents",name:"Wreckage Components",category:"Salvage"},{symbol:"EncriptedDataStorage",name:"Encrypted Data Storage",category:"Salvage"},{symbol:"OccupiedCryoPod",name:"Occupied Escape Pod",category:"Salvage"},{symbol:"PersonalEffects",name:"Personal Effects",category:"Salvage"},{symbol:"ComercialSamples",name:"Commercial Samples",category:"Salvage"},{symbol:"TacticalData",name:"Tactical Data",category:"Salvage"},{symbol:"AssaultPlans",name:"Assault Plans",category:"Salvage"},{symbol:"EncryptedCorrespondence",name:"Encrypted Correspondence",category:"Salvage"},{symbol:"DiplomaticBag",name:"Diplomatic Bag",category:"Salvage"},{symbol:"ScientificResearch",name:"Scientific Research",category:"Salvage"},{symbol:"ScientificSamples",name:"Scientific Samples",category:"Salvage"},{symbol:"PoliticalPrisoner",name:"Political Prisoners",category:"Salvage"},{symbol:"Hostage",name:"Hostages",category:"Salvage"},{symbol:"LargeExplorationDataCash",name:"Large Survey Data Cache",category:"Salvage"},{symbol:"SmallExplorationDataCash",name:"Small Survey Data Cache",category:"Salvage"},{symbol:"AntiqueJewellery",name:"Antique Jewellery",category:"Salvage"},{symbol:"PreciousGems",name:"Precious Gems",category:"Salvage"},{symbol:"EarthRelics",name:"Earth Relics",category:"Salvage"},{symbol:"GeneBank",name:"Gene Bank",category:"Salvage"},{symbol:"TimeCapsule",name:"Time Capsule",category:"Salvage"},{symbol:"Cryolite",name:"Cryolite",category:"Minerals"},{symbol:"Goslarite",name:"Goslarite",category:"Minerals"},{symbol:"Moissanite",name:"Moissanite",category:"Minerals"},{symbol:"Pyrophyllite",name:"Pyrophyllite",category:"Minerals"},{symbol:"Lanthanum",name:"Lanthanum",category:"Metals"},{symbol:"Thallium",name:"Thallium",category:"Metals"},{symbol:"Bismuth",name:"Bismuth",category:"Metals"},{symbol:"Thorium",name:"Thorium",category:"Metals"},{symbol:"CeramicComposites",name:"Ceramic Composites",category:"Industrial Materials"},{symbol:"SyntheticReagents",name:"Synthetic Reagents",category:"Chemicals"},{symbol:"NerveAgents",name:"Nerve Agents",category:"Chemicals"},{symbol:"SurfaceStabilisers",name:"Surface Stabilisers",category:"Chemicals"},{symbol:"BootlegLiquor",name:"Bootleg Liquor",category:"Legal Drugs"},{symbol:"GeologicalEquipment",name:"Geological Equipment",category:"Machinery"},{symbol:"ThermalCoolingUnits",name:"Thermal Cooling Units",category:"Machinery"},{symbol:"BuildingFabricators",name:"Building Fabricators",category:"Machinery"},{symbol:"MuTomImager",name:"Muon Imager",category:"Technology"},{symbol:"StructuralRegulators",name:"Structural Regulators",category:"Technology"},{symbol:"Landmines",name:"Landmines",category:"Weapons"},{symbol:"SkimerComponents",name:"Skimmer Components",category:"Machinery"},{symbol:"EvacuationShelter",name:"Evacuation Shelter",category:"Consumer Items"},{symbol:"GeologicalSamples",name:"Geological Samples",category:"Salvage"},{symbol:"MetaAlloys",name:"Meta-Alloys",category:"Industrial Materials"},{symbol:"Taaffeite",name:"Taaffeite",category:"Minerals"},{symbol:"Jadeite",name:"Jadeite",category:"Minerals"},{symbol:"UnstableDataCore",name:"Unstable Data Core",category:"Salvage"},{symbol:"DamagedEscapePod",name:"Damaged Escape Pod",category:"Salvage"},{symbol:"Praseodymium",name:"Praseodymium",category:"Metals"},{symbol:"Bromellite",name:"Bromellite",category:"Minerals"},{symbol:"Samarium",name:"Samarium",category:"Metals"},{symbol:"LowTemperatureDiamond",name:"Low Temperature Diamonds",category:"Minerals"},{symbol:"HydrogenPeroxide",name:"Hydrogen Peroxide",category:"Chemicals"},{symbol:"LiquidOxygen",name:"Liquid oxygen",category:"Chemicals"},{symbol:"MethanolMonohydrateCrystals",name:"Methanol Monohydrate Crystals",category:"Minerals"},{symbol:"LithiumHydroxide",name:"Lithium Hydroxide",category:"Minerals"},{symbol:"MethaneClathrate",name:"Methane Clathrate",category:"Minerals"},{symbol:"InsulatingMembrane",name:"Insulating Membrane",category:"Industrial Materials"},{symbol:"CMMComposite",name:"CMM Composite",category:"Industrial Materials"},{symbol:"CoolingHoses",name:"Micro-weave Cooling Hoses",category:"Industrial Materials"},{symbol:"NeofabricInsulation",name:"Neofabric Insulation",category:"Industrial Materials"},{symbol:"ArticulationMotors",name:"Articulation Motors",category:"Machinery"},{symbol:"HNShockMount",name:"HN Shock Mount",category:"Machinery"},{symbol:"EmergencyPowerCells",name:"Emergency Power Cells",category:"Machinery"},{symbol:"PowerConverter",name:"Power Converter",category:"Machinery"},{symbol:"PowerGridAssembly",name:"Energy Grid Assembly",category:"Machinery"},{symbol:"PowerTransferConduits",name:"Power Transfer Bus",category:"Machinery"},{symbol:"RadiationBaffle",name:"Radiation Baffle",category:"Machinery"},{symbol:"ExhaustManifold",name:"Exhaust Manifold",category:"Machinery"},{symbol:"ReinforcedMountingPlate",name:"Reinforced Mounting Plate",category:"Machinery"},{symbol:"HeatsinkInterlink",name:"Heatsink Interlink",category:"Machinery"},{symbol:"MagneticEmitterCoil",name:"Magnetic Emitter Coil",category:"Machinery"},{symbol:"ModularTerminals",name:"Modular Terminals",category:"Machinery"},{symbol:"Nanobreakers",name:"Nanobreakers",category:"Technology"},{symbol:"TelemetrySuite",name:"Telemetry Suite",category:"Technology"},{symbol:"MicroControllers",name:"Micro Controllers",category:"Technology"},{symbol:"IonDistributor",name:"Ion Distributor",category:"Machinery"},{symbol:"DiagnosticSensor",name:"Hardware Diagnostic Sensor",category:"Technology"},{symbol:"UnknownArtifact2",name:"Thargoid Probe",category:"Salvage"},{symbol:"ConductiveFabrics",name:"Conductive Fabrics",category:"Textiles"},{symbol:"MilitaryGradeFabrics",name:"Military Grade Fabrics",category:"Textiles"},{symbol:"AdvancedMedicines",name:"Advanced Medicines",category:"Medicines"},{symbol:"MedicalDiagnosticEquipment",name:"Medical Diagnostic Equipment",category:"Technology"},{symbol:"SurvivalEquipment",name:"Survival Equipment",category:"Consumer Items"},{symbol:"DataCore",name:"Data Core",category:"Salvage"},{symbol:"MysteriousIdol",name:"Mysterious Idol",category:"Salvage"},{symbol:"ProhibitedResearchMaterials",name:"Prohibited Research Materials",category:"Salvage"},{symbol:"AntimatterContainmentUnit",name:"Antimatter Containment Unit",category:"Salvage"},{symbol:"SpacePioneerRelics",name:"Space Pioneer Relics",category:"Salvage"},{symbol:"FossilRemnants",name:"Fossil Remnants",category:"Salvage"},{symbol:"AncientRelic",name:"Guardian Relic",category:"Salvage"},{symbol:"AncientOrb",name:"Guardian Orb",category:"Salvage"},{symbol:"AncientCasket",name:"Guardian Casket",category:"Salvage"},{symbol:"AncientTablet",name:"Guardian Tablet",category:"Salvage"},{symbol:"AncientUrn",name:"Guardian Urn",category:"Salvage"},{symbol:"AncientTotem",name:"Guardian Totem",category:"Salvage"},{symbol:"UnknownResin",name:"Thargoid Resin",category:"Salvage"},{symbol:"UnknownBiologicalMatter",name:"Thargoid Biological Matter",category:"Salvage"},{symbol:"UnknownTechnologySamples",name:"Thargoid Technology Samples",category:"Salvage"},{symbol:"UnknownArtifact3",name:"Thargoid Link",category:"Salvage"},{symbol:"ThargoidHeart",name:"Thargoid Heart",category:"Salvage"},{symbol:"ThargoidTissueSampleType1",name:"Thargoid Cyclops Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType2",name:"Thargoid Basilisk Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType3",name:"Thargoid Medusa Tissue Sample",category:"Salvage"},{symbol:"ThargoidScoutTissueSample",name:"Thargoid Scout Tissue Sample",category:"Salvage"},{symbol:"AncientKey",name:"Ancient Key",category:"Salvage"},{symbol:"ThargoidTissueSampleType4",name:"Thargoid Hydra Tissue Sample",category:"Salvage"},{symbol:"M_TissueSample_Fluid",name:"Mollusc Fluid",category:"Salvage"},{symbol:"M_TissueSample_Soft",name:"Mollusc Soft Tissue",category:"Salvage"},{symbol:"M_TissueSample_Nerves",name:"Mollusc Brain Tissue",category:"Salvage"},{symbol:"S_TissueSample_Cells",name:"Pod Core Tissue",category:"Salvage"},{symbol:"S_TissueSample_Surface",name:"Pod Dead Tissue",category:"Salvage"},{symbol:"S_TissueSample_Core",name:"Pod Surface Tissue",category:"Salvage"},{symbol:"P_ParticulateSample",name:"Anomaly Particles",category:"Salvage"},{symbol:"S9_TissueSample_Shell",name:"Pod Tissue",category:"Salvage"},{symbol:"M3_TissueSample_Membrane",name:"Mollusc Membrane",category:"Salvage"},{symbol:"M3_TissueSample_Mycelium",name:"Mollusc Mycelium",category:"Salvage"},{symbol:"M3_TissueSample_Spores",name:"Mollusc Spores",category:"Salvage"},{symbol:"S6_TissueSample_Mesoglea",name:"Pod Mesoglea",category:"Salvage"},{symbol:"S6_TissueSample_Cells",name:"Pod Outer Tissue",category:"Salvage"},{symbol:"S6_TissueSample_Coenosarc",name:"Pod Shell Tissue",category:"Salvage"},{symbol:"Rhodplumsite",name:"Rhodplumsite",category:"Minerals"},{symbol:"Serendibite",name:"Serendibite",category:"Minerals"},{symbol:"Monazite",name:"Monazite",category:"Minerals"},{symbol:"Musgravite",name:"Musgravite",category:"Minerals"},{symbol:"Benitoite",name:"Benitoite",category:"Minerals"},{symbol:"Grandidierite",name:"Grandidierite",category:"Minerals"},{symbol:"Alexandrite",name:"Alexandrite",category:"Minerals"},{symbol:"Opal",name:"Void Opal",category:"Minerals"},{symbol:"RockforthFertiliser",name:"Rockforth Fertiliser",category:"Chemicals"},{symbol:"AgronomicTreatment",name:"Agronomic Treatment",category:"Chemicals"},{symbol:"Tritium",name:"Tritium",category:"Chemicals"},{symbol:"OnionHeadC",name:"Onionhead Gamma Strain",category:"Legal Drugs"},{symbol:"AncientRelicTG",name:"Unclassified Relic",category:"Salvage"},{symbol:"ThargoidTissueSampleType5",name:"Thargoid Orthrus Tissue Sample",category:"Salvage"},{symbol:"ThargoidGeneratorTissueSample",name:"Caustic Tissue Sample",category:"Salvage"},{symbol:"UnocuppiedEscapePod",name:"Unoccupied Escape Pod",category:"Salvage"},{symbol:"ThargoidTissueSampleType6",name:"Thargoid Glaive Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType7",name:"Thargoid Scythe Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9a",name:"Titan Deep Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9b",name:"Titan Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType9c",name:"Titan Partial Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10a",name:"Titan Maw Deep Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10b",name:"Titan Maw Tissue Sample",category:"Salvage"},{symbol:"ThargoidTissueSampleType10c",name:"Titan Maw Partial Tissue Sample",category:"Salvage"},{symbol:"UnknownSack",name:"Protective Membrane Scrap",category:"Salvage"},{symbol:"ThargoidPod",name:"Xenobiological Prison Pod",category:"Salvage"},{symbol:"CoralSap",name:"Coral Sap",category:"Salvage"},{symbol:"UnknownMineral",name:"Impure Spire Mineral",category:"Salvage"},{symbol:"UnknownRefinedMineral",name:"Semi-Refined Spire Mineral",category:"Salvage"},{symbol:"ThargoidTitanDriveComponent",name:"Titan Drive Component",category:"Salvage"},{symbol:"ThargoidCystSpecimen",name:"Cyst Specimen",category:"Salvage"},{symbol:"ThargoidBoneFragments",name:"Bone Fragments",category:"Salvage"},{symbol:"ThargoidOrganSample",name:"Organ Sample",category:"Salvage"},{symbol:"Steel",name:"Steel",category:"Metals"},{symbol:"Haematite",name:"Haematite",category:"Minerals"},{symbol:"curatedcommodity",name:"Curated Commodity Package",category:"Industrial Materials"}];var COMMODITIES=buildCommodityCatalogue(commodities_default,false);export{COMMODITIES};//# sourceMappingURL=chunk-6HMIF2RJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{massCurveMultiplier,validateMassCurve}from"./chunk-6BFQIYGZ.js";import{requireFiniteNonNegative}from"./chunk-65FZECUX.js";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 curveMultiplier=(scope,mass,thrusters)=>massCurveMultiplier({scope:scope,mass:"mass",curve:"thrusters"},mass,thrusters);function resolveMobilityCurves(scope,input){for(const field of["minimumSpeed","maximumSpeed","boost","pitch","roll","yaw","mass"]){requireFiniteNonNegative(scope,field,input[field])}if(input.minimumSpeed>input.maximumSpeed){throw new RangeError(`${scope}: minimumSpeed must not exceed maximumSpeed`)}for(const[minimum,maximum]of[["minPitch","pitch"],["minRoll","roll"],["minYaw","yaw"]]){requireFiniteRange(scope,minimum,input[minimum],0,input[maximum])}if(!input.thrusters)return null;validateMassCurve(`${scope}: thrusters`,input.thrusters);return{massCurveMultiplier:curveMultiplier(`${scope}: speed curve`,input.mass,input.thrusters.speedCurve??input.thrusters),rotationMassCurveMultiplier:curveMultiplier(`${scope}: rotation curve`,input.mass,input.thrusters.rotationCurve??input.thrusters)}}export{curveMultiplier,resolveMobilityCurves};//# sourceMappingURL=chunk-6WTUY6ZX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ships/internal/mobility-core.ts"],"names":["massCurveMultiplier","
|
|
1
|
+
{"version":3,"sources":["../src/ships/internal/mobility-core.ts"],"names":["massCurveMultiplier","validateMassCurve","requireFiniteNonNegative","requireFiniteRange","scope","name","value","minimum","maximum","Number","isFinite","RangeError","curveMultiplier","mass","thrusters","curve","resolveMobilityCurves","input","field","minimumSpeed","maximumSpeed","speedCurve","rotationMassCurveMultiplier","rotationCurve"],"mappings":"O,0HAyBA,IAAMG,mBAAqB,CACvBC,MACAC,KACAC,MACAC,QACAC,WAEA,IAAKC,OAAOC,SAASJ,QAAUA,MAAQC,SAAWD,MAAQE,QAAS,CAC/D,MAAM,IAAIG,WACN,GAAGP,UAAUC,qCAAqCE,cAAcC,UAExE,GAGG,IAAMI,gBAAkB,CAC3BR,MACAS,KACAC,YACSd,oBAAoB,CAAEI,YAAOS,KAAM,OAAQE,MAAO,aAAeF,KAAMC,WAY7E,SAASE,sBAAsBZ,MAAea,OACjD,IAAA,MAAWC,QAAS,CAChB,eACA,eACA,QACA,QACA,OACA,MACA,QACQ,CACRhB,yBAAyBE,MAAOc,MAAOD,MAAMC,OACjD,CACA,GAAID,MAAME,aAAeF,MAAMG,aAAc,CACzC,MAAM,IAAIT,WAAW,GAAGP,mDAC5B,CACA,IAAA,MAAYG,QAASC,UAAY,CAC7B,CAAC,WAAY,SACb,CAAC,UAAW,QACZ,CAAC,SAAU,QACH,CACRL,mBAAmBC,MAAOG,QAASU,MAAMV,SAAU,EAAGU,MAAMT,SAChE,CACA,IAAKS,MAAMH,UAAW,OAAO,KAC7Bb,kBAAkB,GAAGG,mBAAoBa,MAAMH,WAC/C,MAAO,CACHd,oBAAqBY,gBACjB,GAAGR,qBACHa,MAAMJ,KACNI,MAAMH,UAAUO,YAAcJ,MAAMH,WAExCQ,4BAA6BV,gBACzB,GAAGR,wBACHa,MAAMJ,KACNI,MAAMH,UAAUS,eAAiBN,MAAMH,WAGnD,QAAAF,gBAAAI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{RARE_COMMODITIES}from"./chunk-GMTAFUAG.js";import{COMMODITIES}from"./chunk-6HMIF2RJ.js";var ALL_COMMODITIES=Object.freeze([...COMMODITIES,...RARE_COMMODITIES]);export{ALL_COMMODITIES};//# sourceMappingURL=chunk-77TT4K53.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ALL_MICRO_RESOURCES}from"./chunk-
|
|
1
|
+
import{ALL_MICRO_RESOURCES}from"./chunk-DAQ3PJ4R.js";import{findInKeyIndex,findByKey,filterByKey,createKeyIndex}from"./chunk-BKWLI44T.js";var MICRO_RESOURCES_BY_SYMBOL=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"symbol");var MICRO_RESOURCES_BY_NAME=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"name");function getMicroResourceBySymbol(symbol,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_SYMBOL,symbol,"getMicroResourceBySymbol: symbol"):findByKey(microResources,"symbol",symbol,"getMicroResourceBySymbol: symbol")}function getMicroResourceByName(name,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_NAME,name,"getMicroResourceByName: name"):findByKey(microResources,"name",name,"getMicroResourceByName: name")}function microResourcesInCategory(category){return filterByKey(ALL_MICRO_RESOURCES,"category",category,"microResourcesInCategory: category")}export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory};//# sourceMappingURL=chunk-7EWZGDWY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{parseSystemName,boxelCodeToLetters,formatSystemName}from"./chunk-7ATBEOVC.js";import{
|
|
1
|
+
import{parseSystemName,boxelCodeToLetters,formatSystemName}from"./chunk-7ATBEOVC.js";import{getHandAuthoredRegionOrigin,resolveNamingRegionOrigin}from"./chunk-DWRNXUAX.js";import{isPermitLockedRegionName}from"./chunk-NLBUKXNV.js";import{sizeClassToMassCode}from"./chunk-POZTXBSN.js";import{encodeSystemAddress,decodeSystemAddress,decodeModSystemAddress,encodeModSystemAddress,absoluteBoxelToBoxelCode}from"./chunk-DI5RXSJR.js";import{toSystemAddress}from"./chunk-NEEFT7WH.js";import{sectorGridPositionFromName,sectorNameFromGridPosition}from"./chunk-H47K3UWG.js";import{requireString,truncate}from"./chunk-PKWVG2JY.js";import{findHandAuthoredRegionAt}from"./chunk-AVZI6VKA.js";function tryEncodeModAddress(parts){const origin=resolveNamingRegionOrigin(parts.regionName);if(!origin)return null;try{return encodeModSystemAddress(parts,origin)}catch(error){if(error instanceof RangeError)return null;throw error}}function applyHaOverride(parts,decoded,position){if(!position)return{parts:parts,handAuthored:false,requiresPermit:false};const region=findHandAuthoredRegionAt(position);if(!region)return{parts:parts,handAuthored:false,requiresPermit:false};const origin=resolveNamingRegionOrigin(region.name);if(!origin||origin.x0<0||origin.y0<0||origin.z0<0){return{parts:parts,handAuthored:false,requiresPermit:false}}const boxelCode=absoluteBoxelToBoxelCode(decoded.sizeClass,decoded.absoluteBoxel,origin);if(boxelCode===null)return{parts:parts,handAuthored:false,requiresPermit:false};const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(boxelCode);return{parts:{...parts,regionName:region.name,l1:l1,l2:l2,l3:l3,n1:n1},handAuthored:true,requiresPermit:isPermitLockedRegionName(region.name)}}var ProceduralSystem=class _ProceduralSystem{#parts;#position;#id64;#modId64;usesHandAuthoredRegion;requiresRegionPermit;constructor(parts,opts){this.#parts={...parts};this.#position=opts.position?{...opts.position}:void 0;this.#id64=opts.id64;this.#modId64=opts.modId64;this.usesHandAuthoredRegion=opts.handAuthored;this.requiresRegionPermit=opts.requiresPermit}static fromName(name){const parts=parseSystemName(requireString(name,"ProceduralSystem.fromName: name"));if(!parts)return null;const sectorPosition=sectorGridPositionFromName(parts.regionName);const namedOrigin=sectorPosition?null:getHandAuthoredRegionOrigin(parts.regionName);const named=namedOrigin!==null;const regionName=sectorPosition?sectorNameFromGridPosition(sectorPosition):namedOrigin?.name??parts.regionName;const canonicalParts={...parts,regionName:regionName};const origin=resolveNamingRegionOrigin(regionName);if(!origin)throw new RangeError(`Unknown sector: ${truncate(regionName)}`);return new _ProceduralSystem(canonicalParts,{id64:encodeSystemAddress(canonicalParts,origin),modId64:tryEncodeModAddress(canonicalParts),handAuthored:named,requiresPermit:named&&isPermitLockedRegionName(regionName)})}static fromSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeSystemAddress(address),address,position)}static fromModSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeModSystemAddress(address),void 0,position,address)}static#fromDecoded(decoded,id64,position,modId64){const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(decoded.boxelCode);const base={regionName:sectorNameFromGridPosition(decoded.sectorGridPosition),l1:l1,l2:l2,l3:l3,massCode:decoded.sizeClass,n1:n1,n2:decoded.sequence};const overridden=applyHaOverride(base,decoded,position);const origin=resolveNamingRegionOrigin(overridden.parts.regionName);if(!origin){throw new RangeError(`Unknown sector: ${truncate(overridden.parts.regionName)}`)}const normalAddress=id64??encodeSystemAddress(overridden.parts,origin);const opts={id64:normalAddress,modId64:modId64??tryEncodeModAddress(overridden.parts),handAuthored:overridden.handAuthored,requiresPermit:overridden.requiresPermit,...position?{position:position}:{}};return new _ProceduralSystem(overridden.parts,opts)}get name(){return formatSystemName(this.#parts)}get namingRegionName(){return this.#parts.regionName}get massCode(){return sizeClassToMassCode(this.#parts.massCode)}get sequence(){return this.#parts.n2}get position(){return this.#position?{...this.#position}:null}get parts(){return{...this.#parts}}get systemAddress(){return this.#id64}get modSystemAddress(){return this.#modId64}};export{ProceduralSystem};//# sourceMappingURL=chunk-7TVFV3VO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/astro/procedural-system.ts"],"names":["parseSystemName","boxelCodeToLetters","formatSystemName","getHandAuthoredRegionOrigin","resolveNamingRegionOrigin","isPermitLockedRegionName","sizeClassToMassCode","encodeSystemAddress","decodeSystemAddress","decodeModSystemAddress","encodeModSystemAddress","absoluteBoxelToBoxelCode","toSystemAddress","sectorGridPositionFromName","sectorNameFromGridPosition","requireString","truncate","findHandAuthoredRegionAt","tryEncodeModAddress","parts","origin","regionName","error","RangeError","applyHaOverride","decoded","position","handAuthored","requiresPermit","region","name","x0","y0","z0","boxelCode","sizeClass","absoluteBoxel","l1","l2","l3","n1","ProceduralSystem","_ProceduralSystem","id64","modId64","usesHandAuthoredRegion","requiresRegionPermit","constructor","opts","this","fromName","sectorPosition","namedOrigin","named","canonicalParts","fromSystemAddress","address","fromDecoded","fromModSystemAddress","base","sectorGridPosition","massCode","n2","sequence","overridden","normalAddress","namingRegionName","systemAddress","modSystemAddress"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{INTERNAL_MODULES}from"./chunk-4CBMQULR.js";import{UTILITY_MODULES}from"./chunk-ELT3FEA4.js";import{CORE_MODULES}from"./chunk-FA5JVXVG.js";import{HARDPOINT_MODULES}from"./chunk-4TFAZX73.js";var ALL_MODULES=Object.freeze([...CORE_MODULES,...INTERNAL_MODULES,...HARDPOINT_MODULES,...UTILITY_MODULES]);export{ALL_MODULES};//# sourceMappingURL=chunk-7ZERP4TB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ships/modules-all.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../src/ships/modules-all.ts"],"names":["INTERNAL_MODULES","UTILITY_MODULES","CORE_MODULES","HARDPOINT_MODULES","ALL_MODULES","Object","freeze"],"mappings":"O,6LA0CO,IAAMI,YAA2CC,OAAOC,OAAO,IAC/DJ,gBACAF,oBACAG,qBACAF,yBACNG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{curveMultiplier,resolveMobilityCurves}from"./chunk-
|
|
1
|
+
import{curveMultiplier,resolveMobilityCurves}from"./chunk-6WTUY6ZX.js";function thrusterMassCurveMultiplier(mass,thrusters){return curveMultiplier("thrusterMassCurveMultiplier",mass,thrusters)}function mobilityMetrics(input){const curves=resolveMobilityCurves("mobilityMetrics",input);if(!curves)return null;const{massCurveMultiplier:massCurveMultiplier,rotationMassCurveMultiplier:rotationMassCurveMultiplier}=curves;return Object.freeze({loadedMass:input.mass,speed:input.maximumSpeed*massCurveMultiplier,boost:input.boost*massCurveMultiplier,pitch:input.pitch*rotationMassCurveMultiplier,roll:input.roll*rotationMassCurveMultiplier,yaw:input.yaw*rotationMassCurveMultiplier,massCurveMultiplier:massCurveMultiplier,rotationMassCurveMultiplier:rotationMassCurveMultiplier})}export{mobilityMetrics,thrusterMassCurveMultiplier};//# sourceMappingURL=chunk-A4QKXXZD.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{buildMaterialCatalogue}from"./chunk-
|
|
1
|
+
import{buildMaterialCatalogue}from"./chunk-GTEHRZPN.js";var materials_encoded_default=[{symbol:"BulkScanData",name:"Anomalous Bulk Scan Data",elementSymbol:null,grade:1,line:"Data Archives"},{symbol:"ScanArchives",name:"Unidentified Scan Archives",elementSymbol:null,grade:2,line:"Data Archives"},{symbol:"ScanDatabanks",name:"Classified Scan Databanks",elementSymbol:null,grade:3,line:"Data Archives"},{symbol:"EncodedScanData",name:"Divergent Scan Data",elementSymbol:null,grade:4,line:"Data Archives"},{symbol:"ClassifiedScanData",name:"Classified Scan Fragment",elementSymbol:null,grade:5,line:"Data Archives"},{symbol:"ScrambledEmissionData",name:"Exceptional Scrambled Emission Data",elementSymbol:null,grade:1,line:"Emission Data"},{symbol:"ArchivedEmissionData",name:"Irregular Emission Data",elementSymbol:null,grade:2,line:"Emission Data"},{symbol:"EmissionData",name:"Unexpected Emission Data",elementSymbol:null,grade:3,line:"Emission Data"},{symbol:"DecodedEmissionData",name:"Decoded Emission Data",elementSymbol:null,grade:4,line:"Emission Data"},{symbol:"CompactEmissionsData",name:"Abnormal Compact Emissions Data",elementSymbol:null,grade:5,line:"Emission Data"},{symbol:"LegacyFirmware",name:"Specialised Legacy Firmware",elementSymbol:null,grade:1,line:"Encoded Firmware"},{symbol:"ConsumerFirmware",name:"Modified Consumer Firmware",elementSymbol:null,grade:2,line:"Encoded Firmware"},{symbol:"IndustrialFirmware",name:"Cracked Industrial Firmware",elementSymbol:null,grade:3,line:"Encoded Firmware"},{symbol:"SecurityFirmware",name:"Security Firmware Patch",elementSymbol:null,grade:4,line:"Encoded Firmware"},{symbol:"EmbeddedFirmware",name:"Modified Embedded Firmware",elementSymbol:null,grade:5,line:"Encoded Firmware"},{symbol:"EncryptedFiles",name:"Unusual Encrypted Files",elementSymbol:null,grade:1,line:"Encryption Files"},{symbol:"EncryptionCodes",name:"Tagged Encryption Codes",elementSymbol:null,grade:2,line:"Encryption Files"},{symbol:"SymmetricKeys",name:"Open Symmetric Keys",elementSymbol:null,grade:3,line:"Encryption Files"},{symbol:"EncryptionArchives",name:"Atypical Encryption Archives",elementSymbol:null,grade:4,line:"Encryption Files"},{symbol:"AdaptiveEncryptors",name:"Adaptive Encryptors Capture",elementSymbol:null,grade:5,line:"Encryption Files"},{symbol:"Guardian_ModuleBlueprint",name:"Guardian Module Blueprint Segment",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"Guardian_WeaponBlueprint",name:"Guardian Weapon Blueprint Segment",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientBiologicalData",name:"Pattern Alpha Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientCulturalData",name:"Pattern Beta Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientLanguageData",name:"Pattern Delta Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientTechnologicalData",name:"Pattern Epsilon Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"AncientHistoricalData",name:"Pattern Gamma Obelisk Data",elementSymbol:null,grade:4,line:"Guardian"},{symbol:"Guardian_VesselBlueprint",name:"Guardian Vessel Blueprint Segment",elementSymbol:null,grade:5,line:"Guardian"},{symbol:"ShieldCycleRecordings",name:"Distorted Shield Cycle Recordings",elementSymbol:null,grade:1,line:"Shield Data"},{symbol:"ShieldSoakAnalysis",name:"Inconsistent Shield Soak Analysis",elementSymbol:null,grade:2,line:"Shield Data"},{symbol:"ShieldDensityReports",name:"Untypical Shield Scans",elementSymbol:null,grade:3,line:"Shield Data"},{symbol:"ShieldPatternAnalysis",name:"Aberrant Shield Pattern Analysis",elementSymbol:null,grade:4,line:"Shield Data"},{symbol:"ShieldFrequencyData",name:"Peculiar Shield Frequency Data",elementSymbol:null,grade:5,line:"Shield Data"},{symbol:"TG_StructuralData",name:"Thargoid Structural Data",elementSymbol:null,grade:2,line:"Thargoid"},{symbol:"tg_shutdowndata",name:"Massive Energy Surge Analytics",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"TG_ShipFlightData",name:"Ship Flight Data",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"tg_interdictiondata",name:"Thargoid Interdiction Telemetry",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"TG_CompositionData",name:"Thargoid Material Composition Data",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"UnknownShipSignature",name:"Thargoid Ship Signature",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"TG_ShipSystemsData",name:"Ship Systems Data",elementSymbol:null,grade:4,line:"Thargoid"},{symbol:"TG_ResidueData",name:"Thargoid Residue Data",elementSymbol:null,grade:4,line:"Thargoid"},{symbol:"UnknownWakeData",name:"Thargoid Wake Data",elementSymbol:null,grade:4,line:"Thargoid"},{symbol:"DisruptedWakeEchoes",name:"Atypical Disrupted Wake Echoes",elementSymbol:null,grade:1,line:"Wake Scans"},{symbol:"FSDTelemetry",name:"Anomalous FSD Telemetry",elementSymbol:null,grade:2,line:"Wake Scans"},{symbol:"WakeSolutions",name:"Strange Wake Solutions",elementSymbol:null,grade:3,line:"Wake Scans"},{symbol:"HyperspaceTrajectories",name:"Eccentric Hyperspace Trajectories",elementSymbol:null,grade:4,line:"Wake Scans"},{symbol:"DataminedWake",name:"Datamined Wake Exceptions",elementSymbol:null,grade:5,line:"Wake Scans"}];var ENCODED_MATERIALS=buildMaterialCatalogue(materials_encoded_default,"encoded");export{ENCODED_MATERIALS};//# sourceMappingURL=chunk-AIEC3LBT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{fixedSlotReason,validateLoadout}from"./chunk-OJC6AUL7.js";import{calculateModuleLimits}from"./chunk-KPETDYQX.js";import{publishLoadoutInternals,normalizeLoadoutEvent,preEngineeredVariantFor,moduleFitProblem,effectiveModule,moduleFitError}from"./chunk-SS6XK336.js";import{getShipBySymbol}from"./chunk-6UNAD74Z.js";import{parseSlef,toSlef,stringifySlef,getLoadoutModifier}from"./chunk-T4MKUKYS.js";import{getSourceModuleValue}from"./chunk-NIURLW2F.js";import{statesInertModifiers,rolledOverFixedArticle,isNonOutfittingSlot,isBuiltInHullModule,cloneLoadoutModule,cloneModuleStats,availableBlueprintsFor,availableExperimentalsFor,ownKeyIn,FITTED_ITEM,blueprintAvailableFor,blueprintRoutesFor,experimentalAvailableFor,primitiveEngineeringInputsFor,missingBaseLabels,journalModifiersFor,getPreEngineeredStats,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,ordinaryEngineeringProof,unresolvedModifiers,matchingKeyIn,isCargoHatchSlot,orderBySlotLayout}from"./chunk-4OTQBHQL.js";import{builtInModuleBySymbol}from"./chunk-3LZXB2MC.js";import{getPreEngineeredVariants}from"./chunk-PL75RTA2.js";import{ALL_MODULES}from"./chunk-7ZERP4TB.js";import{getExperimentalEffect}from"./chunk-77I24V6B.js";import{singleJumpRange}from"./chunk-VTMCSCXV.js";import{calculateUnladenMass,calculateCargoCapacity,calculateFuelCapacity}from"./chunk-DCB4COCL.js";import{resolveBlueprintForModule}from"./chunk-OLKNYGGT.js";import{getBlueprintGrade}from"./chunk-AYAKU4YA.js";import{getDefaultLoadout}from"./chunk-GRIK3EDH.js";import{getExperimentalsForModule}from"./chunk-GLWPSVFV.js";import{baseStats,computeModifiers,labelsForDamageType,scaleForLabel}from"./chunk-CJQ37JII.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{loadoutSlotName}from"./chunk-KAA4VOOB.js";import{parseSlotName,enumerateSlots}from"./chunk-RAO35XDF.js";import{normalizeKey,CATALOGUE_KEY}from"./chunk-BKWLI44T.js";import{truncate,describeValue,requireString,requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var REBUY_FRACTION=.05;function exportLoadoutEvent(input,options){const fromSource=options.credits==="source";const source=fromSource?input.sourcePurchase:null;const totals=source!==null&&!input.sourceTotalsVoided&&sourceTotalsHold(input.modules,source)?source:null;const hullValue=fromSource?source?.hullValue??null:input.retailHullValue;const modulesValue=fromSource?totals?.modulesValue??null:computedModulesValue(input.modules,input.statsFor);const rebuy=fromSource?totals?.rebuy??null:hullValue===null||modulesValue===null?null:Math.trunc((hullValue+modulesValue)*REBUY_FRACTION);return{Ship:input.shipSymbol.toLowerCase(),...input.shipName===void 0?{}:{ShipName:input.shipName},...input.shipIdent===void 0?{}:{ShipIdent:input.shipIdent},...hullValue===null?{}:{HullValue:hullValue},...modulesValue===null?{}:{ModulesValue:modulesValue},UnladenMass:input.unladenMass,CargoCapacity:input.cargoCapacity,...input.maxJumpRange===null?{}:{MaxJumpRange:input.maxJumpRange},FuelCapacity:{Main:input.fuelCapacity.main,Reserve:input.fuelCapacity.reserve},...rebuy===null?{}:{Rebuy:rebuy},Modules:exportModules(input,options,fromSource)}}function exportModules(input,options,fromSource){const ordered=options.moduleOrder==="slots"?slotOrderedModules(input.modules,input.layout):[...input.modules.values()];return ordered.map(module=>{const on=module.On??(options.explicitPower?true:void 0);const priority=module.Priority??(options.explicitPower?0:void 0);const value=fromSource?sourceModuleValue(module,input.sourcePurchase):moduleValue(module,input.statsFor);return{Slot:module.Slot,Item:module.Item.toLowerCase(),...on===void 0?{}:{On:on},...priority===void 0?{}:{Priority:priority},...module.Health===void 0?{}:{Health:module.Health},...typeof value==="number"?{Value:value}:{},...module.Engineering===void 0?{}:{Engineering:cloneLoadoutModule(module).Engineering}}})}function slotOrderedModules(modules,layout){return orderBySlotLayout([...modules.values()],layout,module=>module.Slot)}function computedModulesValue(modules,statsFor){let sum=0;for(const module of modules.values()){const value=moduleValue(module,statsFor);if(value==="unknown")return null;if(value!=="free")sum+=value}return sum}function moduleValue(module,statsFor){const stats=statsFor(module);if(stats!==null)return stats.cost??"unknown";return isNonOutfittingSlot(module.Slot)||isBuiltInHullModule(module)?"free":"unknown"}var SOURCE_ITEM="ShipLoadout: sourcePurchase moduleValues[].item";function sourceModuleValue(module,source){const entry=source===null?null:getSourceModuleValue(source,module.Slot);if(entry===null)return"unknown";return normalizeKey(entry.item,SOURCE_ITEM)===normalizeKey(module.Item,FITTED_ITEM)?entry.value:"unknown"}function sourceTotalsHold(modules,source){for(const entry of source.moduleValues){const key=matchingKeyIn(modules,entry.slot);const fitted=key===null?void 0:modules.get(key);if(!fitted)return false;if(isCargoHatchSlot(entry.slot)&&entry.value===0)continue;if(normalizeKey(fitted.Item,FITTED_ITEM)!==normalizeKey(entry.item,SOURCE_ITEM)){return false}}return true}var SLOT_KEY="ShipLoadout: slotKey";var FITTED_SLOT="ShipLoadout: fitted module Slot";var LoadoutEditError=class extends TypeError{code;constraint;params;constructor(message,code,params,constraint){super(message);this.code=code;this.params=deepFreeze(structuredClone(params));if(constraint!==void 0)this.constraint=constraint}};var experimentalEffectUnsupported=(code,params)=>deepFreeze({kind:"unsupported",code:code,params:params});var engineeringNormalizationUnsupported=(code,params)=>deepFreeze({kind:"unsupported",code:code,params:params});function weighable(tonnes){return tonnes!==void 0&&Number.isFinite(tonnes)&&tonnes>=0?tonnes:void 0}var AGGREGATE_STATS=["mass","cargoCapacity","fuelCapacity"];var ShipLoadout=class _ShipLoadout{#ship;#shipSymbol;#modules;#moduleStats;#primitiveModifiers;#top;#sourcePurchase;#importOutcomes;#slotCache=/* @__PURE__ */new Map;#layoutCache;constructor(ship,shipSymbol,modules,top,sourcePurchase=null,moduleStats=/* @__PURE__ */new Map,primitiveModifiers=/* @__PURE__ */new Map,importOutcomes=deepFreeze([])){this.#ship=ship;this.#shipSymbol=shipSymbol;this.#modules=modules;this.#top=top;this.#sourcePurchase=sourcePurchase;this.#moduleStats=moduleStats;this.#primitiveModifiers=primitiveModifiers;this.#importOutcomes=importOutcomes;publishLoadoutInternals(this,{ship:ship,modules:()=>[...this.#modules.values()],effectiveModules:()=>this.#modulesForEffectiveStats(),effectiveModule:module=>this.#moduleForEffectiveStats(module),statsFor:module=>this.#statsFor(module),layout:()=>this.#layout(),resolveDrive:()=>this.#resolveDrive(),frameShiftDriveModule:()=>this.#frameShiftDrive()?.module,calculationModules:()=>this.#calculationModules(),statedMainFuel:()=>this.#top.FuelCapacity?.Main})}static fromSlef(input,index=0){const entries=parseSlef(input);const entry=entries[index];if(!entry){throw new TypeError(`ShipLoadout.fromSlef: no entry at index ${truncate(index)} (have ${entries.length})`)}const imported=normalizeLoadoutEvent(entry.data);const ship=getShipBySymbol(imported.shipSymbol);if(!ship){throw new TypeError(`ShipLoadout.fromSlef: unknown hull "${truncate(imported.shipSymbol)}"`)}return _ShipLoadout.#fromImported(imported,ship)}static fromLoadout(event){if(event===null||typeof event!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: event must be a Loadout event, received ${describeValue(event)}`)}const imported=normalizeLoadoutEvent(event);const ship=getShipBySymbol(imported.shipSymbol);if(!ship){throw new TypeError(`ShipLoadout.fromLoadout: unknown hull "${truncate(imported.shipSymbol)}"`)}return _ShipLoadout.#fromImported(imported,ship)}static#fromImported(imported,ship){const outcomes=[...imported.outcomes];const loadout=new _ShipLoadout(ship,imported.shipSymbol,imported.modules,imported.top,imported.sourcePurchase,imported.moduleStats,imported.primitiveModifiers,outcomes);const{UnladenMass:UnladenMass,CargoCapacity:CargoCapacity,FuelCapacity:FuelCapacity}=imported.top;for(const module of[...imported.modules.values()]){const unresolved=loadout.#rollStatedRecipe(module);if(unresolved!==null)outcomes.push(unresolved)}if(UnladenMass!==void 0)loadout.#top.UnladenMass=UnladenMass;if(CargoCapacity!==void 0)loadout.#top.CargoCapacity=CargoCapacity;if(FuelCapacity!==void 0)loadout.#top.FuelCapacity=FuelCapacity;deepFreeze(outcomes);return loadout}#rollStatedRecipe(module){const engineering=module.Engineering;if(!engineering||typeof engineering.BlueprintName!=="string")return null;const stated=engineering.Modifiers;const stats=this.#statsFor(module);if(stated!==void 0&&(this.#moduleStats.has(module.Slot)||stats===null||!statesInertModifiers(stats,stated))){return null}if(stated===void 0&&this.#moduleStats.has(module.Slot)){const variant=preEngineeredVariantFor(module);if(variant?.acquisition!=="mercenary"||engineering.Level<=variant.grade){return null}}try{this.applyBlueprint(module.Slot,engineering.BlueprintName,{grade:engineering.Level,quality:engineering.Quality??1,...typeof engineering.ExperimentalEffect==="string"?{experimentalEffectSymbol:engineering.ExperimentalEffect}:{}});if(stated!==void 0){return{action:"rerolledEngineering",slot:module.Slot,sourceSymbol:module.Item,blueprintSymbol:engineering.BlueprintName}}const passedOver=rolledOverFixedArticle(module.Item,engineering);return passedOver===null?null:{action:"ambiguousEngineering",slot:module.Slot,sourceSymbol:module.Item,blueprintSymbol:engineering.BlueprintName,preEngineeredVariant:passedOver}}catch(error){if(!(error instanceof TypeError)&&!(error instanceof RangeError))throw error;return{action:"unresolvedEngineering",slot:module.Slot,sourceSymbol:module.Item,blueprintSymbol:engineering.BlueprintName}}}static empty(shipSymbol){const requested=requireString(shipSymbol,"ShipLoadout.empty: shipSymbol");const ship=getShipBySymbol(requested);if(!ship){throw new TypeError(`ShipLoadout.empty: no slot layout for hull "${truncate(shipSymbol)}"`)}const fitted=(getDefaultLoadout(ship.symbol)?.modules??[]).filter(module=>{const parsed=parseSlotName(module.slot);return parsed!==null&&fixedSlotReason(parsed)!==null});return new _ShipLoadout(ship,ship.symbol,new Map(fitted.map(module=>[module.slot,{Slot:module.slot,Item:module.symbol}])),{})}static default(shipSymbol){const requested=requireString(shipSymbol,"ShipLoadout.default: shipSymbol");const ship=getShipBySymbol(requested);if(!ship){throw new TypeError(`ShipLoadout.default: no default loadout for hull "${truncate(shipSymbol)}"`)}const loadout=getDefaultLoadout(ship.symbol);return new _ShipLoadout(ship,loadout.symbol,new Map(loadout.modules.map(module=>[module.slot,{Slot:module.slot,Item:module.symbol}])),{})}get shipSymbol(){return this.#shipSymbol}get shipName(){return this.#top.ShipName??null}get shipIdent(){return this.#top.ShipIdent??null}get unladenMass(){return this.#top.UnladenMass??this.#computedUnladenMass()}#computedUnladenMass(){return calculateUnladenMass(this.#ship.hullMass,this.#calculationModules())}get fuelCapacity(){const cap=this.#top.FuelCapacity;if(cap?.Main!==void 0&&cap.Reserve!==void 0){return Object.freeze({main:cap.Main,reserve:cap.Reserve})}const computed=this.#computedFuelCapacity();return Object.freeze({main:cap?.Main??computed.main,reserve:cap?.Reserve??computed.reserve})}get cargoCapacity(){return this.#top.CargoCapacity??this.#computedCargoCapacity()}#computedCargoCapacity(){return calculateCargoCapacity(this.#calculationModules())}#computedFuelCapacity(){return calculateFuelCapacity(this.#ship.reserveFuelCapacity,this.#calculationModules())}get hullValue(){return this.#top.HullValue??null}get modulesValue(){return this.#top.ModulesValue??null}get rebuy(){return this.#top.Rebuy??null}get sourcePurchase(){return this.#sourcePurchase}get importOutcomes(){return this.#importOutcomes}validation(){const slots=this.#layout();const byKey=new Map(slots.map(slot=>[normalizeKey(slot.key,CATALOGUE_KEY),slot]));const modules=[...this.#modules.values()].map(module=>{const stats=this.#statsFor(module);const slot=byKey.get(normalizeKey(module.Slot,FITTED_SLOT));const builtIn=stats===null&&isNonOutfittingSlot(module.Slot)||isBuiltInHullModule(module);const fitProblem=stats&&slot&&!builtIn?moduleFitProblem(this.#shipSymbol,slot,stats):null;const thrusterMaxMass=weighable(stats?.slot==="thrusters"?effectiveModule(this.#moduleForEffectiveStats(module),stats)?.maxMass:void 0);return{slot:module.Slot,symbol:module.Item,requiresKnownSlot:!builtIn,fitError:fitProblem?.message??null,...fitProblem===null?{}:{fitConstraint:fitProblem.constraint},...fitProblem?.params===void 0?{}:{fitParams:fitProblem.params},...stats?.exclusionGroup===void 0?{}:{exclusionGroup:stats.exclusionGroup},...stats?.limitGroup===void 0?{}:{limitGroup:stats.limitGroup},...stats?.limitIncrease===void 0?{}:{limitIncrease:stats.limitIncrease},...thrusterMaxMass===void 0?{}:{thrusterMaxMass:thrusterMaxMass}}});const dry=weighable(this.unladenMass);const fuel=weighable(this.fuelCapacity.main);const cargo=weighable(this.cargoCapacity);const mass=dry===void 0?void 0:{dry:dry,...fuel===void 0?{}:{fuel:fuel},...fuel===void 0||cargo===void 0?{}:{cargo:cargo}};return validateLoadout({shipSymbol:this.#shipSymbol,slots:slots,modules:modules,...mass===void 0?{}:{mass:mass}})}slots(kind){const cached=this.#slotCache.get(kind);if(cached!==void 0)return cached;const slots=kind===void 0?this.#layout():this.#layout().filter(slot=>slot.kind===kind);const currentLimits=this.#moduleLimits();const value=deepFreeze(slots.map(slot=>{const stats=this.#moduleStatsAt(slot.key);const fixedReason=fixedSlotReason(slot);const immovableReason=fixedReason!==null?fixedReason:stats?.limitIncrease!==void 0&&this.#moduleLimitRegression(slot.key,null,currentLimits,stats)!==null?"moduleLimit":null;return{...slot,name:loadoutSlotName(slot),module:this.fittedModuleAt(slot.key),removable:immovableReason===null,...immovableReason===null?{}:{immovableReason:immovableReason}}}));this.#slotCache.set(kind,value);return value}fittedModuleAt(slotKey){const module=this.#fittedModuleFor(slotKey);if(!module)return null;const raw=cloneLoadoutModule(module);const stats=this.#statsFor(module);const effective=effectiveModule(this.#moduleForEffectiveStats(module),stats);return deepFreeze({slot:module.Slot,symbol:raw.Item,on:raw.On,priority:raw.Priority,health:raw.Health,value:raw.Value,engineering:raw.Engineering,raw:raw,stats:stats===null?null:cloneModuleStats(stats),effectiveStats:effective===null?null:cloneModuleStats(effective),ammunition:ammunitionCapacity(effective),preEngineeredVariant:preEngineeredVariantFor(raw)})}fittedModules(){return deepFreeze([...this.#modules.keys()].flatMap(key=>{const fitted=this.fittedModuleAt(key);return fitted===null?[]:[fitted]}))}availableBlueprints(slotKey){const module=this.#fittedModuleFor(slotKey);return deepFreeze(module?availableBlueprintsFor(module.Item,this.#statsFor(module)):[])}availableExperimentalEffects(slotKey){const module=this.#fittedModuleFor(slotKey);return deepFreeze(module?availableExperimentalsFor(module.Item,this.#statsFor(module)):[])}modulesForSlot(slotKey){const slot=this.#requireSlot(slotKey);const occupied=new Set([...this.#modules.values()].flatMap(fitted=>{if(normalizeKey(fitted.Slot,FITTED_SLOT)===normalizeKey(slot.key,CATALOGUE_KEY))return[];const group=this.#statsFor(fitted)?.exclusionGroup;return group===void 0?[]:[group]}));const currentLimits=this.#moduleLimits();const currentStats=this.#moduleStatsAt(slot.key);return ALL_MODULES.filter(module=>module.grantOnly===void 0&&moduleFitError(this.#shipSymbol,slot,module)===null&&(module.exclusionGroup===void 0||!occupied.has(module.exclusionGroup))&&this.#moduleLimitRegression(slot.key,module,currentLimits,currentStats)===null)}repairFixedMount(slotKey){const requested=requireString(slotKey,SLOT_KEY);const wanted=normalizeKey(requested,SLOT_KEY);const slot=this.#requireSlot(requested);const fittedKey=this.#fittedKey(requested);const resultSlot=fittedKey??requested;const canonicalKey=slot.key;if(fixedSlotReason(slot)===null){return deepFreeze({status:"refused",slot:resultSlot,reason:"notFixedMount"})}const current=this.#fittedModuleFor(requested);const currentStats=current?this.#statsFor(current):null;const valid=current!==void 0&¤tStats!==null&&(slot.kind==="cargoHatch"?isBuiltInHullModule(current):moduleFitProblem(this.#shipSymbol,slot,currentStats)===null);if(valid){return deepFreeze({status:"unchanged",slot:current.Slot,symbol:current.Item})}const defaultModule=getDefaultLoadout(this.#shipSymbol)?.modules.find(module=>normalizeKey(module.slot,CATALOGUE_KEY)===wanted);if(!defaultModule){return deepFreeze({status:"defaultUnavailable",slot:resultSlot})}const ownKey=ownKeyIn(this.#modules,canonicalKey);const replacement={Slot:ownKey,Item:defaultModule.symbol,...current?.On===void 0?{}:{On:current.On},...current?.Priority===void 0?{}:{Priority:current.Priority},...current?.Health===void 0?{}:{Health:current.Health}};const replacementStats=builtInModuleBySymbol(defaultModule.symbol,"ShipLoadout.repairFixedMount")??(isBuiltInHullModule(replacement)?builtInModuleBySymbol("ModularCargoBayDoor","ShipLoadout.repairFixedMount"):null);if(!replacementStats){return deepFreeze({status:"defaultUnavailable",slot:resultSlot,symbol:defaultModule.symbol})}this.#replaceModule(ownKey,replacement,replacementStats);return deepFreeze({status:"repaired",slot:ownKey,symbol:defaultModule.symbol})}setModule(slotKey,module){const slot=this.#requireSlot(slotKey);if(module===null||module===void 0){throw new TypeError(`ShipLoadout.setModule: no module supplied for "${truncate(slotKey)}" (did the module lookup return undefined?)`)}if(typeof module.symbol!=="string"){throw new TypeError(`ShipLoadout.setModule: module for "${truncate(slotKey)}" must be an outfitting module, received ${describeValue(module)}`)}module=cloneModuleStats(module);const catalogued=builtInModuleBySymbol(module.symbol,FITTED_ITEM);if(catalogued===null){throw new TypeError(`ShipLoadout.setModule: no module is catalogued as "${truncate(module.symbol)}"`)}for(const field of AGGREGATE_STATS){const stated=module[field];if(stated===void 0){if(catalogued[field]===void 0)continue;throw new TypeError(`ShipLoadout.setModule: the supplied record for "${truncate(module.symbol)}" has no ${field}`)}if(typeof stated!=="number"||!Number.isFinite(stated)){throw new TypeError(`ShipLoadout.setModule: the supplied record for "${truncate(module.symbol)}" states a ${field} of ${describeValue(stated)}`)}}const problem=moduleFitProblem(this.#shipSymbol,slot,module);if(problem){if(problem.constraint==="immutableSlot"){throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${problem.message}`,"immutableSlot",{slot:slot.key})}throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${problem.message}`,"incompatibleModule",{...problem.params,slot:slot.key,symbol:module.symbol,constraint:problem.constraint},problem.constraint)}if(module.exclusionGroup!==void 0){const conflict=[...this.#modules.values()].find(fitted=>normalizeKey(fitted.Slot,FITTED_SLOT)!==normalizeKey(slot.key,CATALOGUE_KEY)&&this.#statsFor(fitted)?.exclusionGroup===module.exclusionGroup);if(conflict){throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${module.exclusionGroup} is limited to one per ship (already fitted in ${truncate(conflict.Slot)})`,"duplicateExclusiveModule",{exclusionGroup:module.exclusionGroup,slot:slot.key,symbol:module.symbol,previousSlot:conflict.Slot,previousSymbol:conflict.Item})}}const limitProblem=this.#moduleLimitRegression(slot.key,module);if(limitProblem!==null){throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${limitProblem.group} would have ${limitProblem.count} modules but the ship allows ${limitProblem.limit}`,"moduleLimitExceeded",{group:limitProblem.group,count:limitProblem.count,limit:limitProblem.limit,slot:slot.key,symbol:module.symbol})}const key=this.#fittedKey(slotKey)??slot.key;this.#replaceModule(key,{Slot:key,Item:module.symbol},module);return this}removeModule(slotKey){const wanted=normalizeKey(slotKey,SLOT_KEY);if(wanted==="cargohatch"){throw new LoadoutEditError("ShipLoadout.removeModule: the cargoHatch slot cannot be changed","immutableSlot",{slot:"CargoHatch"})}const parsed=parseSlotName(slotKey);const slot=this.#layout().find(candidate=>normalizeKey(candidate.key,CATALOGUE_KEY)===wanted);if(parsed!==null&&fixedSlotReason(parsed)==="requiredSlot"){const fittedKey=this.#fittedKey(slotKey);const key2=slot?.key??fittedKey??slotKey;throw new LoadoutEditError(`ShipLoadout.removeModule: the ${truncate(key2)} slot is required and cannot be emptied`,"requiredSlot",{slot:key2})}const key=this.#fittedKey(slotKey);if(key!==null){const limitProblem=this.#moduleLimitRegression(key,null);if(limitProblem!==null){const fitted=this.#modules.get(key);throw new LoadoutEditError(`ShipLoadout.removeModule: ${truncate(slotKey)}: ${limitProblem.group} would have ${limitProblem.count} modules but the ship allows ${limitProblem.limit}`,"moduleLimitExceeded",{group:limitProblem.group,count:limitProblem.count,limit:limitProblem.limit,slot:key,...fitted===void 0?{}:{symbol:fitted.Item}})}this.#replaceModule(key,null)}return this}applyBlueprint(slotKey,blueprintSymbol,options){requireString(blueprintSymbol,"ShipLoadout.applyBlueprint: blueprintSymbol");if(options===null||typeof options!=="object"){throw new TypeError(`ShipLoadout.applyBlueprint: options must be an object with a grade, received ${describeValue(options)}`)}const wantedGrade=options.grade;const wantedQuality=options.quality;const wantedExperimental=options.experimentalEffectSymbol??void 0;requireStringIfPresent(wantedExperimental,"ShipLoadout.applyBlueprint: options.experimentalEffectSymbol");const module=this.#fittedModuleFor(slotKey);if(!module){throw new RangeError(`ShipLoadout.applyBlueprint: slot "${truncate(slotKey)}" is empty`)}const fittedStats=this.#statsFor(module);if(!fittedStats){throw new TypeError(`ShipLoadout.applyBlueprint: no stats for module "${truncate(module.Item)}"`)}const recipe=resolveBlueprintForModule(module.Item,blueprintSymbol);const named=recipe===blueprintSymbol?`"${truncate(blueprintSymbol)}"`:`"${truncate(blueprintSymbol)}" (${truncate(recipe)} on this module)`;const written=blueprintSymbol.trim().toLowerCase();const resolved=recipe.trim().toLowerCase();if(getPreEngineeredVariants(module.Item).some(variant=>variant.acquisition==="eventReward"&&(variant.blueprintSymbol.toLowerCase()===written||variant.blueprintSymbol.toLowerCase()===resolved))){throw new TypeError(`ShipLoadout.applyBlueprint: ${named} is a fixed pre-engineered identity, not a craftable blueprint; use setPreEngineeredVariant to fit its fixed article`)}if(!Number.isInteger(wantedGrade)||wantedGrade<1||wantedGrade>5){throw new RangeError(`ShipLoadout.applyBlueprint: no blueprint ${named} grade ${truncate(wantedGrade)}`)}const grade=getBlueprintGrade(recipe,wantedGrade);if(!grade){throw new RangeError(`ShipLoadout.applyBlueprint: no blueprint ${named} grade ${truncate(wantedGrade)}`)}let experimental;if(wantedExperimental!==void 0){experimental=getExperimentalEffect(wantedExperimental);if(!experimental){throw new RangeError(`ShipLoadout.applyBlueprint: unknown experimental effect "${truncate(wantedExperimental)}"`)}}const quality=wantedQuality??1;if(!Number.isFinite(quality)||quality<0||quality>1){throw new RangeError(`ShipLoadout.applyBlueprint: quality must be a finite number in [0, 1]`)}if(fittedStats.engineeringLocked){throw new TypeError(`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is a final pre-engineered article and accepts no further engineering`)}if(!blueprintAvailableFor(module.Item,blueprintSymbol)){const offered=[...blueprintRoutesFor(module.Item)].map(([blueprint,route])=>`${blueprint} (${route})`);throw new TypeError(offered.length>0?`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is not offered blueprint ${named}; available candidates are ${offered.join(", ")}`:`ShipLoadout.applyBlueprint: no registry lists an engineering menu for module "${truncate(module.Item)}"`)}if(wantedExperimental!==void 0&&!experimentalAvailableFor(module.Item,wantedExperimental)){const offered=getExperimentalsForModule(module.Item);throw new TypeError(`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is not offered experimental effect "${truncate(wantedExperimental)}"; it takes ${offered.length>0?offered.join(", "):"no experimental effect"}`)}const stats=this.#engineeringBaseStats(module)??fittedStats;const base=baseStats(stats);const canonical=primitiveEngineeringInputsFor(stats,grade,experimental);const missing=missingBaseLabels(stats,base,canonical.grade.features,canonical.experimental?.modifiers);if(missing.length>0){throw new TypeError(`ShipLoadout.applyBlueprint: cannot compute ${named} for module "${truncate(module.Item)}"; missing base stats for ${missing.join(", ")}`)}const damageDistribution=experimental?.damageDistribution??grade.damageDistribution;const primitiveModifiers=computeModifiers(base,canonical.grade,quality,canonical.experimental);const modifiers=journalModifiersFor(stats,primitiveModifiers);if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;const damageModifier={Label:label,Value:value*scaleForLabel(label),OriginalValue:(stats.damageDistribution?.[type]??0)*scaleForLabel(label)};modifiers.push(damageModifier);primitiveModifiers.push(damageModifier)}}const engineering={BlueprintName:blueprintSymbol,Level:wantedGrade,Quality:quality,...wantedExperimental!==void 0?{ExperimentalEffect:wantedExperimental}:{},Modifiers:modifiers};this.#replaceModule(module.Slot,{...module,Engineering:engineering},stats,primitiveModifiers);return this}setExperimentalEffect(slotKey,experimental){if(experimental!==null){requireString(experimental,"ShipLoadout.setExperimentalEffect: experimental")}const wanted=experimental;const module=this.#fittedModuleFor(slotKey);if(!module)return experimentalEffectUnsupported("emptySlot",{slot:slotKey});const stats=this.#statsFor(module);if(!stats){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const engineering=module.Engineering;if(!engineering){return experimentalEffectUnsupported("notEngineered",{slot:module.Slot,symbol:module.Item})}if(stats.engineeringLocked){return experimentalEffectUnsupported("finalArticle",{slot:module.Slot,symbol:module.Item})}const previous=engineering.ExperimentalEffect??null;if(previous===null&&wanted===null||previous!==null&&wanted!==null&&previous.trim().toLowerCase()===wanted.trim().toLowerCase()){return deepFreeze({kind:"unchanged",experimentalEffectSymbol:previous})}const variant=preEngineeredVariantFor(module);let effect;if(wanted!==null){effect=getExperimentalEffect(wanted);if(!effect){return experimentalEffectUnsupported("unknownExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:wanted})}const restoresBakedEffect=variant?.experimentalEffectSymbol!==void 0&&variant.experimentalEffectSymbol.trim().toLowerCase()===wanted.trim().toLowerCase();if(!experimentalAvailableFor(module.Item,wanted)&&!restoresBakedEffect){return experimentalEffectUnsupported("unsupportedExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:wanted})}}if(variant&&variant.acquisition!=="mercenary"){const stock=this.#engineeringBaseStats(module);if(!stock){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const missing=missingBaseLabels(stock,baseStats(stock),[],effect?.modifiers);if(missing.length>0){return experimentalEffectUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}const{experimentalEffectSymbol:originalEffect,...withoutEffect}=variant;const adjusted=wanted===null?withoutEffect:{...withoutEffect,experimentalEffectSymbol:wanted};const resolved=getPreEngineeredStats(withoutEffect);if(!resolved){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const replacement={BlueprintName:engineering.BlueprintName,Level:engineering.Level,Quality:engineering.Quality,...wanted===null?{}:{ExperimentalEffect:wanted},Modifiers:getPreEngineeredJournalModifiers(adjusted)};this.#replaceModule(module.Slot,{...module,Engineering:replacement},cloneModuleStats(resolved),getPreEngineeredModifiers(adjusted))}else{const blueprint=engineering.BlueprintName;const grade=engineering.Level;const quality=engineering.Quality;if(typeof blueprint!=="string"||!Number.isInteger(grade)||grade<1||grade>5){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const currentEffect=previous===null?void 0:getExperimentalEffect(previous)??null;if(ordinaryEngineeringProof(module.Item,engineering,currentEffect)==="unproven"){return experimentalEffectUnsupported("unidentifiedPreEngineeredVariant",{slot:module.Slot,symbol:module.Item,blueprint:blueprint})}const recipe=resolveBlueprintForModule(module.Item,blueprint);const blueprintGrade=getBlueprintGrade(recipe,grade);if(!blueprintGrade||!blueprintAvailableFor(module.Item,blueprint)||!Number.isFinite(quality)||quality<0||quality>1){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item,blueprint:blueprint,grade:grade})}const base=this.#engineeringBaseStats(module)??stats;const canonical=primitiveEngineeringInputsFor(base,blueprintGrade,effect);const missing=missingBaseLabels(base,baseStats(base),canonical.grade.features,canonical.experimental?.modifiers);if(missing.length>0){return experimentalEffectUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}this.applyBlueprint(module.Slot,blueprint,{grade:grade,quality:quality,...wanted===null?{}:{experimentalEffectSymbol:wanted}})}return deepFreeze({kind:"updated",previousExperimentalEffectSymbol:previous,experimentalEffectSymbol:wanted})}completeEngineeringGrade(slotKey){const module=this.#fittedModuleFor(slotKey);if(!module)return engineeringNormalizationUnsupported("emptySlot",{slot:slotKey});const stats=this.#statsFor(module);if(!stats){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const engineering=module.Engineering;if(!engineering){return engineeringNormalizationUnsupported("notEngineered",{slot:module.Slot,symbol:module.Item})}if(stats.engineeringLocked){return engineeringNormalizationUnsupported("finalArticle",{slot:module.Slot,symbol:module.Item})}if(engineering.Quality===1&&engineering.Modifiers!==void 0){return deepFreeze({kind:"unchanged"})}const previousQuality=engineering.Quality;if(!Number.isFinite(previousQuality)||previousQuality<0||previousQuality>1){return engineeringNormalizationUnsupported("invalidQuality",{slot:module.Slot,symbol:module.Item})}const experimental=engineering.ExperimentalEffect??null;const effect=experimental===null?void 0:getExperimentalEffect(experimental)??void 0;if(experimental!==null&&!effect){return engineeringNormalizationUnsupported("unknownExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:experimental})}const blueprint=engineering.BlueprintName;const grade=engineering.Level;if(typeof blueprint!=="string"||!Number.isInteger(grade)||grade<1||grade>5){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const variant=preEngineeredVariantFor(module);const restoresBakedEffect=variant?.experimentalEffectSymbol!==void 0&&variant.experimentalEffectSymbol.trim().toLowerCase()===experimental?.trim().toLowerCase();if(experimental!==null&&!experimentalAvailableFor(module.Item,experimental)&&!restoresBakedEffect){return engineeringNormalizationUnsupported("unsupportedExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:experimental})}if(variant&&variant.acquisition!=="mercenary"){const stock=this.#engineeringBaseStats(module);if(!stock){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const missing=missingBaseLabels(stock,baseStats(stock),[],effect?.modifiers);if(missing.length>0){return engineeringNormalizationUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}const{experimentalEffectSymbol:originalEffect,...withoutEffect}=variant;const adjusted=experimental===null?withoutEffect:{...withoutEffect,experimentalEffectSymbol:experimental};const resolved=getPreEngineeredStats(withoutEffect);if(!resolved){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const replacement={BlueprintName:engineering.BlueprintName,Level:engineering.Level,Quality:1,...experimental===null?{}:{ExperimentalEffect:experimental},Modifiers:getPreEngineeredJournalModifiers(adjusted)};this.#replaceModule(module.Slot,{...module,Engineering:replacement},cloneModuleStats(resolved),getPreEngineeredModifiers(adjusted))}else{const proof=ordinaryEngineeringProof(module.Item,engineering,effect);if(proof==="unproven"||proof==="proven"&&!blueprintAvailableFor(module.Item,blueprint)){return engineeringNormalizationUnsupported("unidentifiedPreEngineeredVariant",{slot:module.Slot,symbol:module.Item,blueprint:blueprint})}const recipe=resolveBlueprintForModule(module.Item,blueprint);const blueprintGrade=getBlueprintGrade(recipe,grade);if(!blueprintGrade||!blueprintAvailableFor(module.Item,blueprint)){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item,blueprint:blueprint,grade:grade})}const base=this.#engineeringBaseStats(module)??stats;const canonical=primitiveEngineeringInputsFor(base,blueprintGrade,effect);const missing=missingBaseLabels(base,baseStats(base),canonical.grade.features,canonical.experimental?.modifiers);if(missing.length>0){return engineeringNormalizationUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}this.applyBlueprint(module.Slot,blueprint,{grade:grade,quality:1,...experimental===null?{}:{experimentalEffectSymbol:experimental}})}return deepFreeze({kind:"normalized",previousQuality:previousQuality,quality:1})}setPreEngineeredVariant(slotKey,variant){if(variant===null||typeof variant!=="object"){throw new TypeError(`ShipLoadout.setPreEngineeredVariant: variant must be a pre-engineered variant, received ${describeValue(variant)}`)}requireString(variant.symbol,"ShipLoadout.setPreEngineeredVariant: variant.symbol");requireString(variant.blueprintSymbol,"ShipLoadout.setPreEngineeredVariant: variant.blueprintSymbol");requireString(variant.acquisition,"ShipLoadout.setPreEngineeredVariant: variant.acquisition");requireStringIfPresent(variant.experimentalEffectSymbol,"ShipLoadout.setPreEngineeredVariant: variant.experimentalEffectSymbol");const known=getPreEngineeredVariants(variant.symbol).find(candidate=>candidate.blueprintSymbol.toLowerCase()===variant.blueprintSymbol.toLowerCase()&&candidate.grade===variant.grade&&(candidate.experimentalEffectSymbol?.toLowerCase()??"")===(variant.experimentalEffectSymbol?.toLowerCase()??"")&&candidate.acquisition===variant.acquisition);if(!known){throw new RangeError(`ShipLoadout.setPreEngineeredVariant: no catalogued variant "${truncate(variant.blueprintSymbol)}" for module "${truncate(variant.symbol)}"`)}const stats=getPreEngineeredStats(known);const unresolved=unresolvedModifiers(known);if(unresolved.length>0){throw new TypeError(`ShipLoadout.setPreEngineeredVariant: cannot resolve "${truncate(variant.blueprintSymbol)}" for module "${truncate(variant.symbol)}"; missing base stats for ${unresolved.join(", ")}`)}this.setModule(slotKey,stats);const module=this.#fittedModuleFor(slotKey);const engineering={BlueprintName:known.blueprintSymbol,Level:known.grade,Quality:1,...known.experimentalEffectSymbol===void 0?{}:{ExperimentalEffect:known.experimentalEffectSymbol},...known.modifiers?.length?{Modifiers:getPreEngineeredJournalModifiers(known)}:{}};this.#replaceModule(module.Slot,{...module,Engineering:engineering},cloneModuleStats(stats),getPreEngineeredModifiers(known));return this}clearEngineering(slotKey){const module=this.#fittedModuleFor(slotKey);if(module&&this.#statsFor(module)?.engineeringLocked){throw new TypeError(`ShipLoadout.clearEngineering: module "${truncate(module.Item)}" is a final pre-engineered article and its engineering cannot be removed`)}if(module?.Engineering){const baseStats2=this.#engineeringBaseStats(module);const bare={Slot:module.Slot,Item:module.Item};if(module.On!==void 0)bare.On=module.On;if(module.Priority!==void 0){bare.Priority=module.Priority}if(module.Health!==void 0)bare.Health=module.Health;if(module.Value!==void 0)bare.Value=module.Value;this.#replaceModule(module.Slot,bare,baseStats2??void 0)}return this}setModuleEnabled(slotKey,on){this.#patchModule(slotKey,{On:on});return this}setModulePriority(slotKey,priority){if(!Number.isInteger(priority)||priority<0||priority>4){throw new RangeError(`ShipLoadout: power priority must be an integer 0-4, got ${truncate(priority)}`)}this.#patchModule(slotKey,{Priority:priority});return this}#patchModule(slotKey,patch){const module=this.#fittedModuleFor(slotKey);if(!module){throw new RangeError(`ShipLoadout: slot "${truncate(slotKey)}" is empty`)}this.#modules.set(module.Slot,cloneLoadoutModule({...module,...patch}));this.#slotCache.clear()}toLoadoutEvent(options={}){const unladenMass=this.#computedUnladenMass();const cargoCapacity=this.#computedCargoCapacity();const fuel=this.#computedFuelCapacity();const maxJumpRange=this.#exportableJumpRange(unladenMass);return exportLoadoutEvent({shipSymbol:this.#shipSymbol,...this.#top.ShipName===void 0?{}:{shipName:this.#top.ShipName},...this.#top.ShipIdent===void 0?{}:{shipIdent:this.#top.ShipIdent},modules:this.#modules,layout:this.#layout(),sourcePurchase:this.#sourcePurchase,retailHullValue:this.#ship.hullCost,unladenMass:unladenMass,cargoCapacity:cargoCapacity,fuelCapacity:fuel,maxJumpRange:maxJumpRange,sourceTotalsVoided:this.#importOutcomes.some(outcome=>outcome.sourceSymbol===null&&parseSlotName(outcome.slot)?.kind==="core"),statsFor:module=>this.#statsFor(module)},options)}toSlef(options){return toSlef(this.toLoadoutEvent(options),options.header)}toSlefString(options){return stringifySlef(this.toSlef(options),{indent:options.indent??0})}#exportableJumpRange(unladenMass){let drive;try{drive=this.#resolveDrive()}catch{return null}if(drive===null)return null;const tank=this.#computedFuelCapacity();return singleJumpRange(unladenMass,Math.min(tank.main,drive.maxFuel),drive)}#layout(){if(this.#layoutCache===void 0){this.#layoutCache=Object.freeze(enumerateSlots(this.#ship))}return this.#layoutCache}#requireSlot(slotKey){const wanted=normalizeKey(slotKey,SLOT_KEY);const slot=this.#layout().find(s=>normalizeKey(s.key,CATALOGUE_KEY)===wanted);if(!slot){throw new RangeError(`ShipLoadout: hull "${truncate(this.#shipSymbol)}" has no slot "${truncate(slotKey)}"`)}return slot}#fittedKey(slotKey){return matchingKeyIn(this.#modules,normalizeKey(slotKey,SLOT_KEY))}#fittedModuleFor(slotKey){const key=this.#fittedKey(slotKey);return key===null?void 0:this.#modules.get(key)}#calculationModules(){return[...this.#modules.values()].map(module=>({mass:this.#moduleMass(module),cargoCapacity:this.#moduleCapacity(module,"CargoCapacity","cargoCapacity"),fuelCapacity:this.#moduleCapacity(module,"FuelCapacity","fuelCapacity")}))}#moduleLimits(){const entries=[...this.#modules.values()].flatMap(module=>{const stats=this.#statsFor(module);return stats===null?[]:[stats]});return calculateModuleLimits(entries)}#moduleStatsAt(slotKey){const fitted=this.#fittedModuleFor(slotKey);return fitted===void 0?null:this.#statsFor(fitted)}#engineeringBaseStats(module){const fitted=this.#statsFor(module);if(!module.Engineering||preEngineeredVariantFor(module)===null)return fitted;const stock=builtInModuleBySymbol(module.Item,FITTED_ITEM);if(!stock)return fitted;return fitted?.engineeringLocked?cloneModuleStats({...stock,engineeringLocked:true}):stock}#moduleForEffectiveStats(module){const modifiers=this.#primitiveModifiers.get(module.Slot);if(modifiers===void 0||module.Engineering===void 0)return module;return{...module,Engineering:{...module.Engineering,Modifiers:modifiers}}}#modulesForEffectiveStats(){return[...this.#modules.values()].map(module=>this.#moduleForEffectiveStats(module))}#moduleLimitRegression(slotKey,replacement,current=this.#moduleLimits(),previous=this.#moduleStatsAt(slotKey)){if(previous?.limitGroup===void 0&&previous?.limitIncrease===void 0&&replacement?.limitGroup===void 0&&replacement?.limitIncrease===void 0){return null}for(const usage of current){const count=usage.count-Number(previous?.limitGroup===usage.group)+Number(replacement?.limitGroup===usage.group);const increase=usage.increase-(previous?.limitIncrease?.group===usage.group?previous.limitIncrease.amount:0)+(replacement?.limitIncrease?.group===usage.group?replacement.limitIncrease.amount:0);const limit=usage.baseLimit+increase;const excess=Math.max(0,count-limit);if(excess>usage.excess){return{...usage,increase:increase,limit:limit,count:count,excess:excess}}}return null}#replaceModule(slotKey,replacement,replacementStats,primitiveModifiers){const previous=this.#modules.get(slotKey)??null;this.#adjustImportedFigures(previous,replacement,replacementStats);if(replacement===null){this.#modules.delete(slotKey);this.#moduleStats.delete(slotKey);this.#primitiveModifiers.delete(slotKey)}else{this.#modules.set(slotKey,cloneLoadoutModule(replacement));if(replacementStats!==void 0)this.#moduleStats.set(slotKey,replacementStats);if(primitiveModifiers===void 0)this.#primitiveModifiers.delete(slotKey);else this.#primitiveModifiers.set(slotKey,primitiveModifiers)}this.#slotCache.clear()}#adjustImportedFigures(previous,next,nextStats){if(this.#top.UnladenMass!==void 0){this.#top.UnladenMass+=this.#moduleMass(next,nextStats)-this.#moduleMass(previous)}if(this.#top.CargoCapacity!==void 0){this.#top.CargoCapacity+=this.#moduleCapacity(next,"CargoCapacity","cargoCapacity",nextStats)-this.#moduleCapacity(previous,"CargoCapacity","cargoCapacity")}if(this.#top.FuelCapacity?.Main!==void 0){const reserve=this.#top.FuelCapacity.Reserve;this.#top.FuelCapacity={Main:this.#top.FuelCapacity.Main+this.#moduleCapacity(next,"FuelCapacity","fuelCapacity",nextStats)-this.#moduleCapacity(previous,"FuelCapacity","fuelCapacity"),...reserve===void 0?{}:{Reserve:reserve}}}if(normalizeKey(previous?.Item,FITTED_ITEM)===normalizeKey(next?.Item,FITTED_ITEM)){return}if(previous!==null&&isCargoHatchSlot(previous.Slot)||next!==null&&isCargoHatchSlot(next.Slot)){return}delete this.#top.ModulesValue;delete this.#top.Rebuy}#moduleMass(module,statsOverride){if(module===null)return 0;if(isCargoHatchSlot(module.Slot))return 0;const modified=getLoadoutModifier(module,"Mass");if(modified!==null)return modified;return(statsOverride??this.#statsFor(module))?.mass??0}#moduleCapacity(module,modifierLabel,field,statsOverride){if(module===null)return 0;if(isCargoHatchSlot(module.Slot))return 0;const modified=getLoadoutModifier(module,modifierLabel);if(modified!==null)return modified;return(statsOverride??this.#statsFor(module))?.[field]??0}#frameShiftDrive(){for(const m of this.#modules.values()){const stats=this.#statsFor(m);if(stats?.slot==="frameShiftDrive")return{module:m,stats:stats}}return void 0}#resolveDrive(){const fsd=this.#frameShiftDrive();if(!fsd)return null;const{module:fsdModule,stats:base}=fsd;if(base.fuelMul===void 0||base.fuelPower===void 0){throw new TypeError(`ShipLoadout: the fitted record for frame shift drive "${truncate(fsdModule.Item)}" has no jump constants`)}const optMass=getLoadoutModifier(fsdModule,"FSDOptimalMass")??base.optMass;const maxFuel=getLoadoutModifier(fsdModule,"MaxFuelPerJump")??base.maxFuel;if(optMass===void 0||maxFuel===void 0){const missing=[...optMass===void 0?["optMass"]:[],...maxFuel===void 0?["maxFuel"]:[]];throw new TypeError(`ShipLoadout: the fitted record for frame shift drive "${truncate(fsdModule.Item)}" has no ${missing.join(" or ")}`)}return{optMass:optMass,maxFuel:maxFuel,fuelMul:base.fuelMul,fuelPower:base.fuelPower,jumpBoost:this.#resolveJumpBoost()}}#resolveJumpBoost(){for(const m of this.#modules.values()){const stats=this.#statsFor(m);if(stats?.engineeringGroup!=="fsdBoosters"&&(stats?.jumpBoost===void 0||stats.jumpBoost===0)){continue}if(m.On===false)continue;if(stats?.jumpBoost===void 0){throw new TypeError(`ShipLoadout: the fitted record for FSD booster "${truncate(m.Item)}" has no jumpBoost`)}return stats.jumpBoost}return 0}#statsFor(module){if(module===null)return null;const stats=this.#moduleStats.get(module.Slot)??builtInModuleBySymbol(module.Item,FITTED_ITEM);if(stats)return stats;return isBuiltInHullModule(module)?builtInModuleBySymbol("ModularCargoBayDoor","ShipLoadout: built-in module"):null}};export{LoadoutEditError,ShipLoadout};//# sourceMappingURL=chunk-B5VTFOK4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ships/internal/loadout-export.ts","../src/ships/ship-loadout.ts"],"names":["fixedSlotReason","validateLoadout","calculateModuleLimits","publishLoadoutInternals","normalizeLoadoutEvent","preEngineeredVariantFor","moduleFitProblem","effectiveModule","moduleFitError","getShipBySymbol","parseSlef","toSlef","stringifySlef","getLoadoutModifier","getSourceModuleValue","statesInertModifiers","rolledOverFixedArticle","isNonOutfittingSlot","isBuiltInHullModule","cloneLoadoutModule","cloneModuleStats","availableBlueprintsFor","availableExperimentalsFor","ownKeyIn","FITTED_ITEM","blueprintAvailableFor","blueprintRoutesFor","experimentalAvailableFor","primitiveEngineeringInputsFor","missingBaseLabels","journalModifiersFor","getPreEngineeredStats","getPreEngineeredJournalModifiers","getPreEngineeredModifiers","ordinaryEngineeringProof","unresolvedModifiers","matchingKeyIn","isCargoHatchSlot","orderBySlotLayout","builtInModuleBySymbol","getPreEngineeredVariants","ALL_MODULES","getExperimentalEffect","singleJumpRange","calculateUnladenMass","calculateCargoCapacity","calculateFuelCapacity","resolveBlueprintForModule","getBlueprintGrade","getDefaultLoadout","getExperimentalsForModule","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","ammunitionCapacity","loadoutSlotName","parseSlotName","enumerateSlots","normalizeKey","CATALOGUE_KEY","truncate","describeValue","requireString","requireStringIfPresent","deepFreeze","REBUY_FRACTION","exportLoadoutEvent","input","options","fromSource","credits","source","sourcePurchase","totals","sourceTotalsVoided","sourceTotalsHold","modules","hullValue","retailHullValue","modulesValue","computedModulesValue","statsFor","rebuy","Math","trunc","Ship","shipSymbol","toLowerCase","shipName","ShipName","shipIdent","ShipIdent","HullValue","ModulesValue","UnladenMass","unladenMass","CargoCapacity","cargoCapacity","maxJumpRange","MaxJumpRange","FuelCapacity","Main","fuelCapacity","main","Reserve","reserve","Rebuy","Modules","exportModules","ordered","moduleOrder","slotOrderedModules","layout","values","map","module","on","On","explicitPower","priority","Priority","value","sourceModuleValue","moduleValue","Slot","Item","Health","Value","Engineering","sum","stats","cost","SOURCE_ITEM","entry","item","moduleValues","key","slot","fitted","get","SLOT_KEY","FITTED_SLOT","LoadoutEditError","TypeError","code","constraint","params","constructor","message","super","this","structuredClone","experimentalEffectUnsupported","kind","engineeringNormalizationUnsupported","weighable","tonnes","Number","isFinite","AGGREGATE_STATS","ShipLoadout","_ShipLoadout","ship","moduleStats","primitiveModifiers","top","importOutcomes","slotCache","Map","layoutCache","effectiveModules","modulesForEffectiveStats","moduleForEffectiveStats","resolveDrive","frameShiftDriveModule","frameShiftDrive","calculationModules","statedMainFuel","fromSlef","index","entries","length","imported","data","fromImported","fromLoadout","event","outcomes","loadout","unresolved","rollStatedRecipe","push","engineering","BlueprintName","stated","Modifiers","has","variant","acquisition","Level","grade","applyBlueprint","quality","Quality","ExperimentalEffect","experimentalEffectSymbol","action","sourceSymbol","blueprintSymbol","passedOver","preEngineeredVariant","error","RangeError","empty","requested","symbol","filter","parsed","computedUnladenMass","hullMass","cap","Object","freeze","computed","computedFuelCapacity","computedCargoCapacity","reserveFuelCapacity","validation","slots","byKey","builtIn","fitProblem","thrusterMaxMass","maxMass","requiresKnownSlot","fitError","fitConstraint","fitParams","exclusionGroup","limitGroup","limitIncrease","dry","fuel","cargo","mass","cached","currentLimits","moduleLimits","moduleStatsAt","fixedReason","immovableReason","moduleLimitRegression","name","fittedModuleAt","removable","set","slotKey","fittedModuleFor","raw","effective","health","effectiveStats","ammunition","fittedModules","keys","flatMap","availableBlueprints","availableExperimentalEffects","modulesForSlot","requireSlot","occupied","Set","group","currentStats","grantOnly","repairFixedMount","wanted","fittedKey","resultSlot","canonicalKey","status","reason","current","valid","defaultModule","find","ownKey","replacement","replacementStats","replaceModule","setModule","catalogued","field","problem","conflict","previousSlot","previousSymbol","limitProblem","count","limit","removeModule","candidate","wantedGrade","wantedQuality","wantedExperimental","fittedStats","recipe","named","written","trim","resolved","some","isInteger","experimental","engineeringLocked","offered","blueprint","route","join","engineeringBaseStats","base","canonical","missing","features","modifiers","damageDistribution","type","label","damageModifier","Label","OriginalValue","setExperimentalEffect","previous","effect","restoresBakedEffect","stock","labels","originalEffect","withoutEffect","adjusted","currentEffect","blueprintGrade","previousExperimentalEffectSymbol","completeEngineeringGrade","previousQuality","proof","setPreEngineeredVariant","known","clearEngineering","bare","setModuleEnabled","patchModule","setModulePriority","patch","clear","toLoadoutEvent","exportableJumpRange","hullCost","outcome","header","toSlefString","indent","drive","tank","min","maxFuel","s","moduleMass","moduleCapacity","usage","increase","amount","baseLimit","excess","max","adjustImportedFigures","delete","next","nextStats","statsOverride","modified","modifierLabel","m","fsd","fsdModule","fuelMul","fuelPower","optMass","jumpBoost","resolveJumpBoost","engineeringGroup"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{COMPONENT_MICRO_RESOURCES}from"./chunk-HTB52N6S.js";import{CONSUMABLE_MICRO_RESOURCES}from"./chunk-K7L7SMIR.js";import{DATA_MICRO_RESOURCES}from"./chunk-GVLDFJEY.js";import{ITEM_MICRO_RESOURCES}from"./chunk-WHWFKHV3.js";var ALL_MICRO_RESOURCES=Object.freeze([...COMPONENT_MICRO_RESOURCES,...CONSUMABLE_MICRO_RESOURCES,...DATA_MICRO_RESOURCES,...ITEM_MICRO_RESOURCES]);export{ALL_MICRO_RESOURCES};//# sourceMappingURL=chunk-DAQ3PJ4R.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/materials/micro-resources-all.ts"],"names":["COMPONENT_MICRO_RESOURCES","CONSUMABLE_MICRO_RESOURCES","DATA_MICRO_RESOURCES","ITEM_MICRO_RESOURCES","ALL_MICRO_RESOURCES","Object","freeze"],"mappings":"O,4NA6BO,IAAMI,oBAAgDC,OAAOC,OAAO,IACpEN,6BACAC,8BACAC,wBACAC,8BACNC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{requirePips}from"./chunk-
|
|
1
|
+
import{requirePips}from"./chunk-65FZECUX.js";function mapDamageTypes(value){return{kinetic:value("kinetic"),thermal:value("thermal"),explosive:value("explosive"),caustic:value("caustic")}}function effectiveHitPoints(total,resistances){return mapDamageTypes(type=>{const resistance=resistances[type];return resistance>=1?Infinity:total/(1-resistance)})}var multiplierOf=resistance=>1-resistance;var mapIntoDiminishingRange=(min,max,now)=>max===0?min:min+(max-min)*(now/max);function shieldMultiplier(generator,boosters){const generatorMultiplier=multiplierOf(generator);const combined=boosters.reduce((product,resistance)=>product*multiplierOf(resistance),generatorMultiplier);const threshold=generatorMultiplier*.7;if(combined>=threshold)return combined;return mapIntoDiminishingRange(threshold/2,threshold,combined)}function stackShieldResistance(generator,boosters=[]){return 1-shieldMultiplier(generator,boosters)}function armourMultiplier(bulkhead,reinforcements){const multipliers=[bulkhead,...reinforcements].map(multiplierOf);const combined=multipliers.reduce((product,multiplier)=>product*multiplier,1);const threshold=Math.min(.7,...multipliers);const diminished=mapIntoDiminishingRange(.35,threshold,combined);return diminished<.7?diminished:combined}function stackArmourResistance(bulkhead,reinforcements=[]){return 1-armourMultiplier(bulkhead,reinforcements)}function systemsResistance(pips){requirePips("systemsResistance","pips",pips);return Math.pow(pips,.85)*.6/Math.pow(4,.85)}export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance};//# sourceMappingURL=chunk-F44QX47A.js.map
|