113
edits
No edit summary |
|||
Line 131: | Line 131: | ||
武器の材質値は'''素材の硬度'''です。上限は200で、これはダークマターの硬度と等しく、下限は'''投擲武器を投げている場合'''で'''40'''、それ以外では'''20'''として設定されています。 | 武器の材質値は'''素材の硬度'''です。上限は200で、これはダークマターの硬度と等しく、下限は'''投擲武器を投げている場合'''で'''40'''、それ以外では'''20'''として設定されています。 | ||
Line 371: | Line 372: | ||
ダメージ倍率は1発目: 100%、2発目: 100%、3発目: 100%、4発目: 76%、5発目:62%、6発目: 52% となります。 | ダメージ倍率は1発目: 100%、2発目: 100%、3発目: 100%、4発目: 76%、5発目:62%、6発目: 52% となります。 | ||
=== ヴォーパル === | |||
ヴォーパルのエンチャントがついた攻撃は、ヴォーパルのエンチャント強度の確率で攻撃の貫通率を100%にします。 | |||
==物理攻撃エンチャント== | ==物理攻撃エンチャント== | ||
Line 716: | Line 717: | ||
==補正前ダメージ算出== | ==補正前ダメージ算出== | ||
=== 攻撃力 === | |||
攻撃者の攻撃力は攻撃のダイス数・ダイス面数・ダメージ修正を使って[[Elin:解析/共通処理|ダイスロール]]をした後、攻撃倍率と距離修正、連射数修正をかけたものです。 | |||
(「攻撃能力の算出」の節を参照してください。)<syntaxhighlight lang="c#"> | |||
void AddBane(bool valid, int idEle, int mod) | |||
{ | |||
if (valid) | |||
{ | |||
bane += (CC.Evalue(idEle) + ((weapon != null) ? weapon.Evalue(idEle, ignoreGlobalElement: true) : 0)) * mod / 100; | |||
} | |||
} | |||
</syntaxhighlight>特攻のエンチャントがついた武器で特攻が有効な種族を攻撃した場合、以下の式の通り攻撃力にボーナスを得ます。 | |||
攻撃力 = 攻撃力 × (1 + 0.03 × (有効な種族特攻エンチャント強度の合計) + 0.015 × (全特攻エンチャント強度)) | |||
=== 防御力 === | |||
<syntaxhighlight lang="c#"> | |||
public virtual int ApplyProtection(int dmg, int mod = 100) | |||
{ | |||
int armorSkill = GetArmorSkill(); | |||
Element orCreateElement = elements.GetOrCreateElement(armorSkill); | |||
int num = PV + orCreateElement.Value + DEX / 10; | |||
int num2 = 1; | |||
int sides = 1; | |||
int bonus = 0; | |||
if (num > 0) | |||
{ | |||
int num3 = num / 4; | |||
num2 = num3 / 10 + 1; | |||
sides = num3 / num2 + 1; | |||
bonus = 0; | |||
dmg = dmg * 100 / (100 + num); | |||
} | |||
int num4 = Dice.Roll(num2, sides, bonus, this); | |||
dmg -= num4 * mod / 100; | |||
if (dmg < 0) | |||
{ | |||
dmg = 0; | |||
} | |||
return dmg; | |||
} | |||
</syntaxhighlight>攻撃対象の防御力は「防御固定値」と「防御割合」の2つに分かれています。 | |||
防御固定値は、ダイス数が「(PV + 軽装or重装スキル + 器用 / 10) / 40 + 1」、ダイス面が「(PV + 軽装or重装スキル + 器用 / 10) / ダイス数 + 1」で[[Elin:解析/共通処理|ダイスロール]]をしたものです。 | |||
防御割合は以下の式で算出されます。 | |||
防御割合 = 1 - 1 / (1 + 0.01 × (PV + 軽装or重装スキル + 器用 / 10)) | |||
=== 属性強度・属性変換率 === | |||
<syntaxhighlight lang="c#"> | |||
if (weapon != null) | |||
{ | |||
foreach (Element value2 in weapon.elements.dict.Values) | |||
{ | |||
if (value2.source.categorySub == "eleConvert") | |||
{ | |||
num4 = EClass.sources.elements.alias[value2.source.aliasRef].id; | |||
num5 = 50 + value2.Value * 2; | |||
num6 = Mathf.Min(value2.Value, 100); | |||
break; | |||
} | |||
} | |||
} | |||
if (num4 == 0) | |||
{ | |||
if (CC.HasCondition<ConWeapon>()) | |||
{ | |||
conWeapon = CC.GetCondition<ConWeapon>(); | |||
num4 = conWeapon.sourceElement.id; | |||
num5 = conWeapon.power / 2; | |||
num6 = (int)Mathf.Min(40f + MathF.Sqrt(conWeapon.power), 80f); | |||
} | |||
if (conWeapon == null && weapon == null && (CC.MainElement != Element.Void || CC.HasElement(1565))) | |||
{ | |||
num4 = (CC.HasElement(1565) ? 915 : CC.MainElement.id); | |||
num5 = CC.Power / 3 + EClass.rnd(CC.Power / 2); | |||
if (CC.MainElement != Element.Void) | |||
{ | |||
num5 += CC.MainElement.Value; | |||
} | |||
showEffect = false; | |||
num6 = 50; | |||
} | |||
if (conWeapon == null && weapon != null && weapon.trait is TraitToolRangeCane) | |||
{ | |||
IEnumerable<Element> enumerable = weapon.elements.dict.Values.Where((Element e) => e.source.categorySub == "eleAttack"); | |||
if (enumerable.Count() > 0) | |||
{ | |||
num4 = enumerable.RandomItem().id; | |||
num5 = num4 switch | |||
{ | |||
920 => 30, | |||
914 => 50, | |||
918 => 50, | |||
_ => 100, | |||
}; | |||
} | |||
num6 = 50; | |||
} | |||
} | |||
</syntaxhighlight>属性変換エンチャントがついた武器か、唄魔法が有効な攻撃か、ワンドでの攻撃か、属性格闘をもつかエーテル病のエーテルの滴る手にかかったキャラクターの素手による攻撃の場合、物理攻撃は「属性強度」と「属性変換率」をもちます。 | |||
条件を複数満たす場合、属性変換エンチャント>唄魔法>エーテル病>ワンド の順で優先されます。 | |||
==== 属性強度 ==== | |||
属性強度とは、状態異常を付与する際に使用される強度です。値が大きい程状態異常にしやすく、状態異常の強度が上がります。 | |||
属性変換エンチャントのついた武器の属性強度は'''「50 + 属性変換エンチャント強度 × 2」'''です。 | |||
唄魔法が有効な攻撃の属性強度は'''「唄魔法のパワー / 2」'''です。 | |||
属性格闘の属性強度は'''「???」'''です。 | |||
ワンドの属性強度は'''混沌属性は「20」、幻惑と神経属性は「50」、それ以外は「100」'''で固定です。 | |||
==== 属性変換率 ==== | |||
属性変換率とは、攻撃対象の防御力を無視する割合です。 | |||
属性変換エンチャントのついた武器の属性変換率は'''「属性変換エンチャント強度」%'''で、'''最大100%'''です。 | |||
唄魔法が有効な攻撃の属性変換率は'''「40 + √(唄魔法のパワー)」'''%で、最小'''40%'''、最大'''80%'''です。 | |||
属性格闘の属性変換率は'''「50」%'''で固定です。 | |||
ワンドの属性変換率は'''「50」%'''で固定です。 | |||
==属性追加ダメージエンチャント== | ==属性追加ダメージエンチャント== | ||
Line 783: | Line 909: | ||
シールドバッシュは唄魔法や属性変換エンチャントなどに関わらず無属性ダメージとなります。 | シールドバッシュは唄魔法や属性変換エンチャントなどに関わらず無属性ダメージとなります。 | ||
50%の確率で、1ターンの麻痺を攻撃対象に耐性や無効化エンチャントを無視して強制的に付与します。 | |||
50%の確率で、状態異常強度が「50 + 10 × √(攻撃者の盾スキル)」の朦朧を攻撃対象に付与します。 | |||
<references /> | <references /> |
edits