466
edits
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
|+ | |+ | ||
|- | |- | ||
!値 | !値 | ||
!意味 | |||
|- | |- | ||
|(93)|反魔法 | |(93) | ||
|反魔法 | |||
|- | |- | ||
|(961)|魔法耐性 | |(961) | ||
|魔法耐性 | |||
|- | |- | ||
|55|物理軽減 | |55 | ||
|物理軽減 | |||
|- | |- | ||
|56|属性軽減 | |56 | ||
|属性軽減 | |||
|} | |} | ||
==計算== | ==計算== | ||
上から見ていくので、計算の順序もこの通りになります。 | 上から見ていくので、計算の順序もこの通りになります。 | ||
===反魔法による物理ダメージ増加=== | |||
Element e; | Element e; | ||
if (ele == 0 || ele == 926) | if (ele == 0 || ele == 926) | ||
Line 27: | Line 33: | ||
} | } | ||
この箇所は攻撃属性ごとの処理をしていて、Voidが物理に相当し、物理は攻撃者の反魔法によって強化されます。 | |||
強度を2で割ったあまり%だけ上昇します。ただし、下限10により、反魔法が負の大きい強度であっても最低限のダメージが出ます。 | 強度を2で割ったあまり%だけ上昇します。ただし、下限10により、反魔法が負の大きい強度であっても最低限のダメージが出ます。 | ||
Line 42: | Line 48: | ||
不明。演出関連か? | 不明。演出関連か? | ||
== 属性耐性による軽減 == | === 属性耐性による軽減 === | ||
まずElement.cs中のGetResistLvを見ると、 | まずElement.cs中のGetResistLvを見ると、 | ||
{ | { | ||
Line 96: | Line 102: | ||
ただし、100-強度には下限100があります。 | ただし、100-強度には下限100があります。 | ||
===濡れ補正=== | |||
switch (e.id) | switch (e.id) | ||
{ | { | ||
Line 117: | Line 124: | ||
} | } | ||
濡れ状態でダメージが増減する処理です。 | 濡れ状態でダメージが増減する処理です。 | ||
火炎は濡れ状態でダメージ三分の一。 | 火炎は濡れ状態でダメージ三分の一。 | ||
電撃はダメージ1.5倍。 | 電撃はダメージ1.5倍。 | ||
if (origin != null && origin.isChara && origin.Chara.HasCondition<ConSupress>()) | ===制圧による与ダメージ減少=== | ||
if (origin != null && origin.isChara && origin.Chara.HasCondition<ConSupress>()) | |||
{ | { | ||
dmg = dmg * 2 / 3; | dmg = dmg * 2 / 3; | ||
} | } | ||
制圧状態のキャラの与ダメージが減る処理です。 | 制圧状態のキャラの与ダメージが減る処理です。 | ||
ダメージが、2/3倍になります。 | ダメージが、2/3倍になります。 | ||
※ここからはしばらく、AttackTypeがFinishでないときの計算です。 | ※ここからはしばらく、AttackTypeがFinishでないときの計算です。 | ||
==敵のレベルに応じたダメージ軽減== | ===敵のレベルに応じたダメージ軽減=== | ||
Line 134: | Line 145: | ||
まず、レベル50以下の敵の軽減率は0%、レベル1074以上の敵は軽減率80%となります。 | まず、レベル50以下の敵の軽減率は0%、レベル1074以上の敵は軽減率80%となります。 | ||
if (!this.IsPCFaction && this.LV > 50) | if (!this.IsPCFaction && this.LV > 50) | ||
{ | { | ||
Line 220: | Line 232: | ||
|80 | |80 | ||
|} | |} | ||
===物理軽減と属性軽減によるダメージ減少=== | |||
dmg = dmg * Mathf.Max(0, 100 - Evalue((e == Element.Void || e.id == 926) ? 55 : 56)) / 100; | dmg = dmg * Mathf.Max(0, 100 - Evalue((e == Element.Void || e.id == 926) ? 55 : 56)) / 100; | ||
Line 228: | Line 241: | ||
これらの軽減は基本的には種族特性ですが、信仰AFの一部にはこれらを上昇させるものが存在します。 | これらの軽減は基本的には種族特性ですが、信仰AFの一部にはこれらを上昇させるものが存在します。 | ||
===弱点の知識による与ダメージ減少=== | |||
if (origin != null && origin.IsPC && EClass.player.codex.Has(id)) | if (origin != null && origin.IsPC && EClass.player.codex.Has(id)) | ||
Line 234: | Line 249: | ||
} | } | ||
危ない本かカード収集によるそのモンスターへの与ダメージ増加を示しています。 | 危ない本かカード収集によるそのモンスターへの与ダメージ増加を示しています。 | ||
(100+収集数<ref>未確認</ref>)%増加します。 | (100+収集数<ref>未確認</ref>)%増加します。 | ||
ただし、上限は110%です。 | ただし、上限は110%です。 | ||
===盾による軽減=== | |||
if (isChara && Chara.body.GetAttackStyle() == AttackStyle.Shield && elements.ValueWithoutLink(123) >= 5 && (e == Element.Void || e.id == 926)) | if (isChara && Chara.body.GetAttackStyle() == AttackStyle.Shield && elements.ValueWithoutLink(123) >= 5 && (e == Element.Void || e.id == 926)) | ||
{ | { | ||
Line 243: | Line 261: | ||
スタイルが盾持ちのキャラにはダメージが0.9倍になります。 | スタイルが盾持ちのキャラにはダメージが0.9倍になります。 | ||
===ダメージ耐性=== | |||
if (Evalue(971) > 0) | if (Evalue(971) > 0) | ||
{ | { | ||
Line 249: | Line 268: | ||
ダメージ耐性を持つなら、被ダメージが100/(100+その値)倍になります。ダメージ耐性が何かは不明。 | ダメージ耐性を持つなら、被ダメージが100/(100+その値)倍になります。ダメージ耐性が何かは不明。 | ||
ただし、(100+その値)は下限25、上限1000に押し込められます。 | ただし、(100+その値)は下限25、上限1000に押し込められます。 | ||
===大地の加護=== | |||
if (HasElement(1305)) | if (HasElement(1305)) | ||
{ | { | ||
Line 256: | Line 277: | ||
} | } | ||
オパートス信仰による大地の加護を持つなら被ダメージが0.9倍。 | |||
===狐守=== | |||
if (EClass.pc.HasElement(1207) && isChara) | if (EClass.pc.HasElement(1207) && isChara) | ||
{ | { | ||
Line 292: | Line 313: | ||
味方ミニオンへの配慮がないために、味方ミニオンが敵からデバフをもらうと、被ダメージが増加すると考えられます。 | 味方ミニオンへの配慮がないために、味方ミニオンが敵からデバフをもらうと、被ダメージが増加すると考えられます。 | ||
===オートコンバット時の被ダメージ減少=== | |||
if (IsPCParty && EClass.pc.ai is GoalAutoCombat) | if (IsPCParty && EClass.pc.ai is GoalAutoCombat) | ||
{ | { | ||
Line 299: | Line 320: | ||
プレイヤーのパーティ内のキャラなら、オートコンバット中はダメージが100/(105+戦略スキル/10)倍になります。 | プレイヤーのパーティ内のキャラなら、オートコンバット中はダメージが100/(105+戦略スキル/10)倍になります。 | ||
ただし、(105+戦略スキル/10)は下限10、上限110に押し込められます。 | ただし、(105+戦略スキル/10)は下限10、上限110に押し込められます。 | ||
つまり、戦略スキル50で軽減が上限に達します。 | つまり、戦略スキル50で軽減が上限に達します。 | ||
===メタルフィートによるダメージ軽減=== | |||
if (HasElement(1218)) | if (HasElement(1218)) | ||
{ | { | ||
Line 312: | Line 335: | ||
} | } | ||
メタルによるダメージ軽減です。 | メタルによるダメージ軽減です。 | ||
まず、ダメージが(1000-メタルのフィートLv.)/ | |||
まず、ダメージが(1000-メタルのフィートLv.)/1000倍になります。メタルのフィートLv.は基本的に999なので、 | |||
ダメージは1000分の一になります。 | |||
そして、ダメージが0以下かつ、0-3が均等に出る乱数で0が出たとき、 | そして、ダメージが0以下かつ、0-3が均等に出る乱数で0が出たとき、 | ||
ダメージが1増えます。 | ダメージが1増えます。 | ||
これはメタルにほとんどダメージを与えられない時でも、ときどきダメージが入る現象を起こしています。 | これはメタルにほとんどダメージを与えられない時でも、ときどきダメージが入る現象を起こしています。 | ||
===致命傷防御によるダメージ軽減=== | |||
if (dmg >= MaxHP / 10 && Evalue(68) > 0) | if (dmg >= MaxHP / 10 && Evalue(68) > 0) | ||
{ | { | ||
Line 326: | Line 355: | ||
} | } | ||
致命傷防御を持っているとき、被ダメージが最大HPの10%を超えるようであれば、ダメージは、num3 + num4になります。 | 致命傷防御を持っているとき、被ダメージが最大HPの10%を超えるようであれば、ダメージは、num3 + num4になります。 | ||
num3は最大HPの10%で、 | num3は最大HPの10%で、 | ||
num4は元のダメージが最大HPの10%を超えた量に、100/(200 + 致命傷防御の値*10)をかけたものです。 | num4は元のダメージが最大HPの10%を超えた量に、100/(200 + 致命傷防御の値*10)をかけたものです。 | ||
現状、致命傷防御は黄金の騎士で100、防衛者で50です。 | 現状、致命傷防御は黄金の騎士で100、防衛者で50です。 | ||
※ここからはAttackTypeがFinishでも発生します。 | ※ここからはAttackTypeがFinishでも発生します。 | ||
===暴力禁止による与ダメージ消滅=== | |||
if (origin != null && origin.IsPC && EClass.pc.Evalue(654) > 0) | if (origin != null && origin.IsPC && EClass.pc.Evalue(654) > 0) | ||
{ | { | ||
Line 338: | Line 370: | ||
} | } | ||
子狐丸の、暴力禁止エンチャントの効果です。 | 子狐丸の、暴力禁止エンチャントの効果です。 | ||
ダメージがプレイヤーに由来するなら0にします。 | ダメージがプレイヤーに由来するなら0にします。 | ||
===フェイルセーフ的符号確認=== | |||
if (dmg < 0) | if (dmg < 0) | ||
{ | { | ||
Line 346: | Line 380: | ||
もしダメージがマイナスなら、0にします。 | もしダメージがマイナスなら、0にします。 | ||
===攻撃の手痛さ=== | |||
int num5 = Mathf.Clamp(dmg * 6 / MaxHP, 0, 4) + ((dmg > 0) ? 1 : 0); | int num5 = Mathf.Clamp(dmg * 6 / MaxHP, 0, 4) + ((dmg > 0) ? 1 : 0); | ||
しばらく後に使われるnum5を計算します。 | しばらく後に使われるnum5を計算します。 | ||
num5は攻撃の手痛さを示すと考えられます。 | num5は攻撃の手痛さを示すと考えられます。 | ||
まず、ダメージの6倍を最大HPで割ったものを上限4、下限0に押し込めます。 | まず、ダメージの6倍を最大HPで割ったものを上限4、下限0に押し込めます。 | ||
次に、ダメージが正の数なら、それに1を足し、そうでないなら0を足したものがnum5です。 | 次に、ダメージが正の数なら、それに1を足し、そうでないなら0を足したものがnum5です。 | ||
===マナの体の仕様=== | |||
[[Elin:解析/フィート#featManameat (マナの体)|こちらのページで説明されています]]。 |
edits