@elite-dangerous-almanac/core 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PROVENANCE/equipment/SOURCES.md +149 -27
- package/PROVENANCE/i18n/SOURCES.md +251 -40
- package/PROVENANCE/ships/SOURCES.md +232 -63
- package/README.md +21 -6
- package/THIRD_PARTY_NOTICES.md +4 -1
- package/dist/{chunk-AAU7OM47.js → chunk-2OBUSQA7.js} +1 -1
- package/dist/{chunk-AAU7OM47.js.map → chunk-2OBUSQA7.js.map} +1 -1
- package/dist/chunk-3GNYPM6J.js +1 -0
- package/dist/chunk-3GNYPM6J.js.map +1 -0
- package/dist/{chunk-A6OINYNP.js → chunk-3WGXGBW5.js} +1 -1
- package/dist/{chunk-ABSDZINM.js → chunk-5YEHJM6V.js} +1 -1
- package/dist/{chunk-ABSDZINM.js.map → chunk-5YEHJM6V.js.map} +1 -1
- package/dist/{chunk-7S7ZTZZY.js → chunk-7EWZGDWY.js} +1 -1
- package/dist/chunk-A7IVMYNF.js +1 -0
- package/dist/chunk-A7IVMYNF.js.map +1 -0
- package/dist/{chunk-KPJ77VPS.js → chunk-BJU27V6C.js} +1 -1
- package/dist/{chunk-KPJ77VPS.js.map → chunk-BJU27V6C.js.map} +1 -1
- package/dist/chunk-C3LLPLLD.js +1 -0
- package/dist/chunk-C3LLPLLD.js.map +1 -0
- package/dist/chunk-DAQ3PJ4R.js +1 -0
- package/dist/chunk-DAQ3PJ4R.js.map +1 -0
- package/dist/chunk-DHACRCLI.js +1 -0
- package/dist/chunk-DHACRCLI.js.map +1 -0
- package/dist/chunk-EHFHRQEP.js +1 -0
- package/dist/{chunk-LOWDDWDT.js.map → chunk-EHFHRQEP.js.map} +1 -1
- package/dist/{chunk-YCGISPDR.js → chunk-ETWMPMZP.js} +1 -1
- package/dist/chunk-FJIWJYKO.js +1 -0
- package/dist/chunk-FJIWJYKO.js.map +1 -0
- package/dist/chunk-GIGRBFIJ.js +1 -0
- package/dist/{chunk-MGRDB2BZ.js.map → chunk-GIGRBFIJ.js.map} +1 -1
- package/dist/{chunk-4CBMQULR.js → chunk-IMNOEFUE.js} +1 -1
- package/dist/{chunk-4CBMQULR.js.map → chunk-IMNOEFUE.js.map} +1 -1
- package/dist/chunk-IN36YSS4.js +1 -0
- package/dist/chunk-IN36YSS4.js.map +1 -0
- package/dist/chunk-IUSMAX5T.js +1 -0
- package/dist/{chunk-6GJHUWMO.js.map → chunk-IUSMAX5T.js.map} +1 -1
- package/dist/{chunk-XQJERZUS.js → chunk-JCYOE3C4.js} +1 -1
- package/dist/{chunk-XQJERZUS.js.map → chunk-JCYOE3C4.js.map} +1 -1
- package/dist/chunk-LWNBWRKL.js +1 -0
- package/dist/{chunk-B7EYTZRK.js.map → chunk-LWNBWRKL.js.map} +1 -1
- package/dist/chunk-M6J7KP7G.js +1 -0
- package/dist/chunk-M6J7KP7G.js.map +1 -0
- package/dist/chunk-MT5AHPNP.js +1 -0
- package/dist/{chunk-3CKWT2F3.js.map → chunk-MT5AHPNP.js.map} +1 -1
- package/dist/chunk-OLKOWR7S.js +1 -0
- package/dist/chunk-OLKOWR7S.js.map +1 -0
- package/dist/chunk-QJECDMQQ.js +1 -0
- package/dist/{chunk-LZYHBFJC.js.map → chunk-QJECDMQQ.js.map} +1 -1
- package/dist/chunk-SC4MEHVY.js +1 -0
- package/dist/chunk-SC4MEHVY.js.map +1 -0
- package/dist/chunk-T7IQHFQ2.js +1 -0
- package/dist/chunk-T7IQHFQ2.js.map +1 -0
- package/dist/chunk-W5ULI75F.js +1 -0
- package/dist/chunk-W5ULI75F.js.map +1 -0
- package/dist/chunk-WV7QCDL5.js +1 -0
- package/dist/chunk-WV7QCDL5.js.map +1 -0
- package/dist/{chunk-SDXUPP4P.js → chunk-XSLPWM5N.js} +1 -1
- package/dist/{chunk-S3MONE55.js → chunk-YJAH6DFY.js} +1 -1
- package/dist/chunk-YJAH6DFY.js.map +1 -0
- package/dist/chunk-ZZTDEDXJ.js +1 -0
- package/dist/{chunk-FA5JVXVG.js.map → chunk-ZZTDEDXJ.js.map} +1 -1
- package/dist/equipment/engineering.d.ts +53 -1
- package/dist/equipment/engineering.js +1 -1
- package/dist/equipment/index.d.ts +13 -2
- package/dist/equipment/index.js +1 -1
- package/dist/equipment/modification-journal.js +1 -1
- package/dist/equipment/modifications.d.ts +32 -9
- package/dist/equipment/modifications.js +1 -1
- package/dist/equipment/suits.d.ts +32 -2
- package/dist/equipment/suits.js +1 -1
- package/dist/equipment/upgrade-costs.js +1 -1
- package/dist/equipment/weapons.d.ts +16 -2
- package/dist/equipment/weapons.js +1 -1
- package/dist/i18n/index.d.ts +76 -0
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/modules.d.ts +10 -7
- package/dist/i18n/modules.js +1 -1
- package/dist/i18n/personal-modifications.d.ts +68 -0
- package/dist/i18n/personal-modifications.js +1 -0
- package/dist/i18n/personal-modifications.js.map +1 -0
- package/dist/i18n/personal-weapons.d.ts +33 -0
- package/dist/i18n/personal-weapons.js +1 -0
- package/dist/i18n/personal-weapons.js.map +1 -0
- package/dist/i18n/pre-engineered.js +1 -1
- package/dist/i18n/suits.d.ts +59 -0
- package/dist/i18n/suits.js +1 -0
- package/dist/i18n/suits.js.map +1 -0
- package/dist/materials/index.js +1 -1
- package/dist/materials/micro-resources-all.js +1 -1
- package/dist/materials/micro-resources.js +1 -1
- package/dist/ships/blueprint-costs.js +1 -1
- package/dist/ships/blueprint-journal.js +1 -1
- package/dist/ships/build-metrics.js +1 -1
- package/dist/ships/engineering-options.d.ts +2 -2
- package/dist/ships/engineering-options.js +1 -1
- package/dist/ships/engineering.js +1 -1
- package/dist/ships/index.d.ts +5 -5
- package/dist/ships/index.js +1 -1
- package/dist/ships/loadout-calculations.d.ts +11 -2
- package/dist/ships/loadout-calculations.js +1 -1
- package/dist/ships/loadout-validation.d.ts +7 -2
- package/dist/ships/loadout-validation.js +1 -1
- package/dist/ships/modules-all.d.ts +2 -2
- package/dist/ships/modules-all.js +1 -1
- package/dist/ships/modules-core.d.ts +3 -3
- package/dist/ships/modules-core.js +1 -1
- package/dist/ships/modules-hardpoint.d.ts +1 -1
- package/dist/ships/modules-internal.d.ts +17 -6
- package/dist/ships/modules-internal.js +1 -1
- package/dist/ships/modules-utility.d.ts +1 -1
- package/dist/ships/modules.d.ts +14 -7
- package/dist/ships/modules.js +1 -1
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/pre-engineered.js +1 -1
- package/dist/ships/shield-capacitor.js +1 -1
- package/dist/ships/ship-loadout.d.ts +71 -23
- package/dist/ships/ship-loadout.js +1 -1
- package/dist/ships/weapons.js +1 -1
- package/package.json +13 -1
- package/dist/chunk-3CKWT2F3.js +0 -1
- package/dist/chunk-3P455LF4.js +0 -1
- package/dist/chunk-3P455LF4.js.map +0 -1
- package/dist/chunk-5QSCLEEB.js +0 -1
- package/dist/chunk-5QSCLEEB.js.map +0 -1
- package/dist/chunk-6GJHUWMO.js +0 -1
- package/dist/chunk-B7EYTZRK.js +0 -1
- package/dist/chunk-C5HG4GJI.js +0 -1
- package/dist/chunk-C5HG4GJI.js.map +0 -1
- package/dist/chunk-DCB4COCL.js +0 -1
- package/dist/chunk-DCB4COCL.js.map +0 -1
- package/dist/chunk-E3AUKPSQ.js +0 -1
- package/dist/chunk-E3AUKPSQ.js.map +0 -1
- package/dist/chunk-FA5JVXVG.js +0 -1
- package/dist/chunk-GISL7YML.js +0 -1
- package/dist/chunk-GISL7YML.js.map +0 -1
- package/dist/chunk-KLC5XT6F.js +0 -1
- package/dist/chunk-KLC5XT6F.js.map +0 -1
- package/dist/chunk-LOWDDWDT.js +0 -1
- package/dist/chunk-LZYHBFJC.js +0 -1
- package/dist/chunk-MGRDB2BZ.js +0 -1
- package/dist/chunk-NBLLW7TH.js +0 -1
- package/dist/chunk-NBLLW7TH.js.map +0 -1
- package/dist/chunk-OJC6AUL7.js +0 -1
- package/dist/chunk-OJC6AUL7.js.map +0 -1
- package/dist/chunk-S3MONE55.js.map +0 -1
- /package/dist/{chunk-A6OINYNP.js.map → chunk-3WGXGBW5.js.map} +0 -0
- /package/dist/{chunk-7S7ZTZZY.js.map → chunk-7EWZGDWY.js.map} +0 -0
- /package/dist/{chunk-YCGISPDR.js.map → chunk-ETWMPMZP.js.map} +0 -0
- /package/dist/{chunk-SDXUPP4P.js.map → chunk-XSLPWM5N.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getSuitByFamily}from"../chunk-
|
|
1
|
+
import{getSuitByFamily}from"../chunk-LWNBWRKL.js";import{getPersonalWeaponBySymbol}from"../chunk-IUSMAX5T.js"; import{sumPersonalEngineeringIngredients}from"../chunk-WV7QCDL5.js"; import{deepFreeze}from"../chunk-DURKO7JU.js";var upgrade_costs_default={suits:{utilitysuit:{2:[{symbol:"suitschematic",count:1},{symbol:"healthmonitor",count:1},{symbol:"manufacturinginstructions",count:1},{symbol:"carbonfibreplating",count:2},{symbol:"graphene",count:2}],3:[{symbol:"suitschematic",count:2},{symbol:"healthmonitor",count:2},{symbol:"manufacturinginstructions",count:2},{symbol:"carbonfibreplating",count:5},{symbol:"graphene",count:5}],4:[{symbol:"suitschematic",count:4},{symbol:"healthmonitor",count:4},{symbol:"manufacturinginstructions",count:4},{symbol:"carbonfibreplating",count:9},{symbol:"graphene",count:9}],5:[{symbol:"suitschematic",count:5},{symbol:"healthmonitor",count:5},{symbol:"manufacturinginstructions",count:5},{symbol:"carbonfibreplating",count:12},{symbol:"graphene",count:12}]},tacticalsuit:{2:[{symbol:"suitschematic",count:1},{symbol:"healthmonitor",count:1},{symbol:"manufacturinginstructions",count:1},{symbol:"titaniumplating",count:2},{symbol:"graphene",count:2}],3:[{symbol:"suitschematic",count:2},{symbol:"healthmonitor",count:2},{symbol:"manufacturinginstructions",count:2},{symbol:"titaniumplating",count:5},{symbol:"graphene",count:5}],4:[{symbol:"suitschematic",count:4},{symbol:"healthmonitor",count:4},{symbol:"manufacturinginstructions",count:4},{symbol:"titaniumplating",count:9},{symbol:"graphene",count:9}],5:[{symbol:"suitschematic",count:5},{symbol:"healthmonitor",count:5},{symbol:"manufacturinginstructions",count:5},{symbol:"titaniumplating",count:12},{symbol:"graphene",count:12}]},explorationsuit:{2:[{symbol:"suitschematic",count:1},{symbol:"healthmonitor",count:1},{symbol:"manufacturinginstructions",count:1},{symbol:"aerogel",count:2},{symbol:"graphene",count:2}],3:[{symbol:"suitschematic",count:2},{symbol:"healthmonitor",count:2},{symbol:"manufacturinginstructions",count:2},{symbol:"aerogel",count:5},{symbol:"graphene",count:5}],4:[{symbol:"suitschematic",count:4},{symbol:"healthmonitor",count:4},{symbol:"manufacturinginstructions",count:4},{symbol:"aerogel",count:9},{symbol:"graphene",count:9}],5:[{symbol:"suitschematic",count:5},{symbol:"healthmonitor",count:5},{symbol:"manufacturinginstructions",count:5},{symbol:"aerogel",count:12},{symbol:"graphene",count:12}]}},weaponGroups:{takada:{2:[{symbol:"weaponschematic",count:1},{symbol:"ionisedgas",count:1},{symbol:"manufacturinginstructions",count:1},{symbol:"microelectrode",count:2},{symbol:"opticalfibre",count:2}],3:[{symbol:"weaponschematic",count:2},{symbol:"ionisedgas",count:2},{symbol:"manufacturinginstructions",count:2},{symbol:"microelectrode",count:5},{symbol:"opticalfibre",count:5}],4:[{symbol:"weaponschematic",count:4},{symbol:"ionisedgas",count:4},{symbol:"manufacturinginstructions",count:4},{symbol:"microelectrode",count:9},{symbol:"opticalfibre",count:9}],5:[{symbol:"weaponschematic",count:5},{symbol:"ionisedgas",count:5},{symbol:"manufacturinginstructions",count:5},{symbol:"microelectrode",count:12},{symbol:"opticalfibre",count:12}]},manticore:{2:[{symbol:"weaponschematic",count:1},{symbol:"ionisedgas",count:1},{symbol:"manufacturinginstructions",count:1},{symbol:"microelectrode",count:2},{symbol:"chemicalsuperbase",count:2}],3:[{symbol:"weaponschematic",count:2},{symbol:"ionisedgas",count:2},{symbol:"manufacturinginstructions",count:2},{symbol:"microelectrode",count:5},{symbol:"chemicalsuperbase",count:5}],4:[{symbol:"weaponschematic",count:4},{symbol:"ionisedgas",count:4},{symbol:"manufacturinginstructions",count:4},{symbol:"microelectrode",count:9},{symbol:"chemicalsuperbase",count:9}],5:[{symbol:"weaponschematic",count:5},{symbol:"ionisedgas",count:5},{symbol:"manufacturinginstructions",count:5},{symbol:"microelectrode",count:12},{symbol:"chemicalsuperbase",count:12}]},karma:{2:[{symbol:"weaponschematic",count:1},{symbol:"compressionliquefiedgas",count:1},{symbol:"manufacturinginstructions",count:1},{symbol:"weaponcomponent",count:2},{symbol:"tungstencarbide",count:2}],3:[{symbol:"weaponschematic",count:2},{symbol:"compressionliquefiedgas",count:2},{symbol:"manufacturinginstructions",count:2},{symbol:"weaponcomponent",count:5},{symbol:"tungstencarbide",count:5}],4:[{symbol:"weaponschematic",count:4},{symbol:"compressionliquefiedgas",count:4},{symbol:"manufacturinginstructions",count:4},{symbol:"weaponcomponent",count:9},{symbol:"tungstencarbide",count:9}],5:[{symbol:"weaponschematic",count:5},{symbol:"compressionliquefiedgas",count:5},{symbol:"manufacturinginstructions",count:5},{symbol:"weaponcomponent",count:12},{symbol:"tungstencarbide",count:12}]}}};var PERSONAL_UPGRADE_COSTS=deepFreeze(upgrade_costs_default);function getSuitUpgradeStepCost(family,targetGrade){assertTargetGrade(targetGrade,"getSuitUpgradeStepCost");const costs=getSuitUpgradeCosts(family);return costs?.[String(targetGrade)]??null}function getSuitUpgradeCost(family,targetGrade,currentGrade=1){assertGrade(targetGrade,"getSuitUpgradeCost: targetGrade");assertGrade(currentGrade,"getSuitUpgradeCost: currentGrade");const costs=getSuitUpgradeCosts(family);if(!costs)return null;return totalCosts(costs,targetGrade,currentGrade)}function getPersonalWeaponUpgradeStepCost(symbol,targetGrade){assertTargetGrade(targetGrade,"getPersonalWeaponUpgradeStepCost");const weapon=getPersonalWeaponBySymbol(symbol);if(!weapon)return null;return PERSONAL_UPGRADE_COSTS.weaponGroups[weapon.upgradeGroup][String(targetGrade)]??null}function getPersonalWeaponUpgradeCost(symbol,targetGrade,currentGrade=1){assertGrade(targetGrade,"getPersonalWeaponUpgradeCost: targetGrade");assertGrade(currentGrade,"getPersonalWeaponUpgradeCost: currentGrade");const weapon=getPersonalWeaponBySymbol(symbol);if(!weapon)return null;return totalCosts(PERSONAL_UPGRADE_COSTS.weaponGroups[weapon.upgradeGroup],targetGrade,currentGrade)}function totalCosts(costs,targetGrade,currentGrade){const steps=[];for(let grade=currentGrade+1;grade<=targetGrade;grade++){steps.push(costs[String(grade)])}return sumPersonalEngineeringIngredients(...steps)}function getSuitUpgradeCosts(family){const suit=getSuitByFamily(family);if(!suit||!Object.hasOwn(PERSONAL_UPGRADE_COSTS.suits,suit.family))return null;return PERSONAL_UPGRADE_COSTS.suits[suit.family]}function assertTargetGrade(grade,functionName){if(!Number.isInteger(grade)||grade<2||grade>5){throw new RangeError(`${functionName}: targetGrade must be an integer in [2, 5]`)}}function assertGrade(grade,label){if(!Number.isInteger(grade)||grade<1||grade>5){throw new RangeError(`${label} must be an integer in [1, 5]`)}}export{PERSONAL_UPGRADE_COSTS,getPersonalWeaponUpgradeCost,getPersonalWeaponUpgradeStepCost,getSuitUpgradeCost,getSuitUpgradeStepCost};//# sourceMappingURL=upgrade-costs.js.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { EquipmentGrade } from './suits.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Odyssey handheld weapons
|
|
4
|
+
* Odyssey handheld weapons: their journal identifiers, combat stats, sight
|
|
5
|
+
* magnification and grade-dependent damage.
|
|
5
6
|
*
|
|
6
7
|
* @packageDocumentation
|
|
7
8
|
*/
|
|
@@ -18,6 +19,13 @@ type PersonalWeaponSlot = 'primary' | 'secondary';
|
|
|
18
19
|
type PersonalDamageType = 'kinetic' | 'thermal' | 'plasma' | 'explosive';
|
|
19
20
|
/** A handheld weapon firing cycle. */
|
|
20
21
|
type PersonalFireMode = 'automatic' | 'semi-automatic' | 'burst';
|
|
22
|
+
/** A weapon's aim-down-sights magnification, before and after the Scope modification. */
|
|
23
|
+
interface ScopeMagnification {
|
|
24
|
+
/** Magnification of the sight the weapon ships with, e.g. `1.12` for 1.12x. */
|
|
25
|
+
readonly default: number;
|
|
26
|
+
/** Magnification of the sight the Scope modification fits, e.g. `1.41` for 1.41x. */
|
|
27
|
+
readonly upgraded: number;
|
|
28
|
+
}
|
|
21
29
|
/** Grade-dependent stats for one handheld weapon. */
|
|
22
30
|
interface PersonalWeaponGrade {
|
|
23
31
|
/** Damage per projectile or pellet. */
|
|
@@ -53,6 +61,12 @@ interface PersonalWeapon {
|
|
|
53
61
|
readonly headshotMultiplier: number;
|
|
54
62
|
/** Nominal effective range in metres. */
|
|
55
63
|
readonly effectiveRange: number;
|
|
64
|
+
/**
|
|
65
|
+
* Aim-down-sights magnification with the stock sight and with the one the Scope
|
|
66
|
+
* modification fits. Scope carries no modifier of its own: this pair is its whole
|
|
67
|
+
* numeric effect, and it differs per weapon.
|
|
68
|
+
*/
|
|
69
|
+
readonly scopeMagnification: ScopeMagnification;
|
|
56
70
|
/**
|
|
57
71
|
* Grade records keyed by `"1"` through `"5"` — every weapon carries all five,
|
|
58
72
|
* unlike {@link Suit.grades}, and `equipment.test.ts` pins that. Read one through
|
|
@@ -118,4 +132,4 @@ declare function getPersonalWeaponByName(name: string): PersonalWeapon | null;
|
|
|
118
132
|
*/
|
|
119
133
|
declare function getPersonalWeaponGrade(weapon: PersonalWeapon, grade: number): PersonalWeaponGrade | null;
|
|
120
134
|
|
|
121
|
-
export { PERSONAL_WEAPONS, type PersonalDamageType, type PersonalFireMode, type PersonalWeapon, type PersonalWeaponClass, type PersonalWeaponEngineeringType, type PersonalWeaponGrade, type PersonalWeaponSlot, type WeaponUpgradeGroup, getPersonalWeaponByName, getPersonalWeaponBySymbol, getPersonalWeaponGrade };
|
|
135
|
+
export { PERSONAL_WEAPONS, type PersonalDamageType, type PersonalFireMode, type PersonalWeapon, type PersonalWeaponClass, type PersonalWeaponEngineeringType, type PersonalWeaponGrade, type PersonalWeaponSlot, type ScopeMagnification, type WeaponUpgradeGroup, getPersonalWeaponByName, getPersonalWeaponBySymbol, getPersonalWeaponGrade };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{PERSONAL_WEAPONS,getPersonalWeaponByName,getPersonalWeaponBySymbol,getPersonalWeaponGrade}from"../chunk-
|
|
1
|
+
export{PERSONAL_WEAPONS,getPersonalWeaponByName,getPersonalWeaponBySymbol,getPersonalWeaponGrade}from"../chunk-IUSMAX5T.js"; //# sourceMappingURL=weapons.js.map
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -1,3 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sparse, source-backed localized display names and descriptions for Elite Dangerous
|
|
3
|
+
* outfitting, personal-equipment and engineering catalogues.
|
|
4
|
+
*
|
|
5
|
+
* Each lookup takes the same Frontier symbol as its owning catalogue and a BCP 47
|
|
6
|
+
* locale. English is complete: for a name catalogue it is exactly the owning record's
|
|
7
|
+
* `name`, and for a description catalogue it is the game's own display prose, which no
|
|
8
|
+
* catalogue otherwise publishes.
|
|
9
|
+
* Other locales are intentionally sparse: the function returns `null` when its pinned
|
|
10
|
+
* sources carry no translation, leaving the application in control of fallback policy.
|
|
11
|
+
* A source-backed localized spelling can be identical to English; the lookup returns
|
|
12
|
+
* explicit source values verbatim but never manufactures an English fallback.
|
|
13
|
+
* The catalogues carry English, French, German, Portuguese, Russian and Spanish only,
|
|
14
|
+
* each stored under a bare language tag: a regional or script subtag is dropped
|
|
15
|
+
* (`de-DE` → `de`), and any other language is an unsupported locale.
|
|
16
|
+
*
|
|
17
|
+
* **How sparse, dataset by dataset.** Each column below is the percentage of that
|
|
18
|
+
* lookup's keys carrying a stored value for the locale, so a `0` would mean the dataset
|
|
19
|
+
* holds nothing in that language at all and the lookup returns `null` for every key:
|
|
20
|
+
* German module names are near-complete, while a quarter of the outfitting families —
|
|
21
|
+
* the ones the game does not name separately — have no locale at all. Plan fallback per
|
|
22
|
+
* lookup rather than per application. The table is generated from the
|
|
23
|
+
* [`data/i18n/` catalogues](https://github.com/DarkSession/Elite-Dangerous-Almanac/tree/main/data/i18n),
|
|
24
|
+
* so it moves when the data does.
|
|
25
|
+
*
|
|
26
|
+
* <!-- generated by scripts/i18n-coverage.mjs -->
|
|
27
|
+
* | Lookup | Keys | en | de | es | fr | pt | ru |
|
|
28
|
+
* | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
|
29
|
+
* | `getBlueprintName` | 107 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
30
|
+
* | `getExperimentalEffectDescription` | 86 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
31
|
+
* | `getExperimentalEffectName` | 86 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
32
|
+
* | `getMaterialName` | 146 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
33
|
+
* | `getMicroResourceName` | 226 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
34
|
+
* | `getModuleName` | 1194 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
35
|
+
* | `getPersonalModificationDescription` | 31 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
36
|
+
* | `getPersonalModificationName` | 31 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
37
|
+
* | `getPersonalWeaponDescription` | 11 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
38
|
+
* | `getSuitDescription` | 19 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
39
|
+
* | `getSuitName` | 19 | 100 | 100 | 100 | 100 | 100 | 100 |
|
|
40
|
+
* | `getPreEngineeredVariantName` | 76 | 100 | 92 | 89 | 89 | 100 | 100 |
|
|
41
|
+
* | `getOutfittingFamilyName` | 77 | 100 | 75 | 75 | 75 | 75 | 75 |
|
|
42
|
+
* <!-- end generated -->
|
|
43
|
+
*
|
|
44
|
+
* Each dataset lives in a separate runtime module. Import from this barrel for
|
|
45
|
+
* convenience or from the corresponding `i18n/*` subpath for an explicit bundle
|
|
46
|
+
* boundary.
|
|
47
|
+
*
|
|
48
|
+
* Structured diagnostic helpers expose their current English fallback only for English
|
|
49
|
+
* locales and return `null` otherwise, so a UI never mistakes English prose for a
|
|
50
|
+
* requested translation. Stable codes and `params` remain available for applications
|
|
51
|
+
* that supply their own message catalogues.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* import {
|
|
56
|
+
* getBlueprintName,
|
|
57
|
+
* getMaterialName,
|
|
58
|
+
* getModuleName,
|
|
59
|
+
* getOutfittingFamilyName,
|
|
60
|
+
* } from '@elite-dangerous-almanac/core/i18n';
|
|
61
|
+
*
|
|
62
|
+
* getModuleName('Int_Hyperdrive_Size6_Class5', 'de'); // -> 'Frameshiftantrieb'
|
|
63
|
+
* getBlueprintName('FSD_LongRange', 'de-DE'); // -> 'Erhöhte FSA-Reichweite'
|
|
64
|
+
* getMaterialName('GridResistors', 'de'); // -> 'Gitterwiderstände'
|
|
65
|
+
*
|
|
66
|
+
* // Sparseness is per dataset, not per locale: German module names are near-complete,
|
|
67
|
+
* // while no outfitting family the game does not name separately has any.
|
|
68
|
+
* getOutfittingFamilyName('shieldGenerators', 'de'); // -> 'Schildgeneratoren'
|
|
69
|
+
* getOutfittingFamilyName('xenoScanners', 'de'); // -> null
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* @packageDocumentation
|
|
73
|
+
*/
|
|
1
74
|
export { getModuleName } from './modules.js';
|
|
2
75
|
export { getOutfittingFamilyName } from './module-families.js';
|
|
3
76
|
export { getBlueprintName } from './blueprints.js';
|
|
@@ -5,6 +78,9 @@ export { getExperimentalEffectName } from './experimental-effects.js';
|
|
|
5
78
|
export { getExperimentalEffectDescription } from './experimental-effect-descriptions.js';
|
|
6
79
|
export { getMaterialName } from './materials.js';
|
|
7
80
|
export { getMicroResourceName } from './micro-resources.js';
|
|
81
|
+
export { getSuitDescription, getSuitName } from './suits.js';
|
|
82
|
+
export { getPersonalWeaponDescription } from './personal-weapons.js';
|
|
83
|
+
export { getPersonalModificationDescription, getPersonalModificationName } from './personal-modifications.js';
|
|
8
84
|
export { getLoadoutSlotName, getSlotRestrictionLabel } from './slots.js';
|
|
9
85
|
export { getCalculationIssueMessage, getLoadoutEditErrorMessage, getLoadoutIssueMessage, getSlefDiagnosticMessage } from './diagnostics.js';
|
|
10
86
|
export { PreEngineeredVariantIdentity, getPreEngineeredVariantName } from './pre-engineered.js';
|
package/dist/i18n/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{getExperimentalEffectName}from"../chunk-BMQM4JBL.js";export{getMaterialName}from"../chunk-IZIIGK3W.js";export{getMicroResourceName}from"../chunk-XFDMCPDW.js";export{getOutfittingFamilyName}from"../chunk-SD6GNFDX.js";export{getModuleName}from"../chunk-
|
|
1
|
+
export{getPreEngineeredVariantName}from"../chunk-T7IQHFQ2.js";export{getLoadoutSlotName,getSlotRestrictionLabel}from"../chunk-ZRG35JSH.js"; export{getSuitDescription,getSuitName}from"../chunk-FJIWJYKO.js";export{getExperimentalEffectName}from"../chunk-BMQM4JBL.js";export{getMaterialName}from"../chunk-IZIIGK3W.js";export{getMicroResourceName}from"../chunk-XFDMCPDW.js";export{getOutfittingFamilyName}from"../chunk-SD6GNFDX.js";export{getModuleName}from"../chunk-QJECDMQQ.js";export{getPersonalModificationDescription,getPersonalModificationName}from"../chunk-OLKOWR7S.js";export{getPersonalWeaponDescription}from"../chunk-W5ULI75F.js";export{getBlueprintName}from"../chunk-DBDCOHI4.js";export{getCalculationIssueMessage,getLoadoutEditErrorMessage,getLoadoutIssueMessage,getSlefDiagnosticMessage}from"../chunk-6G6TYW2D.js";export{getExperimentalEffectDescription}from"../chunk-MRLUWHGI.js"; //# sourceMappingURL=index.js.map
|
package/dist/i18n/modules.d.ts
CHANGED
|
@@ -9,13 +9,15 @@
|
|
|
9
9
|
* hyphens. A regional or script subtag is dropped: every stored locale is a bare
|
|
10
10
|
* language tag.
|
|
11
11
|
* @returns The localized outfitting name; the canonical `OutfittingModule.name` for any
|
|
12
|
-
* English tag; or `null` when the
|
|
13
|
-
*
|
|
14
|
-
* for that module and locale.
|
|
12
|
+
* English tag; or `null` when the symbol is unknown or the locale is not one of the six
|
|
13
|
+
* this catalogue stores.
|
|
15
14
|
* @remarks
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
15
|
+
* All six stored locales are complete for this dataset, so a supported locale always
|
|
16
|
+
* answers. The table deduplicates modules that share one name in every locale, which is
|
|
17
|
+
* finer than sharing one canonical English name: the game distinguishes the singular and
|
|
18
|
+
* plural hull alloys, for instance, where English spells both the same. It does not
|
|
19
|
+
* bundle any module stats, so this lookup avoids the 1,194-record `ALL_MODULES`
|
|
20
|
+
* catalogue.
|
|
19
21
|
* @throws {TypeError} If `symbol` is present and not a string, or `locale` is not a
|
|
20
22
|
* string. A nullish `symbol` is a lookup miss and returns `null`.
|
|
21
23
|
* @example
|
|
@@ -23,7 +25,8 @@
|
|
|
23
25
|
* import { getModuleName } from '@elite-dangerous-almanac/core/i18n/modules';
|
|
24
26
|
*
|
|
25
27
|
* getModuleName('Int_Hyperdrive_Size6_Class5', 'de-DE'); // -> 'Frameshiftantrieb'
|
|
26
|
-
* getModuleName('Int_LargeCargoRack_Size8_class1', 'de'); // ->
|
|
28
|
+
* getModuleName('Int_LargeCargoRack_Size8_class1', 'de'); // -> 'Frachtgestell für Mk II'
|
|
29
|
+
* getModuleName('Int_Hyperdrive_Size6_Class5', 'it'); // -> null
|
|
27
30
|
* ```
|
|
28
31
|
*/
|
|
29
32
|
declare function getModuleName(symbol: string, locale: string): string | null;
|
package/dist/i18n/modules.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{getModuleName}from"../chunk-
|
|
1
|
+
export{getModuleName}from"../chunk-QJECDMQQ.js"; //# sourceMappingURL=modules.js.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Localized personal-equipment modification names and descriptions, isolated from the
|
|
3
|
+
* recipes' modifiers and material costs.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Look up an engineer-applied personal-equipment modification's source-backed display
|
|
7
|
+
* name for a locale.
|
|
8
|
+
*
|
|
9
|
+
* @param modificationSymbol - The recipe symbol `PERSONAL_MODIFICATIONS` is keyed by,
|
|
10
|
+
* such as `"suit_increasedmeleedamage"` or the technology-specific
|
|
11
|
+
* `"weapon_range_laser"`. A journal line writes the unsuffixed `"weapon_range"`, which
|
|
12
|
+
* `resolvePersonalModificationForWeapon` turns into the specific symbol. Matching
|
|
13
|
+
* ignores case and surrounding whitespace.
|
|
14
|
+
* @param locale - A BCP 47 language or regional tag, such as `"de"`, `"de-DE"` or
|
|
15
|
+
* `"en-GB"`. Matching is case-insensitive; underscores are accepted in place of
|
|
16
|
+
* hyphens. A regional or script subtag is dropped: every stored locale is a bare
|
|
17
|
+
* language tag.
|
|
18
|
+
* @returns The localized modification name; the canonical `PersonalModification.name`
|
|
19
|
+
* for any English tag; or `null` when the recipe is unknown or the locale is not one of
|
|
20
|
+
* the six this catalogue stores.
|
|
21
|
+
* @remarks
|
|
22
|
+
* All six stored locales are complete for this dataset, so a supported locale always
|
|
23
|
+
* answers. The game offers Greater Range, Headshot Damage and Improved Hip Fire Accuracy
|
|
24
|
+
* as one menu entry each, so the three Kinetic, Laser and Plasma recipes this repository
|
|
25
|
+
* keys separately share that entry's record rather than storing it three times.
|
|
26
|
+
* @throws {TypeError} If `modificationSymbol` is present and not a string, or `locale`
|
|
27
|
+
* is not a string. A nullish `modificationSymbol` is a lookup miss and returns `null`.
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { getPersonalModificationName } from '@elite-dangerous-almanac/core/i18n/personal-modifications';
|
|
31
|
+
*
|
|
32
|
+
* getPersonalModificationName('suit_nightvision', 'de'); // -> 'Nachtsicht'
|
|
33
|
+
* getPersonalModificationName('weapon_range_laser', 'fr'); // -> 'Portée améliorée'
|
|
34
|
+
* getPersonalModificationName('suit_nightvision', 'it'); // -> null
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
declare function getPersonalModificationName(modificationSymbol: string, locale: string): string | null;
|
|
38
|
+
/**
|
|
39
|
+
* Look up an engineer-applied personal-equipment modification's display description —
|
|
40
|
+
* the prose the game shows a player, in all six stored locales.
|
|
41
|
+
*
|
|
42
|
+
* @param modificationSymbol - The recipe symbol `PERSONAL_MODIFICATIONS` is keyed by,
|
|
43
|
+
* exactly as {@link getPersonalModificationName} accepts. Matching ignores case and
|
|
44
|
+
* surrounding whitespace.
|
|
45
|
+
* @param locale - A BCP 47 locale. All six stored locales are complete for this dataset.
|
|
46
|
+
* @returns The localized description, or `null` when the recipe is unknown or the
|
|
47
|
+
* requested locale is not one this catalogue stores.
|
|
48
|
+
* @remarks
|
|
49
|
+
* This is display prose, not a statement of the magnitudes a recipe applies: the game
|
|
50
|
+
* says a modification "allows more ammo to be carried for each weapon", never how much
|
|
51
|
+
* more. `PersonalModification.modifiers` answers that, and the two are deliberately not
|
|
52
|
+
* the same string. It is also the only account of the ten recipes whose `modifiers` list
|
|
53
|
+
* is empty, whether because the recipe switches a capability on or because it moves a
|
|
54
|
+
* stat the panel puts no number on. English is the game's own wording rather than a
|
|
55
|
+
* projection of `PersonalModification.name`.
|
|
56
|
+
* @throws {TypeError} If a present `modificationSymbol` or `locale` is not a string.
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* import { getPersonalModificationDescription } from '@elite-dangerous-almanac/core/i18n/personal-modifications';
|
|
60
|
+
*
|
|
61
|
+
* getPersonalModificationDescription('suit_nightvision', 'en');
|
|
62
|
+
* // -> 'Adds Night Vision capabilities to the suit.'
|
|
63
|
+
* getPersonalModificationDescription('suit_nightvision', 'ja'); // -> null
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
declare function getPersonalModificationDescription(modificationSymbol: string, locale: string): string | null;
|
|
67
|
+
|
|
68
|
+
export { getPersonalModificationDescription, getPersonalModificationName };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{getPersonalModificationDescription,getPersonalModificationName}from"../chunk-OLKOWR7S.js"; //# sourceMappingURL=personal-modifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"O"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Localized handheld-weapon descriptions, isolated from weapon combat stats. */
|
|
2
|
+
/**
|
|
3
|
+
* Look up a handheld weapon's display description — the prose the game shows a player,
|
|
4
|
+
* in all six stored locales.
|
|
5
|
+
*
|
|
6
|
+
* @param symbol - Frontier's weapon symbol, such as `"wpn_s_pistol_kinetic_sauto"`.
|
|
7
|
+
* Matching ignores case and surrounding whitespace.
|
|
8
|
+
* @param locale - A BCP 47 language or regional tag, such as `"de"`, `"de-DE"` or
|
|
9
|
+
* `"en-GB"`. Matching is case-insensitive; underscores are accepted in place of
|
|
10
|
+
* hyphens. A regional or script subtag is dropped: every stored locale is a bare
|
|
11
|
+
* language tag. All six stored locales are complete for this dataset.
|
|
12
|
+
* @returns The localized description, or `null` when the weapon is unknown or the
|
|
13
|
+
* requested locale is not one this catalogue stores.
|
|
14
|
+
* @remarks
|
|
15
|
+
* **There is no matching name lookup, and that is not a gap.** A handheld weapon's name
|
|
16
|
+
* is a product name — "Karma P-15", "TK Aphelion" — that the game leaves in English in
|
|
17
|
+
* every locale, so `PersonalWeapon.name` is the name in all six. This is display prose
|
|
18
|
+
* and not a statement of the weapon's mechanics: it names no damage figure, rate of fire
|
|
19
|
+
* or effective range, which are the stats `PERSONAL_WEAPONS` carries.
|
|
20
|
+
* @throws {TypeError} If `symbol` is present and not a string, or `locale` is not a
|
|
21
|
+
* string. A nullish `symbol` is a lookup miss and returns `null`.
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { getPersonalWeaponDescription } from '@elite-dangerous-almanac/core/i18n/personal-weapons';
|
|
25
|
+
*
|
|
26
|
+
* getPersonalWeaponDescription('wpn_m_sniper_plasma_charged', 'en');
|
|
27
|
+
* // -> 'A semi-automatic, long-range plasma rifle with high damage output and a low rate of fire.'
|
|
28
|
+
* getPersonalWeaponDescription('wpn_m_sniper_plasma_charged', 'it'); // -> null
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
declare function getPersonalWeaponDescription(symbol: string, locale: string): string | null;
|
|
32
|
+
|
|
33
|
+
export { getPersonalWeaponDescription };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{getPersonalWeaponDescription}from"../chunk-W5ULI75F.js"; //# sourceMappingURL=personal-weapons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"O"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{getPreEngineeredVariantName}from"../chunk-
|
|
1
|
+
export{getPreEngineeredVariantName}from"../chunk-T7IQHFQ2.js"; //# sourceMappingURL=pre-engineered.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/** Localized personal-suit display names and descriptions, isolated from suit stats. */
|
|
2
|
+
/**
|
|
3
|
+
* Look up an Odyssey suit's source-backed display name for a locale.
|
|
4
|
+
*
|
|
5
|
+
* @param suit - Either the grade-independent family `Suit.family` carries, such as
|
|
6
|
+
* `"utilitysuit"`, or one grade's Frontier symbol, such as `"utilitysuit_class3"` — the
|
|
7
|
+
* form a journal line writes. Matching ignores case and surrounding whitespace.
|
|
8
|
+
* @param locale - A BCP 47 language or regional tag, such as `"de"`, `"de-DE"` or
|
|
9
|
+
* `"en-GB"`. Matching is case-insensitive; underscores are accepted in place of
|
|
10
|
+
* hyphens. A regional or script subtag is dropped: every stored locale is a bare
|
|
11
|
+
* language tag.
|
|
12
|
+
* @returns The localized suit name; the canonical `Suit.name` for any English tag; or
|
|
13
|
+
* `null` when the suit is unknown or the locale is not one of the six this catalogue
|
|
14
|
+
* stores.
|
|
15
|
+
* @remarks
|
|
16
|
+
* All six stored locales are complete for this dataset, so a supported locale always
|
|
17
|
+
* answers. The game names a suit per family rather than per grade, so every grade of one
|
|
18
|
+
* suit resolves to the same name. The name is the suit's own: the outfitting list
|
|
19
|
+
* prefixes it with the manufacturer — "Remlok Maverick Suit" — which names a shop
|
|
20
|
+
* listing rather than the suit, and is not stored. This lookup bundles no suit stats.
|
|
21
|
+
* @throws {TypeError} If `suit` is present and not a string, or `locale` is not a
|
|
22
|
+
* string. A nullish `suit` is a lookup miss and returns `null`.
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* import { getSuitName } from '@elite-dangerous-almanac/core/i18n/suits';
|
|
26
|
+
*
|
|
27
|
+
* getSuitName('utilitysuit', 'de-DE'); // -> 'Maverick-Anzug'
|
|
28
|
+
* getSuitName('explorationsuit_class3', 'fr'); // -> 'Combinaison Artemis'
|
|
29
|
+
* getSuitName('utilitysuit', 'it'); // -> null
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
declare function getSuitName(suit: string, locale: string): string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Look up an Odyssey suit's display description — the prose the game shows a player, in
|
|
35
|
+
* all six stored locales.
|
|
36
|
+
*
|
|
37
|
+
* @param suit - Either the grade-independent family `Suit.family` carries or one grade's
|
|
38
|
+
* Frontier symbol, exactly as {@link getSuitName} accepts. Matching ignores case and
|
|
39
|
+
* surrounding whitespace.
|
|
40
|
+
* @param locale - A BCP 47 locale. All six stored locales are complete for this dataset.
|
|
41
|
+
* @returns The localized description, or `null` when the suit is unknown or the
|
|
42
|
+
* requested locale is not one this catalogue stores.
|
|
43
|
+
* @remarks
|
|
44
|
+
* This is display prose, not a statement of what the suit does: it names no shield
|
|
45
|
+
* strength, no battery capacity and no resistance. Those are the stats
|
|
46
|
+
* `SUITS` carries, and the two are deliberately not the same string. English is the
|
|
47
|
+
* game's own wording here rather than a projection of `Suit.name`.
|
|
48
|
+
* @throws {TypeError} If a present `suit` or `locale` is not a string.
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* import { getSuitDescription } from '@elite-dangerous-almanac/core/i18n/suits';
|
|
52
|
+
*
|
|
53
|
+
* getSuitDescription('flightsuit', 'en')?.startsWith('Remlok'); // -> true
|
|
54
|
+
* getSuitDescription('flightsuit', 'ja'); // -> null
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
declare function getSuitDescription(suit: string, locale: string): string | null;
|
|
58
|
+
|
|
59
|
+
export { getSuitDescription, getSuitName };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{getSuitDescription,getSuitName}from"../chunk-FJIWJYKO.js"; //# sourceMappingURL=suits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"O"}
|
package/dist/materials/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-OFZGNWBT.js";export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7EWZGDWY.js";export{ALL_MICRO_RESOURCES}from"../chunk-DAQ3PJ4R.js";export{COMPONENT_MICRO_RESOURCES}from"../chunk-HTB52N6S.js";export{CONSUMABLE_MICRO_RESOURCES}from"../chunk-K7L7SMIR.js";export{DATA_MICRO_RESOURCES}from"../chunk-GVLDFJEY.js";export{ITEM_MICRO_RESOURCES}from"../chunk-WHWFKHV3.js"; export{ALL_MATERIALS}from"../chunk-KBCA4GEZ.js";export{ENCODED_MATERIALS}from"../chunk-A5TCT2AJ.js";export{MANUFACTURED_MATERIALS}from"../chunk-PF3HZ73R.js";export{RAW_MATERIALS}from"../chunk-Q6YDPREF.js"; //# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ALL_MICRO_RESOURCES}from"../chunk-
|
|
1
|
+
export{ALL_MICRO_RESOURCES}from"../chunk-DAQ3PJ4R.js"; //# sourceMappingURL=micro-resources-all.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-
|
|
1
|
+
export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7EWZGDWY.js"; //# sourceMappingURL=micro-resources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{BLUEPRINT_COSTS,BLUEPRINT_MERC_COIN_COSTS,getBlueprintCost,getBlueprintCosts,getBlueprintGradeCost}from"../chunk-
|
|
1
|
+
export{BLUEPRINT_COSTS,BLUEPRINT_MERC_COIN_COSTS,getBlueprintCost,getBlueprintCosts,getBlueprintGradeCost}from"../chunk-ETWMPMZP.js"; //# sourceMappingURL=blueprint-costs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{resolveBlueprintForModule}from"../chunk-
|
|
1
|
+
export{resolveBlueprintForModule}from"../chunk-XSLPWM5N.js"; //# sourceMappingURL=blueprint-journal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{BuildMetrics}from"../chunk-
|
|
1
|
+
export{BuildMetrics}from"../chunk-YJAH6DFY.js"; //# sourceMappingURL=build-metrics.js.map
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* this module?" is the question the game actually answers. So modules are grouped, and
|
|
9
9
|
* each group lists what it offers.
|
|
10
10
|
*
|
|
11
|
-
* The catalogue groups
|
|
11
|
+
* The catalogue groups 1000 of the 1194 modules — every stock module with an ordinary
|
|
12
12
|
* engineering menu. The other 194 have no ordinary menu: whole families (fuel tanks,
|
|
13
13
|
* cargo racks, passenger cabins, the repair, recon, research, decontamination and
|
|
14
14
|
* multi-limpet controllers, meta-alloy and ordinary module reinforcement, the Pulse Wave
|
|
@@ -190,7 +190,7 @@ declare function getBlueprintsForModule(symbol: string): readonly string[];
|
|
|
190
190
|
* here, so the result is the exact set for this module.
|
|
191
191
|
*
|
|
192
192
|
* **An empty array is the common answer, and it usually means "blueprints only".** 368
|
|
193
|
-
* of the
|
|
193
|
+
* of the 1000 grouped modules have no experimental slot; all sit in the 27 of 48 groups
|
|
194
194
|
* that offer none — life support, sensors, the limpet controllers, the utility scanners,
|
|
195
195
|
* and every Guardian group, weapons and modules alike. An ungrouped module answers empty
|
|
196
196
|
* too; {@link getEngineeringGroup} tells the two apart.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-
|
|
1
|
+
export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-EHFHRQEP.js"; //# sourceMappingURL=engineering-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{computeModifiers,sumMaterials}from"../chunk-
|
|
1
|
+
export{computeModifiers,sumMaterials}from"../chunk-A7IVMYNF.js"; //# sourceMappingURL=engineering.js.map
|
package/dist/ships/index.d.ts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* {@link ships/default-loadouts!DEFAULT_LOADOUTS | default-loadouts} subpath carries
|
|
29
29
|
* the stock modules {@link ShipLoadout.default} turns into a live build.
|
|
30
30
|
* - **Modules** — the {@link OutfittingModule} type and the lookups
|
|
31
|
-
* ({@link getModuleBySymbol} & co.), which search all
|
|
31
|
+
* ({@link getModuleBySymbol} & co.), which search all 1194 modules unless you hand
|
|
32
32
|
* them a narrower set; capability guards such as {@link hasWeaponDamageStats} narrow
|
|
33
33
|
* the sparse record before stat access. The catalogues live on explicit subpaths split
|
|
34
34
|
* by Frontier's four outfitting categories —
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
* ```
|
|
112
112
|
*
|
|
113
113
|
* @example
|
|
114
|
-
* **The lookup layer.** One small hull catalogue, and
|
|
114
|
+
* **The lookup layer.** One small hull catalogue, and 1194 modules split by Frontier's
|
|
115
115
|
* four outfitting categories. Lookups ignore case and surrounding whitespace.
|
|
116
116
|
*
|
|
117
117
|
* ```ts
|
|
@@ -121,8 +121,8 @@
|
|
|
121
121
|
*
|
|
122
122
|
* getShipBySymbol('empire_trader')?.name; // -> 'Imperial Clipper'
|
|
123
123
|
*
|
|
124
|
-
* // Pass a category to bound what you bundle; omit it to search all
|
|
125
|
-
* CORE_MODULES.length; // ->
|
|
124
|
+
* // Pass a category to bound what you bundle; omit it to search all 1194.
|
|
125
|
+
* CORE_MODULES.length; // -> 516
|
|
126
126
|
* getModuleBySymbol('Int_Hyperdrive_Size6_Class5', CORE_MODULES)?.name;
|
|
127
127
|
* // -> 'Frame Shift Drive'
|
|
128
128
|
* ```
|
|
@@ -157,7 +157,7 @@ export { BlueprintModuleEngineering, EngineeringModifier, LoadoutEvent, LoadoutM
|
|
|
157
157
|
export { FrameShiftDriveParams, TotalRangeDetails, frameShiftDriveMassFactor, fuelPerJump, singleJumpRange, totalRange } from './jump-range.js';
|
|
158
158
|
export { ApplyBlueprintOptions, AvailableBlueprint, EngineeringNormalizationCode, EngineeringNormalizationResult, EngineeringNormalizationUnchanged, EngineeringNormalizationUnsupported, EngineeringNormalized, ExperimentalEffectMutationCode, ExperimentalEffectMutationResult, ExperimentalEffectUnchanged, ExperimentalEffectUnsupported, ExperimentalEffectUpdated, FittedModule, FixedMountRepairResult, ImmovableReason, LoadoutEditError, LoadoutEditErrorCode, LoadoutExportOptions, LoadoutImportOutcome, LoadoutSlot, ShipLoadout, SlefExportOptions } from './ship-loadout.js';
|
|
159
159
|
export { BuildCost, BuildCredits, BuildMass, BuildMetrics, BuildWeaponMetrics, DistributorOptions, FittedWeaponMetrics, JumpOptions, JumpRangeSummary, MobilityCapacitorOptions, ShieldCapacitorOptions, ShieldRecoveryOptions, StandardLoad, StandardLoadInputs, WeaponsOptions } from './build-metrics.js';
|
|
160
|
-
export { CalculationIssue, CalculationIssueReason, CalculationResult, FuelCapacity, LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculateUnladenMass } from './loadout-calculations.js';
|
|
160
|
+
export { CalculationIssue, CalculationIssueReason, CalculationResult, FuelCapacity, LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculatePassengerCapacity, calculateUnladenMass } from './loadout-calculations.js';
|
|
161
161
|
export { LoadoutIssue, LoadoutIssueCode, LoadoutIssueParam, LoadoutIssueParams, LoadoutMass, LoadoutValidation, LoadoutValidationInput, ModuleFitConstraint, ThrusterLoad, ValidationModule, validateLoadout } from './loadout-validation.js';
|
|
162
162
|
export { SourceModuleValue, SourcePurchaseRecord, getSourceModuleValue, sourcePurchaseFromLoadout, sumSourceModuleValues } from './source-purchase.js';
|
|
163
163
|
export { PowerBand, PowerBudget, PowerConsumer, PowerConsumerResult, powerBudget } from './power.js';
|
package/dist/ships/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{LoadoutEditError,ShipLoadout}from"../chunk-
|
|
1
|
+
export{LoadoutEditError,ShipLoadout}from"../chunk-SC4MEHVY.js";export{validateLoadout}from"../chunk-3GNYPM6J.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-XSN53F7W.js";export{BuildMetrics}from"../chunk-YJAH6DFY.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{shieldCapacitorMetrics}from"../chunk-JCYOE3C4.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{powerBudget}from"../chunk-GGQMIQPC.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-IN36YSS4.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-5YEHJM6V.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-BJU27V6C.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,calculatePassengerCapacity,calculateUnladenMass}from"../chunk-C3LLPLLD.js";export{armourMetrics}from"../chunk-Q5ALV3DI.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-F44QX47A.js"; export{computeModifiers,sumMaterials}from"../chunk-A7IVMYNF.js"; export{resolveBlueprintForModule}from"../chunk-XSLPWM5N.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-EHFHRQEP.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Pure aggregate calculations for ship loadouts.
|
|
3
3
|
*
|
|
4
4
|
* @remarks
|
|
5
|
-
* The
|
|
5
|
+
* The four sums here consume already-resolved module contributions, so they import no
|
|
6
6
|
* catalogue and know nothing of {@link ShipLoadout}. Every contribution is a known number
|
|
7
7
|
* — a record missing one is refused long before it reaches a build — so each returns its
|
|
8
8
|
* figure outright. The {@link CalculationResult} types below belong to the
|
|
@@ -59,6 +59,8 @@ interface LoadoutCalculationModule {
|
|
|
59
59
|
readonly mass: number;
|
|
60
60
|
/** Cargo tonnes; `undefined` for anything but a cargo rack. */
|
|
61
61
|
readonly cargoCapacity?: number;
|
|
62
|
+
/** Berths; `undefined` for anything but a passenger cabin. */
|
|
63
|
+
readonly cabinCapacity?: number;
|
|
62
64
|
/** Fuel tonnes; `undefined` for anything but a fuel tank. */
|
|
63
65
|
readonly fuelCapacity?: number;
|
|
64
66
|
}
|
|
@@ -84,6 +86,13 @@ declare function calculateUnladenMass(hullMass: number, modules: readonly Loadou
|
|
|
84
86
|
* @returns Cargo capacity in tonnes. A build with no rack carries `0`.
|
|
85
87
|
*/
|
|
86
88
|
declare function calculateCargoCapacity(modules: readonly LoadoutCalculationModule[]): number;
|
|
89
|
+
/**
|
|
90
|
+
* Sum fitted passenger cabins.
|
|
91
|
+
*
|
|
92
|
+
* @param modules - Resolved fitted-module contributions.
|
|
93
|
+
* @returns Passenger capacity, in berths. A build with no cabin carries `0`.
|
|
94
|
+
*/
|
|
95
|
+
declare function calculatePassengerCapacity(modules: readonly LoadoutCalculationModule[]): number;
|
|
87
96
|
/**
|
|
88
97
|
* Sum fitted fuel tanks and the hull reserve.
|
|
89
98
|
*
|
|
@@ -93,4 +102,4 @@ declare function calculateCargoCapacity(modules: readonly LoadoutCalculationModu
|
|
|
93
102
|
*/
|
|
94
103
|
declare function calculateFuelCapacity(reserveFuelCapacity: number, modules: readonly LoadoutCalculationModule[]): FuelCapacity;
|
|
95
104
|
|
|
96
|
-
export { type CalculationIssue, type CalculationIssueReason, type CalculationResult, type FuelCapacity, type LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculateUnladenMass };
|
|
105
|
+
export { type CalculationIssue, type CalculationIssueReason, type CalculationResult, type FuelCapacity, type LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculatePassengerCapacity, calculateUnladenMass };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-
|
|
1
|
+
export{calculateCargoCapacity,calculateFuelCapacity,calculatePassengerCapacity,calculateUnladenMass}from"../chunk-C3LLPLLD.js";//# sourceMappingURL=loadout-calculations.js.map
|
|
@@ -39,8 +39,13 @@ type LoadoutIssueCode = 'duplicateSlot' | 'unknownSlot' | 'missingRequiredSlot'
|
|
|
39
39
|
* Failing only at `laden` is a warning: the hold is the one load a pilot chooses.
|
|
40
40
|
*/
|
|
41
41
|
type ThrusterLoad = 'dry' | 'unladen' | 'laden';
|
|
42
|
-
/**
|
|
43
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Stable machine-readable constraint behind an `incompatibleModule` issue.
|
|
44
|
+
*
|
|
45
|
+
* `builtInHullModule` is the only one that does not depend on the mount: the cargo hatch
|
|
46
|
+
* comes with the hull and goes in no mount an editor can set.
|
|
47
|
+
*/
|
|
48
|
+
type ModuleFitConstraint = 'immutableSlot' | 'builtInHullModule' | 'armourRequired' | 'wrongHullArmour' | 'restrictedHull' | 'restrictedMount' | 'wrongCoreType' | 'hardpointRequired' | 'utilityRequired' | 'optionalInternalRequired' | 'coreModuleInOptionalSlot' | 'oversized' | 'unknownConstraint';
|
|
44
49
|
/**
|
|
45
50
|
* One language-neutral value carried by a structured loadout diagnostic: a scalar
|
|
46
51
|
* string/number, or a string list the consumer can format for its locale. Paired name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{validateLoadout}from"../chunk-
|
|
1
|
+
export{validateLoadout}from"../chunk-3GNYPM6J.js"; //# sourceMappingURL=loadout-validation.js.map
|