VampiricDefence formula adjustments.
Contributed by nasseka.
This commit is contained in:
parent
fdb7fdbe3b
commit
394d9d9a4e
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4664,11 +4664,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4664,11 +4664,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4664,11 +4664,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4664,11 +4664,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4664,11 +4664,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4664,11 +4664,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4664,11 +4664,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4663,11 +4663,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4663,11 +4663,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4663,11 +4663,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4662,11 +4662,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4662,11 +4662,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4654,11 +4654,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4654,11 +4654,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4654,11 +4654,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4654,11 +4654,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4654,11 +4654,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4667,11 +4667,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4667,11 +4667,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4666,11 +4666,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4654,11 +4654,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4679,11 +4679,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4686,11 +4686,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4685,11 +4685,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
@ -17,26 +17,15 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author NasSeKa
|
||||||
*/
|
*/
|
||||||
public class VampiricDefence extends AbstractEffect
|
public class VampiricDefence extends AbstractStatPercentEffect
|
||||||
{
|
{
|
||||||
private final int _amount;
|
|
||||||
|
|
||||||
public VampiricDefence(StatSet params)
|
public VampiricDefence(StatSet params)
|
||||||
{
|
{
|
||||||
_amount = params.getInt("amount", 0);
|
super(params, Stat.ABSORB_DAMAGE_DEFENCE);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pump(Creature effected, Skill skill)
|
|
||||||
{
|
|
||||||
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_DEFENCE, 1 - (_amount / 100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4695,11 +4695,12 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||||
{
|
{
|
||||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0);
|
||||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||||
{
|
{
|
||||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||||
|
absorbDamage *= target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||||
if (absorbDamage > 0)
|
if (absorbDamage > 0)
|
||||||
{
|
{
|
||||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||||
|
Loading…
Reference in New Issue
Block a user