combat to include armor piercing calculation

This commit is contained in:
2023-01-28 17:57:40 -06:00
parent b2fd5990af
commit 61bdda7886
2 changed files with 60 additions and 2 deletions
+54
View File
@@ -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;
+6 -2
View File
@@ -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)) {