Addition of vampiric skill configurations.
This commit is contained in:
@ -188,6 +188,8 @@ public class Config
|
||||
public static boolean ENABLE_ALTER_SKILLS;
|
||||
public static boolean FAKE_DEATH_UNTARGET;
|
||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||
@ -1737,6 +1739,8 @@ public class Config
|
||||
ENABLE_ALTER_SKILLS = characterConfig.getBoolean("EnableAlterSkills", true);
|
||||
FAKE_DEATH_UNTARGET = characterConfig.getBoolean("FakeDeathUntarget", true);
|
||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||
|
@ -4620,14 +4620,17 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
||||
final boolean isPvP = isPlayable() && target.isPlayable();
|
||||
if (!isPvP || Config.VAMPIRIC_ATTACK_AFFECTS_PVP)
|
||||
{
|
||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||
if ((skill == null) || Config.VAMPIRIC_ATTACK_WORKS_WITH_SKILLS)
|
||||
{
|
||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||
if (absorbDamage > 0)
|
||||
final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
|
||||
if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
|
||||
{
|
||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||
int absorbDamage = (int) Math.min(absorbHpPercent * damage, _stat.getMaxRecoverableHp() - _status.getCurrentHp());
|
||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
|
||||
if (absorbDamage > 0)
|
||||
{
|
||||
setCurrentHp(_status.getCurrentHp() + absorbDamage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4635,14 +4638,17 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
||||
// Absorb MP from the damage inflicted.
|
||||
if (!isPvP || Config.MP_VAMPIRIC_ATTACK_AFFECTS_PVP)
|
||||
{
|
||||
final double absorbMpPercent = _stat.getValue(Stat.ABSORB_MANA_DAMAGE_PERCENT, 0);
|
||||
if (absorbMpPercent > 0)
|
||||
if ((skill != null) || Config.MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE)
|
||||
{
|
||||
int absorbDamage = (int) Math.min((absorbMpPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
|
||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
|
||||
if (absorbDamage > 0)
|
||||
final double absorbMpPercent = _stat.getValue(Stat.ABSORB_MANA_DAMAGE_PERCENT, 0);
|
||||
if (absorbMpPercent > 0)
|
||||
{
|
||||
setCurrentMp(_status.getCurrentMp() + absorbDamage);
|
||||
int absorbDamage = (int) Math.min((absorbMpPercent / 100.) * damage, _stat.getMaxRecoverableMp() - _status.getCurrentMp());
|
||||
absorbDamage = Math.min(absorbDamage, (int) target.getCurrentMp());
|
||||
if (absorbDamage > 0)
|
||||
{
|
||||
setCurrentMp(_status.getCurrentMp() + absorbDamage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user