DungeonSettlers.wiki

战斗公式

Steam

Every combat number on this page is read straight from the game's own tables (DS_B.0.4.29); the table or constant is named next to each. Values are the player-side defaults (monsters use their own base stats). This is the same math the 角色构筑器 所用算法相同。

属性计算链 顺序很重要

每个单位有六项 主要 属性(力量、体质、意志、智力、敏捷、感知),它们决定每一项 最终 属性。两者都按固定顺序计算 - 先固定值,后百分比。

  1. 主属性 = 基础 10 + 每级天赋成长 + 固定加成,然后 x (1 + 百分比加成之和)。每级天赋成长由该属性的天赋层级(较差到天才)乘上升级供奉倍率决定 - 见 天赋与属性.
  2. 最终属性 = 其 基础值 + Σ(主属性 x 其系数)+ 固定加成,然后 x (1 + PerModifier %)。系数见下表(StatusValueTable);PerModifier % 是效果施加者、铭文和难度生效的位置(例如 MaxHealthTotalPerModifier_50 = +50% 生命值)。只有玩家单位会加上主要属性部分;怪物的最终属性即其自身数据表中的数值。

因为百分比加成作用于 之后 固定值合计之后,+50% 修正会乘以整个固定值合计,而不仅是基础值。

每点属性值 各主属性 1 点提供的数值

主属性每 1 点会把下方数值加到各项最终属性上(来自 StatusValueTable)。要点如下: 1 体质 = +9 最大 HP, 1 力量 = +1 物理攻击力, 1 智力 = +1.2 魔法攻击力.

最终属性基础值力量体质意志智力敏捷感知
总最大生命值205-+9----
物理攻击力13.5+1---+0.5+0.5
魔法攻击力13.5--+0.4+1.2-+0.4
攻击速度0.4----+0.01-
暴击几率8%-----+0.3
冷却时间降低0--+0.3---
物理抗性0-+0.3----
魔法抗性0---+0.3--
最大能量60--+2---
移动速度80----+0.2-
最大负重100+4-----

基础值为任何主要属性加成之前的固定起始值。留空 = 该主要属性不影响该属性。其余 9 项非战斗能力(采矿、研究、烹饪等)每点主要属性各按 +0.05 缩放,此处未列出。

计算示例

一个拥有 20 体质 的单位为 205 + 9x20 = 385 最大 HP (在任何百分比修正之前)。若 20 力量 / 15 敏捷 / 12 感知 ,其物理攻击力为 13.5 + 1x20 + 0.5x15 + 0.5x12 = 47.

命中伤害 攻击、暴击、命中部位、格挡

一次命中从攻击者的 物理 或 魔法攻击力 (普通攻击使用其技能对应的百分比)开始,然后依次应用附加伤害加成、下方的命中结果,以及目标抗性:

  • 暴击:将伤害乘以 1 + 暴击伤害加成 / 100,即 x1.5 默认 50% 加成时。暴击几率起始为 8%,每点感知增加 +0.3%。
  • 命中部位:每次命中落在 头部(30%) 或 身体(70%) (GAMESYSTEM_Combat_DamagePartsRatio);超出该条剩余生命值的伤害会溢出到另一条。只有空 头部 条才有意义:拓荒者被击倒(若已被击倒则死亡),其他单位则死亡。身体条为空时不会击倒任何人。
  • 格挡:只有物理命中可被格挡。成功格挡会将伤害减少目标的 格挡伤害减免 (默认 50%),且被格挡的命中无法暴击。它不会保护耐久:拓荒者的护甲在被格挡的命中中仍会损耗,损耗量为穿透伤害的 10%,与其他任何命中相同。

示例:47 物理攻击力发生暴击时造成 47 x 1.5 = 70.5 (抗性结算前)。

抗性 收益递减

每种伤害类型(斩击、打击、穿透,以及魔法元素奥术、火、冰、闪电、神圣、黑暗)都有各自的抗性,从 0 起。物理抗性体质每 1 点 +0.3,魔法抗性智力每 1 点 +0.3(StatusValueTable).

受到的伤害 = 原始伤害 x 100 / (100 + R),其中 R 是物理伤害的物理抗性或魔法伤害的魔法抗性(取自游戏的战斗代码)。因此 R = 50 时,穿透的伤害为 100/150 = 67% (削减 33%);R = 100 时放行 50%;R = 200 时放行 33%。抗性永远不会达到完全免疫,每一点的价值都略低于前一点。

持续伤害 出血、燃烧、中毒

出血和燃烧是 可叠加 减益,每层每秒伤害固定(来自 AffecterTable FloatValues) - 并 不 随攻击力缩放;施加该效果的技能决定叠加层数。中毒是独立的:每层按目标最大生命值的一部分,以较慢的节奏结算(见表下方的说明)。

效果伤害伤害类型最大层数
出血层数 x 5 每秒物理, ignores shields99
燃烧层数 x 3 每秒魔法, ignores shields50
中毒每层每 10 秒造成最大生命值的 1%无属性,不适用任何抗性100
中毒全文。 每层每 1 秒造成目标最大生命值 10% 的无属性伤害,因此任何抗性都无法减免它。最多叠加 100 层;随目标最大生命值缩放,而非施法者的攻击力。示例:对 500 生命值的目标施加一层,每 5 秒造成 10 点伤害。持续时间由施加它的技能决定。 The 上限效果 页面使用相同的规则。

计算器覆盖两个已确认的可叠加持续伤害, 出血 (物理)和 燃烧 (魔法):两者都无视护盾,但不无视目标抗性,施加该效果的技能决定层数,每秒伤害为固定值,从不随攻击力缩放。 中毒 被有意排除在计算器之外,它是每层目标最大生命值的一部分,并以其自身的 10 秒节奏结算,而不是每秒跳动(见表下方的说明)。

包围 已写入,未生效

数据中已定义,此版本未启用。 包围 (GAMESYSTEM_Combat_StrategyRule_Encirclement) is authored as a constant, but a decompile of DS_B.0.4.29 shows 没有战斗代码读取它 - 命中和暴击结算没有位置或周围单位项,该常量从未被加载。所以它目前 无效果 (对玩家或怪物皆然)。下方数字是它 会 在开发者将其接上后产生的作用。

若启用,包围敌人会奖励站位:每有一名盟友单位围攻同一目标,攻击者获得 +10% 命中几率 与 +5% 暴击几率.

该常量写为 每个周围单位,因此加成从第一个侧翼单位就开始计算(没有「免费」的第一个单位):三名攻击者围住一名敌人会提供 +30% 命中、+15% 暴击。因为战斗路径不分阵营,它也会 对称地 - 包围你一名单位的敌人也会对该单位获得同样的好处。

难度缩放 战斗轴

该 战斗 难度设置通过以下项缩放怪物属性 AFFECTER_MonsterDifficulty* (按 PerModifier % 应用)。较易设置削弱怪物攻击;较难设置同时提高 HP 和攻击。 在 毁灭 上,怪物的 HP 为 1.5 倍、攻击力为 1.5 倍(以 困难 为基准)。 完整的经济/管理轴见 难度 页面。

战斗难度怪物 HP怪物攻击
简单基准-85%
普通基准-60%
困难 (基准)基准基准
极难+25%+25%
毁灭+50%+50%

召唤缩放 召唤者魔法攻击力的快照

Only some summons (泡泡灵, 泡泡蟾蜍) scale off the 召唤者的魔法攻击力 在生成的瞬间计入,加在该生物自身的基础属性之上。之后对召唤者施加的增益不会改变它们;读取存档时会根据召唤者当前的属性重新计算。本表未列出这些数值;它们取自游戏代码:

  • 召唤 最大 HP = 召唤者魔法攻击力 x 1 + 生物基础 HP
  • 召唤 魔法攻击力 = 召唤者魔法攻击力 x 0.5 + 生物基础攻击力

The summoned plants (太阳花, 日心花, 黏液喷雾草) use their own rule: 耐久度 = 召唤者魔法攻击力 x 0.5 + 基础耐久,且 魔法攻击力 = 召唤者魔法攻击力 x 1。其他所有召唤物保留其数据表中的属性。

施法者越强,召唤物越耐打、打得越重。各生物的完整数值见 召唤 指南。

相关: 战斗:元素与武器 · 天赋与属性 · 游戏常量 (原始表数值) - 角色构筑器.