Elin:解析/戦闘: Difference between revisions
m ({{DISPLAYTITLE:{{SUBPAGENAME}}}}) |
Sakumashiki (talk | contribs) (EN版の更新を反映。バフ/デバフ魔法の解析情報など) |
||
| Line 47: | Line 47: | ||
|1, 2 | |1, 2 | ||
|} | |} | ||
==敵のレベルに応じたダメージ軽減== | |||
{{バージョン|23.46}} | |||
レベル50を超えた敵が受けるダメージ軽減量は以下の通り: | |||
まず、レベル50以下の敵の軽減率は0%、レベル1024以上の敵は軽減率80%となります。 | |||
if (!this.IsPCFaction && this.LV > 50) | |||
{ | |||
dmg = dmg * (100 - (int)Mathf.Min(80f, Mathf.Sqrt((float)(this.LV - 50)) * 2.5f)) / 100; | |||
} | |||
プレイヤーのファクションに属するキャラで、敵のレベルがLv51より高い場合: | |||
あなたのダメージは、* (100 - float (敵のレベル - 50) * 2.5 の平方根 80) / 100 のうち最小の整数)で掛け合わされます。 | |||
つまり、Lv1024以上の敵に対してはダメージが80%減少し、Lv51~Lv1023の敵に対しては[sqrt(階数-50) * 2.5] / 100のどちらかになります。 | |||
{| class="wikitable" | |||
|+レベル毎のダメージ軽減 | |||
!敵のLv | |||
!軽減率(%) | |||
|- | |||
|51 | |||
|2.50 | |||
|- | |||
|100 | |||
|17.67 | |||
|- | |||
|150 | |||
|25.00 | |||
|- | |||
|200 | |||
|30.61 | |||
|- | |||
|250 | |||
|35.35 | |||
|- | |||
|300 | |||
|39.53 | |||
|- | |||
|350 | |||
|43.30 | |||
|- | |||
|400 | |||
|46.77 | |||
|- | |||
|450 | |||
|50.00 | |||
|- | |||
|500 | |||
|53.03 | |||
|- | |||
|550 | |||
|55.90 | |||
|- | |||
|600 | |||
|58.63 | |||
|- | |||
|650 | |||
|61.24 | |||
|- | |||
|700 | |||
|63.74 | |||
|- | |||
|750 | |||
|66.14 | |||
|- | |||
|800 | |||
|68.47 | |||
|- | |||
|850 | |||
|70.71 | |||
|- | |||
|900 | |||
|72.89 | |||
|- | |||
|950 | |||
|75 | |||
|- | |||
|1000 | |||
|77.06 | |||
|} | |||
== 命中率== | |||
{{バージョン|23.46}} | |||
[[File:Function curve as of EA23.46.png|thumb|upright=3.0|バージョン EA23.46 のCURVE 関数の入力(オレンジ色)と出力(藍)です。Output = Curve(Input, 50, 25, 75) ]] | [[File:Function curve as of EA23.46.png|thumb|upright=3.0|バージョン EA23.46 のCURVE 関数の入力(オレンジ色)と出力(藍)です。Output = Curve(Input, 50, 25, 75) ]] | ||
「CURVE」とは、スキル値の有効性にスライドカーブを追加するゲームの手法を指します。 | 「CURVE」とは、スキル値の有効性にスライドカーブを追加するゲームの手法を指します。 | ||
| Line 72: | Line 157: | ||
|+命中 | |+命中 | ||
!武器の種類 | !武器の種類 | ||
!計算式 | !計算式 | ||
|- | |- | ||
|投擲 | |投擲 | ||
| Line 78: | Line 163: | ||
|- | |- | ||
|格闘 (盾なし) | |格闘 (盾なし) | ||
|CURVE([攻撃者の器用]/3 + [攻撃者の筋力]/3 + [攻撃者の武器スキル], 50, 25, 75) + 50 | |CURVE([攻撃者の器用]/3 + [攻撃者の筋力]/3 + [攻撃者の武器スキル], 50, 25, 75) + 50 | ||
|- | |- | ||
|格闘 (盾あり) | |格闘 (盾あり) | ||
|CURVE([攻撃者の器用]/3 + [攻撃者の筋力]/3 + [攻撃者の武器スキル], 50, 25, 75)の75% + 50 | |CURVE([攻撃者の器用]/3 + [攻撃者の筋力]/3 + [攻撃者の武器スキル], 50, 25, 75)の75% + 50 | ||
|- | |- | ||
| ワンド | |ワンド | ||
|CURVE([攻撃者の意志]/4 + [攻撃者の武器の主能力]/3 + [攻撃者の武器スキル], 50, 25, 75) + 100 | |CURVE([攻撃者の意志]/4 + [攻撃者の武器の主能力]/3 + [攻撃者の武器スキル], 50, 25, 75) + 100 | ||
|- | |- | ||
|その他すべての武器 | |その他すべての武器 | ||
| CURVE([攻撃者の器用]/4 + [攻撃者の武器の主能力]/3 [攻撃者の武器スキル], 50, 25, 75) + 50 | |CURVE([攻撃者の器用]/4 + [攻撃者の武器の主能力]/3 [攻撃者の武器スキル], 50, 25, 75) + 50 | ||
|} | |} | ||
上記の式で算出した値に装備と武器による命中修正が加算され、その後遠距離武器には距離による修正が適用されます。 | 上記の式で算出した値に装備と武器による命中修正が加算され、その後遠距離武器には距離による修正が適用されます。 | ||
| Line 119: | Line 204: | ||
|攻撃力 = 攻撃力 * 100 / (100 + 1000 / (5 または 10 + [攻撃者の器用] の高い方)) | |攻撃力 = 攻撃力 * 100 / (100 + 1000 / (5 または 10 + [攻撃者の器用] の高い方)) | ||
|- | |- | ||
|攻撃者が両手持ち | | 攻撃者が両手持ち | ||
|攻撃力 = 攻撃力 + 25 + sqrt([攻撃者の両手持ちスキル] * 2) | |攻撃力 = 攻撃力 + 25 + sqrt([攻撃者の両手持ちスキル] * 2) | ||
|- | |- | ||
|攻撃者が二刀流 | |攻撃者が二刀流 | ||
|命中 = 命中 * 100 / (115 * 15 * (2000 / (20 + [攻撃者の二刀流スキル])[0-100でクランプ]) | |命中 = 命中 * 100 / (115 + 手の数 * 15 + 手の数 *(2000 / (20 + [攻撃者の二刀流スキル])[0-100でクランプ]) | ||
|- | |- | ||
|攻撃者が盲目 | | 攻撃者が盲目 | ||
|命中 = 33.33% (または、遠距離/投擲の場合は10%) | |命中 = 33.33% (または、遠距離/投擲の場合は10%) | ||
|- | |- | ||
|対象が盲目 | |対象が盲目 | ||
|回避率 = | |回避率 = 50% | ||
|- | |- | ||
|対象が朦朧 | |対象が朦朧 | ||
|回避率 = | |回避率 = 50% | ||
|- | |- | ||
|対象が高所にいる | |対象が高所にいる | ||
|回避率 + | |回避率 + 20% | ||
|} | |} | ||
二刀流の補足説明: | |||
ここでいう、「手の数」は利き手・もう片方の手と、カオスシェイプなどが持つ2本目以降の手を表します。 | |||
1-100の間でクランプされるのは(2000 / (20 + [攻撃者の二刀流スキル])だけです。つまり、二刀流で最適化するには、二刀流スキルが1980必要です。 | |||
システムには命中率と回避率の値が設定されており、攻撃が命中、外れる、クリティカルの順に、これらの値を使用して計算します。 | システムには命中率と回避率の値が設定されており、攻撃が命中、外れる、クリティカルの順に、これらの値を使用して計算します。 | ||
| Line 269: | Line 361: | ||
貫通力は常に'''25'''です。 | 貫通力は常に'''25'''です。 | ||
==近接&遠隔武器== | ==近接&遠隔武器 == | ||
<syntaxhighlight lang="c#" line="1"> | <syntaxhighlight lang="c#" line="1"> | ||
else | else | ||
| Line 326: | Line 418: | ||
</syntaxhighlight>プレイヤーは、戦術スキルを使用して近接武器を振るうか、または射撃スキルを使用して遠距離武器を撃ちます。 | </syntaxhighlight>プレイヤーは、戦術スキルを使用して近接武器を振るうか、または射撃スキルを使用して遠距離武器を撃ちます。 | ||
武器が'''ワンド''' | 武器が'''ワンド'''、または'''理力武器'''のエンチャントが付いている場合、戦術スキルまたは射撃スキルの代わりに'''詠唱'''スキルを、武器スキル(長剣、短剣、斧など)の代わりに'''魔道具'''スキルを使用します | ||
ダメージボーナスは、'''プレイヤーのダメージボーナス''' + '''武器の改造道具によるダメージボーナス''' + '''武器のダメージボーナス'''です | ダメージボーナスは、'''プレイヤーのダメージボーナス''' + '''武器の改造道具によるダメージボーナス''' + '''武器のダメージボーナス'''です | ||
| Line 340: | Line 432: | ||
命中ボーナスは、'''キャラクターの命中ボーナス''' + '''武器の命中ボーナス''' + '''弾薬の命中ボーナス'''(弾薬を装填している場合) | 命中ボーナスは、'''キャラクターの命中ボーナス''' + '''武器の命中ボーナス''' + '''弾薬の命中ボーナス'''(弾薬を装填している場合) | ||
ダメージボーナスは、'''キャラクターのダメージボーナス''' + '''武器のダメージボーナス''' + ''' | ダメージボーナスは、'''キャラクターのダメージボーナス''' + '''武器のダメージボーナス''' + '''弾薬の改造道具のダメージボーナス'''(弾薬を装填している場合) | ||
貫通力は、'''キャラクターの貫通率''' + '''武器の貫通率''' | 貫通力は、'''キャラクターの貫通率''' + '''武器の貫通率''' | ||
| Line 374: | Line 466: | ||
精密射撃MODのない場合、0(適正攻撃距離)の時は命中率、ダメージ共に115%になります、±1は105%、±2は95%、±3は85%、それ以降は80%になります。 | 精密射撃MODのない場合、0(適正攻撃距離)の時は命中率、ダメージ共に115%になります、±1は105%、±2は95%、±3は85%、それ以降は80%になります。 | ||
[[Elin:武器#距離修正]] | [[Elin:武器#距離修正]]を参照すると、それが今(EA23.46)でも正しいことが分かります。 | ||
精密射撃MODは更に攻撃距離の影響を減少します。例えば精密射撃MODレベル10の場合、±1は110%、±2は105%…になります。 | 精密射撃MODは更に攻撃距離の影響を減少します。例えば精密射撃MODレベル10の場合、±1は110%、±2は105%…になります。 | ||
==魔法:魔法のパワー== | ==魔法:魔法のパワー== | ||
<syntaxhighlight lang=" | これはAbility.csの44行目です | ||
ここに、NPCの魔法のパワーを決定するためにどの式を使用するかを記述したコードが書かれています | |||
<syntaxhighlight lang="「c#」" line="「1」"> | |||
public override int GetPower(Card c) | public override int GetPower(Card c) | ||
{ | { | ||
int num = base. Value * 8 + 50; | |||
if (!c.IsPC) | |||
{ | |||
num = Mathf.Max(num, c.LV * 6 + 30); | |||
if (c.IsPCFactionOrMinion && !base.source.aliasParent.IsEmpty()) | |||
{ | |||
num = Mathf.Max(num, c.Evalue(base.source.aliasParent) * 4 + 30); | |||
} }. | |||
} | |||
num = EClass.curve(num, 400, 100, 75); | |||
if (this is Spell) | |||
{ | |||
num = num * (100 + c.Evalue(411)) / 100; | |||
} | } | ||
</syntaxhighlight><syntaxhighlight lang=" | return num; | ||
}. | |||
</syntaxhighlight>ここではカーブ関数を使用します:<syntaxhighlight lang="「c#」" line="「1」"> | |||
public static int curve(int a, int start, int step, int rate = 75) | public static int curve(int a, int start, int step, int rate = 75) | ||
{ | { | ||
if (a <= start) | |||
{ | |||
return a; | |||
} | |||
for (int i = 0; i < 10; i++) | |||
{ | |||
int num = start + i * step; | |||
if (a <= num) | |||
{ | |||
return a; | |||
} | |||
a = num + (a - num) * rate / 100; | |||
} | } | ||
</syntaxhighlight> | return a; | ||
} }. | |||
</syntaxhighlight>プレイヤーの場合、魔法のパワーはcurve( ('''魔法レベル''' x 8 + 50), 400, 100, 75 ) x (100 + '''魔法強化エンチャント''') / 100 です | |||
プレイヤー以外の場合、魔法のパワーは'''魔法レベル''' x 8 + 50 か、'''キャラレベル''' x 6 + 30 か、主能力×4 + 30の中の最も大きいものです | |||
'''curve 関数について: ''' '''<code>curve(a, start, step, rate)</code>''' | |||
簡単に言うと、この関数は数値を圧縮するために使われます。 | |||
<code>i = 0</code> をセットします。計算 <code>num = start + i * step</code>. <code>a</code> が <code>num</code> を超えたら、超えた部分に <code>rate / 100</code> を掛けます。その後、<code>i</code> を 1 ずつ増やします。上記のステップを 10 回繰り返します。 | |||
関数の曲線の傾きは徐々に小さくなり、<code>(rate / 100)^10</code> となります。 | |||
==魔法:攻撃魔法== | ==魔法:攻撃魔法== | ||
ダイス数、ダイス面、ダメージボーナスは切り捨て。 | |||
[[File:Damage of different types of spells as of EA23.71.png|thumb|upright=5.0|標準偏差を含むEA23.71時点での各種魔法のダメージ。パラメータは魔力=100固定、x軸は魔法レベル、y軸は平均ダメージ]] | |||
{| class="wikitable" | {| class="wikitable" | ||
!魔法 | !魔法 | ||
| Line 430: | Line 540: | ||
|近接範囲 | |近接範囲 | ||
|- | |- | ||
|矢 | |矢 | ||
|1+魔法のパワー/160+対応主能力/30 | |1+魔法のパワー/160+対応主能力/30 | ||
|8+魔法のパワー/12 | |8+魔法のパワー/12 | ||
| Line 436: | Line 546: | ||
|単体攻撃 | |単体攻撃 | ||
|- | |- | ||
|光線 | | 光線 | ||
|1+魔法のパワー/120+対応主能力/20 | |1+魔法のパワー/120+対応主能力/20 | ||
|4+魔法のパワー/20 | |4+魔法のパワー/20 | ||
| Line 446: | Line 556: | ||
|2+魔法のパワー/35 | |2+魔法のパワー/35 | ||
| | | | ||
|発動者から5マスの範囲のボール内のすべてのターゲットにダメージを与える | | 発動者から5マスの範囲のボール内のすべてのターゲットにダメージを与える | ||
ダメージ = ダメージ x 100 / (90 + 射程 x 10) | ダメージ = ダメージ x 100 / (90 + 射程 x 10) | ||
|- | |- | ||
|瘴気 | |瘴気 | ||
|2+魔法のパワー/150 | | 2+魔法のパワー/150 | ||
|5+魔法のパワー/80 | |5+魔法のパワー/80 | ||
| | | | ||
| Line 460: | Line 570: | ||
|6+魔法のパワー/100 | |6+魔法のパワー/100 | ||
|対応主能力/4 | |対応主能力/4 | ||
|発動者から7マスにわたる35°の円錐内のすべてのターゲットにダメージを与える | |発動者から7マスにわたる35°の円錐内のすべてのターゲットにダメージを与える | ||
|- | |- | ||
|メテオ | |メテオ | ||
| Line 468: | Line 578: | ||
|火炎属性固定 | |火炎属性固定 | ||
ダメージ | ダメージ 発動者から10マスの半径のボール内のすべてのターゲットにダメージを与えます。 壁でブロックされることがあります。 また、発動者にもダメージを与えます。 | ||
|- | |- | ||
|地震 | |地震 | ||
| | |1+魔法のパワー/30 | ||
| | |2+対応主能力/3 | ||
| | | | ||
|衝撃属性固定 | |衝撃属性固定 | ||
発動者から12マスの半径のボール内のすべてのターゲットにダメージを与えます。 重力デバフを持つ敵には、最大ダイスダメージの2倍のダメージを与えます。 浮遊効果を持つ敵には、ダメージの半分を与えます。 | |||
|- | |- | ||
|破呪 | |破呪 | ||
| Line 541: | Line 651: | ||
| | | | ||
| | | | ||
|} | |||
== 魔法:バフ魔法 == | |||
{| class="wikitable" | |||
!魔法 | |||
!パワー | |||
!持続時間 | |||
!備考 | |||
|- | |||
|(属性)の唄 | |||
|(魅力/40 + 1)*5 | |||
|魔法のパワー/25 + 8 | |||
|ここでいう「パワー」は、獲得できる属性耐性のこと | |||
|- | |||
|テレパシー | |||
|固定 | |||
|魔法のパワー/5 + 15 | |||
| | |||
|- | |||
|透明化 | |||
|魔法のパワー/30 + 5 | |||
|魔法のパワー/12 + 6 | |||
| | |||
|- | |||
|透明可視 | |||
|魔法のパワー/40 + 6 | |||
|魔法のパワー/6 + 12 | |||
| | |||
|- | |||
|インコグニート | |||
|固定 | |||
|魔法のパワー/2 + 20 | |||
| | |||
|- | |||
|猫の目 | |||
|魔法のパワー/30 + 5 | |||
|魔法のパワー*3 | |||
| | |||
|- | |||
|ホーリーヴェイル | |||
|固定 | |||
|魔法のパワー/6 + 5 | |||
| | |||
|- | |||
|元素保護 | |||
|魔法のパワー/200 + 5 | |||
|魔法のパワー/15 + 8 | |||
|ここでいう「パワー」は、獲得できる元素耐性のこと | |||
|- | |||
|英雄 | |||
|筋力: 魔法のパワー/30 + 5 | |||
器用: 魔法のパワー/30 + 5 | |||
|魔法のパワー/4 + 10 | |||
| | |||
|- | |||
|浮遊 | |||
|固定 | |||
|魔法のパワー/5 + 10 | |||
| | |||
|- | |||
|聖なる盾 | |||
|魔法のパワー/15 + 15 | |||
|魔法のパワー/3 + 10 | |||
| | |||
|- | |||
|知者 | |||
|魔力: 魔法のパワー/40 + 6 | |||
学習: 魔法のパワー/40 + 6 | |||
読書: 魔法のパワー/40 + 3 | |||
|魔法のパワー/4 + 10 | |||
| | |||
|- | |||
|ホウキ変容 | |||
|固定 | |||
|魔法のパワー + 30 | |||
| | |||
|} | |||
==魔法:デバフ魔法== | |||
{| class="wikitable" | |||
!魔法 | |||
!パワー | |||
!持続時間 | |||
!備考 | |||
|- | |||
|瘴気 | |||
|固定 | |||
|魔法のパワー/100 + 5 | |||
| | |||
|- | |||
|グラビティ | |||
|固定 | |||
|魔法のパワー/20 + 10 | |||
| | |||
|- | |||
|沈黙 | |||
|固定 | |||
|魔法のパワー/80 + 5 | |||
| | |||
|- | |||
|脆弱 | |||
|固定 | |||
|魔法のパワー/50 + 10 | |||
| | |||
|- | |||
|災い | |||
|魔法のパワー/30 + 50 | |||
|魔法のパワー/50 + 10 | |||
|ここでいう「パワー」は、運の低下量のこと | |||
|- | |||
|破門 | |||
|固定 | |||
|魔法のパワー/50 + 20 | |||
| | |||
|- | |||
|元素の傷跡 | |||
|魔法のパワー/100 + 5 | |||
|魔法のパワー/40 + 8 | |||
|ここでいう「パワー」は、元素耐性の低下量のこと | |||
|} | |} | ||
| Line 571: | Line 801: | ||
|- | |- | ||
|具象 | |具象 | ||
|20 + rnd ( | |20 + rnd (10) + 魔法のパワー / 20 | ||
|魔法のパワー / 15 | |魔法のパワー / 15 | ||
| | | | ||
Revision as of 01:46, 11 January 2025
このページには正規のプレイによって得られた情報ではなく、Elinのデータ解析・デバッグモード・内部ファイル閲覧などによって得た情報が掲載されています。 ゲームの重大なネタバレや、プレイの楽しみを損なう情報が含まれている可能性があります。 閲覧は自己責任でお願いするとともに、通常ページに解析ページへのリンクを貼ることはお控えください。 また、このページの情報をWikiの他のページに記載する際は計算コードなどをそのまま掲示するのではなく、コードが読めない人にもわかりやすいように内容を要約して書いていただけると幸いです。 |
Evalueリスト
| Value# | Element | 備考 |
|---|---|---|
| (92) | 貫通率 | |
| (108) | 投擲 | |
| (132) | 戦術 | |
| (133) | 射撃 | |
| (305) | 魔道具 | |
| (411) | 魔法強化エンチャント | |
| (482) | 理力武器 | |
| (1400) | 武器の知識フィート | 1, 2 |
| (1404) | 射撃の名手フィート | 1, 2 |
敵のレベルに応じたダメージ軽減
レベル50を超えた敵が受けるダメージ軽減量は以下の通り:
まず、レベル50以下の敵の軽減率は0%、レベル1024以上の敵は軽減率80%となります。
if (!this.IsPCFaction && this.LV > 50)
{
dmg = dmg * (100 - (int)Mathf.Min(80f, Mathf.Sqrt((float)(this.LV - 50)) * 2.5f)) / 100;
}
プレイヤーのファクションに属するキャラで、敵のレベルがLv51より高い場合:
あなたのダメージは、* (100 - float (敵のレベル - 50) * 2.5 の平方根 80) / 100 のうち最小の整数)で掛け合わされます。
つまり、Lv1024以上の敵に対してはダメージが80%減少し、Lv51~Lv1023の敵に対しては[sqrt(階数-50) * 2.5] / 100のどちらかになります。
| 敵のLv | 軽減率(%) |
|---|---|
| 51 | 2.50 |
| 100 | 17.67 |
| 150 | 25.00 |
| 200 | 30.61 |
| 250 | 35.35 |
| 300 | 39.53 |
| 350 | 43.30 |
| 400 | 46.77 |
| 450 | 50.00 |
| 500 | 53.03 |
| 550 | 55.90 |
| 600 | 58.63 |
| 650 | 61.24 |
| 700 | 63.74 |
| 750 | 66.14 |
| 800 | 68.47 |
| 850 | 70.71 |
| 900 | 72.89 |
| 950 | 75 |
| 1000 | 77.06 |
命中率
「CURVE」とは、スキル値の有効性にスライドカーブを追加するゲームの手法を指します。
CURVE( input, start, step, rate)
if input <= start
return input
repeat x10
{
num = start + repeatindex * step
if input <= num
return input
else
input = num + (input - num) * rate /100
}
return input
まず、システムは攻撃者の「命中」とターゲットの「回避」を評価します。
命中の値は、使用する武器の種類(投擲、遠距離、近接、格闘)とスタイルによって異なる計算式で算出されます
| 武器の種類 | 計算式 |
|---|---|
| 投擲 | CURVE([攻撃者の器用]/4 + [攻撃者の筋力]/2 + [攻撃者の武器スキル], 50, 25, 75) + 75 (PCのファクション以外の場合250) |
| 格闘 (盾なし) | CURVE([攻撃者の器用]/3 + [攻撃者の筋力]/3 + [攻撃者の武器スキル], 50, 25, 75) + 50 |
| 格闘 (盾あり) | CURVE([攻撃者の器用]/3 + [攻撃者の筋力]/3 + [攻撃者の武器スキル], 50, 25, 75)の75% + 50 |
| ワンド | CURVE([攻撃者の意志]/4 + [攻撃者の武器の主能力]/3 + [攻撃者の武器スキル], 50, 25, 75) + 100 |
| その他すべての武器 | CURVE([攻撃者の器用]/4 + [攻撃者の武器の主能力]/3 [攻撃者の武器スキル], 50, 25, 75) + 50 |
上記の式で算出した値に装備と武器による命中修正が加算され、その後遠距離武器には距離による修正が適用されます。
回避はこちらの式で計算されます。:CURVE ([対象の感覚] / 3 + [対象の回避スキル], 50, 10, 75) + [対象のDV] + 25
命中率に影響を与える以下の要素は、複合して作用しながら以下の順序で適用されます。
| 条件 | 効果 |
|---|---|
| 攻撃者が災い状態 | 命中 = 75% |
| 攻撃者が高所にいる | 命中 +20% |
| 攻撃者が乗馬している | 命中 = 命中 * 100 / (100 + 500 / (5 or 10 + [攻撃者の乗馬スキル]の高い方)) |
| 攻撃者がペットを寄生させている | 命中 = 命中 * 100 / (100 + 1000 /(5 or 10 + [攻撃者の共存スキル]の高い方)) |
| 騎乗されているペットが攻撃 | 命中 = 命中 * 100 / (100 + 1000 / (5 or 10 + [攻撃者の筋力]の高い方)) |
| 寄生しているペットが攻撃 | 攻撃力 = 攻撃力 * 100 / (100 + 1000 / (5 または 10 + [攻撃者の器用] の高い方)) |
| 攻撃者が両手持ち | 攻撃力 = 攻撃力 + 25 + sqrt([攻撃者の両手持ちスキル] * 2) |
| 攻撃者が二刀流 | 命中 = 命中 * 100 / (115 + 手の数 * 15 + 手の数 *(2000 / (20 + [攻撃者の二刀流スキル])[0-100でクランプ]) |
| 攻撃者が盲目 | 命中 = 33.33% (または、遠距離/投擲の場合は10%) |
| 対象が盲目 | 回避率 = 50% |
| 対象が朦朧 | 回避率 = 50% |
| 対象が高所にいる | 回避率 + 20% |
二刀流の補足説明:
ここでいう、「手の数」は利き手・もう片方の手と、カオスシェイプなどが持つ2本目以降の手を表します。
1-100の間でクランプされるのは(2000 / (20 + [攻撃者の二刀流スキル])だけです。つまり、二刀流で最適化するには、二刀流スキルが1980必要です。
システムには命中率と回避率の値が設定されており、攻撃が命中、外れる、クリティカルの順に、これらの値を使用して計算します。
対象が朦朧状態の場合、4分の1の確率でクリティカル
対象が死亡または睡眠状態の場合、確定でクリティカル
[対象の見切りスキル] × 10 > 命中の場合、以下の式で判定 num = 回避 * 100 / 命中 'num2' > 300 & random 0 to ([対象の見切りスキル]+250) > 100 のとき、攻撃は外れる 'num2' > 200 & random 0 to ([対象の見切りスキル]+250) > 150 のとき、攻撃は外れる 'num2' > 150 & random 0 to ([対象の見切りスキル]+250) > 200 のとき、攻撃は外れる
[対象の完全回避のパラメータ] > random 0 - 99 のとき、攻撃は外れる
1 in 20 のとき、攻撃は命中
1 in 20 のとき、攻撃は外れる
命中 < 1 のとき、攻撃は外れる
回避 < 1 のとき、攻撃は命中
random 0 - 命中 < random 0 - (回避 * 125 (遠距離攻撃なら150) / 100) のとき、攻撃は外れる
random 0 - 5000 < [攻撃者の感覚]のとき、攻撃はクリティカル
[攻撃者のCriticalスキル] + sqrt([攻撃者の心眼スキル]) > random 0 -200のとき、攻撃はクリティカル
攻撃者が[死の真髄]フィートを所持している場合、以下の判定を行う num = 100 - [攻撃者の現在HP] * 100 / [攻撃者の最大HP] num >= 50 & (num^3 / 3) > random 0 - 100000000 のとき、攻撃はクリティカル
攻撃は命中
格闘
else if (this.IsMartial || this.IsMartialWeapon)
{
this.weaponSkill = this.CC.elements.GetOrCreateElement(100);
this.attackType = (this.CC.race.meleeStyle.IsEmpty() ? ((EClass.rnd(2) == 0) ? AttackType.Kick : AttackType.Punch) : this.CC.race.meleeStyle.ToEnum(true));
this.dBonus = this.CC.DMG + this.CC.encLV + (int)Mathf.Sqrt((float)(this.CC.STR / 5 + this.weaponSkill.Value / 4));
this.dNum = 2 + Mathf.Min(this.weaponSkill.Value / 10, 4);
this.dDim = 5 + (int)Mathf.Sqrt((float)(this.weaponSkill.Value / 3));
this.dMulti = 0.6f + (float)(this.CC.STR / 2 + this.weaponSkill.Value / 2 + this.CC.Evalue(132) / 2) / 50f;
this.dMulti += 0.05f * (float)this.CC.Evalue(1400);
this.toHitBase = EClass.curve(this.CC.DEX / 3 + this.CC.STR / 3 + this.weaponSkill.Value, 50, 25, 75) + 50;
this.toHitFix = this.CC.HIT;
if (this.attackStyle == AttackStyle.Shield)
{
this.toHitBase = this.toHitBase * 75 / 100;
}
this.penetration = Mathf.Clamp(this.weaponSkill.Value / 10 + 5, 5, 20) + this.CC.Evalue(92);
if (this.IsMartialWeapon)
{
this.dBonus += this.weapon.DMG;
this.dNum += this.weapon.source.offense[0];
this.dDim = Mathf.Max(this.dDim / 2 + this.weapon.c_diceDim, 1);
this.toHitFix += this.weapon.HIT;
this.penetration += this.weapon.Penetration;
if (!this.weapon.source.attackType.IsEmpty())
{
this.attackType = this.weapon.source.attackType.ToEnum(true);
}
}
}
プレイヤーは格闘スキルを使用してキックまたはパンチを繰り出します。近接戦闘スタイルやキャラクターの特性に基づいて攻撃エフェクトは変わります。
ダメージは「格闘、筋力、器用、エンチャント値」によって決定されます。
ダメージのダイスは「2+(格闘/10)」、最大で「d6」です。
ダイスのダメージ値は「5+√(格闘/3)」です。
ダメージ倍率は『0.6 + ((筋力 / 2 + 格闘 / 2 + 戦術 / 2) / 50.0)』です。
プレイヤーが武器の知識フィートを持っている場合、追加ダメージが『0.05×(武器の知識フィートのランク)』の割合で与えられます。(事実上、+0.05または+0.10)
命中率は「(筋力/3 + 器用/3 + 格闘)+50)」で、最低値は「25+50」、最高値は「75+50」です。プレイヤーが「盾」を装備している場合、-25%の下方修正があります。
貫通率は「(格闘/10)+5」で計算され、最低5%、最高「20% + 貫通率」です。
格闘技武器を装備している場合:
ダメージボーナスは素手のダメージボーナス + 武器のダメージボーナス
ダイス数は、素手のダイス数 + 武器のダイス数
ダイス面は、素手のダイス面 / 2 + 武器のダイス面
命中ボーナスは素手の命中命中ボーナス + 武器の命中ボーナス
貫通率は素手の貫通率 + 武器の貫通率
投擲
if (this.isThrow)
{
bool flag = this.weapon.HasTag(CTAG.throwWeapon) || this.weapon.HasTag(CTAG.throwWeaponEnemy);
int num2 = (int)Mathf.Clamp(Mathf.Sqrt((float)(this.weapon.SelfWeight + this.weapon.ChildrenWeight)) * 3f + 25f + (float)(flag ? 75 : 0), 10f, 400f + Mathf.Sqrt((float)this.CC.STR) * 50f);
int num3 = Mathf.Clamp(this.weapon.material.hardness, flag ? 40 : 20, 200);
this.weaponSkill = this.CC.elements.GetOrCreateElement(108);
this.attackType = AttackType.Blunt;
this.dBonus = (this.CC.IsPCParty ? 3 : 7);
this.dNum = 2;
this.dDim = ((this.CC.IsPCParty ? 0 : this.CC.LV) + this.CC.STR + this.CC.Evalue(108)) * num2 * num3 / 10000 / 2;
this.dMulti = 1f;
this.toHitBase = EClass.curve(this.CC.DEX / 4 + this.CC.STR / 2 + this.weaponSkill.Value, 50, 25, 75) + (this.CC.IsPC ? 75 : 250);
this.toHitFix = this.CC.HIT + this.weapon.HIT;
this.penetration = 25;
}
プレイヤーの投げたアイテムは、投擲スキルの使用するかしないかにかかわらず、手元に戻ってきます。
攻撃エフェクトは常に鈍器です。
重量値は√アイテムの重量×3 + 武器を投げている場合: 75 それ以外は0、10から400までの範囲で、√(筋力 x 50)を上限とします
武器の材質値は材質の硬度で、武器を投げている場合は40、それ以外は0から200までの範囲で下限が設定されます
ダイスの目は常に2です
ダイスの目は (プレイヤーキャラクターでない場合:キャラクターレベル + 筋力 + 投擲 ) x 武器の重量値 x 武器の材質値 / 10000 / 2
正確さは、器用/4 + 筋力/2 + 投擲で、最低値は25+50、最高値は75+50 + (プレイヤーキャラクターの場合:75、それ以外:250)
命中ボーナスは、キャラクターの命中ボーナス + 武器の命中ボーナス
ダメージボーナスは、プレイヤーキャラクターの場合:3、それ以外:7
ダメージ倍率は常に1
貫通力は常に25です。
近接&遠隔武器
else
{
if (this.IsRanged)
{
this.weaponSkill = this.CC.elements.GetOrCreateElement(this.toolRange.WeaponSkill);
}
else
{
this.weaponSkill = this.CC.elements.GetOrCreateElement(this.weapon.category.skill);
}
if (!this.weapon.source.attackType.IsEmpty())
{
this.attackType = this.weapon.source.attackType.ToEnum(true);
}
bool flag2 = this.IsCane || this.weapon.Evalue(482) > 0;
if (flag2)
{
this.weaponSkill = this.CC.elements.GetOrCreateElement(305);
}
this.dBonus = this.CC.DMG + this.CC.encLV + this.weapon.DMG;
this.dNum = this.weapon.source.offense[0];
this.dDim = this.weapon.c_diceDim;
this.dMulti = 0.6f + (float)(this.weaponSkill.GetParent(this.CC).Value + this.weaponSkill.Value / 2 + this.CC.Evalue(flag2 ? 304 : (this.IsRanged ? 133 : 132))) / 50f;
this.dMulti += 0.05f * (float)this.CC.Evalue(this.IsRanged ? 1404 : 1400);
this.toHitBase = EClass.curve((this.IsCane ? this.CC.WIL : this.CC.DEX) / 4 + this.weaponSkill.GetParent(this.CC).Value / 3 + this.weaponSkill.Value, 50, 25, 75) + 50;
this.toHitFix = this.CC.HIT + this.weapon.HIT;
this.penetration = this.weapon.Penetration + this.CC.Evalue(92);
if (this.IsCane)
{
this.toHitBase += 50;
}
}
if (this.ammo != null)
{
this.dNumAmmo = ((this.ammo.source.offense.Length != 0) ? this.ammo.source.offense[0] : 0);
this.dDimAmmo = this.ammo.c_diceDim;
this.dBonusAmmo = this.ammo.DMG;
if (this.dNumAmmo < 1)
{
this.dNumAmmo = 1;
}
if (this.dDimAmmo < 1)
{
this.dDimAmmo = 1;
}
this.dBonus += this.ammo.DMG;
this.toHitFix += this.ammo.HIT;
}
else
{
this.dNumAmmo = 0;
this.dDimAmmo = 0;
}
プレイヤーは、戦術スキルを使用して近接武器を振るうか、または射撃スキルを使用して遠距離武器を撃ちます。
武器がワンド、または理力武器のエンチャントが付いている場合、戦術スキルまたは射撃スキルの代わりに詠唱スキルを、武器スキル(長剣、短剣、斧など)の代わりに魔道具スキルを使用します
ダメージボーナスは、プレイヤーのダメージボーナス + 武器の改造道具によるダメージボーナス + 武器のダメージボーナスです
ダメージ倍率は0.6 + (武器に対応する主能力 + 武器スキル / 2 + (近接武器は戦術、遠距離武器は射撃、ワンドまたは理力武器の場合魔道具)) / 50
プレイヤーが武器の知識/射撃の名手のフィートを持っている場合、追加ダメージが0.05 x (フィートランク)の割合で与えられます。(事実上、+0.05または+0.10)
命中率は(器用、ワンドや理力武器なら意志) / 4 + 武器スキル / 3 + (近接武器は戦術、遠距離武器は射撃、ワンドまたは理力武器の場合魔道具) で、最小値は25+50、最大値は75+50です。
ワンドの命中率には、さらに+50が加わります
命中ボーナスは、キャラクターの命中ボーナス + 武器の命中ボーナス + 弾薬の命中ボーナス(弾薬を装填している場合)
ダメージボーナスは、キャラクターのダメージボーナス + 武器のダメージボーナス + 弾薬の改造道具のダメージボーナス(弾薬を装填している場合)
貫通力は、キャラクターの貫通率 + 武器の貫通率
遠隔武器の命中率&ダメージと距離
distMod = 100;
…
if (!isThrow)
{
if (!IsRanged)
{
attackStyle = CC.body.GetAttackStyle();
}
else if (TP != null)
{
int num = CC.pos.Distance(TP);
distMod = Mathf.Max(115 - 10 * Mathf.Abs(num - toolRange.BestDist) * 100 / (100 + weapon.Evalue(605) * 10), 80);
}
}
…
dMulti = dMulti * (float)distMod / 100f;
toHit = toHitBase + toHitFix;
toHit = toHit * distMod / 100;
遠隔武器には、適正の攻撃距離があり、それによって命中率(toHit)とダメージ(dMulti)は修正されます。
Evalue(605)はmod_precisionであり、遠隔武器の精密射撃MODレベルにあたります。
適正攻撃距離に離れるほど、ペナルティも増えます。
精密射撃MODのない場合、0(適正攻撃距離)の時は命中率、ダメージ共に115%になります、±1は105%、±2は95%、±3は85%、それ以降は80%になります。
Elin:武器#距離修正を参照すると、それが今(EA23.46)でも正しいことが分かります。
精密射撃MODは更に攻撃距離の影響を減少します。例えば精密射撃MODレベル10の場合、±1は110%、±2は105%…になります。
魔法:魔法のパワー
これはAbility.csの44行目です
ここに、NPCの魔法のパワーを決定するためにどの式を使用するかを記述したコードが書かれています
public override int GetPower(Card c)
{
int num = base. Value * 8 + 50;
if (!c.IsPC)
{
num = Mathf.Max(num, c.LV * 6 + 30);
if (c.IsPCFactionOrMinion && !base.source.aliasParent.IsEmpty())
{
num = Mathf.Max(num, c.Evalue(base.source.aliasParent) * 4 + 30);
} }.
}
num = EClass.curve(num, 400, 100, 75);
if (this is Spell)
{
num = num * (100 + c.Evalue(411)) / 100;
}
return num;
}.ここではカーブ関数を使用します:
public static int curve(int a, int start, int step, int rate = 75)
{
if (a <= start)
{
return a;
}
for (int i = 0; i < 10; i++)
{
int num = start + i * step;
if (a <= num)
{
return a;
}
a = num + (a - num) * rate / 100;
}
return a;
} }.プレイヤーの場合、魔法のパワーはcurve( (魔法レベル x 8 + 50), 400, 100, 75 ) x (100 + 魔法強化エンチャント) / 100 です
プレイヤー以外の場合、魔法のパワーは魔法レベル x 8 + 50 か、キャラレベル x 6 + 30 か、主能力×4 + 30の中の最も大きいものです
curve 関数について: curve(a, start, step, rate)
簡単に言うと、この関数は数値を圧縮するために使われます。
i = 0 をセットします。計算 num = start + i * step. a が num を超えたら、超えた部分に rate / 100 を掛けます。その後、i を 1 ずつ増やします。上記のステップを 10 回繰り返します。
関数の曲線の傾きは徐々に小さくなり、(rate / 100)^10 となります。
魔法:攻撃魔法
ダイス数、ダイス面、ダメージボーナスは切り捨て。
| 魔法 | ダイス数 | ダイス面 | ダメージボーナス | 備考 |
|---|---|---|---|---|
| 手 | 1+魔法のパワー/100+対応主能力/10 | 3+魔法のパワー/50 | 近接範囲 | |
| 矢 | 1+魔法のパワー/160+対応主能力/30 | 8+魔法のパワー/12 | 魔法のパワー/25 | 単体攻撃 |
| 光線 | 1+魔法のパワー/120+対応主能力/20 | 4+魔法のパワー/20 | 10マスにわたる直線上のすべてのターゲットにダメージを与える | |
| 球 | 1+魔法のパワー/70+対応主能力/20 | 2+魔法のパワー/35 | 発動者から5マスの範囲のボール内のすべてのターゲットにダメージを与える
ダメージ = ダメージ x 100 / (90 + 射程 x 10) | |
| 瘴気 | 2+魔法のパワー/150 | 5+魔法のパワー/80 | ターンに1回ダメージを与える | |
| ブレス | 1+魔法のパワー/80+対応主能力/20 | 6+魔法のパワー/100 | 対応主能力/4 | 発動者から7マスにわたる35°の円錐内のすべてのターゲットにダメージを与える |
| メテオ | 1+魔法のパワー/150 | 4+対応主能力*3 | 火炎属性固定
ダメージ 発動者から10マスの半径のボール内のすべてのターゲットにダメージを与えます。 壁でブロックされることがあります。 また、発動者にもダメージを与えます。 | |
| 地震 | 1+魔法のパワー/30 | 2+対応主能力/3 | 衝撃属性固定
発動者から12マスの半径のボール内のすべてのターゲットにダメージを与えます。 重力デバフを持つ敵には、最大ダイスダメージの2倍のダメージを与えます。 浮遊効果を持つ敵には、ダメージの半分を与えます。 | |
| 破呪 | 1+魔法のパワー/160+対応主能力/30 | 8+魔法のパワー/12 | 魔法のパワー/25 | 対象のすべてのデバフを除去し、周囲の敵にダメージを与えます。
対象に少なくとも1つのデバフがなければ効果はありません。 |
魔法:回復魔法
| 魔法 | ダイス数 | ダイス面 | 回復ボーナス | 備考 |
|---|---|---|---|---|
| 軽傷治癒 | 1+魔法のパワー/50+Will/30 | 5+魔法のパワー/40 | 魔法のパワー/30 | |
| 重傷治癒 | 2+魔法のパワー/40+Will/25 | 6+魔法のパワー/30 | 魔法のパワー/25 | |
| 致命傷治癒 | 3+魔法のパワー/35+Will/20 | 7+魔法のパワー/25 | 魔法のパワー/20 | |
| Healing | 4+魔法のパワー/30+Will/15 | 8+魔法のパワー/20 | 魔法のパワー/15 | |
| 《エリス》の癒し | 5+魔法のパワー/25+Will/10 | 9+魔法のパワー/15 | 魔法のパワー/10 | |
| 《オディナ》の癒し | 6+魔法のパワー/20+Will/5 | 10+魔法のパワー/10 | 魔法のパワー/5 | |
| 《ジュア》の癒し | 8+魔法のパワー/10+Will | 15+魔法のパワー/5 | 魔法のパワー | |
| 自然の抱擁 | 1+魔法のパワー/125 | 4+魔法のパワー/75 |
魔法:バフ魔法
| 魔法 | パワー | 持続時間 | 備考 |
|---|---|---|---|
| (属性)の唄 | (魅力/40 + 1)*5 | 魔法のパワー/25 + 8 | ここでいう「パワー」は、獲得できる属性耐性のこと |
| テレパシー | 固定 | 魔法のパワー/5 + 15 | |
| 透明化 | 魔法のパワー/30 + 5 | 魔法のパワー/12 + 6 | |
| 透明可視 | 魔法のパワー/40 + 6 | 魔法のパワー/6 + 12 | |
| インコグニート | 固定 | 魔法のパワー/2 + 20 | |
| 猫の目 | 魔法のパワー/30 + 5 | 魔法のパワー*3 | |
| ホーリーヴェイル | 固定 | 魔法のパワー/6 + 5 | |
| 元素保護 | 魔法のパワー/200 + 5 | 魔法のパワー/15 + 8 | ここでいう「パワー」は、獲得できる元素耐性のこと |
| 英雄 | 筋力: 魔法のパワー/30 + 5
器用: 魔法のパワー/30 + 5 |
魔法のパワー/4 + 10 | |
| 浮遊 | 固定 | 魔法のパワー/5 + 10 | |
| 聖なる盾 | 魔法のパワー/15 + 15 | 魔法のパワー/3 + 10 | |
| 知者 | 魔力: 魔法のパワー/40 + 6
学習: 魔法のパワー/40 + 6 読書: 魔法のパワー/40 + 3 |
魔法のパワー/4 + 10 | |
| ホウキ変容 | 固定 | 魔法のパワー + 30 |
魔法:デバフ魔法
| 魔法 | パワー | 持続時間 | 備考 |
|---|---|---|---|
| 瘴気 | 固定 | 魔法のパワー/100 + 5 | |
| グラビティ | 固定 | 魔法のパワー/20 + 10 | |
| 沈黙 | 固定 | 魔法のパワー/80 + 5 | |
| 脆弱 | 固定 | 魔法のパワー/50 + 10 | |
| 災い | 魔法のパワー/30 + 50 | 魔法のパワー/50 + 10 | ここでいう「パワー」は、運の低下量のこと |
| 破門 | 固定 | 魔法のパワー/50 + 20 | |
| 元素の傷跡 | 魔法のパワー/100 + 5 | 魔法のパワー/40 + 8 | ここでいう「パワー」は、元素耐性の低下量のこと |
魔法:召喚魔法
case EffectId.Funnel:
{
if (EClass._zone.CountMinions(CC) > CC.MaxSummon || CC.c_uidMaster != 0)
{
CC.Say("summon_ally_fail", CC, null, null);
return;
}
CC.Say("spell_funnel", CC, element.Name.ToLower(), null);
CC.PlaySound("spell_funnel", 1f, true);
Chara chara = CharaGen.Create("bit", -1);
chara.SetMainElement(element.source.alias, element.Value, true);
chara.SetSummon(20 + power / 20 + EClass.rnd(10));
chara.SetLv(power / 15);
EClass._zone.AddCard(chara, tp.GetNearestPoint(false, false, true, false));
chara.PlayEffect("teleport", true, 0f, default(Vector3));
chara.MakeMinion(CC, MinionType.Default);
return;
}
| 魔法 | 持続時間 | レベル | 備考 |
|---|---|---|---|
| 具象 | 20 + rnd (10) + 魔法のパワー / 20 | 魔法のパワー / 15 | |
| 動物召喚 | 死ぬまで | 魔法レベル * (100 + 魔法のパワー / 10) / 100 + 魔法のパワー / 30 | |
| アンデッド妹召喚 | 死ぬまで | 魔法レベル* (100 + 魔法のパワー / 10) / 100 + 魔法のパワー / 30 | |
| 影召喚 | 死ぬまで | 魔法のパワー / 10 + 1 | 自爆攻撃を行う |