Static 30% change for skill MP consumption.

This commit is contained in:
MobiusDev 2019-01-11 05:48:43 +00:00
parent d76d67c42e
commit e7ceedbb48
4 changed files with 36 additions and 24 deletions

View File

@ -4384,14 +4384,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
// Absorb MP from the damage inflicted.
if (skill != null) // Classic: Used to reduce skill MP consumption. See Orfen's Earring.
{
double absorbPercent = _stat.getValue(Stats.ABSORB_MANA_DAMAGE_PERCENT, 0);
if (absorbPercent > 0)
if (Rnd.get(10) < 3) // Classic: Static 30% change.
{
int absorbDamage = (int) Math.min((absorbPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
if (absorbDamage > 0)
double absorbPercent = _stat.getValue(Stats.ABSORB_MANA_DAMAGE_PERCENT, 0);
if (absorbPercent > 0)
{
setCurrentMp(_status.getCurrentMp() + absorbDamage);
int absorbDamage = (int) Math.min((absorbPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
if (absorbDamage > 0)
{
setCurrentMp(_status.getCurrentMp() + absorbDamage);
}
}
}
}

View File

@ -4384,14 +4384,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
// Absorb MP from the damage inflicted.
if (skill != null) // Classic: Used to reduce skill MP consumption. See Orfen's Earring.
{
double absorbPercent = _stat.getValue(Stats.ABSORB_MANA_DAMAGE_PERCENT, 0);
if (absorbPercent > 0)
if (Rnd.get(10) < 3) // Classic: Static 30% change.
{
int absorbDamage = (int) Math.min((absorbPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
if (absorbDamage > 0)
double absorbPercent = _stat.getValue(Stats.ABSORB_MANA_DAMAGE_PERCENT, 0);
if (absorbPercent > 0)
{
setCurrentMp(_status.getCurrentMp() + absorbDamage);
int absorbDamage = (int) Math.min((absorbPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
if (absorbDamage > 0)
{
setCurrentMp(_status.getCurrentMp() + absorbDamage);
}
}
}
}

View File

@ -4384,14 +4384,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
// Absorb MP from the damage inflicted.
if (skill != null) // Classic: Used to reduce skill MP consumption. See Orfen's Earring.
{
double absorbPercent = _stat.getValue(Stats.ABSORB_MANA_DAMAGE_PERCENT, 0);
if (absorbPercent > 0)
if (Rnd.get(10) < 3) // Classic: Static 30% change.
{
int absorbDamage = (int) Math.min((absorbPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
if (absorbDamage > 0)
double absorbPercent = _stat.getValue(Stats.ABSORB_MANA_DAMAGE_PERCENT, 0);
if (absorbPercent > 0)
{
setCurrentMp(_status.getCurrentMp() + absorbDamage);
int absorbDamage = (int) Math.min((absorbPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
if (absorbDamage > 0)
{
setCurrentMp(_status.getCurrentMp() + absorbDamage);
}
}
}
}

View File

@ -4384,14 +4384,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
// Absorb MP from the damage inflicted.
if (skill != null) // Classic: Used to reduce skill MP consumption. See Orfen's Earring.
{
double absorbPercent = _stat.getValue(Stats.ABSORB_MANA_DAMAGE_PERCENT, 0);
if (absorbPercent > 0)
if (Rnd.get(10) < 3) // Classic: Static 30% change.
{
int absorbDamage = (int) Math.min((absorbPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
if (absorbDamage > 0)
double absorbPercent = _stat.getValue(Stats.ABSORB_MANA_DAMAGE_PERCENT, 0);
if (absorbPercent > 0)
{
setCurrentMp(_status.getCurrentMp() + absorbDamage);
int absorbDamage = (int) Math.min((absorbPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
if (absorbDamage > 0)
{
setCurrentMp(_status.getCurrentMp() + absorbDamage);
}
}
}
}