解析/戦闘

From Ylvapedia
Revision as of 04:12, 19 January 2025 by トレモロン (talk | contribs) (→‎投擲: 誤記、および英語版由来の誤情報を自分で解読、検証して訂正)


Evalueリスト

Value# Element 備考
(92) 貫通率
(108) 投擲
(132) 戦術
(133) 射撃
(305) 魔道具
(411) 魔法強化エンチャント
(482) 理力武器
(1400) 武器の知識フィート 1, 2
(1404) 射撃の名手フィート 1, 2


敵のレベルに応じたダメージ軽減

バージョン EA23.46: この記事は、Elin最新の安定版リリースに、少なくとも20のマイナーバージョンが遅れています。ページの更新をお願いします。

レベル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;
}


プレイヤーのファクションに属するキャラで、敵のレベルがLv50より高い場合:

与えるダメージに、* (100 - [ 2.5 * √(敵のレベル - 50) か 80 かのうち小さいほう ][1]) / 100が掛けられます。

つまり、Lv1024以上の敵に対してはダメージが80%減少し、Lv51~Lv1023の敵に対しては[sqrt(階数-50) * 2.5]%減少します。

レベル毎のダメージ軽減
敵の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

命中率

バージョン EA23.46: この記事は、Elin最新の安定版リリースに、少なくとも20のマイナーバージョンが遅れています。ページの更新をお願いします。
バージョン EA23.46 のCURVE 関数の入力(オレンジ色)と出力(藍)です。Output = Curve(Input, 50, 25, 75)

「CURVE」とはElinにてどのようににスキル値の有効性にスライドカーブがついているかの具体的な式です。

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


命中率に影響を与える以下の要素は、複合して作用しながら次の表の上から順で適用されます。[2]

命中修正
条件 効果
攻撃者が災い状態 命中 = 75% (0.75をかける)
攻撃者が高所にいる 命中 +20% (1.2をかける)
攻撃者が乗馬している 命中 = 命中 * 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でクランプ[3]])
攻撃者が盲目 命中 = 33.33% (または、遠距離/投擲の場合は10%)         (補正値を掛け算)
対象が盲目 回避率 = 50% (0.5をかける)
対象が朦朧 回避率 = 50% (0.5をかける)
対象が高所にいる 回避率 + 20% (1.2をかける)

二刀流の補足説明:

ここでいう、「手の番号」は利き手・もう片方の手と、カオスシェイプなどが持つ2本目以降の手を表します。

1-100の間でクランプされるのは(2000 / (20 + [攻撃者の二刀流スキル])だけです。つまり、二刀流で最適化するには、二刀流スキルが1980必要です。


ここまでで最終的な命中率と回避率を計算しました。以下では攻撃が命中するか、外れるか、クリティカルになるかの順に、判定します。

対象が朦朧状態の場合、4分の1の確率でクリティカル
対象が死亡または睡眠状態の場合、確定でクリティカル
[対象の見切りスキル] × 10 > 命中の場合、以下の式で見切り成功判定
num = 回避 * 100 / 命中 (として変数numを定義)
'num > 300 & random 0 to ([対象の見切りスキル]+250) > 100 のとき、攻撃は外れる (&というのは&の前後の判定が両立して初めて攻撃が外れるということ)
'num > 200 & random 0 to ([対象の見切りスキル]+250) > 150 のとき、攻撃は外れる
'num > 150 & random 0 to ([対象の見切りスキル]+250) > 200 のとき、攻撃は外れる
[対象の完全回避] > random 0 - 99 のとき、攻撃は外れる (0から99までの値が等確率で選ばれて、それより完全回避が大きいか小さいかを判定に使う)
1 in 20 のとき、攻撃は命中 (おそらく5%で以降の判定を免除して命中することになる)
1 in 20 のとき、攻撃は外れる (おそらく5%で以降の判定を免除して外れることになる)
命中 < 1 のとき、攻撃は外れる
回避 < 1 のとき、攻撃は命中
random 0 - 命中 < random 0 - (回避 * 125 (遠距離攻撃なら150) / 100) のとき、攻撃は外れる (random X-Yは等確率でXからYまでの乱数を生成する関数)
random 0 - 5000 < [攻撃者の感覚]のとき、攻撃はクリティカル
[攻撃者のCriticalスキル] + sqrt([攻撃者の心眼スキル]) > random 0 -200のとき、攻撃はクリティカル
攻撃者が[死の真髄]フィートを所持している場合、以下の判定を行う
   num = 100 - [攻撃者の現在HP] * 100 / [攻撃者の最大HP] (変数numをこのように定義)
   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;
}

プレイヤーの投げたアイテムは投擲武器であってもそうでなくても投擲スキルを参照します。

攻撃エフェクトは常に鈍器です。

重量値は 25 + 投擲武器限定75[4] + 3*√ [アイテムの重量] ですが、下限10、上限400+ 50*√(筋力)があります。

ここでいうアイテムの重量はおそらくゲーム中の??sに1000をかけたものだと考えられます。

武器の材質値は素材の硬度です。上限は200で、これはダークマターの硬度と等しく、下限は武器を投げている場合40、それ以外では20として設定されています

ダイスの数は常に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 + [戦術(近接武器の場合) or 射撃(遠距離武器の場合) or 魔道具(ワンドまたは理力武器の場合)] で、最小値は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であり、遠隔武器の改造道具の精密射撃レベルにあたります。

適正攻撃距離に離れるほど、ペナルティも増えます。

精密射撃の改造道具のない場合、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. anum を超えたら、超えた部分に rate / 100 を掛けます。その後、i を 1 ずつ増やします。上記のステップを 10 回繰り返します。

関数の曲線の傾きは徐々に小さくなり、(rate / 100)^10 となります。

魔法:攻撃魔法

ダイス数、ダイス面、ダメージボーナスは切り捨て。

標準偏差を含むEA23.71時点での各種魔法のダメージ。パラメータは魔力=100固定、x軸は魔法レベル、y軸は平均ダメージ
魔法 ダイス数 ダイス面 ダメージボーナス 備考
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 自爆攻撃を行う
  1. 正確には小さい方を四捨五入したもの
  2. プログラムでは、X=X+1のように、同じ文字が一つの式に複数回登場して右辺にあるものが調整前の数字、左辺にあるものが調整後の数字になる記法があります。
  3. クランプとは値に上限と下限を適用するという意味です。この場合、確率なので0から100%に設定されています
  4. 投擲武器でないときは0