rendered paste body public boolean calcBlueSkillSuccess(L2Character activeChar, L2Character target, L2Skill skill)
{
int atk = activeChar.getPAtk(activeChar);
int def = 0;
int modifier = 0;
int rate = 0;
int rateMin = _rnd.nextInt(100);
switch (skill.getSkillType()) {
case STUN:
def = target.getMDef(target, skill);
modifier = target.getWIT();
break;
case ROOT:
def = target.getMDef(target, skill);
modifier = target.getDEX();
break;
case PARALYZE:
def = target.getPDef(target);
modifier = target.getWIT();
break;
case SLEEP:
def = target.getMDef(target, skill);
modifier = target.getWIT();
break;
default:
def = target.getPDef(target);
modifier = target.getCON();
break;
}
def = _rnd.nextInt(modifier) * (def / modifier);
rate = (atk - def) / (atk + def);
if (rate > 100) rate = 100; // We shouldn't have more than 100% success rate
if (rate < 1) rate = 1; // We shouldn't have less than 1% success rate
return (rateMin <= rate);
}