310
edits
(誤記や表記揺れの修正。) |
(→魔法:魔法のパワー: 最新版に更新。解説を修正) |
||
Line 526: | Line 526: | ||
==魔法:魔法のパワー== | ==魔法:魔法のパワー== | ||
EA 23.79 Nightly Patch 1 | |||
これはAbility.csの44行目です | これはAbility.csの44行目です | ||
ここに、魔法のパワーを決定するためにどの式を使用するかを記述したコードが書かれています | |||
<syntaxhighlight lang="「c#」" line="「1」"> | <syntaxhighlight lang="「c#」" line="「1」"> | ||
public override int GetPower(Card c) | public override int GetPower(Card c) | ||
{ | { | ||
int | int a = base.Value * 8 + 50; | ||
if (!c.IsPC) | if (!c.IsPC) | ||
{ | { | ||
a = Mathf.Max(a, c.LV * 6 + 30); | |||
if (c.IsPCFactionOrMinion && !base.source.aliasParent.IsEmpty()) | if (c.IsPCFactionOrMinion && !base.source.aliasParent.IsEmpty()) | ||
{ | { | ||
a = Mathf.Max(a, c.Evalue(base.source.aliasParent) * 4 + 30); | |||
} | } | ||
} | } | ||
a = EClass.curve(a, 400, 100); | |||
if (this is Spell) | if (this is Spell) | ||
{ | { | ||
a = a * Mathf.Max(100 + c.Evalue(411) - c.Evalue(93), 1) / 100; | |||
} | } | ||
return | return a; | ||
} | } | ||
</syntaxhighlight>ここではカーブ関数を使用します:<syntaxhighlight lang="「c#」" line="「1」"> | </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) | ||
Line 567: | Line 569: | ||
return a; | return a; | ||
} }. | } }. | ||
</syntaxhighlight> | </syntaxhighlight>プレイヤーの魔法のパワーはcurve[ ('''魔法レベル''' x 8 + 50), 400, 100, 75 ] x (100 + '''魔法強化エンチャント''' - '''反魔法エンチャント''') / 100 です | ||
ペットや味方ミニオンの場合、魔法のパワーは('''魔法レベル''' x 8 + 50)の部分が、[キャラレベル * 6 + 30] か [関連主能力 * 4 + 30] のうち大きい方で置き換えられます。 | |||
敵などの場合、魔法のパワーは('''魔法レベル''' x 8 + 50)の部分が、[キャラレベル * 6 + 30]で置き換えられます。 | |||
'''curve 関数について: ''' '''<code>curve(a, start, step, rate)</code>''' | '''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>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> となります。 | |||
==魔法:攻撃魔法== | ==魔法:攻撃魔法== | ||
ダイス数、ダイス面、ダメージボーナスは切り捨て。 | ダイス数、ダイス面、ダメージボーナスは切り捨て。 |
edits