equipment.Function.applyPersonalModifiers - Elite-Dangerous-Almanac/Almanac-Core GitHub Wiki
@elite-dangerous-almanac/core / equipment / applyPersonalModifiers
applyPersonalModifiers(
stat,base,modifiers):number
Defined in: src/equipment/engineering.ts:103
Apply every modifier for one stat to its base value.
A resistance is the exception, exactly as it is for ship engineering: the factor
multiplies the damage taken, so a resistance compounds on 1 − r. Damage Resistance
is ×0.9 on damage taken, which turns a 0.5 resistance into 0.55 rather than
0.45. Any stat whose name ends in Resistance is treated this way.
string
Stat to apply, e.g. "magazineSize". Modifiers naming another stat are
skipped, so a whole suit's or weapon's modifier list can be passed for each stat.
number
The catalogue value before engineering.
readonly PersonalModifier[]
Modifiers to fold in, in order.
number
The modified value, rounded to six decimals to keep binary floating-point noise out of a displayed stat.
If stat is not a string or base is not a finite number.
import { applyPersonalModifiers } from '@elite-dangerous-almanac/core/equipment/engineering';
import { getPersonalModification } from '@elite-dangerous-almanac/core/equipment/modifications';
const clipSize = getPersonalModification('weapon_clipsize')?.modifiers ?? [];
applyPersonalModifiers('magazineSize', 45, clipSize); // -> 68