rendered paste bodypublic void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets)
{
if (activeChar.isAlikeDead())
return;
int damage = 0;
if (Config.DEBUG)
if (Config.DEBUG) _log.fine("Begin Skill processing in Pdam.java " + skill.getSkillType());
for(int index = 0;index < targets.length;index++)
{
L2Character target = (L2Character)targets[index];
if (target.isAlikeDead())
continue;
boolean dual = activeChar.isUsingDualWeapon();
boolean shld = Formulas.getInstance().calcShldUse(activeChar, target);
boolean crit = Formulas.getInstance().calcCrit(activeChar.getCriticalHit(target, skill));
if(!crit && (skill.getCondition() & L2Skill.COND_CRIT) != 0)
damage = 0;
else
damage = (int)Formulas.getInstance().calcPhysDam(
activeChar, target, skill, shld, crit, dual, false);
if (damage > 0)
{
//Start Check For Fatal Counter - MickyLee
if (skill.getId() == 314)
{
//Calculate the amount of lost HP and use that to calculate damage given to target
double counterDMG = activeChar.getMaxHp() - activeChar.getCurrentHp();
if (skill.getLevel() == 1)
{
damage = (int)(counterDMG * .40);
}
else if (skill.getLevel() == 2)
{
damage = (int)(counterDMG * .405);
}
else if (skill.getLevel() == 3)
{
damage = (int)(counterDMG * .41);
}
else if (skill.getLevel() == 4)
{
damage = (int)(counterDMG * .415);
}
else if (skill.getLevel() == 5)
{
damage = (int)(counterDMG * .42);
}
else if (skill.getLevel() == 6)
{
damage = (int)(counterDMG * .425);
}
else if (skill.getLevel() == 7)
{
damage = (int)(counterDMG * .43);
}
else if (skill.getLevel() == 8)
{
damage = (int)(counterDMG * .435);
}
else if (skill.getLevel() == 9)
{
damage = (int)(counterDMG * .44);
}
else if (skill.getLevel() == 10)
{
damage = (int)(counterDMG * .445);
}
else if (skill.getLevel() == 11)
{
damage = (int)(counterDMG * .45);
}
else if (skill.getLevel() == 12)
{
damage = (int)(counterDMG * .455);
}
else if (skill.getLevel() == 13)
{
damage = (int)(counterDMG * .46);
}
else if (skill.getLevel() == 14)
{
damage = (int)(counterDMG * .465);
}
else if (skill.getLevel() == 15)
{
damage = (int)(counterDMG * .47);
}
else if (skill.getLevel() == 16)
{
damage = (int)(counterDMG * .475);
}
}
target.reduceCurrentHp(damage, activeChar);
if (activeChar instanceof L2PcInstance) {
SystemMessage sm = new SystemMessage(SystemMessage.YOU_DID_S1_DMG);
sm.addNumber(damage);
activeChar.sendPacket(sm);
}
// activate attacked effects, if any
target.stopEffect(skill.getId());
if (target.getEffect(skill.getId()) != null)
target.removeEffect(target.getEffect(skill.getId()));
skill.getEffects(activeChar, target);
}
else
{
SystemMessage sm = new SystemMessage(614);
sm.addString(skill.getName() + " failed.");
activeChar.sendPacket(sm);
}
}
}