diff --git a/src/engine/objects/Item.java b/src/engine/objects/Item.java index 64f139e3..fb7504fc 100644 --- a/src/engine/objects/Item.java +++ b/src/engine/objects/Item.java @@ -319,6 +319,60 @@ public class Item extends AbstractWorldObject { public short getDurabilityMax() { return durabilityMax; } + public float getArmorPiercing(){ + float val = 1; + for(String eff : this.effectNames){ + switch(eff) + { + case"PRE-001": + val += -0.20f; + break; + case"PRE-002": + val += -0.10f; + break; + case"PRE-003": + val += 0.020f; + break; + case"PRE-004": + val += 0.040f; + break; + case"PRE-005": + val += 0.060f; + break; + case"PRE-006": + val += 0.080f; + break; + case"PRE-007": + val += 0.10f; + break; + case"PRE-008": + val += 0.12f; + break; + case"PRE-009": + val += 0.14f; + break; + case"PRE-010": + val += 0.15f; + break; + case"PRE-311": + val += 0.20f; + break; + case"SUF-008": + val += 0.05f; + break; + case"SUF-009": + val += 0.10f; + break; + case"SUF-010": + val += 0.15f; + break; + case"SUF-301": + val += 0.20f; + break; + } + } + return val; + } public void setDurabilityCurrent(short value) { this.durabilityCurrent = value; diff --git a/src/engine/objects/Resists.java b/src/engine/objects/Resists.java index 4342ae3b..f9f7ddc9 100644 --- a/src/engine/objects/Resists.java +++ b/src/engine/objects/Resists.java @@ -305,9 +305,13 @@ public class Resists { public float getResistedDamage(AbstractCharacter source, AbstractCharacter target, DamageType type, float damage, int trains) { //handle fortitudes damage = handleFortitude(target, type, damage); - //check to see if any damage absorbers should cancel - float damageAfterResists = damage * (1 - (this.getResist(type, trains) / 100)); + float apMod = 0; + + if(source.getCharItemManager().getEquipped(2) != null) { + apMod = source.getCharItemManager().getEquipped(2).getArmorPiercing(); // need to get the item in players off-hand and check for armor piercing enchants + } + float damageAfterResists = damage * (1 - (this.getResist(type, trains) / 100) + apMod); if (target != null) { //debug damage shields if any found if (source.getDebug(2) && source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)) {