-Added two new effects (BlockTarget & Duel).

-Added <target hp="n%" /> condition (example - Last Attack skill).
-Updated DamOverTime effect - add increase charges count over time.
-Updated EnergyAttack effect to new charges system.
-Updated FatalBlow effect (able to increase skill power damage if target has affected by selected abnormal type).
-Added parameter ignorePhysDefPercent for skills that ignores some % of enemy pDef.
-Added function isInvulnerableFor(player) and updated PcCondOverride for this function.
-NPC and NPC buffers data updated for Othell Ground skill Poison Zone.
-Updated PhysicalAttack effect for skills, that decreases power when using some weapon types, and increases power when using some weapon types. also added isLastAttack parameter (for skill Last Attack atm).
-Added stat momentumSkillPower (for Tyrr' passive). Increases power when player have more charges (max 3).
-Updated some effect for working with maxSkillDamage parameter.
-Updated some old and new skills to 10531.

Contributed by NviX.
This commit is contained in:
MobiusDev
2015-07-14 20:03:39 +00:00
parent b07f46dc5c
commit d722c7a961
26 changed files with 2227 additions and 1002 deletions

View File

@@ -200,6 +200,7 @@ public final class Skill implements IIdentifiable
private final String _attribute;
private final boolean _ignoreShield;
private final int _ignorePhysDefPercent;
private final boolean _isSuicideAttack;
private final boolean _canBeDispeled;
@@ -335,6 +336,7 @@ public final class Skill implements IIdentifiable
_minChance = set.getInt("minChance", Config.MIN_ABNORMAL_STATE_SUCCESS_RATE);
_maxChance = set.getInt("maxChance", Config.MAX_ABNORMAL_STATE_SUCCESS_RATE);
_ignoreShield = set.getBoolean("ignoreShld", false);
_ignorePhysDefPercent = set.getInt("ignorePhysDefPercent", 0);
_nextActionIsAttack = set.getBoolean("nextActionAttack", false);
@@ -1365,7 +1367,7 @@ public final class Skill implements IIdentifiable
}
// Check bad skills against target.
if ((effector != effected) && isBad() && (effected.isInvul() || (effector.isGM() && !effector.getAccessLevel().canGiveDamage())))
if ((effector != effected) && isBad() && ((effected.isInvul() && (!effected.isVulnerableFor(effector))) || (effector.isGM() && !effector.getAccessLevel().canGiveDamage())))
{
return;
}
@@ -1477,7 +1479,7 @@ public final class Skill implements IIdentifiable
{
switch (getId())
{
// TODO: replace with AI
// TODO: replace with AI
case 5852:
case 5853:
{
@@ -1652,6 +1654,14 @@ public final class Skill implements IIdentifiable
return _ignoreShield;
}
/**
* @return the percent of ignore defense of this skill
*/
public int getIgnorePhysDefPercent()
{
return _ignorePhysDefPercent;
}
public boolean canBeDispeled()
{
return _canBeDispeled;