ships.Function.calculateModuleLimits - Elite-Dangerous-Almanac/Almanac-Core GitHub Wiki
@elite-dangerous-almanac/core / ships / calculateModuleLimits
calculateModuleLimits(
modules): readonlyModuleLimitUsage[]
Defined in: src/ships/module-limits.ts:80
Resolve every per-ship module-count allowance for a fitted module list.
readonly ModuleLimitEntry[]
Fitted modules reduced to their optional limit metadata. Every entry
carrying limitGroup consumes one place; every limitIncrease raises the named
allowance. Entries may carry both.
readonly ModuleLimitUsage[]
A deeply frozen usage record for every known family, in SHIP_MODULE_LIMITS order.
This calculation reproduces EDSY's per-ship limit / unlimit model; see
ATTRIBUTIONS.md.
import { calculateModuleLimits } from '@elite-dangerous-almanac/core/ships/module-limits';
calculateModuleLimits([
...Array.from({ length: 5 }, () => ({ limitGroup: 'experimentalWeapon' as const })),
{ limitIncrease: { group: 'experimentalWeapon', amount: 1 } },
])[0];
// -> { group: 'experimentalWeapon', baseLimit: 4, increase: 1, limit: 5, count: 5, excess: 0 }