ships.Function.calculateModuleLimits - Elite-Dangerous-Almanac/Almanac-Core GitHub Wiki

@elite-dangerous-almanac/core / ships / calculateModuleLimits

Function: calculateModuleLimits()

calculateModuleLimits(modules): readonly ModuleLimitUsage[]

Defined in: src/ships/module-limits.ts:80

Resolve every per-ship module-count allowance for a fitted module list.

Parameters

modules

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.

Returns

readonly ModuleLimitUsage[]

A deeply frozen usage record for every known family, in SHIP_MODULE_LIMITS order.

Remarks

This calculation reproduces EDSY's per-ship limit / unlimit model; see ATTRIBUTIONS.md.

Example

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 }
⚠️ **GitHub.com Fallback** ⚠️