Browse Source

combat to include armor piercing calculation

master
FatBoy-DOTC 2 years ago
parent
commit
61bdda7886
  1. 54
      src/engine/objects/Item.java
  2. 8
      src/engine/objects/Resists.java

54
src/engine/objects/Item.java

@ -319,6 +319,60 @@ public class Item extends AbstractWorldObject { @@ -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;

8
src/engine/objects/Resists.java

@ -305,9 +305,13 @@ public class Resists { @@ -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)) {

Loading…
Cancel
Save