526
edits
No edit summary |
No edit summary |
||
| Line 137: | Line 137: | ||
|resImpact | |resImpact | ||
|衝撃耐性 | |衝撃耐性 | ||
|- | |||
|412 | |||
|slowCorruption | |||
|エーテル鈍化 | |||
|} | |} | ||
| Line 312: | Line 316: | ||
} | } | ||
return c; | return c; | ||
} | |||
==Chara.cs== | |||
===エーテル病進行度=== | |||
public void ModCorruption(int a) | |||
{ | |||
if (a > 0) | |||
{ | |||
if (ResistLv(962) > 0 && EClass.rnd(ResistLv(962) + 1) != 0) | |||
{ | |||
return; | |||
} | |||
int num = Evalue(412); | |||
if (num != 0) | |||
{ | |||
float num2 = (float)a * 100f / (float)Mathf.Max(100 + num * 2, 10); | |||
a = (int)num2 + ((EClass.rndf(1f) > num2 % 1f) ? 1 : 0); | |||
} | |||
} | |||
エーテル病が進行する攻撃に被弾したときに呼び出される処理です。 | |||
エーテル耐性があるならば、 | |||
*蓄積が発生する確率が1/(エーテル耐性評価値+1)にまで下がります。 | |||
*次にエーテル鈍化による減衰を計算します。 | |||
**蓄積量aが、100/(100 + 鈍化*2)倍になります。 ただし、(100 + 鈍化*2)には下限10があります。 | |||
**最後に計算後の蓄積量aを整数にするための処理をします。 | |||
if (a == 0) | |||
{ | |||
return; | |||
} | |||
int num3 = (corruption + a) / 100 - corruption / 100; | |||
for (int i = 0; i < Mathf.Abs(num3); i++) | |||
{ | |||
if (!MutateRandom((num3 > 0) ? 1 : (-1), 100, ether: true)) | |||
{ | |||
break; | |||
} | |||
} | |||
corruption += a; | |||
int num4 = 0; | |||
aが0なら計算を終えます。 | |||
foreach (Element value in elements.dict.Values) | |||
{ | |||
if (value.source.category == "ether") | |||
{ | |||
num4 += value.Value; | |||
} | |||
} | |||
if (num4 > 0 && IsPC) | |||
{ | |||
Tutorial.Reserve("ether"); | |||
} | |||
corruption = num4 * 100 + corruption % 100; | |||
} | } | ||
edits