Magical vampiric effects.

Contributed by Liamxroy.
This commit is contained in:
MobiusDev 2017-11-05 20:36:58 +00:00
parent 50fdd83e21
commit 5cf8f30b9d
16 changed files with 192 additions and 0 deletions

View File

@ -102,6 +102,18 @@ public final class MagicalAttack extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -89,6 +89,18 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -106,6 +106,18 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -104,6 +104,18 @@ public final class MagicalAttackRange extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -102,6 +102,18 @@ public final class MagicalAttack extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -89,6 +89,18 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -106,6 +106,18 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -104,6 +104,18 @@ public final class MagicalAttackRange extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -102,6 +102,18 @@ public final class MagicalAttack extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -89,6 +89,18 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -106,6 +106,18 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -104,6 +104,18 @@ public final class MagicalAttackRange extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -102,6 +102,18 @@ public final class MagicalAttack extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -89,6 +89,18 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -106,6 +106,18 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}

View File

@ -104,6 +104,18 @@ public final class MagicalAttackRange extends AbstractEffect
{
effected.reduceCurrentHp(damage, effector, skill, false, false, mcrit, false);
effector.sendDamageMessage(effected, skill, (int) damage, mcrit, false);
// Absorb HP from the damage inflicted
double absorbPercent = effector.getStat().getValue(Stats.ABSORB_DAMAGE_PERCENT, 0) * effector.getStat().getValue(Stats.ABSORB_DAMAGE_DEFENCE, 1);
if ((absorbPercent > 0) && (Rnd.nextDouble() < effector.getStat().getValue(Stats.ABSORB_DAMAGE_CHANCE)))
{
int absorbDamage = (int) Math.min(absorbPercent * damage, effector.getMaxRecoverableHp() - effector.getCurrentHp());
absorbDamage = Math.min(absorbDamage, (int) effected.getCurrentHp());
if (absorbDamage > 0)
{
effector.setCurrentHp(effector.getCurrentHp() + absorbDamage);
}
}
}
}
}