35
edits
No edit summary |
No edit summary |
||
Line 29: | Line 29: | ||
return num; | return num; | ||
} | } | ||
</syntaxhighlight> | |||
<syntaxhighlight lang="c#" line="1"> | |||
public bool CalcHit() | |||
{ | |||
if (TC != null) | |||
{ | |||
if (TC.HasCondition<ConDim>() && EClass.rnd(4) == 0) | |||
{ | |||
return Crit(); | |||
} | |||
if (TC.IsDeadOrSleeping) | |||
{ | |||
return Crit(); | |||
} | |||
int num = TC.Evalue(151); | |||
if (num != 0 && toHit < num * 10) | |||
{ | |||
int num2 = evasion * 100 / Mathf.Clamp(toHit, 1, toHit); | |||
if (num2 > 300 && EClass.rnd(num + 250) > 100) | |||
{ | |||
return EvadePlus(); | |||
} | |||
if (num2 > 200 && EClass.rnd(num + 250) > 150) | |||
{ | |||
return EvadePlus(); | |||
} | |||
if (num2 > 150 && EClass.rnd(num + 250) > 200) | |||
{ | |||
return EvadePlus(); | |||
} | |||
} | |||
if (TC.Evalue(57) > EClass.rnd(100)) | |||
{ | |||
return EvadePlus(); | |||
} | |||
} | |||
if (EClass.rnd(20) == 0) | |||
{ | |||
return true; | |||
} | |||
if (EClass.rnd(20) == 0) | |||
{ | |||
return false; | |||
} | |||
if (toHit < 1) | |||
{ | |||
return false; | |||
} | |||
if (evasion < 1) | |||
{ | |||
return true; | |||
} | |||
if (EClass.rnd(toHit) < EClass.rnd(evasion * 3 / 2)) | |||
{ | |||
return false; | |||
} | |||
if (EClass.rnd(5000) < CC.Evalue(73) + 50) | |||
{ | |||
return Crit(); | |||
} | |||
if ((float)CC.Evalue(90) + Mathf.Sqrt(CC.Evalue(134)) > (float)EClass.rnd(200)) | |||
{ | |||
return Crit(); | |||
} | |||
if (CC.Evalue(1420) > 0) | |||
{ | |||
int num3 = Mathf.Min(100, 100 - CC.hp * 100 / CC.MaxHP); | |||
if (num3 >= 50 && num3 * num3 * num3 * num3 / 3 > EClass.rnd(100000000)) | |||
{ | |||
return Crit(); | |||
} | |||
} | |||
return true; | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> |
edits