User:びゃっこ/すたぶ/解析物理戦闘: Difference between revisions

No edit summary
Line 365: Line 365:




==命中判定==
===命中力の算出===
===命中力の算出===
基礎の命中力は以下の表の式で算出されます。
基礎の命中力は以下の表の式で算出されます。
Line 506: Line 507:
}
}
Proc(list2);
Proc(list2);
</syntaxhighlight>ワンド以外の属性追加ダメージエンチャントの付与された武器か弾の攻撃が命中した場合、付与された属性追加ダメージエンチャントそれぞれについて追加の属性攻撃を行います。
</syntaxhighlight>属性追加ダメージエンチャントの付与された'''ワンド以外の'''武器か弾の攻撃が命中した場合、付与された属性追加ダメージエンチャントそれぞれについて追加の属性攻撃を行います。


それぞれの属性追加ダメージの最大値は以下の式で算出されます。
それぞれの属性追加ダメージの最大値は以下の式で算出されます。
  属性追加最大ダメージ = 5 + 軽減後ダメージ × (0.2 + エンチャント強度 × 0.02)
  属性追加最大ダメージ = 5 + 軽減後ダメージ × (0.2 + エンチャント強度 × 0.02)
0~属性追加最大ダメージまでの範囲の内のランダムな値が属性ダメージとなります。
0~属性追加最大ダメージまでの範囲の内のランダムな値が属性ダメージとなります。




Line 518: Line 520:


==シールドバッシュ==
==シールドバッシュ==
<syntaxhighlight lang="c#">
if (!IsRanged && attackStyle == AttackStyle.Shield)
{
int num11 = CC.Evalue(123);
if (CC.elements.ValueWithoutLink(123) >= 10 && Mathf.Clamp(Mathf.Sqrt(num11) - 2f, 8f, 12f) > (float)EClass.rnd(100))
{
num = num7 * Mathf.Min(50 + num11, 200) / 100;
num = TC.ApplyProtection(num);
Debug.Log("Bash:" + num + "/" + num7);
CC.PlaySound("shield_bash");
CC.Say("shield_bash", CC, TC);
TC.DamageHP(num, AttackSource.None, CC);
if (TC.IsAliveInCurrentZone && TC.isChara)
{
if (EClass.rnd(2) == 0)
{
TC.Chara.AddCondition<ConDim>(50 + (int)Mathf.Sqrt(num11) * 10);
}
TC.Chara.AddCondition<ConParalyze>(EClass.rnd(2), force: true);
}
}
}
</syntaxhighlight>盾スキルが10以上の盾を持つキャラクターの近接攻撃が命中した場合、シールドバッシュの判定が行われます。
シールドバッシュの発生確率は'''「√(攻撃者の盾スキル) - 2」%で、最小で8%、最大で12%になるよう補正されます。'''
シールドバッシュのダメージは以下の式で算出されます。ただし、'''このダメージは攻撃対象の物理防御力によって軽減されます。'''
シールドバッシュのダメージ = 軽減後ダメージ × MIN((0.5 + 攻撃者の盾スキル × 0.01), 2)
シールドバッシュは唄魔法や属性変換エンチャントなどに関わらず無属性ダメージとなります。
0~2ターンの麻痺を攻撃対象に耐性や無効化エンチャントを無視して強制的に付与します。


さらに50%の確率で、状態異常強度が「50 + 10 × √(攻撃者の盾スキル)」の朦朧を攻撃対象に付与します。


<references />
<references />
250

edits