@elite-dangerous-almanac/core 0.2.3 → 0.2.5
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 +12 -3
- package/dist/chunk-2OBUSQA7.js +1 -0
- package/dist/chunk-2OBUSQA7.js.map +1 -0
- package/dist/{chunk-AGRSIKNV.js → chunk-3NPVWPOV.js} +1 -1
- package/dist/{chunk-AGRSIKNV.js.map → chunk-3NPVWPOV.js.map} +1 -1
- package/dist/chunk-5QSCLEEB.js +1 -0
- package/dist/chunk-5QSCLEEB.js.map +1 -0
- package/dist/chunk-5VBB5CTV.js +1 -0
- package/dist/chunk-5VBB5CTV.js.map +1 -0
- package/dist/{chunk-4TFAZX73.js → chunk-773VO2GK.js} +1 -1
- package/dist/chunk-EFQOUATZ.js +1 -0
- package/dist/chunk-EFQOUATZ.js.map +1 -0
- package/dist/{chunk-3LZXB2MC.js → chunk-HBQELOBY.js} +1 -1
- package/dist/{chunk-CHA6LKH4.js → chunk-J4PCK4RV.js} +1 -1
- package/dist/chunk-J4PCK4RV.js.map +1 -0
- package/dist/{chunk-7ZERP4TB.js → chunk-WR6ZFHTO.js} +1 -1
- package/dist/chunk-XM4VA2WE.js +1 -0
- package/dist/chunk-XM4VA2WE.js.map +1 -0
- package/dist/{chunk-MTJ4MS7W.js → chunk-YCGISPDR.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/ships/blueprint-costs.js +1 -1
- package/dist/ships/build-metrics.js +1 -1
- package/dist/ships/engineering.js +1 -1
- package/dist/ships/index.js +1 -1
- package/dist/ships/modules-all.js +1 -1
- package/dist/ships/modules-hardpoint.js +1 -1
- package/dist/ships/modules.js +1 -1
- package/dist/ships/pre-engineered-stats.d.ts +8 -1
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/ship-loadout.d.ts +15 -6
- package/dist/ships/ship-loadout.js +1 -1
- package/dist/ships/weapons.d.ts +14 -4
- package/dist/ships/weapons.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-37JIMWLK.js +0 -1
- package/dist/chunk-37JIMWLK.js.map +0 -1
- package/dist/chunk-6IWKFKQF.js +0 -1
- package/dist/chunk-6IWKFKQF.js.map +0 -1
- package/dist/chunk-CHA6LKH4.js.map +0 -1
- package/dist/chunk-CJQ37JII.js +0 -1
- package/dist/chunk-CJQ37JII.js.map +0 -1
- package/dist/chunk-DABPLBTN.js +0 -1
- package/dist/chunk-DABPLBTN.js.map +0 -1
- /package/dist/{chunk-4TFAZX73.js.map → chunk-773VO2GK.js.map} +0 -0
- /package/dist/{chunk-3LZXB2MC.js.map → chunk-HBQELOBY.js.map} +0 -0
- /package/dist/{chunk-7ZERP4TB.js.map → chunk-WR6ZFHTO.js.map} +0 -0
- /package/dist/{chunk-MTJ4MS7W.js.map → chunk-YCGISPDR.js.map} +0 -0
package/dist/ships/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{LoadoutEditError,ShipLoadout}from"../chunk-
|
|
1
|
+
export{LoadoutEditError,ShipLoadout}from"../chunk-J4PCK4RV.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-DBGXZF7O.js";export{validateLoadout}from"../chunk-OJC6AUL7.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{BuildMetrics}from"../chunk-3NPVWPOV.js";export{cellBankSummary,shieldRecovery}from"../chunk-JMAXSXXQ.js"; export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-2OBUSQA7.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-5VWACBTN.js";export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-6UNAD74Z.js";export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-T4MKUKYS.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-NIURLW2F.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{powerBudget}from"../chunk-GGQMIQPC.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-XM4VA2WE.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-HBQELOBY.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-KPJ77VPS.js";export{shieldCapacitorMetrics}from"../chunk-XQJERZUS.js";export{mobilityCapacitorMetrics}from"../chunk-VEEBJFJ7.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-A4QKXXZD.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-77I24V6B.js";export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-6HA2YIKW.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-VTMCSCXV.js";export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-DCB4COCL.js"; export{resolveBlueprintForModule}from"../chunk-OLKNYGGT.js";export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{distributorMetrics}from"../chunk-M2TCZKRT.js"; export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-GLWPSVFV.js";export{computeModifiers,sumMaterials}from"../chunk-5QSCLEEB.js"; export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-Q5ALV3DI.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-F44QX47A.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ALL_MODULES}from"../chunk-
|
|
1
|
+
export{ALL_MODULES}from"../chunk-WR6ZFHTO.js"; //# sourceMappingURL=modules-all.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{HARDPOINT_MODULES}from"../chunk-
|
|
1
|
+
export{HARDPOINT_MODULES}from"../chunk-773VO2GK.js"; //# sourceMappingURL=modules-hardpoint.js.map
|
package/dist/ships/modules.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-
|
|
1
|
+
export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-HBQELOBY.js"; //# sourceMappingURL=modules.js.map
|
|
@@ -69,7 +69,9 @@ declare function getPreEngineeredModifiers(variant: PreEngineeredVariant): Engin
|
|
|
69
69
|
*
|
|
70
70
|
* @param variant - A pre-engineered variant.
|
|
71
71
|
* @returns Its computable fixed modifiers in journal representation, or an empty array
|
|
72
|
-
* when its symbol is unknown or no
|
|
72
|
+
* when its symbol is unknown or it moves no stat the catalogue carries. A `mercenary` row
|
|
73
|
+
* publishes no stat block, so what its baked experimental effect moves is the whole of
|
|
74
|
+
* what it reports — the same block `ShipLoadout.setPreEngineeredVariant` fits.
|
|
73
75
|
*
|
|
74
76
|
* @example
|
|
75
77
|
* ```ts
|
|
@@ -181,6 +183,11 @@ declare function unresolvedModifiers(variant: PreEngineeredVariant): string[];
|
|
|
181
183
|
* the effect is published, the grade-1 pre-engineering those arrive with is not, so the
|
|
182
184
|
* catalogue does not guess at it.
|
|
183
185
|
*
|
|
186
|
+
* `rateOfFire` follows a moved firing cycle even though no recipe names it: an article
|
|
187
|
+
* whose burst interval, burst size or within-burst rate moves — by its own stat block or
|
|
188
|
+
* by the experimental effect baked into it — resolves the rate those parts produce, and
|
|
189
|
+
* it is the same figure {@link getPreEngineeredJournalModifiers} states for the article.
|
|
190
|
+
*
|
|
184
191
|
* @param variant - A pre-engineered variant.
|
|
185
192
|
* @returns The resolved module record, or `null` when the variant's symbol is not in the
|
|
186
193
|
* module catalogues. It is always a record of your own — never the shared catalogue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-
|
|
1
|
+
export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-XM4VA2WE.js"; //# sourceMappingURL=pre-engineered-stats.js.map
|
|
@@ -1149,10 +1149,12 @@ declare class ShipLoadout {
|
|
|
1149
1149
|
* here too, even at quality `1`, so a completed roll cannot stay stock. On an imported
|
|
1150
1150
|
* build such a block is one {@link ShipLoadout.fromLoadout} did not roll: a catalogued
|
|
1151
1151
|
* article it fitted instead, whose fixed modifiers this spells out unless the article
|
|
1152
|
-
* is final; a Mercenary article
|
|
1153
|
-
*
|
|
1154
|
-
* refuses
|
|
1155
|
-
* or partial, is left alone
|
|
1152
|
+
* is final; a Mercenary article that moves nothing it can state — the purchase
|
|
1153
|
+
* pre-engineering no registry publishes, with no baked effect over it — which this
|
|
1154
|
+
* refuses; or a recipe nothing answered to, which this refuses for the reason the
|
|
1155
|
+
* import could not roll it. A stated modifier array, empty or partial, is left alone
|
|
1156
|
+
* at quality `1`, so a Mercenary article whose baked effect does move a stat answers
|
|
1157
|
+
* `unchanged`: it arrives at quality `1` already stating everything it moves.
|
|
1156
1158
|
*
|
|
1157
1159
|
* @param slotKey - The engineered slot, matched case-insensitively.
|
|
1158
1160
|
* @returns A frozen result identifying a normalized, unchanged or unsupported state.
|
|
@@ -1179,8 +1181,15 @@ declare class ShipLoadout {
|
|
|
1179
1181
|
* Articles carry `Level`, `Quality: 1`, any baked experimental effect and their fixed
|
|
1180
1182
|
* modifiers. Because the variant names its base module, a decorative identity cannot
|
|
1181
1183
|
* be applied to an unrelated damage-bearing module.
|
|
1182
|
-
*
|
|
1183
|
-
*
|
|
1184
|
+
* The block states exactly what the article moves, so it always agrees with
|
|
1185
|
+
* {@link getPreEngineeredJournalModifiers} for the same variant, and the module's
|
|
1186
|
+
* {@link FittedModule.effectiveStats | effectiveStats} resolve to the figures it
|
|
1187
|
+
* states — including a rate of fire, which no recipe names and both the block and the
|
|
1188
|
+
* stats derive from the article's firing cycle. A Mercenary variant
|
|
1189
|
+
* publishes no fixed stat block of its own, so it keeps the stock catalogue stats
|
|
1190
|
+
* apart from its baked experimental effect, and states that effect's modifiers and
|
|
1191
|
+
* no others. An article that moves no stat at all carries no `Modifiers` key, rather
|
|
1192
|
+
* than an empty array claiming it changes none.
|
|
1184
1193
|
*
|
|
1185
1194
|
* @param slotKey - The slot key to fit into, matched case-insensitively.
|
|
1186
1195
|
* @param variant - The pre-engineered catalogue variant to fit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{LoadoutEditError,ShipLoadout}from"../chunk-
|
|
1
|
+
export{LoadoutEditError,ShipLoadout}from"../chunk-J4PCK4RV.js"; //# sourceMappingURL=ship-loadout.js.map
|
package/dist/ships/weapons.d.ts
CHANGED
|
@@ -242,19 +242,29 @@ interface WeaponTotals {
|
|
|
242
242
|
* `burstInterval` before the next one. `chargeTime` is the delay before a shot lands,
|
|
243
243
|
* not part of the cadence Frontier reports as `RateOfFire`.
|
|
244
244
|
*
|
|
245
|
+
* The cycle is rebuilt the way the game builds it — a float stored after every operation,
|
|
246
|
+
* serialized to the six decimal places a journal writes — so the answer is the figure the
|
|
247
|
+
* game reports rather than one a little beside it. A small gimballed multi-cannon fires
|
|
248
|
+
* every 0.12 s and Frontier states `8.333334`, which exact arithmetic misses by a place.
|
|
249
|
+
* That is also why this is the rate a fitted module already carries: a weapon whose
|
|
250
|
+
* engineering moved the cycle resolves this exact figure into
|
|
251
|
+
* {@link ships!FittedModule.effectiveStats | effectiveStats}, and states it in the
|
|
252
|
+
* `Modifiers` block beside it.
|
|
253
|
+
*
|
|
245
254
|
* @param weapon - The weapon's stats, post-engineering.
|
|
246
255
|
* @returns Shots per second, or `undefined` for a continuous-fire weapon (no
|
|
247
256
|
* `burstInterval`) or a cycle that does not resolve to a positive time.
|
|
248
257
|
* @remarks
|
|
249
|
-
* Use this
|
|
250
|
-
*
|
|
251
|
-
* `rateOfFire` as given
|
|
258
|
+
* Use this for parts you have changed by hand: a recipe that gives a weapon a two-round
|
|
259
|
+
* burst changes the rate of fire without naming it, and `weaponMetrics` takes
|
|
260
|
+
* `rateOfFire` as given. A weapon read from a build needs no recomputation — its rate is
|
|
261
|
+
* already this figure.
|
|
252
262
|
* @example
|
|
253
263
|
* ```ts
|
|
254
264
|
* import { combinedRateOfFire } from '@elite-dangerous-almanac/core/ships/weapons';
|
|
255
265
|
*
|
|
256
266
|
* // A small burst laser: three shots at 15/s, then half a second's wait
|
|
257
|
-
* combinedRateOfFire({ burstInterval: 0.5, burstRounds: 3, burstRateOfFire: 15 }); // -> 4.
|
|
267
|
+
* combinedRateOfFire({ burstInterval: 0.5, burstRounds: 3, burstRateOfFire: 15 }); // -> 4.736842
|
|
258
268
|
* ```
|
|
259
269
|
*/
|
|
260
270
|
declare function combinedRateOfFire(weapon: WeaponStats): number | undefined;
|
package/dist/ships/weapons.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-
|
|
1
|
+
export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-2OBUSQA7.js"; //# sourceMappingURL=weapons.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elite-dangerous-almanac/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "Elite Dangerous static data and calculations: astronomy, ships and outfitting, personal equipment and engineering, materials, and market commodities.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
package/dist/chunk-37JIMWLK.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{requireFiniteNonNegative}from"./chunk-65FZECUX.js";function combinedRateOfFire(weapon){const interval=weapon.burstInterval;if(interval===void 0||interval<=0)return void 0;const burst=weapon.burstRounds&&weapon.burstRounds>0?weapon.burstRounds:1;const burstRate=weapon.burstRateOfFire&&weapon.burstRateOfFire>0?weapon.burstRateOfFire:1;const cycle=(burst>1?(burst-1)/burstRate:0)+interval;return cycle>0?burst/cycle:void 0}var ZERO_SPLIT={kinetic:0,thermal:0,explosive:0,absolute:0,antiXeno:0};function splitDamage(damage,distribution){if(!distribution)return Object.freeze({...ZERO_SPLIT,absolute:damage});return Object.freeze({kinetic:damage*(distribution.kinetic??0),thermal:damage*(distribution.thermal??0),explosive:damage*(distribution.explosive??0),absolute:damage*(distribution.absolute??0),...(distribution.unclassified??0)===0?{}:{unclassified:damage*distribution.unclassified},antiXeno:damage*(distribution.antiXeno??0)})}function splitComponents(damage,components){const unclassified=(components.unclassified??[]).reduce((sum,value)=>sum+value,0);const conventional=(components.kinetic??0)+(components.thermal??0)+(components.explosive??0)+(components.absolute??0)+unclassified;if(conventional<=0)return Object.freeze({...ZERO_SPLIT,absolute:damage});const scale=damage/conventional;return Object.freeze({kinetic:(components.kinetic??0)*scale,thermal:(components.thermal??0)*scale,explosive:(components.explosive??0)*scale,absolute:(components.absolute??0)*scale,...unclassified===0?{}:{unclassified:unclassified*scale},antiXeno:(components.antiXeno??0)*scale})}function sustainedFireFactor(weapon){const rateOfFire=weapon.rateOfFire;const clip=weapon.clipSize===void 0?void 0:Math.ceil(weapon.clipSize);if(!rateOfFire||!clip||clip<=0)return 1;const burst=weapon.burstRounds&&weapon.burstRounds>0?weapon.burstRounds:1;const burstRate=weapon.burstRateOfFire&&weapon.burstRateOfFire>0?weapon.burstRateOfFire:1;const reload=weapon.reloadTime??0;const cycle=(clip-burst)/rateOfFire+(burst-1)/burstRate+reload;if(cycle<=0)return 1;const sustainedRate=clip/cycle;return Math.min(1,sustainedRate/rateOfFire)}function damagePerSecond(weapon){const damage=weapon.damage??0;const rounds=weapon.roundsPerShot&&weapon.roundsPerShot>0?weapon.roundsPerShot:1;return damage*rounds*(weapon.rateOfFire??1)}function sustainedDamagePerSecond(weapon){return damagePerSecond(weapon)*sustainedFireFactor(weapon)}function energyPerSecond(weapon){return(weapon.distributorDraw??0)*(weapon.rateOfFire??1)}function heatPerSecond(weapon){return(weapon.thermalLoad??0)*(weapon.rateOfFire??1)}function damageFalloff(weapon,metres){const maximum=weapon.maximumRange;if(maximum!==void 0&&metres>maximum)return 0;const falloff=weapon.falloffRange;if(falloff===void 0||maximum===void 0||metres<=falloff)return 1;const taper=maximum-falloff;if(taper<=0)return 1;return Math.max(0,1-(metres-falloff)/taper)}function armourPiercingFactor(armourPiercing,hardness){requireFiniteNonNegative("armourPiercingFactor","armour piercing",armourPiercing);requireFiniteNonNegative("armourPiercingFactor","hardness",hardness);if(hardness===0)return 1;return Math.min(1,armourPiercing/hardness)}function weaponMetrics(weapon){const continuous=weapon.rateOfFire===void 0;const rateOfFire=weapon.rateOfFire??1;const factor=sustainedFireFactor(weapon);const dps=damagePerSecond(weapon);const sdps=dps*factor;const eps=energyPerSecond(weapon);const hps=heatPerSecond(weapon);const rounds=weapon.roundsPerShot&&weapon.roundsPerShot>0?weapon.roundsPerShot:1;return Object.freeze({damagePerShot:(weapon.damage??0)*rounds,rateOfFire:rateOfFire,sustainedRateOfFire:rateOfFire*factor,damagePerSecond:dps,sustainedDamagePerSecond:sdps,energyPerSecond:eps,sustainedEnergyPerSecond:eps*factor,heatPerSecond:hps,sustainedHeatPerSecond:hps*factor,thermalLoad:weapon.thermalLoad??0,powerDraw:weapon.powerDraw??0,damageByType:weapon.damageComponents?splitComponents(dps,weapon.damageComponents):splitDamage(dps,weapon.damageDistribution),sustainedDamageByType:weapon.damageComponents?splitComponents(sdps,weapon.damageComponents):splitDamage(sdps,weapon.damageDistribution),continuous:continuous})}function sumWeaponMetrics(metrics){const damageByType=emptyDamageSplitAccumulator();const sustainedDamageByType=emptyDamageSplitAccumulator();let damagePerSecond2=0;let sustainedDamagePerSecond2=0;let energyPerSecond2=0;let sustainedEnergyPerSecond=0;let heatPerSecond2=0;let sustainedHeatPerSecond=0;let thermalLoad=0;let powerDraw=0;for(const metric of metrics){damagePerSecond2+=metric.damagePerSecond;sustainedDamagePerSecond2+=metric.sustainedDamagePerSecond;energyPerSecond2+=metric.energyPerSecond;sustainedEnergyPerSecond+=metric.sustainedEnergyPerSecond;heatPerSecond2+=metric.heatPerSecond;sustainedHeatPerSecond+=metric.sustainedHeatPerSecond;thermalLoad+=metric.thermalLoad;powerDraw+=metric.powerDraw;addDamageSplit(damageByType,metric.damageByType);addDamageSplit(sustainedDamageByType,metric.sustainedDamageByType)}return Object.freeze({damagePerSecond:damagePerSecond2,sustainedDamagePerSecond:sustainedDamagePerSecond2,energyPerSecond:energyPerSecond2,sustainedEnergyPerSecond:sustainedEnergyPerSecond,heatPerSecond:heatPerSecond2,sustainedHeatPerSecond:sustainedHeatPerSecond,thermalLoad:thermalLoad,powerDraw:powerDraw,damageByType:finishDamageSplit(damageByType),sustainedDamageByType:finishDamageSplit(sustainedDamageByType)})}function emptyDamageSplitAccumulator(){return{kinetic:0,thermal:0,explosive:0,absolute:0,unclassified:0,antiXeno:0}}function addDamageSplit(total,split){total.kinetic+=split.kinetic;total.thermal+=split.thermal;total.explosive+=split.explosive;total.absolute+=split.absolute;total.unclassified+=split.unclassified??0;total.antiXeno+=split.antiXeno}function finishDamageSplit(total){const{unclassified:unclassified,...classified}=total;return Object.freeze(unclassified===0?classified:{...classified,unclassified:unclassified})}export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics};//# sourceMappingURL=chunk-37JIMWLK.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ships/weapons.ts"],"names":["requireFiniteNonNegative","combinedRateOfFire","weapon","interval","burstInterval","burst","burstRounds","burstRate","burstRateOfFire","cycle","ZERO_SPLIT","kinetic","thermal","explosive","absolute","antiXeno","splitDamage","damage","distribution","Object","freeze","unclassified","splitComponents","components","reduce","sum","value","conventional","scale","sustainedFireFactor","rateOfFire","clip","clipSize","Math","ceil","reload","reloadTime","sustainedRate","min","damagePerSecond","rounds","roundsPerShot","sustainedDamagePerSecond","energyPerSecond","distributorDraw","heatPerSecond","thermalLoad","damageFalloff","metres","maximum","maximumRange","falloff","falloffRange","taper","max","armourPiercingFactor","armourPiercing","hardness","weaponMetrics","continuous","factor","dps","sdps","eps","hps","damagePerShot","sustainedRateOfFire","sustainedEnergyPerSecond","sustainedHeatPerSecond","powerDraw","damageByType","damageComponents","damageDistribution","sustainedDamageByType","sumWeaponMetrics","metrics","emptyDamageSplitAccumulator","metric","addDamageSplit","finishDamageSplit","total","split","classified"],"mappings":"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"}
|
package/dist/chunk-6IWKFKQF.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{shieldMetrics}from"./chunk-5VWACBTN.js";import{getShipBySymbol,getShipByName,getShipSlots}from"./chunk-6UNAD74Z.js";import{getLoadoutModifier}from"./chunk-T4MKUKYS.js";import{sourcePurchaseFromLoadout}from"./chunk-NIURLW2F.js";import{identifyPreEngineeredVariant,unrollableFixedArticle,cloneLoadoutModule,isNonOutfittingSlot,isBuiltInHullModule,matchingKeyIn,ownKeyIn,getPreEngineeredStats,getPreEngineeredModifiers,cloneModuleStats,isFinalGuardianWeaponEngineering,scaleDamageComponents}from"./chunk-DABPLBTN.js";import{weaponMetrics,combinedRateOfFire}from"./chunk-37JIMWLK.js";import{builtInModuleBySymbol,getBulkheadsForShip}from"./chunk-3LZXB2MC.js";import{getPreEngineeredVariants}from"./chunk-KPJ77VPS.js";import{CORE_MODULES}from"./chunk-FA5JVXVG.js";import{getExperimentalEffect}from"./chunk-77I24V6B.js";import{getDefaultLoadout}from"./chunk-GRIK3EDH.js";import{fieldForLabel,scaleForLabel,labelsForField,capabilityValueForLabel,damageTypeForLabel}from"./chunk-CJQ37JII.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{parseSlotName,SLOT_RESTRICTION_LABELS,enumerateSlots}from"./chunk-RAO35XDF.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{truncate,requireString,describeValue,requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var MILITARY_PREFIXES=["int_hullreinforcement","int_metaalloyhullreinforcement","int_modulereinforcement","int_shieldcellbank","int_guardianhullreinforcement","int_guardianmodulereinforcement","int_guardianshieldreinforcement"];var MINING_PREFIXES=["hpt_mininglaser","hpt_mining_abrblstr","hpt_mining_seismchrgwarhd","hpt_mining_subsurfdispmisle","hpt_human_extraction","hpt_miningtoolv2"];var CARGO_PREFIXES=["int_cargorack","int_largecargorack","int_corrosionproofcargorack","int_fueltank"];var RESTRICTED_SLOT_PREFIXES={mining:MINING_PREFIXES,military:MILITARY_PREFIXES,cargo:CARGO_PREFIXES,limpetController:["int_dronecontrol","int_multidronecontrol"],vesselHangar:["int_fighterbay"],passenger:["int_passengercabin","int_mkii_passengercabin"],planetaryApproachSuite:["int_planetapproachsuite"]};var problem=(constraint,message,params)=>({constraint:constraint,message:message,...params===void 0?{}:{params:params}});function restrictionProblem(slot,symbol){const restriction=slot.restriction;if(!restriction)return null;if(RESTRICTED_SLOT_PREFIXES[restriction].some(prefix=>symbol.startsWith(prefix))){return null}return problem("restrictedMount",`slot only takes ${SLOT_RESTRICTION_LABELS[restriction]}`,{restriction:restriction})}function moduleSlotProblem(slot,module){const required=module.restrictedToSlot;if(!required||slot.restriction===required)return null;return problem("restrictedMount",`module only fits a mount that takes ${SLOT_RESTRICTION_LABELS[required]}`,{restriction:required})}function moduleFitProblem(shipSymbol,slot,module){if(slot.kind==="cargoHatch"){return problem("immutableSlot","the cargoHatch slot cannot be changed")}if(slot.kind==="armour"){const hull=getShipBySymbol(shipSymbol);if(module.slot!=="armour"||module.ship===void 0){return problem("armourRequired","not a ship armour module")}if(!hull||module.ship.toLowerCase()!==hull.name.toLowerCase()){const armourHull=getShipByName(module.ship);return problem("wrongHullArmour",`armour belongs to ${truncate(module.ship)}, not ${truncate(hull?.name??shipSymbol)}`,{armourShipName:module.ship,...armourHull===null?{}:{armourShipSymbol:armourHull.symbol},shipSymbol:shipSymbol,...hull===null?{}:{shipName:hull.name}})}return null}const restricted=module.restrictedToShips;if(restricted&&!restricted.some(symbol2=>symbol2.toLowerCase()===shipSymbol.toLowerCase())){const allowedShipNames=restricted.map(symbol2=>{const hull=getShipBySymbol(symbol2);return hull?.name??symbol2});const labels=restricted.map((symbol2,index)=>{const name=allowedShipNames[index];return name===symbol2?symbol2:`${name} (${symbol2})`});return problem("restrictedHull",`module is restricted to ${truncate(labels.join(", "))}`,{allowedShipNames:allowedShipNames,allowedShipSymbols:[...restricted],shipSymbol:shipSymbol})}const wrongMount=moduleSlotProblem(slot,module);if(wrongMount)return wrongMount;const symbol=module.symbol.toLowerCase();const moduleSlot=module.slot;switch(slot.kind){case"core":if(moduleSlot!==slot.core){return problem("wrongCoreType",`not a ${slot.core} module`,{requiredCore:slot.core,moduleSlot:moduleSlot??"none"})}break;case"hardpoint":{if(module.category!=="hardpoint"){return problem("hardpointRequired","not a hardpoint weapon")}const restricted2=restrictionProblem(slot,symbol);if(restricted2)return restricted2;break}case"utility":if(module.category!=="utility"){return problem("utilityRequired","not a utility module")}return null;case"optional":{const isFuelTank=moduleSlot==="fuelTank";if(module.category!=="internal"&&!isFuelTank){return problem("optionalInternalRequired","not an optional-internal module")}if(moduleSlot&&!isFuelTank){return problem("coreModuleInOptionalSlot","a core module only fits its core slot")}const restricted2=restrictionProblem(slot,symbol);if(restricted2)return restricted2;break}}return module.class>slot.size?problem("oversized",`module size ${truncate(module.class)} exceeds slot size ${slot.size}`,{moduleClass:module.class,slotSize:slot.size}):null}function moduleFitError(shipSymbol,slot,module){return moduleFitProblem(shipSymbol,slot,module)?.message??null}function preEngineeredVariantFor(module){return identifyPreEngineeredVariant(module)??(module.Engineering?unrollableFixedArticle(module.Item,module.Engineering):null)}function captureLoadoutEvent(event){const modules=event.Modules;const shipName=event.ShipName;const shipIdent=event.ShipIdent;const hullValue=event.HullValue;const modulesValue=event.ModulesValue;const rebuy=event.Rebuy;const unladenMass=event.UnladenMass;const cargoCapacity=event.CargoCapacity;const fuelCapacity=event.FuelCapacity;return{Ship:event.Ship,Modules:Array.isArray(modules)?captureEach(modules,captureModule):modules,...shipName===void 0?{}:{ShipName:shipName},...shipIdent===void 0?{}:{ShipIdent:shipIdent},...hullValue===void 0?{}:{HullValue:hullValue},...modulesValue===void 0?{}:{ModulesValue:modulesValue},...rebuy===void 0?{}:{Rebuy:rebuy},...unladenMass===void 0?{}:{UnladenMass:unladenMass},...cargoCapacity===void 0?{}:{CargoCapacity:cargoCapacity},...fuelCapacity===void 0?{}:{FuelCapacity:{...fuelCapacity}}}}function captureEach(values,capture){const captured=[];const{length:length}=values;for(let index=0;index<length;index++)captured.push(capture(values[index]));return captured}function captureModule(module){if(module===null||typeof module!=="object")return module;const on=module.On;const priority=module.Priority;const health=module.Health;const value=module.Value;const engineering=module.Engineering;return{Slot:module.Slot,Item:module.Item,...on===void 0?{}:{On:on},...priority===void 0?{}:{Priority:priority},...health===void 0?{}:{Health:health},...value===void 0?{}:{Value:value},...engineering===void 0?{}:{Engineering:captureEngineering(engineering)}}}function captureEngineering(engineering){if(engineering===null||typeof engineering!=="object")return engineering;const experimental=engineering.ExperimentalEffect;const experimentalLocalised=engineering.ExperimentalEffect_Localised;const modifiers=engineering.Modifiers;return{BlueprintName:engineering.BlueprintName,Level:engineering.Level,Quality:engineering.Quality,...experimental===void 0?{}:{ExperimentalEffect:experimental},...experimentalLocalised===void 0?{}:{ExperimentalEffect_Localised:experimentalLocalised},...modifiers===void 0?{}:{Modifiers:Array.isArray(modifiers)?captureEach(modifiers,modifier=>modifier!==null&&typeof modifier==="object"?{...modifier}:modifier):modifiers}}}function hullLayout(shipSymbol){const slots=getShipSlots(shipSymbol);return slots?enumerateSlots(slots):[]}function fixedMountRejects(shipSymbol,layout,slot,stats){const mount=layout.find(candidate=>candidate.key.toLowerCase()===slot.toLowerCase());return mount!==void 0&&moduleFitProblem(shipSymbol,mount,stats)!==null}function normalizeLoadoutEvent(rawEvent){const event=captureLoadoutEvent(rawEvent);requireString(event.Ship,"ShipLoadout.fromLoadout: event.Ship");if(!Array.isArray(event.Modules)){throw new TypeError(`ShipLoadout.fromLoadout: event.Modules must be an array, received ${describeValue(event.Modules)}`)}const modules=/* @__PURE__ */new Map;const slots=/* @__PURE__ */new Set;for(const module of event.Modules){if(module===null||typeof module!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: event.Modules[] must hold module objects, received ${describeValue(module)}`)}requireString(module.Slot,"ShipLoadout.fromLoadout: module.Slot");requireString(module.Item,"ShipLoadout.fromLoadout: module.Item");if(module.Engineering!==void 0){if(module.Engineering===null||typeof module.Engineering!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: module.Engineering must be an object, received ${describeValue(module.Engineering)}`)}requireStringIfPresent(module.Engineering.BlueprintName,"ShipLoadout.fromLoadout: module.Engineering.BlueprintName");requireStringIfPresent(module.Engineering.ExperimentalEffect,"ShipLoadout.fromLoadout: module.Engineering.ExperimentalEffect");if(module.Engineering.Modifiers!==void 0&&!Array.isArray(module.Engineering.Modifiers)){throw new TypeError(`ShipLoadout.fromLoadout: module.Engineering.Modifiers must be an array, received ${describeValue(module.Engineering.Modifiers)}`)}for(const[index,modifier]of(module.Engineering.Modifiers??[]).entries()){if(modifier===null||typeof modifier!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: module.Engineering.Modifiers[${index}] must be an object, received ${describeValue(modifier)}`)}requireString(modifier.Label,`ShipLoadout.fromLoadout: module.Engineering.Modifiers[${index}].Label`)}}const normalizedSlot=module.Slot.toLowerCase();if(slots.has(normalizedSlot)){throw new TypeError(`ShipLoadout.fromLoadout: duplicate slot "${truncate(module.Slot)}"`)}slots.add(normalizedSlot);modules.set(module.Slot,cloneLoadoutModule(module))}const top={};if(event.ShipName!==void 0)top.ShipName=event.ShipName;if(event.ShipIdent!==void 0)top.ShipIdent=event.ShipIdent;if(event.HullValue!==void 0)top.HullValue=event.HullValue;if(event.ModulesValue!==void 0)top.ModulesValue=event.ModulesValue;if(event.Rebuy!==void 0)top.Rebuy=event.Rebuy;if(event.UnladenMass!==void 0)top.UnladenMass=event.UnladenMass;if(event.CargoCapacity!==void 0)top.CargoCapacity=event.CargoCapacity;if(event.FuelCapacity!==void 0)top.FuelCapacity={...event.FuelCapacity};let invalidatesAggregates=false;const outcomes=[];const defaults=getDefaultLoadout(event.Ship)?.modules??[];let layout;for(const[slot,module]of modules){if(isNonOutfittingSlot(slot)||isBuiltInHullModule(module))continue;const stats=builtInModuleBySymbol(module.Item,"ShipLoadout.fromLoadout: module.Item");const slotKind=parseSlotName(slot)?.kind;const fallback=slotKind==="core"||slotKind==="armour"||slotKind==="cargoHatch"?defaults.find(candidate=>candidate.slot.toLowerCase()===slot.toLowerCase()):void 0;const rejected=fallback!==void 0&&(stats===null||slotKind==="cargoHatch"||fixedMountRejects(event.Ship,layout??=hullLayout(event.Ship),slot,stats));if(stats!==null&&!rejected)continue;if(fallback){modules.set(slot,{Slot:slot,Item:fallback.symbol,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health}});outcomes.push({action:"defaulted",slot:slot,sourceSymbol:module.Item,replacementSymbol:fallback.symbol})}else{modules.delete(slot);outcomes.push({action:"emptied",slot:slot,sourceSymbol:module.Item})}invalidatesAggregates=true}for(const fallback of defaults){const slotKind=parseSlotName(fallback.slot)?.kind;if(slotKind!=="core"&&slotKind!=="armour"&&slotKind!=="cargoHatch"||matchingKeyIn(modules,fallback.slot)!==null){continue}const slot=ownKeyIn(modules,fallback.slot);modules.set(slot,{Slot:slot,Item:fallback.symbol});outcomes.push({action:"defaulted",slot:slot,sourceSymbol:null,replacementSymbol:fallback.symbol});if(slotKind==="core")invalidatesAggregates=true}if(invalidatesAggregates){delete top.ModulesValue;delete top.Rebuy;delete top.UnladenMass;delete top.CargoCapacity;delete top.FuelCapacity}const moduleStats=/* @__PURE__ */new Map;const primitiveModifiers=/* @__PURE__ */new Map;for(const module of modules.values()){const engineering=module.Engineering;const variant=preEngineeredVariantFor(module);const catalogueVariantStats=variant?getPreEngineeredStats(variant):null;let variantStats=catalogueVariantStats;const retainsBakedExperimental=variant?.experimentalEffectSymbol!==void 0&&typeof engineering?.ExperimentalEffect==="string"&&variant.experimentalEffectSymbol.trim().toLowerCase()===engineering.ExperimentalEffect.trim().toLowerCase();if(variant&&catalogueVariantStats&&!catalogueVariantStats.engineeringLocked&&!retainsBakedExperimental){const{experimentalEffectSymbol:originalExperimental,...withoutExperimental}=variant;const currentExperimental=engineering?.ExperimentalEffect;const currentVariant=typeof currentExperimental==="string"?{...withoutExperimental,experimentalEffectSymbol:currentExperimental}:withoutExperimental;variantStats=getPreEngineeredStats(withoutExperimental);primitiveModifiers.set(module.Slot,[...engineering?.Modifiers??[],...getPreEngineeredModifiers(currentVariant)])}if(variantStats)moduleStats.set(module.Slot,cloneModuleStats(variantStats));const guardianFinal=typeof engineering?.BlueprintName==="string"&&isFinalGuardianWeaponEngineering(module.Item,engineering.BlueprintName);if(variantStats?.engineeringLocked||typeof engineering?.BlueprintName!=="string"||!guardianFinal){continue}const normalizedBlueprint=normalizeKey(engineering.BlueprintName,"ShipLoadout.fromLoadout: module.Engineering.BlueprintName");const normalizedExperimental=normalizeKey(engineering.ExperimentalEffect,"ShipLoadout.fromLoadout: module.Engineering.ExperimentalEffect");const variants=getPreEngineeredVariants(module.Item);const exact=variants.find(candidate=>candidate.engineeringLocked===true&&candidate.blueprintSymbol.toLowerCase()===normalizedBlueprint&&candidate.grade===engineering.Level&&candidate.experimentalEffectSymbol?.toLowerCase()===normalizedExperimental);const guardianBase=variants.find(candidate=>candidate.engineeringLocked===true&&candidate.blueprintSymbol.toLowerCase()===normalizedBlueprint&&candidate.grade===engineering.Level&&candidate.experimentalEffectSymbol===void 0);const stats=exact?getPreEngineeredStats(exact):guardianBase&&engineering.ExperimentalEffect!==void 0?getPreEngineeredStats({...guardianBase,experimentalEffectSymbol:engineering.ExperimentalEffect}):builtInModuleBySymbol(module.Item,"ShipLoadout.fromLoadout: module.Item");if(stats){moduleStats.set(module.Slot,cloneModuleStats({...stats,engineeringLocked:true}))}}return{shipSymbol:event.Ship,modules:modules,moduleStats:moduleStats,primitiveModifiers:primitiveModifiers,top:top,sourcePurchase:sourcePurchaseFromLoadout(event),outcomes:deepFreeze(outcomes)}}var NO_ISSUES=Object.freeze([]);function completeResult(value){return Object.freeze({value:value,complete:true,issues:NO_ISSUES})}function incompleteResult(issues){return Object.freeze({value:null,complete:false,issues:Object.freeze(issues.map(issue=>Object.freeze({...issue,...issue.params?{params:Object.freeze({...issue.params})}:{}})))})}var PREFIX={powerPlant:["int_powerplant","int_guardianpowerplant"],thrusters:["int_engine","int_mkiiagileboost_engine"],frameShiftDrive:["int_hyperdrive"],powerDistributor:["int_powerdistributor","int_guardianpowerdistributor"],shieldGenerator:["int_shieldgenerator"],shieldCellBank:["int_shieldcellbank"],shieldBooster:["hpt_shieldbooster"],shieldReinforcement:["int_guardianshieldreinforcement"],hullReinforcement:["int_hullreinforcement","int_guardianhullreinforcement","int_metaalloyhullreinforcement"],moduleReinforcement:["int_modulereinforcement","int_guardianmodulereinforcement"]};var startsWithAny=(symbol,prefixes)=>prefixes.some(prefix=>symbol.toLowerCase().startsWith(prefix));function isPowerDistributor(module,stats){return stats?.slot?stats.slot==="powerDistributor":startsWithAny(module.Item,PREFIX.powerDistributor)}function isPowerPlant(module,stats){const parsed=parseSlotName(module.Slot);if(parsed?.kind==="core"&&parsed.core==="powerPlant")return true;return stats?.slot?stats.slot==="powerPlant":startsWithAny(module.Item,PREFIX.powerPlant)}function isThruster(module,stats){const parsed=parseSlotName(module.Slot);if(parsed?.kind==="core"&&parsed.core==="thrusters")return true;return stats?.slot?stats.slot==="thrusters":startsWithAny(module.Item,PREFIX.thrusters)}function isFrameShiftDrive(module,stats){const parsed=parseSlotName(module.Slot);if(parsed?.kind==="core"&&parsed.core==="frameShiftDrive")return true;return stats?.slot?stats.slot==="frameShiftDrive":startsWithAny(module.Item,PREFIX.frameShiftDrive)}function isEnabled(module){return module.On!==false}function priorityOf(module){return(module.Priority??0)+1}function effectiveStat(module,field,stats){const stated=statedModifier(module,field);if(stated!==void 0)return stated;const base=stats?.[field];return typeof base==="number"?base:void 0}function statedModifier(module,field){for(const label of labelsForField(field)){if(capabilityValueForLabel(label)!==null)continue;const modified=getLoadoutModifier(module,label);if(modified!==null)return modified/scaleForLabel(label)}return void 0}function effectiveCapability(module,field,stats){for(const label of labelsForField(field)){if(capabilityValueForLabel(label)===null)continue;if(module.Engineering?.Modifiers?.some(modifier=>modifier.Label.toLowerCase()===label.toLowerCase())){return true}}const base=stats[field];return typeof base==="boolean"?base:void 0}function effectiveDamageDistribution(module,stats){const fromEffect=module.Engineering?.ExperimentalEffect?getExperimentalEffect(module.Engineering.ExperimentalEffect)?.damageDistribution:void 0;const distribution={...fromEffect??stats.damageDistribution};let resolved=fromEffect!==void 0||stats.damageDistribution!==void 0;const seen=/* @__PURE__ */new Set;for(const modifier of module.Engineering?.Modifiers??[]){const type=damageTypeForLabel(modifier.Label);if(type===null||seen.has(type))continue;seen.add(type);if(modifier.Value===void 0)continue;distribution[type]=modifier.Value/scaleForLabel(modifier.Label);resolved=true}return resolved?distribution:void 0}function convertsDamage(module){if(module.Engineering?.ExperimentalEffect&&getExperimentalEffect(module.Engineering.ExperimentalEffect)?.damageDistribution){return true}return(module.Engineering?.Modifiers??[]).some(modifier=>damageTypeForLabel(modifier.Label)!==null)}function modifierRatio(module,stats,field){const base=stats?.[field];if(typeof base!=="number"||base===0)return 1;const effective=effectiveStat(module,field,stats);return effective===void 0?1:effective/base}function relatedStat(module,stats,field,ratio){const stated=statedModifier(module,field);if(stated!==void 0)return stated;const base=stats?.[field];return typeof base==="number"?base*ratio:void 0}function effectiveModule(module,stats){if(!stats||!module.Engineering)return stats;const merged={...stats};const fields=new Set(Object.keys(stats));for(const modifier of module.Engineering.Modifiers??[]){const field=fieldForLabel(modifier.Label,stats);if(field)fields.add(field)}for(const key of fields){const capability=effectiveCapability(module,key,stats);if(capability!==void 0){merged[key]=capability;continue}const value=effectiveStat(module,key,stats);if(value!==void 0)merged[key]=value}if(stats.engineeringGroup==="thrusters"){const massRatio=modifierRatio(module,stats,"optMass");const minMass=relatedStat(module,stats,"minMass",massRatio);const maxMass=relatedStat(module,stats,"maxMass",massRatio);if(minMass!==void 0)merged.minMass=minMass;if(maxMass!==void 0)merged.maxMass=maxMass}if(stats.engineeringGroup==="thrusters"||stats.engineeringGroup==="shieldGenerators"){const performanceRatio=modifierRatio(module,stats,"optMultiplier");const minMultiplier=relatedStat(module,stats,"minMultiplier",performanceRatio);const maxMultiplier=relatedStat(module,stats,"maxMultiplier",performanceRatio);if(minMultiplier!==void 0)merged.minMultiplier=minMultiplier;if(maxMultiplier!==void 0)merged.maxMultiplier=maxMultiplier;if(stats.engineeringGroup==="thrusters"){for(const field of["minSpeedMultiplier","optSpeedMultiplier","maxSpeedMultiplier","minRotationMultiplier","optRotationMultiplier","maxRotationMultiplier"]){const value=stats[field];if(value!==void 0)merged[field]=value*performanceRatio}}}const damageDistribution=effectiveDamageDistribution(module,stats);if(damageDistribution)merged.damageDistribution=damageDistribution;if(stats.category==="hardpoint")normalizeEffectiveWeapon(module,merged);if(convertsDamage(module)){delete merged.damageComponents}else if(stats.damageComponents){merged.damageComponents=scaleDamageComponents(stats.damageComponents,stats.damage,typeof merged.damage==="number"?merged.damage:void 0)}return merged}function powerConsumerFor(module,stats){const draw=effectiveStat(module,"powerDraw",stats);if(draw===void 0||draw===0)return null;const mounted=stats?.category==="hardpoint"||stats?.category==="utility";return{draw:draw,priority:priorityOf(module),enabled:isEnabled(module),deployedOnly:mounted&&stats?.alwaysPowered!==true,label:module.Slot,symbol:module.Item}}function powerAvailable(modules,statsFor){for(const module of modules){const stats=statsFor(module);if(!isPowerPlant(module,stats))continue;if(!isEnabled(module))return 0;return effectiveStat(module,"powerCapacity",stats)??0}return 0}var DEFAULT_SLOT={powerCapacity:"PowerPlant",heatEfficiency:"PowerPlant",thrusters:"MainEngines",powerDistributor:"PowerDistributor"};var UNRESOLVED_FACT={thrusters:"thruster stats",shieldGenerator:"shield-generator stats",powerCapacity:"power capacity",heatEfficiency:"heat efficiency",powerDistributor:"power-distributor stats"};var NOTHING_FITTED={powerCapacity:"PowerPlant: no power plant is fitted",heatEfficiency:"PowerPlant: no power plant is fitted",thrusters:"MainEngines: no thrusters are fitted",powerDistributor:"PowerDistributor: no power distributor is fitted"};function metricIssue(field,reason,module){const defaultSlot=DEFAULT_SLOT[field];const slot=module?.Slot??defaultSlot;const symbol=module?.Item;const params={field:field,reason:reason,...slot===void 0?{}:{slot:slot},...symbol===void 0?{}:{symbol:symbol}};let message;if(reason==="missing"){message=NOTHING_FITTED[field]??"no shield generator is fitted"}else if(reason==="unresolved"){const unavailable=UNRESOLVED_FACT[field]??field;message=`${truncate(slot??field)}: ${unavailable} unavailable for ${truncate(symbol??field)}`}else if(reason==="disabled"){message=`${truncate(slot??field)}: ${truncate(symbol??field)} is switched off`}else if(reason==="invalid"){message=`${truncate(slot??field)}: ${truncate(symbol??field)} has invalid ${field}`}else{message=`${truncate(slot??field)}: ${truncate(symbol??field)} is not powered with hardpoints retracted`}return{field:field,reason:reason,...slot===void 0?{}:{slot:slot},...symbol===void 0?{}:{symbol:symbol},message:message,params:params}}function powerPlantIssueFor(modules,statsFor){for(const module of modules){const stats=statsFor(module);if(!isPowerPlant(module,stats))continue;if(!isEnabled(module))return metricIssue("powerCapacity","disabled",module);const capacity=effectiveStat(module,"powerCapacity",stats);if(capacity===void 0)return metricIssue("powerCapacity","unresolved",module);return!Number.isFinite(capacity)||capacity<=0?metricIssue("powerCapacity","invalid",module):null}return metricIssue("powerCapacity","missing")}function powerDrawIssueFor(modules,statsFor){for(const module of modules){const consumer=powerConsumerFor(module,statsFor(module));if(consumer&&(!Number.isFinite(consumer.draw)||consumer.draw<0)){return metricIssue("powerDraw","invalid",module)}}return null}function poweredMetricBudgetFor(field,module,stats,modules,getBudget,statsFor){if(!isEnabled(module))return incompleteResult([metricIssue(field,"disabled",module)]);const plantIssue=powerPlantIssueFor(modules,statsFor);if(plantIssue)return incompleteResult([plantIssue]);const drawIssue=powerDrawIssueFor(modules,statsFor);if(drawIssue)return incompleteResult([drawIssue]);const budget=getBudget();return budget.available>0&&poweredStates(module,stats,budget).retracted?completeResult(budget):incompleteResult([metricIssue(field,"shed",module)])}function poweredShieldGeneratorResultFor(modules,getBudget,statsFor){for(const module of modules){if(!startsWithAny(module.Item,PREFIX.shieldGenerator))continue;const stats=statsFor(module);const powered=poweredMetricBudgetFor("shieldGenerator",module,stats,modules,getBudget,statsFor);if(!powered.complete)return powered;return stats===null?incompleteResult([metricIssue("shieldGenerator","unresolved",module)]):completeResult({module:module,budget:powered.value})}return incompleteResult([metricIssue("shieldGenerator","missing")])}function mapResistanceFields(read){return{kineticResistance:read("kineticResistance")??0,thermalResistance:read("thermalResistance")??0,explosiveResistance:read("explosiveResistance")??0,causticResistance:read("causticResistance")??0}}function resistancesOf(module,stats){return mapResistanceFields(field=>effectiveStat(module,field,stats))}function shieldInputFor(ship,modules,budget,statsFor){let generator=null;const boosters=[];let reinforcement=0;for(const module of modules){if(!isEnabled(module))continue;const stats=statsFor(module);if(!(budget.available>0&&poweredStates(module,stats,budget).retracted))continue;if(!generator&&startsWithAny(module.Item,PREFIX.shieldGenerator)){const massRatio=modifierRatio(module,stats,"optMass");const strengthRatio=modifierRatio(module,stats,"optMultiplier");const optMass=effectiveStat(module,"optMass",stats);const minMass=relatedStat(module,stats,"minMass",massRatio);const maxMass=relatedStat(module,stats,"maxMass",Math.max(1,massRatio));const optMultiplier=effectiveStat(module,"optMultiplier",stats);const minMultiplier=relatedStat(module,stats,"minMultiplier",strengthRatio);const maxMultiplier=relatedStat(module,stats,"maxMultiplier",strengthRatio);generator={...optMass===void 0?{}:{optMass:optMass},...minMass===void 0?{}:{minMass:minMass},...maxMass===void 0?{}:{maxMass:maxMass},...optMultiplier===void 0?{}:{optMultiplier:optMultiplier},...minMultiplier===void 0?{}:{minMultiplier:minMultiplier},...maxMultiplier===void 0?{}:{maxMultiplier:maxMultiplier},...resistancesOf(module,stats)}}else if(startsWithAny(module.Item,PREFIX.shieldBooster)){boosters.push({shieldBoost:effectiveStat(module,"shieldBoost",stats)??0,...resistancesOf(module,stats)})}else if(startsWithAny(module.Item,PREFIX.shieldReinforcement)){reinforcement+=effectiveStat(module,"shieldAddition",stats)??0}}return{hullMass:ship.hullMass,baseShieldStrength:ship.baseShieldStrength,generator:generator,boosters:boosters,reinforcement:reinforcement}}function shieldInputResultFor(ship,modules,getBudget,statsFor){const fitted=poweredShieldGeneratorResultFor(modules,getBudget,statsFor);if(!fitted.complete)return fitted;return completeResult(shieldInputFor(ship,modules,fitted.value.budget,statsFor))}function shieldCapacitorInputResultFor(ship,modules,getBudget,systemsPips,statsFor){const fitted=poweredShieldGeneratorResultFor(modules,getBudget,statsFor);if(!fitted.complete)return fitted;const budget=fitted.value.budget;const capacitor=systemsCapacitorResultFor(modules,budget,statsFor);if(!capacitor.complete)return capacitor;const shields=shieldMetrics(shieldInputFor(ship,modules,budget,statsFor));return completeResult({strength:shields.strength,resistances:shields.resistances,systemsCapacity:capacitor.value.systemsCapacity,systemsRecharge:capacitor.value.systemsRecharge,systemsPips:systemsPips})}function systemsCapacitorResultFor(modules,budget,statsFor){let distributor=null;for(const module of modules){const stats2=statsFor(module);if(isPowerDistributor(module,stats2)&&isEnabled(module)&&budget.available>0&&poweredStates(module,stats2,budget).retracted)distributor=module}if(!distributor)return completeResult({systemsCapacity:0,systemsRecharge:0});const stats=statsFor(distributor);const systemsCapacity=effectiveStat(distributor,"systemsCapacity",stats);const systemsRecharge=effectiveStat(distributor,"systemsRecharge",stats);return systemsCapacity===void 0||systemsRecharge===void 0?incompleteResult([metricIssue("powerDistributor","unresolved",distributor)]):completeResult({systemsCapacity:systemsCapacity,systemsRecharge:systemsRecharge})}function thrusterCurveFor(module,stats){const effective=effectiveModule(module,stats);const minMass=effective?.minMass;const optMass=effective?.optMass;const maxMass=effective?.maxMass;const minMultiplier=effective?.minMultiplier;const optMultiplier=effective?.optMultiplier;const maxMultiplier=effective?.maxMultiplier;if(minMass===void 0||optMass===void 0||maxMass===void 0||minMultiplier===void 0||optMultiplier===void 0||maxMultiplier===void 0){return null}return{minMass:minMass,optMass:optMass,maxMass:maxMass,minMultiplier:minMultiplier,optMultiplier:optMultiplier,maxMultiplier:maxMultiplier,...effective?.optSpeedMultiplier===void 0?{}:{speedCurve:{minMass:minMass,optMass:optMass,maxMass:maxMass,minMultiplier:effective.minSpeedMultiplier??minMultiplier,optMultiplier:effective.optSpeedMultiplier,maxMultiplier:effective.maxSpeedMultiplier??maxMultiplier}},...effective?.optRotationMultiplier===void 0?{}:{rotationCurve:{minMass:minMass,optMass:optMass,maxMass:maxMass,minMultiplier:effective.minRotationMultiplier??minMultiplier,optMultiplier:effective.optRotationMultiplier,maxMultiplier:effective.maxRotationMultiplier??maxMultiplier}}}}function fittedThrusterParamsFor(modules,statsFor){for(const module of modules){const stats=statsFor(module);if(isThruster(module,stats))return thrusterCurveFor(module,stats)}return null}function mobilityInputResultFor(ship,modules,getBudget,mass,statsFor){let thrusters=null;for(const module of modules){const stats=statsFor(module);if(!isThruster(module,stats))continue;const powered=poweredMetricBudgetFor("thrusters",module,stats,modules,getBudget,statsFor);if(!powered.complete)return powered;thrusters=thrusterCurveFor(module,stats);if(!thrusters)return incompleteResult([metricIssue("thrusters","unresolved",module)]);break}if(!thrusters)return incompleteResult([metricIssue("thrusters","missing")]);return completeResult({minimumSpeed:ship.minimumSpeed,maximumSpeed:ship.maximumSpeed,boost:ship.boost,minPitch:ship.minPitch,pitch:ship.pitch,minRoll:ship.minRoll,roll:ship.roll,minYaw:ship.minYaw,yaw:ship.yaw,mass:typeof mass==="function"?mass():mass,thrusters:thrusters})}function shieldRecoveryInputResultFor(ship,modules,getBudget,systemsPips,statsFor){const generator=poweredShieldGeneratorResultFor(modules,getBudget,statsFor);if(!generator.complete)return generator;const{module:generatorModule,budget:budget}=generator.value;const generatorStats=statsFor(generatorModule);const distributorDraw=effectiveStat(generatorModule,"distributorDraw",generatorStats);const regenRate=effectiveStat(generatorModule,"shieldRegenRate",generatorStats);const brokenRegenRate=effectiveStat(generatorModule,"shieldBrokenRegenRate",generatorStats);if(distributorDraw===void 0||regenRate===void 0||brokenRegenRate===void 0){return incompleteResult([metricIssue("shieldGenerator","unresolved",generatorModule)])}const capacitor=systemsCapacitorResultFor(modules,budget,statsFor);if(!capacitor.complete)return capacitor;const strength=shieldMetrics(shieldInputFor(ship,modules,budget,statsFor)).strength;return completeResult({strength:strength,regenRate:regenRate,brokenRegenRate:brokenRegenRate,distributorDraw:distributorDraw,systemsCapacity:capacitor.value.systemsCapacity,systemsRecharge:capacitor.value.systemsRecharge,systemsPips:systemsPips})}function weaponsCapacitorInputFor(modules,weaponsPips,budget,statsFor){let weaponsCapacity=0;let weaponsRecharge=0;let sustainedEnergyPerSecond=0;for(const module of modules){if(!isEnabled(module))continue;const stats=statsFor(module);if(!poweredStates(module,stats,budget).deployed)continue;if(isPowerDistributor(module,stats)){weaponsCapacity=effectiveStat(module,"weaponsCapacity",stats)??0;weaponsRecharge=effectiveStat(module,"weaponsRecharge",stats)??0}const weapon=weaponStatsFor(module,stats);if(weapon){sustainedEnergyPerSecond+=weaponMetrics(weapon).sustainedEnergyPerSecond}}return{weaponsCapacity:weaponsCapacity,weaponsRecharge:weaponsRecharge,sustainedEnergyPerSecond:sustainedEnergyPerSecond,weaponsPips:weaponsPips}}function distributorInputResultFor(modules,pips,budget,statsFor){let disabled=null;for(const module of modules){const stats=statsFor(module);if(!isPowerDistributor(module,stats))continue;if(!isEnabled(module)){disabled??=module;continue}if(!poweredStates(module,stats,budget).retracted){return incompleteResult([metricIssue("powerDistributor","shed",module)])}const systemsCapacity=effectiveStat(module,"systemsCapacity",stats);const systemsRecharge=effectiveStat(module,"systemsRecharge",stats);const enginesCapacity=effectiveStat(module,"enginesCapacity",stats);const enginesRecharge=effectiveStat(module,"enginesRecharge",stats);const weaponsCapacity=effectiveStat(module,"weaponsCapacity",stats);const weaponsRecharge=effectiveStat(module,"weaponsRecharge",stats);if(systemsCapacity===void 0||systemsRecharge===void 0||enginesCapacity===void 0||enginesRecharge===void 0||weaponsCapacity===void 0||weaponsRecharge===void 0){return incompleteResult([metricIssue("powerDistributor","unresolved",module)])}return completeResult({systemsCapacity:systemsCapacity,systemsRecharge:systemsRecharge,enginesCapacity:enginesCapacity,enginesRecharge:enginesRecharge,weaponsCapacity:weaponsCapacity,weaponsRecharge:weaponsRecharge,...pips})}return incompleteResult([disabled===null?metricIssue("powerDistributor","missing"):metricIssue("powerDistributor","disabled",disabled)])}function heatInputResultFor(ship,modules,budget,statsFor){let plant=null;let heatEfficiency;let thrusterHeatRate=0;let deployedThrusterHeatRate=0;let fsdHeatRate=0;let weaponsCapacity=0;const weapons=[];for(const module of modules){const stats=statsFor(module);if(isPowerPlant(module,stats)){if(!isEnabled(module)){return incompleteResult([metricIssue("powerCapacity","disabled",module)])}plant=module;heatEfficiency=effectiveStat(module,"heatEfficiency",stats);continue}if(!isEnabled(module))continue;const running=poweredStates(module,stats,budget);if(isThruster(module,stats)){const heat=effectiveStat(module,"engineHeatRate",stats)??0;if(running.retracted)thrusterHeatRate+=heat;if(running.deployed)deployedThrusterHeatRate+=heat}else if(isFrameShiftDrive(module,stats)){if(running.retracted)fsdHeatRate+=effectiveStat(module,"fsdHeatRate",stats)??0}else if(isPowerDistributor(module,stats)){if(running.deployed){weaponsCapacity=effectiveStat(module,"weaponsCapacity",stats)??0}}const weapon=weaponStatsFor(module,stats);if(!running.deployed)continue;if(!weapon)continue;weapons.push({heatPerSecond:weaponMetrics(weapon).sustainedHeatPerSecond,distributorDraw:weapon.distributorDraw??0})}if(heatEfficiency===void 0){return incompleteResult([plant===null?metricIssue("powerCapacity","missing"):metricIssue("heatEfficiency","unresolved",plant)])}return completeResult({heatCapacity:ship.heatCapacity,heatDissipation:ship.heatDissipation,heatEfficiency:heatEfficiency,retractedPowerDraw:poweredDraw(budget,"retracted"),deployedPowerDraw:poweredDraw(budget,"deployed"),thrusterHeatRate:thrusterHeatRate,deployedThrusterHeatRate:deployedThrusterHeatRate,fsdHeatRate:fsdHeatRate,weaponsCapacity:weaponsCapacity,weapons:weapons})}function poweredDraw(budget,state){const powered=state==="retracted"?"poweredRetracted":"poweredDeployed";return budget.bands.reduce((total,band)=>band[powered]?total+band[state]:total,0)}function poweredStates(module,stats,budget){const draw=effectiveStat(module,"powerDraw",stats);if(draw===void 0||draw===0)return{retracted:true,deployed:true};const band=budget.bands[Math.min(budget.bands.length,Math.max(1,priorityOf(module)))-1];if(!band)return{retracted:true,deployed:true};return{retracted:band.poweredRetracted,deployed:band.poweredDeployed}}function cellBankInputsFor(modules,budget,statsFor){const banks=[];for(const module of modules){if(!startsWithAny(module.Item,PREFIX.shieldCellBank))continue;const stats=statsFor(module);const effective=effectiveModule(module,stats);const ammunition=effective?ammunitionCapacity(effective):null;banks.push({slot:module.Slot,symbol:module.Item,reinforcementRate:effective?.shieldBankReinforcement??0,cells:ammunition?.total??0,spinUp:effective?.shieldBankSpinUp??0,duration:effective?.shieldBankDuration??0,heat:effective?.shieldBankHeat??0,powered:budget.available>0&&isEnabled(module)&&poweredStates(module,stats,budget).deployed})}return banks}function stockBulkhead(ship){const variants=getBulkheadsForShip(ship.name,CORE_MODULES);return variants.find(v=>v.symbol.toLowerCase().endsWith("_default"))??variants.find(v=>v.mass===0)??variants[0]??null}function armourInputFor(ship,modules,statsFor){const reinforcements=[];const moduleReinforcements=[];let bulkhead=null;for(const module of modules){if(!isEnabled(module))continue;const stats=statsFor(module);if(module.Slot.toLowerCase()==="armour"){bulkhead={hullBoost:effectiveStat(module,"hullBoost",stats)??0,...resistancesOf(module,stats)}}else if(startsWithAny(module.Item,PREFIX.hullReinforcement)){const boost=getLoadoutModifier(module,"DefenceModifierHealthMultiplier");reinforcements.push({hullReinforcement:effectiveStat(module,"hullReinforcement",stats)??0,hullBoost:boost===null?0:boost/scaleForLabel("DefenceModifierHealthMultiplier"),...resistancesOf(module,stats)})}else if(startsWithAny(module.Item,PREFIX.moduleReinforcement)){moduleReinforcements.push({moduleProtection:effectiveStat(module,"moduleProtection",stats)??0,integrity:effectiveStat(module,"integrity",stats)??0})}}if(!bulkhead){const stock=stockBulkhead(ship);bulkhead=stock?{hullBoost:stock.hullBoost??0,...mapResistanceFields(field=>stock[field])}:null}return{baseArmour:ship.baseArmour,bulkhead:bulkhead,reinforcements:reinforcements,moduleReinforcements:moduleReinforcements}}var WEAPON_FIELDS=["damage","roundsPerShot","rateOfFire","burstInterval","burstRounds","burstRateOfFire","chargeTime","clipSize","ammoMaximum","reloadTime","distributorDraw","thermalLoad","powerDraw","maximumRange","falloffRange","armourPiercing"];function weaponStatsFor(module,stats){if(!stats||stats.category!=="hardpoint")return null;const weapon={};for(const field of WEAPON_FIELDS){const value=effectiveStat(module,field,stats);if(value!==void 0)weapon[field]=value}normalizeEffectiveWeapon(module,weapon);const damageDistribution=effectiveDamageDistribution(module,stats);if(damageDistribution)weapon.damageDistribution=damageDistribution;if(stats.damageComponents&&!convertsDamage(module)){weapon.damageComponents=scaleDamageComponents(stats.damageComponents,stats.damage,typeof weapon.damage==="number"?weapon.damage:void 0)}if(stats.projectileRange)weapon.projectileRange={...stats.projectileRange};return weapon}function burstAdjustedRateOfFire(module,weapon){if(getLoadoutModifier(module,"RateOfFire")!==null)return void 0;const touched=["BurstSize","BurstRateOfFire","BurstInterval"].some(label=>getLoadoutModifier(module,label)!==null);if(!touched)return void 0;return combinedRateOfFire(weapon)}function normalizeEffectiveWeapon(module,weapon){const rate=burstAdjustedRateOfFire(module,weapon);if(rate!==void 0)weapon.rateOfFire=rate;const statedDamagePerSecond=getLoadoutModifier(module,"DamagePerSecond");const firingFactor=Number(weapon.roundsPerShot??1)*Number(weapon.rateOfFire??1);if(statedDamagePerSecond!==null&&firingFactor>0){weapon.damage=statedDamagePerSecond/firingFactor}const{maximumRange:maximumRange,falloffRange:falloffRange}=weapon;if(maximumRange!==void 0&&falloffRange!==void 0&&falloffRange>maximumRange){weapon.falloffRange=maximumRange}}var INTERNALS=/* @__PURE__ */new WeakMap;function publishLoadoutInternals(build,internals){INTERNALS.set(build,internals)}function loadoutInternals(build,label){const internals=typeof build==="object"&&build!==null?INTERNALS.get(build):void 0;if(internals===void 0){throw new TypeError(`${label} must be a ShipLoadout, received ${describeValue(build)}`)}return internals}export{armourInputFor,cellBankInputsFor,completeResult,distributorInputResultFor,effectiveModule,fittedThrusterParamsFor,heatInputResultFor,incompleteResult,loadoutInternals,mobilityInputResultFor,moduleFitError,moduleFitProblem,normalizeLoadoutEvent,powerAvailable,powerConsumerFor,preEngineeredVariantFor,publishLoadoutInternals,shieldCapacitorInputResultFor,shieldInputResultFor,shieldRecoveryInputResultFor,weaponStatsFor,weaponsCapacitorInputFor};//# sourceMappingURL=chunk-6IWKFKQF.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ships/internal/loadout-fitting.ts","../src/ships/internal/loadout-import.ts","../src/ships/internal/calculation-result.ts","../src/ships/internal/loadout-metrics.ts","../src/ships/internal/loadout-internals.ts"],"names":["shieldMetrics","getShipBySymbol","getShipByName","getShipSlots","getLoadoutModifier","sourcePurchaseFromLoadout","identifyPreEngineeredVariant","unrollableFixedArticle","cloneLoadoutModule","isNonOutfittingSlot","isBuiltInHullModule","matchingKeyIn","ownKeyIn","getPreEngineeredStats","getPreEngineeredModifiers","cloneModuleStats","isFinalGuardianWeaponEngineering","scaleDamageComponents","weaponMetrics","combinedRateOfFire","builtInModuleBySymbol","getBulkheadsForShip","getPreEngineeredVariants","CORE_MODULES","getExperimentalEffect","getDefaultLoadout","fieldForLabel","scaleForLabel","labelsForField","capabilityValueForLabel","damageTypeForLabel","ammunitionCapacity","parseSlotName","SLOT_RESTRICTION_LABELS","enumerateSlots","normalizeKey","truncate","requireString","describeValue","requireStringIfPresent","deepFreeze","MILITARY_PREFIXES","MINING_PREFIXES","CARGO_PREFIXES","RESTRICTED_SLOT_PREFIXES","mining","military","cargo","limpetController","vesselHangar","passenger","planetaryApproachSuite","problem","constraint","message","params","restrictionProblem","slot","symbol","restriction","some","prefix","startsWith","moduleSlotProblem","module","required","restrictedToSlot","moduleFitProblem","shipSymbol","kind","hull","ship","toLowerCase","name","armourHull","armourShipName","armourShipSymbol","shipName","restricted","restrictedToShips","allowedShipNames","map","labels","index","join","allowedShipSymbols","wrongMount","moduleSlot","core","requiredCore","category","isFuelTank","class","size","moduleClass","slotSize","moduleFitError","preEngineeredVariantFor","Engineering","Item","captureLoadoutEvent","event","modules","Modules","ShipName","shipIdent","ShipIdent","hullValue","HullValue","modulesValue","ModulesValue","rebuy","Rebuy","unladenMass","UnladenMass","cargoCapacity","CargoCapacity","fuelCapacity","FuelCapacity","Ship","Array","isArray","captureEach","captureModule","values","capture","captured","length","push","on","On","priority","Priority","health","Health","value","Value","engineering","Slot","captureEngineering","experimental","ExperimentalEffect","experimentalLocalised","ExperimentalEffect_Localised","modifiers","Modifiers","BlueprintName","Level","Quality","modifier","hullLayout","slots","fixedMountRejects","layout","stats","mount","find","candidate","key","normalizeLoadoutEvent","rawEvent","TypeError","Map","Set","entries","Label","normalizedSlot","has","add","set","top","invalidatesAggregates","outcomes","defaults","slotKind","fallback","rejected","action","sourceSymbol","replacementSymbol","delete","moduleStats","primitiveModifiers","variant","catalogueVariantStats","variantStats","retainsBakedExperimental","experimentalEffectSymbol","trim","engineeringLocked","originalExperimental","withoutExperimental","currentExperimental","currentVariant","guardianFinal","normalizedBlueprint","normalizedExperimental","variants","exact","blueprintSymbol","grade","guardianBase","sourcePurchase","NO_ISSUES","Object","freeze","completeResult","complete","issues","incompleteResult","issue","PREFIX","powerPlant","thrusters","frameShiftDrive","powerDistributor","shieldGenerator","shieldCellBank","shieldBooster","shieldReinforcement","hullReinforcement","moduleReinforcement","startsWithAny","prefixes","isPowerDistributor","isPowerPlant","parsed","isThruster","isFrameShiftDrive","isEnabled","priorityOf","effectiveStat","field","stated","statedModifier","base","label","modified","effectiveCapability","effectiveDamageDistribution","fromEffect","damageDistribution","distribution","resolved","seen","type","convertsDamage","modifierRatio","effective","relatedStat","ratio","effectiveModule","merged","fields","keys","capability","engineeringGroup","massRatio","minMass","maxMass","performanceRatio","minMultiplier","maxMultiplier","normalizeEffectiveWeapon","damageComponents","damage","powerConsumerFor","draw","mounted","enabled","deployedOnly","alwaysPowered","powerAvailable","statsFor","DEFAULT_SLOT","powerCapacity","heatEfficiency","UNRESOLVED_FACT","NOTHING_FITTED","metricIssue","reason","defaultSlot","unavailable","powerPlantIssueFor","capacity","Number","isFinite","powerDrawIssueFor","consumer","poweredMetricBudgetFor","getBudget","plantIssue","drawIssue","budget","available","poweredStates","retracted","poweredShieldGeneratorResultFor","powered","mapResistanceFields","read","kineticResistance","thermalResistance","explosiveResistance","causticResistance","resistancesOf","shieldInputFor","generator","boosters","reinforcement","strengthRatio","optMass","Math","max","optMultiplier","shieldBoost","hullMass","baseShieldStrength","shieldInputResultFor","fitted","shieldCapacitorInputResultFor","systemsPips","capacitor","systemsCapacitorResultFor","shields","strength","resistances","systemsCapacity","systemsRecharge","distributor","thrusterCurveFor","optSpeedMultiplier","speedCurve","minSpeedMultiplier","maxSpeedMultiplier","optRotationMultiplier","rotationCurve","minRotationMultiplier","maxRotationMultiplier","fittedThrusterParamsFor","mobilityInputResultFor","mass","minimumSpeed","maximumSpeed","boost","minPitch","pitch","minRoll","roll","minYaw","yaw","shieldRecoveryInputResultFor","generatorModule","generatorStats","distributorDraw","regenRate","brokenRegenRate","weaponsCapacitorInputFor","weaponsPips","weaponsCapacity","weaponsRecharge","sustainedEnergyPerSecond","deployed","weapon","weaponStatsFor","distributorInputResultFor","pips","disabled","enginesCapacity","enginesRecharge","heatInputResultFor","plant","thrusterHeatRate","deployedThrusterHeatRate","fsdHeatRate","weapons","running","heat","heatPerSecond","sustainedHeatPerSecond","heatCapacity","heatDissipation","retractedPowerDraw","poweredDraw","deployedPowerDraw","state","bands","reduce","total","band","min","poweredRetracted","poweredDeployed","cellBankInputsFor","banks","ammunition","reinforcementRate","shieldBankReinforcement","cells","spinUp","shieldBankSpinUp","duration","shieldBankDuration","shieldBankHeat","stockBulkhead","v","endsWith","armourInputFor","reinforcements","moduleReinforcements","bulkhead","hullBoost","moduleProtection","integrity","stock","baseArmour","WEAPON_FIELDS","projectileRange","burstAdjustedRateOfFire","touched","rate","rateOfFire","statedDamagePerSecond","firingFactor","roundsPerShot","maximumRange","falloffRange","INTERNALS","WeakMap","publishLoadoutInternals","build","internals","loadoutInternals","get"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
package/dist/chunk-CJQ37JII.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var percent=100;var STAT_LABELS=[{label:"Mass",field:"mass"},{label:"Integrity",field:"integrity"},{label:"PowerDraw",field:"powerDraw"},{label:"BootTime",field:"bootTime"},{label:"FSDOptimalMass",field:"optMass"},{label:"EngineOptimalMass",field:"optMass"},{label:"EngineMinimumMass",field:"minMass"},{label:"MaximumMass",field:"maxMass"},{label:"ShieldGenOptimalMass",field:"optMass"},{label:"ShieldGenMinimumMass",field:"minMass"},{label:"ShieldGenMaximumMass",field:"maxMass"},{label:"EngineOptPerformance",field:"optMultiplier",scale:percent},{label:"EngineMinPerformance",field:"minMultiplier",scale:percent},{label:"EngineMaxPerformance",field:"maxMultiplier",scale:percent},{label:"ShieldGenStrength",field:"optMultiplier",scale:percent},{label:"ShieldGenMinStrength",field:"minMultiplier",scale:percent},{label:"ShieldGenMaxStrength",field:"maxMultiplier",scale:percent},{label:"EngineHeatRate",field:"engineHeatRate"},{label:"FSDHeatRate",field:"fsdHeatRate"},{label:"MaxFuelPerJump",field:"maxFuel"},{label:"PowerCapacity",field:"powerCapacity"},{label:"HeatEfficiency",field:"heatEfficiency"},{label:"EnginesCapacity",field:"enginesCapacity"},{label:"EnginesRecharge",field:"enginesRecharge"},{label:"SystemsCapacity",field:"systemsCapacity"},{label:"SystemsRecharge",field:"systemsRecharge"},{label:"WeaponsCapacity",field:"weaponsCapacity"},{label:"WeaponsRecharge",field:"weaponsRecharge"},{label:"RefuelRate",field:"refuelRate"},{label:"FuelScoopRate",field:"refuelRate"},{label:"FuelCapacity",field:"fuelCapacity"},{label:"CargoCapacity",field:"cargoCapacity"},{label:"RegenRate",field:"shieldRegenRate"},{label:"BrokenRegenRate",field:"shieldBrokenRegenRate"},{label:"EnergyPerRegen",field:"distributorDraw"},{label:"ShieldBankReinforcement",field:"shieldBankReinforcement"},{label:"ShieldBankHeat",field:"shieldBankHeat"},{label:"ShieldBankHeat",field:"thermalLoad"},{label:"ShieldBankSpinUp",field:"shieldBankSpinUp"},{label:"ShieldBankDuration",field:"shieldBankDuration"},{label:"ScannerRange",field:"scannerRange"},{label:"SensorTargetScanAngle",field:"scanAngle"},{label:"MaxAngle",field:"scanAngle"},{label:"ScannerTimeToScan",field:"scanTime"},{label:"ProbeRadius",field:"probeRadius"},{label:"DSS_PatchRadius",field:"probeRadius"},{label:"FSDInterdictorFacingLimit",field:"interdictorFacingLimit"},{label:"FSDInterdictorRange",field:"interdictorRange"},{label:"DefenceModifierShieldMultiplier",field:"shieldBoost",scale:percent,multiplierBase:percent},{label:"DefenceModifierHealthMultiplier",field:"hullBoost",scale:percent,multiplierBase:percent},{label:"DefenceModifierHealthAddition",field:"hullReinforcement"},{label:"DefenceModifierShieldAddition",field:"shieldAddition"},{label:"GuardianModuleResistance",field:"guardianZoneResistance",capabilityValue:"Active"},{label:"KineticResistance",field:"kineticResistance",scale:percent,multiplierBase:-percent},{label:"ThermicResistance",field:"thermalResistance",scale:percent,multiplierBase:-percent},{label:"ExplosiveResistance",field:"explosiveResistance",scale:percent,multiplierBase:-percent},{label:"CausticResistance",field:"causticResistance",scale:percent,multiplierBase:-percent},{label:"DamageProtection",field:"moduleProtection",scale:percent},{label:"ModuleDefenceAbsorption",field:"moduleProtection",scale:percent},{label:"Damage",field:"damage"},{label:"Rounds",field:"roundsPerShot",defaultBase:1},{label:"RoundsPerShot",field:"roundsPerShot",defaultBase:1},{label:"RateOfFire",field:"rateOfFire"},{label:"BurstInterval",field:"burstInterval"},{label:"BurstSize",field:"burstRounds",defaultBase:1},{label:"BurstRateOfFire",field:"burstRateOfFire",defaultBase:1},{label:"AmmoClipSize",field:"clipSize"},{label:"AmmoMaximum",field:"ammoMaximum"},{label:"ReloadTime",field:"reloadTime"},{label:"DistributorDraw",field:"distributorDraw"},{label:"ThermalLoad",field:"thermalLoad"},{label:"ArmourPenetration",field:"armourPiercing"},{label:"Range",field:"maximumRange"},{label:"Range",field:"scannerRange"},{label:"MaximumRange",field:"maximumRange"},{label:"FalloffRange",field:"falloffRange"},{label:"DamageFalloffRange",field:"falloffRange"},{label:"ShotSpeed",field:"shotSpeed"},{label:"$Kinetic;",field:"damageDistribution",damageType:"kinetic",scale:percent,defaultBase:0},{label:"$Thermal;",field:"damageDistribution",damageType:"thermal",scale:percent,defaultBase:0},{label:"$Explosive;",field:"damageDistribution",damageType:"explosive",scale:percent,defaultBase:0},{label:"$Absolute;",field:"damageDistribution",damageType:"absolute",scale:percent,defaultBase:0},{label:"Jitter",field:"jitter",defaultBase:0}];var BY_LABEL=(()=>{const entries=/* @__PURE__ */new Map;for(const entry of STAT_LABELS){const forLabel=entries.get(entry.label)??[];forLabel.push(entry);entries.set(entry.label,forLabel)}return entries})();var LABELS_BY_FIELD=(()=>{const labels=/* @__PURE__ */new Map;for(const entry of STAT_LABELS){if(entry.damageType!==void 0)continue;const fieldLabels=labels.get(entry.field)??[];fieldLabels.push(entry.label);labels.set(entry.field,fieldLabels)}return labels})();function baseStats(stats){const base={};for(const{label:label,field:field,damageType:damageType,scale:scale,defaultBase:defaultBase}of STAT_LABELS){if(base[label]!==void 0)continue;const value=damageType===void 0?stats[field]:stats.damageDistribution?.[damageType];if(typeof value==="number")base[label]=value*(scale??1);else if(defaultBase!==void 0&&isWeapon(stats))base[label]=defaultBase}return base}function isWeapon(stats){return stats.damage!==void 0}function fieldForLabel(label,stats){const entries=BY_LABEL.get(label);if(!entries||entries.length===0)return null;if(stats&&entries.length>1){const carried=entries.find(entry=>typeof stats[entry.field]==="number");if(carried)return carried.field}return entries[0].field}function damageTypeForLabel(label){return BY_LABEL.get(label)?.[0]?.damageType??null}function labelsForDamageType(type){return STAT_LABELS.filter(entry=>entry.damageType===type).map(entry=>entry.label)}function scaleForLabel(label){return BY_LABEL.get(label)?.[0]?.scale??1}function multiplierBaseForLabel(label){return BY_LABEL.get(label)?.[0]?.multiplierBase??null}function capabilityValueForLabel(label){return BY_LABEL.get(label)?.[0]?.capabilityValue??null}function labelsForField(field){return LABELS_BY_FIELD.get(field)??[]}var PRECISE_VALUE=/* @__PURE__ */Symbol("precise engineering modifier value");function withPreciseModifierValue(modifier,value){Object.defineProperty(modifier,PRECISE_VALUE,{value:value});return modifier}function preciseModifierValue(modifier){return modifier[PRECISE_VALUE]??modifier.Value}var round6=n=>{const rounded=Math.round(n*1e6)/1e6;return Object.is(rounded,-0)?0:rounded};var FLOAT32_SCALED_BASE_LABELS=/* @__PURE__ */new Set(["EngineOptPerformance","EngineMinPerformance","EngineMaxPerformance","ShieldGenStrength","ShieldGenMinStrength","ShieldGenMaxStrength"]);function computeModifiers(base,grade,quality=1,experimental){if(!Number.isFinite(quality)||quality<0||quality>1){throw new RangeError(`computeModifiers: quality must be a finite number in [0, 1]`)}const f=Math.fround;const roll=f(quality);const byLabel=/* @__PURE__ */new Map;const add=(label,method,value,stated)=>{const list=byLabel.get(label)??[];list.push({method:method,value:value,stated:stated});byLabel.set(label,list)};const features="features"in grade?grade.features:grade;for(const feature of features){const rolledValue=roll===0?feature.min:roll===1?feature.max:feature.min+(feature.max-feature.min)*roll;const value=feature.method==="overwrite"?rolledValue:roll===0||roll===1?f(rolledValue):f(f(feature.min)+f(f(feature.max-feature.min)*roll));add(feature.label,feature.method,value,feature.min===feature.max||roll===0||roll===1)}const experimentalModifiers=experimental&&"modifiers"in experimental?experimental.modifiers:experimental;for(const e of experimentalModifiers??[]){add(e.label,e.method,e.method==="overwrite"?e.value:f(e.value),true)}const modifiers=[];let clipIsOverwritten=false;for(const[label,contributions]of byLabel){const capabilityValue=capabilityValueForLabel(label);if(capabilityValue!==null){modifiers.push({Label:label,ValueStr:capabilityValue});continue}const baseValue=base[label];const overwrite=contributions.find(c=>c.method==="overwrite");const multiplierBase=multiplierBaseForLabel(label);const original=baseValue===void 0?void 0:float32JournalValue(baseValue,multiplierBase,FLOAT32_SCALED_BASE_LABELS.has(label)?scaleForLabel(label):1);const baseless=original===void 0&&(multiplierBase!==null||overwrite!==void 0||contributions.some(c=>c.method==="additive"));if(original===void 0&&!baseless)continue;let value=original??0;if(multiplierBase===null){for(const c of contributions){if(c.method==="multiplicative")value=f(value*f(1+f(c.value)))}for(const c of contributions){if(c.method==="additive")value=f(value+f(c.value))}}else{let factor=f(1+value/multiplierBase);for(const c of contributions){if(c.method==="overwrite")continue;factor=f(factor*f(1+f(f(c.value)*100/multiplierBase)))}value=f(f(factor-1)*multiplierBase)}if(overwrite)value=overwrite.value;if(label==="AmmoClipSize"){if(overwrite)clipIsOverwritten=true;else if(original!==void 0&&contributions.every(c=>c.stated)){value=snapToStatedWhole(value,original)}}else if(label==="AmmoMaximum"&&!overwrite){value=Math.round(value)}modifiers.push(withPreciseModifierValue({Label:label,Value:round6(value),...original===void 0&&multiplierBase===null?{}:{OriginalValue:round6(original??0)}},value))}const resolved=resolveFalloffFromRange(modifiers,base);return clipIsOverwritten?resolved:roundClipToWholeBursts(resolved,base)}function float32JournalValue(value,multiplierBase,scale){if(multiplierBase===null){return Math.fround(Math.fround(value/scale)*scale)}const factor=Math.fround(1+value/multiplierBase);return Math.fround(Math.fround(factor-1)*multiplierBase)}function roundClipToWholeBursts(modifiers,base){const clip=modifiers.find(m=>m.Label==="AmmoClipSize");if(!clip?.Value||clip.Value===clip.OriginalValue)return modifiers;const burst=modifiers.find(m=>m.Label==="BurstSize")?.Value||base["BurstSize"]||1;const rounded=Math.ceil(clip.Value/burst)*burst;if(rounded===clip.Value)return modifiers;return modifiers.map(m=>m===clip?{...m,Value:rounded}:m)}function snapToStatedWhole(value,base){const whole=Math.round(value);return Math.abs(value-whole)<=Math.abs(base)*5e-4?whole:value}function resolveFalloffFromRange(modifiers,base){const falloff=modifiers.find(m=>m.Label==="FalloffRange");if(!falloff||falloff.Value===void 0)return modifiers;const range=modifiers.find(m=>m.Label==="Range"||m.Label==="MaximumRange")?.Value??base["Range"]??base["MaximumRange"];if(range===void 0){return falloff.Value<=1?modifiers.filter(m=>m!==falloff):modifiers}if(falloff.Value<=1||falloff.Value>range){return modifiers.map(m=>m===falloff?{...m,Value:round6(range)}:m)}return modifiers}function sumMaterials(...lists){const totals=/* @__PURE__ */new Map;for(const list of lists){for(const material of list){const key=material.symbol.toLowerCase();const previous=totals.get(key);totals.set(key,{symbol:previous?.symbol??material.symbol,name:previous?.name??material.name,count:(previous?.count??0)+material.count})}}return[...totals.values()]}export{baseStats,capabilityValueForLabel,computeModifiers,damageTypeForLabel,fieldForLabel,labelsForDamageType,labelsForField,preciseModifierValue,scaleForLabel,sumMaterials};//# sourceMappingURL=chunk-CJQ37JII.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ships/internal/module-stat-labels.ts","../src/ships/internal/engineering-precision.ts","../src/ships/engineering.ts"],"names":["percent","STAT_LABELS","label","field","scale","multiplierBase","capabilityValue","defaultBase","damageType","BY_LABEL","entries","Map","entry","forLabel","get","push","set","LABELS_BY_FIELD","labels","fieldLabels","baseStats","stats","base","value","damageDistribution","isWeapon","damage","fieldForLabel","length","carried","find","damageTypeForLabel","labelsForDamageType","type","filter","map","scaleForLabel","multiplierBaseForLabel","capabilityValueForLabel","labelsForField","PRECISE_VALUE","Symbol","withPreciseModifierValue","modifier","Object","defineProperty","preciseModifierValue","Value","round6","n","rounded","Math","round","is","FLOAT32_SCALED_BASE_LABELS","Set","computeModifiers","grade","quality","experimental","Number","isFinite","RangeError","f","fround","roll","byLabel","add","method","stated","list","features","feature","rolledValue","min","max","experimentalModifiers","modifiers","e","clipIsOverwritten","contributions","Label","ValueStr","baseValue","overwrite","c","original","float32JournalValue","has","baseless","some","factor","every","snapToStatedWhole","OriginalValue","resolved","resolveFalloffFromRange","roundClipToWholeBursts","clip","m","burst","ceil","whole","abs","falloff","range","sumMaterials","lists","totals","material","key","symbol","toLowerCase","previous","name","count","values"],"mappings":"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"}
|