Magical vampiric effects.
Contributed by Liamxroy.
This commit is contained in:
parent
50fdd83e21
commit
5cf8f30b9d
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user