介绍
gw2-itemstats
是一个可以用于计算各类 Guild Wars 2 道具属性的 npm 包。它可以帮助你计算各种加成和属性,例如各类基础属性(如力量、灵巧等)、各类加成(如力量加成、愤怒加成等)、各类吸收(如伤害吸收、攻击吸收等)等。本文主要介绍如何使用 gw2-itemstats
这个 npm 包。
安装
在使用 gw2-itemstats
之前,我们需要先安装它。在命令行中运行以下命令即可完成安装:
npm install --save gw2-itemstats
使用
安装完成后,我们就可以在自己的项目中使用 gw2-itemstats
了。下面是一个简单的使用示例:
-- -------------------- ---- ------- ----- - ---------- --------- --------------- ---------- - - ------------------------- -- ------ ----- -------- - --- --------------------- ----- ----- --------- - --- ---------------------- ---- ----- -------- - --- --------------------- ---- -- ---- ----- ----- - --- ----------------- ---- ----- --------- - --- --------------------- ---- ----- ------- - --- ------------------- ---- -- ---- ----- ----- - --- ------------------- ------ ----- ---------- - --- ------------------------ ---- -- ---- ----- ------ - --------------------- --------- ---------- --------- ------ ---------- -------- ------ ----------- --- --------------------
输出结果如下:
-- -------------------- ---- ------- - --------- ---- ---------- --- --------- --- ------ --- ---------- --- -------- --- ------ ----- ----------- --- ------- ----- ----------- -------------------- ------------------------ ------------------- ---------- ------ -------------- ----- --------------------------- ----- --------------------------------- ------------------- ---------------------------------- -- --------------------------------- -- ---------------------------------- - -
可以看到,计算结果包含了各类基础属性、加成和吸收,以及计算后的各类属性值。下面我们将逐个介绍其中的各个概念和属性。
Attribute
Attribute
是 gw2-itemstats
中最基础的概念,它表示一个基础属性。每个 Attribute
由两个参数构成:名称和数值,例如下面这个例子:
const strength = new Attribute('Strength', 100);
表示玩家的力量属性为 100。目前支持的基础属性包括:
- Power:力量
- Precision:灵巧
- Ferocity:残暴
- Vitality:体力
- Toughness:韧性
- Healing:治疗效果
- ConditionDamage:症状造成
- ConditionDuration:症状持续时间
- BoonDuration:增益持续时间
Additive
Additive
是加成的概念,它表示一个可以增加基础属性数值的项。每个 Additive
由两个参数构成:名称和数值,例如下面这个例子:
const power = new Additive('Power', 10);
表示玩家装备的武器有 10 点力量加成。目前支持的加成包括:
- Power:力量加成
- Precision:灵巧加成
- Ferocity:残暴加成
- Vitality:体力加成
- Toughness:韧性加成
- Healing:治疗效果加成
- ConditionDamage:症状造成加成
- ConditionDuration:症状持续时间加成
- BoonDuration:增益持续时间加成
- CritChance:暴击率加成
- CritDmg:暴击伤害加成
Multiplicative
Multiplicative
是属性乘法的概念,它表示一个可以乘以基础属性数值的项。每个 Multiplicative
由两个参数构成:名称和数值,例如下面这个例子:
const ferocityMultiplier = new Multiplicative('FerocityMultiplier', 1.5);
表示玩家的残暴属性数值要乘以 1.5。目前支持的乘法属性包括:
- ConditionDamageMultiplier:症状造成乘法
- CritChanceWithPrecision:考虑到灵巧的暴击率乘法
- CritPower:暴击伤害乘法
- IncomingPhysicalDamageMultiplier:受到物理伤害的乘法
- IncomingConditionDamageMultiplier:受到症状造成的乘法
- OutgoingPhysicalDamageMultiplier:造成物理伤害的乘法
- OutgoingConditionDamageMultiplier:造成症状造成的乘法
Absorption
Absorption
是吸收的概念,它表示一个可以吸收伤害的项。每个 Absorption
由两个参数构成:名称和数值,例如下面这个例子:
const armor = new Absorption('Armor', 1000);
表示玩家的护甲值为 1000,可以吸收一定伤害。目前支持的吸收项包括:
- Armor:护甲吸收
- ArmorPenetration:护甲穿透
- Protection:免伤吸收
- IncomingPhysicalDamageReduction:受到物理伤害的减免
- IncomingConditionDamageReduction:受到症状造成的减免
- OutgoingPhysicalDamageMultiplier:造成物理伤害的乘法
- OutgoingConditionDamageMultiplier:造成症状造成的乘法
Attribute.calculate
Attribute.calculate
是 gw2-itemstats
中最关键的计算函数,它接收一个 Array
类型的参数,参数中包含了基础属性、加成、乘法和吸收等所有需要计算的属性,帮助我们计算出最终的结果。例如下面这个例子:
-- -------------------- ---- ------- ----- ------ - --------------------- --------- ---------- --------- ------ ---------- -------- ------ ----------- ---
计算结果将包含各类属性和计算后的值。这些值包括:
- Health:总生命值
- CritChance:暴击率
- CritChanceWithPrecision:灵巧考虑后的暴击率
- CritPower:暴击伤害
- ArmorAdjusted:默认的护甲吸收
- ArmorAdjustedWithToughness:包括韧性的护甲吸收
- IncomingPhysicalDamageMultiplier:受到物理伤害的乘法
- IncomingConditionDamageMultiplier:受到症状造成的乘法
- OutgoingPhysicalDamageMultiplier:造成物理伤害的乘法
- OutgoingConditionDamageMultiplier:造成症状造成的乘法
示例
下面是一个完整的示例,它演示了如何计算一个具有力量 200、灵巧 100、残暴 50、体力 1000、韧性 500、护甲 2000、免伤 25%、攻击吸收 10 且包含一个症状造成加成的行会崇拜者装备的属性值。
-- -------------------- ---- ------- ----- - ---------- --------- --------------- ---------- - - ------------------------- -- ------ ----- -------- - --- --------------------- ----- ----- --------- - --- ---------------------- ----- ----- -------- - --- --------------------- ------ -- ---- ----- --------- - --- --------------------- ----- ----- -------- - --- -------------------- ---- ----- --------------- - --- --------------------------- ---- -- ------ ----- ----------------------- - --- ----------------------------------------- ----- -- ---- ----- ----- - --- ------------------- ------ ----- ---------- - --- ------------------------ ---- ----- ---------------- - --- ------------------------------ ---- -- ---- ----- ------ - --------------------- --------- ---------- --------- ---------- --------- ---------------- ------------------------ ------ ----------- ----------------- --- --------------------
输出结果如下:
-- -------------------- ---- ------- - --------- ---- ---------- ---- --------- ----- ---------- ---- --------- --- ---------------- --- ------------------------ -------------------- ------ ----- ----------- --- ----------------- --- ------- ------ ----------- -------------------- ---------- ------- -------------- ----- --------------------------- ----- --------------------------------- ------------------- ---------------------------------- ------------------- --------------------------------- -- ---------------------------------- ------------------ -
可以看到,这个角色的总生命值为 27685,暴击率为 9.47%,暴击伤害为 1562.5,护甲吸收为 2000,护甲吸收加上韧性属性共 2795,表示玩家总的伤害减免为 51.28%。另外,这个角色受到的症状造成伤害乘以 1.15,造成的症状造成伤害乘以 1.16(因为有行会崇拜者套装加成)。
总结
gw2-itemstats
是一个非常强大的 npm 包,可以帮助我们轻松计算 Guild Wars 2 中各种复杂的属性和加成。本文中我们介绍了 Attribute
、Additive
、Multiplicative
、Absorption
等各类概念和属性,及其使用方法。希望本文能够帮助大家更好的学习和应用 gw2-itemstats
包。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005680581e8991b448e428d