equipment.Function.applyPersonalModifiers - Elite-Dangerous-Almanac/Almanac-Core GitHub Wiki

@elite-dangerous-almanac/core / equipment / applyPersonalModifiers

Function: 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.

Parameters

stat

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.

base

number

The catalogue value before engineering.

modifiers

readonly PersonalModifier[]

Modifiers to fold in, in order.

Returns

number

The modified value, rounded to six decimals to keep binary floating-point noise out of a displayed stat.

Throws

If stat is not a string or base is not a finite number.

Example

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