250
edits
No edit summary |
|||
| Line 5: | Line 5: | ||
==攻撃能力の算出== | ==攻撃能力の算出== | ||
==格闘== | === 格闘 === | ||
<syntaxhighlight lang="c#" line="1"> | <syntaxhighlight lang="c#" line="1"> | ||
else if (IsMartial || IsMartialWeapon) | else if (IsMartial || IsMartialWeapon) | ||
| Line 96: | Line 96: | ||
最終的な貫通率は「'''基礎貫通率 + 武器の貫通率'''」です。 | 最終的な貫通率は「'''基礎貫通率 + 武器の貫通率'''」です。 | ||
==投擲== | === 投擲 === | ||
<syntaxhighlight lang="c#" line="1"> | <syntaxhighlight lang="c#" line="1"> | ||
if (isThrow) | if (isThrow) | ||
| Line 138: | Line 138: | ||
最終的な命中力は「'''基礎命中力 +''' '''武器の命中修正 + 防具の命中修正合計」'''です。 | 最終的な命中力は「'''基礎命中力 +''' '''武器の命中修正 + 防具の命中修正合計」'''です。 | ||
==近接&遠隔武器== | === 近接&遠隔武器 === | ||
<syntaxhighlight lang="c#" line="1"> | <syntaxhighlight lang="c#" line="1"> | ||
else | else | ||
| Line 220: | Line 220: | ||
命中力に「'''弾薬の命中修正'''」を加算します。 | 命中力に「'''弾薬の命中修正'''」を加算します。 | ||
== | === 遠隔武器の距離修正 === | ||
<syntaxhighlight lang="c#" line="1"> | <syntaxhighlight lang="c#" line="1"> | ||
distMod = 100; | distMod = 100; | ||
| Line 337: | Line 337: | ||
|112 | |112 | ||
|} | |} | ||
=== 遠隔武器の連射数修正 === | |||
<syntaxhighlight lang="c#" line="1"> | |||
GameSetting.EffectData effectData = EClass.setting.effect.guns.TryGetValue(weapon.id) ?? EClass.setting.effect.guns[flag2 ? "cane" : (flag ? "gun" : "bow")]; | |||
bool hasHit = false; | |||
int numFire = effectData.num; | |||
int numFireWithoutDamageLoss = numFire; | |||
... | |||
if (IsRanged && count >= numFireWithoutDamageLoss) | |||
{ | |||
num = num * 100 / (100 + (count - numFireWithoutDamageLoss + 1) * 30); | |||
} | |||
</syntaxhighlight> | |||
速射modや連続射撃により遠隔武器に追加の射撃が発生している場合、追加の射撃には回数に応じたダメージ減衰が発生します。 | |||
ここでの「numFireWithoutDamageLoss」とは遠隔武器の元々の発射数で、「count」は現在何発目の射撃かの変数です。「count」は0スタートで、1発目の射撃では0が代入されています。 | |||
追加の射撃のダメージ倍率は以下の式で算出されます。 | |||
ダメージ倍率 = 1 / 1 + 0.3 × (現在の発射回数 - 遠隔武器の元々の発射数) | |||
※ここでの「現在の発射回数」とはコード上での「count + 1」です | |||
==物理攻撃エンチャント== | ==物理攻撃エンチャント== | ||
edits