伤害计算
伤害计算公式说明
伤害计算公式
计算过程说明
攻击时,每张卡(包括普通指令卡、EX卡、宝具卡)针对每一个目标,都会执行一次该计算。
例如普通攻击,一张卡针对一个敌人,则此处执行1次运算;
对敌方全体的宝具卡,一张卡针对3个敌人,则此处执行3次该运算。
根据上述过程,可以得出一些结论:
宝具卡不受位置加成、首位加成、三红连携加成 影响。
固定伤害 和 三红连携加成 不受其他任何BUFF影响。
同类BUFF计算方式是求和,所以目标防御力下降数值,等效于攻击者的攻击力提升数值;目标防御力提升也等效于攻击者攻击力下降。
计算表格中,绝大部分模块之间都是乘算,只有最后两个部分是加算。乘算过程中,只要有一个数值接近0,则整个计算结果都会接近0,这时只能依赖最后两部分加算的数值达成伤害。
计算结果说明
整个计算过程中,数值都是以 float 来存储的;
计算得出结果后,会直接向下取整,转换为 int,最终结果不得小于0;
之后按该卡的 hit 比例拆分为多个 int 值,即游戏画面中闪现的伤害数字。
无敌 和 回避 都会让此处计算结果改为 0,即无伤害,
但是 无敌贯通 会使得 无敌、回避 无效化,
必中 仅会使得 回避 无效化。
if (actor.checkPierceInvincible(command, target)) {
// 攻击者有"无敌贯通"
// nothing
}
else if (target.checkInvincible(command, actor)) {
// 目标有"无敌"
// 结果改为 0
atk = 0;
}
else if (actor.checkBreakAvoidance(command, target)) {
// 攻击者有“必中”
// nothing
}
else if (target.checkAvoidance(command, actor)) {
// 目标有"回避"
// 结果改为 0
atk = 0f;
}
图标 | 效果 |
---|---|
![]() | 回避 |
![]() | 必中 |
![]() | 无敌 |
![]() | 无敌贯通 |
计算公式说明
1.基础ATK:
从者白值ATK+芙芙ATK+概念礼装ATK,即队伍编制中显示的ATK。
2.指令卡hit倍率
每个从者的 Quick/Arts/Buster/Extra/宝具卡 分别都有各自的hit数,hit倍率表示该卡每hit显示的伤害占该卡总伤害的比例,
例如某 1 hit指令卡[100],或某3 hits指令卡[12,25,63]。
其和通常是 100,代表所有hit伤害之和为100%,计算中取 1.0 倍率。
目前有几个特殊值:
阿尔托莉雅〔Alter〕(Lancer)的Arts卡 117,天草四郎(Ruler)的EX卡 154;即此处取值为 1.17 和 1.54,上述从者的这两张指令卡伤害反常偏高。
3.宝具倍率
如果该卡是具有攻击力的宝具卡,才会计算该模块。
宝具倍率即宝具卡的攻击倍率,例如赫拉克勒斯1宝的宝具倍率为 600%,即取值 6.0。
此处需要根据宝具等级选择对应倍率,特例阿拉什还需要根据OC阶段增加倍率。
如果该卡不是宝具卡,则取值 1.0。
4.失血特攻倍率
如果该卡是宝具卡,且宝具有失血特攻(例如安妮&玛丽、土方岁三),则计算时附加上额外倍率。
计算方式为 特攻倍率 × (最高血量-当前血量) ÷ 最高血量。
例如土方的宝具OC1时,特攻倍率为 600%,总血量 10000,当前血量 2000,
则此处取值为 6.0 × (10000.0 - 2000.0) ÷ 10000.0 =4.8
如果该卡不是宝具卡,或者该宝具卡没有失血特攻,则取值 0.0。
5.色卡倍率
Quick卡:0.8,Arts卡:1.0,Buster卡:1.5,EX卡:1.0。
宝具卡也按上述颜色取值。
6.位置加成
第1位1.0,第2位1.2,第3位1.4。
如果这张卡是宝具卡、EX卡,则不算位置加成,取值 1.0。
7.色卡性能BUFF
该模块计算方式为 1.0 + 攻击者色卡性能BUFF - 防御者色卡耐性BUFF
如果该模块最终结果小于 0.0,则修改为 0.0。
攻击者色卡性能BUFF包括:
图标 | 效果 |
---|---|
![]() | Quick 指令卡攻击力提升/性能提升 |
![]() | Arts 指令卡攻击力提升/性能提升 |
![]() | Buster 指令卡攻击力提升/性能提升 |
![]() | Quick 指令卡攻击力下降/性能下降 |
![]() | Arts 指令卡攻击力提升/性能下降 |
![]() | Buster 指令卡攻击力下降/性能下降 |
攻击者色卡性能BUFF计算方式为:
float rate = 1.0 + (upBuff1 + upBuff2 + ...) - (downBuff1 + downBuff2 + ...);
if (rate > 5.0) rate = 5.0; // 上限
if (rate < 0.001) rate = 0.001; // 下限
防御者色卡耐性BUFF包括:
图标 | 效果 |
---|---|
![]() | Quick 指令卡耐性提升 |
![]() | Arts 指令卡耐性提升 |
![]() | Buster 指令卡耐性提升 |
![]() | Quick 指令卡耐性下降 |
![]() | Arts 指令卡耐性下降 |
![]() | Buster 指令卡耐性下降 |
防御者色卡耐性BUFF计算方式为:
float rate = 1.0 + (upBuff1 + upBuff2 + ...) - (downBuff1 + downBuff2 + ...);
if (rate > 5.0) rate = 5.0; // 上限
举例:
红卡攻击,我方有 Buster性能提升50%,Buster攻击力下降30% 2个Buff,
对方有 Buster耐性下降20% Buff,
则计算结果是 1.0 + (1.0 + 0.5 - 0.3) - (1.0 - 0.2) = 1.4
8.首红加成
如果这次攻击的第一张卡是Buster卡(红色),则取值 0.5。
宝具卡不参与该运算(即此处取值 0.0),但可以当做"首红"给其他普通卡和EX卡提供加成。
9.职阶固有倍率
从者职阶本身的伤害倍率,
通常是 0.9、0.95、1.0、1.05、1.1 五个档,
详情见下表:
ID | 职阶 | 倍率 |
---|---|---|
1 | Saber | 1.0 |
2 | Archer | 0.95 |
3 | Lancer | 1.05 |
4 | Rider | 1.0 |
5 | Caster | 0.9 |
6 | Assassin | 0.9 |
7 | Berserker | 1.1 |
8 | Shilder | 1.0 |
9 | Ruler | 1.1 |
10 | Alter Ego | 1.0 |
11 | Avenger | 1.1 |
17 | Grand Caster | 0.9 |
20 | Beast II | 1.0 |
22 | Beast I | 1.0 |
23 | Moon Cancer | 1.0 |
24 | Beast III | 1.0 |
25 | Foreigner | 1.0 |
10.职阶相克倍率
攻击者与防御者的职阶相性倍率。
通常是 0.5、1.0、1.5、2.0 四个档。
职阶被克倍率0.5,无克制倍率1.0,Berserker和Alterego克制倍率1.5,其他职阶克制倍率2.0。
注意,这里有3个Buff会对职阶相性产生影响:
107 职阶修改:
将Buff持有者的职阶修改掉。
持有者: 尼禄祭再临2017中的敌人铃鹿御前,技能「変幻自在 風の如し」 可以将自身变为Caster。
108 攻击者克制倍率修改: Buff持有者是攻击者的话,把克制倍率修改为X。
持有者1: 杀生院祈荒(Alterego)的职阶技能「反•救世主」,攻击克制倍率改为1.5,条件是目标具有[Ruler职阶]特性。
持有者2: 安哥拉曼纽(Avenger)的羁绊礼装「最后的碎片」,攻击克制倍率改为2.0,条件是目标具有[Beast职阶]特性。
持有者3: 第六章敌人特里斯坦的技能「反转」,攻击克制倍率改为 1.3。
109 防御者克制倍率修改:
Buff持有者是被攻击者的话,把克制倍率修改为X。
持有者1: 尼禄•克劳狄乌斯(Caster)的保有技能「七之王冠C」: 被攻击时,攻击倍率改为 1.0,条件是(攻击者具有以下一个属性:Rider/Alter Ego/Berserker/Archer/Saber)。
持有者2: 第六章敌人特里斯坦技能 「反转」,攻击者Lancer时,改为1.0,攻击者Saber时改为2.0,攻击者是Berserker时改为 1.0。
持有者3: 第六章敌人兰斯洛特技能 「凄烈」。
持有者4: CCC敌人玉藻前 「BGOタイタンパー」。
持有者5: CCC敌人两仪式 「二重存在への追憶」。
上述 Buff 优先级是从下到上, 以最先满足条件的 Buff 为准。
Buff 图标为:
11.阵营相克倍率
天地人星兽相克倍率,通常是 0.9、1.0、1.1 三个档。
克制关系天>地>人>天,克制倍率1.1,无克制1.0,被克0.9;星与兽互相克制,攻击时均为克制1.1。
12.随机值
0.9~1.1 随机值,代码如下(C#):
System.Random random = new System.Random(seed);float rate = random.next(900, 1100) / 1000.0;
// 实际上此处结果应该是 0.9~1.099
13.攻击补正
攻击补正是一个常量[0.23]。
14.攻防BUFF
该模块计算方式为 1.0 + (1.0 + 攻击者攻击力升降BUFF) - (1.0 + 防御者防御升降BUFF)
如果该模块最终结果小于 0.0,则修改为 0.0。
攻击者攻击力升降BUFF包括:
图标 | 效果 |
---|---|
![]() | 攻击力提升 |
![]() | 攻击力下降 |
攻击者攻击力升降BUFF计算方式为:
float rate = 1.0 + (upBuff1 + upBuff2 + ...) - (downBuff1 + downBuff2 + ...);
if (rate < 0.001) rate = 0.001; // 下限
防御者防御升降BUFF包括:
图标 | 效果 |
---|---|
![]() | 防御力提升 |
![]() | 防御力下降 |
防御者防御升降BUFF计算方式同上。
注意,如果该卡是无视防御的宝具,则此处仅防御者的 防御力提升 Buff 无效,不参与计算。
15.暴击倍率
如果该卡暴击判定成功,则此处取值 2.0。
如果该卡没有暴击、或者该卡是宝具卡,则取值 1.0。
16.EX加成
如果这张卡是EX攻击卡,
前三张指令卡同色,则取值 3.5
前三张指令卡有不同颜色,则取值 2.0。
17.攻击耐性BUFF
计算方式为:
float Buff = (upBuff1 + upBuff2 + ...) - (downBuff1 + downBuff2 + ...);
if (Buff > 5.0) rate = 5.0; // 上限
if (Buff < -0.999) rate = -0.999; // 下限
float rate = 1.0 - Buff; // 此模块倍率
if (rate < 0.0) rate = 0.0;
图标 | 效果 |
---|---|
![]() | 攻击耐性提升 |
![]() | 攻击耐性下降 |
通常只有少量作为强力Boss的敌人拥有该 Buff,描述语句可能不统一但图标相同。无视防御的宝具 对该 Buff 无效。
例如第六章敌人高文的技能「不夜」, 防御力提升 0.8,
则此处结果为 1.0 - 0.8 = 0.2,即我方攻击会减弱到 20%。
18.特攻BUFF
即,当对方拥有某种特性时,我方攻击力提升/下降的 Buff,
例如斯卡哈(Lancer)的保有技能「弑神者B」,条件是对方有[神性]、[死灵]特性,
杰克的宝具带有的Buff,条件是对方有[女性]特性。
部分活动中的从者加成以及礼装带有的高幅度的攻击威力提升效果,实质上也是针对所有活动中敌人的特攻。
如果没有任何这类Buff,则此处取值为 0.0。
图标 | 效果 |
---|---|
![]() | 针对某种特性,攻击威力提升 |
![]() | 针对某种特性,攻击威力下降 |
计算方式为:
float rate = (upBuff1 + upBuff2 + ...) - (downBuff1 + downBuff2 + ...);
if (rate > 10.0) rate = 10.0; // 上限
19.暴击BUFF
如果这张卡暴击判定成功,则计算该 Buff,否则此处取值 0.0。
图标 | 效果 |
---|---|
![]() | 暴击威力提升 |
![]() | 暴击威力下降 |
计算方式为:
float rate = (upBuff1 + upBuff2 + ...) - (downBuff1 + downBuff2 + ...);
if (rate > 5.0) rate = 5.0; // 上限
20.宝具BUFF
如果这张卡是宝具卡,则计算该 Buff,否则此处取值 0.0。
图标 | 效果 |
---|---|
![]() | 宝具威力提升 |
![]() | 宝具威力下降 |
计算方式为:
float rate = (upBuff1 + upBuff2 + ...) - (downBuff1 + downBuff2 + ...);
if (rate > 5.0) rate = 5.0; // 上限
注18_19_20
如果表格这一行 1.0 + 18.特攻BUFF + 19.暴击BUFF + 20.宝具BUFF 结果小于 0.001,则修改为为 0.001。
21.宝具特攻倍率
如果该卡是 "针对某种属性/状态有特攻" 的宝具卡,且当特攻判定成功时,则使用该倍率。
否则此处取值 1.0。
例如莫德雷德(Saber)的对[亚瑟]特性特攻、罗宾汉(Archer)的对[毒]状态特攻。
注意:这里需要与“宝具释放技能”产生的特攻区分开。
例如杰克的宝具对[女性]特攻,是通过释放技能,临时给自己添加"特攻Buff"实现的,计算方式不同。
22.固定伤害BUFF
对于攻击者,计算其攻击时 "造成伤害增加/减少" 的Buff,
例如吉尔伽美什(Archer)职阶技能「神性B」攻击时造成伤害提升175。
对于防御者,计算其被攻击时 "受到伤害增加/减少" 的Buff,
例如诸葛孔明(Caster)保有技能「军师的忠言A+」,能够给全队加上"被攻击时受到伤害减少200-500" 的 Buff。
图标 | 效果 |
---|---|
![]() | 攻击时伤害增加 |
![]() | 攻击时伤害减少 |
![]() | 被攻击时伤害提升状态 |
![]() | 被攻击时伤害减免状态 |
计算方式为:
float value = (atk.upBuff1 + atk.upBuff2 + ...) - (atk.downBuff1 + atk.downBuff2 + ...);
value += (def.upBuff1 + def.upBuff2 + ...) - (def.downBuff1 + def.downBuff2 + ...);
23.三红连携加成
如果三张指令卡都是Buster卡(红色),且该卡是普通红卡指令卡,则算上该值,否则此处取值0。
计算公式: (ATK白值+芙芙ATK+礼装ATK) × 0.2
注意,宝具卡、EX卡不参与该运算;