Browse Source

fortitudes handled last

lakebane
FatBoy-DOTC 2 weeks ago
parent
commit
beeca529cd
  1. 26
      src/engine/gameManager/CombatManager.java
  2. 5
      src/engine/mobileAI/utilities/CombatUtilities.java
  3. 13
      src/engine/objects/Resists.java
  4. 5
      src/engine/powers/effectmodifiers/HealthEffectModifier.java

26
src/engine/gameManager/CombatManager.java

@ -850,6 +850,22 @@ public enum CombatManager {
else else
damage = calculateDamage(ac, tarAc, minDamage, maxDamage, damageType, resists); damage = calculateDamage(ac, tarAc, minDamage, maxDamage, damageType, resists);
if(weapon != null && weapon.effects != null){
float armorPierce = 0;
for(Effect eff : weapon.effects.values()){
for(AbstractEffectModifier mod : eff.getEffectModifiers()){
if(mod.modType.equals(ModType.ArmorPiercing)){
armorPierce += mod.minMod * (mod.getRamp() * eff.getTrains());
}
}
}
if(armorPierce > 0){
damage *= 1 - armorPierce;
}
}
Resists.handleFortitude(tarAc,damageType,damage);
float d = 0f; float d = 0f;
errorTrack = 12; errorTrack = 12;
@ -1055,9 +1071,11 @@ public enum CombatManager {
//calculate resists in if any //calculate resists in if any
if (resists != null) if (resists != null)
return resists.getResistedDamage(source, target, damageType, damage, 0); damage = resists.getResistedDamage(source, target, damageType, damage, 0);
else
return damage; return damage;
} }
@ -1400,9 +1418,9 @@ public enum CombatManager {
Resists resists = ac.getResists(); Resists resists = ac.getResists();
if (resists != null) if (resists != null) {
amount = resists.getResistedDamage(target, ac, ds.getDamageType(), amount, 0); amount = resists.getResistedDamage(target, ac, ds.getDamageType(), amount, 0);
}
total += amount; total += amount;
} }

5
src/engine/mobileAI/utilities/CombatUtilities.java

@ -101,9 +101,10 @@ public class CombatUtilities {
if (!target.isAlive()) if (!target.isAlive())
return; return;
if (AbstractWorldObject.IsAbstractCharacter(target)) if (AbstractWorldObject.IsAbstractCharacter(target)) {
damage = Resists.handleFortitude((AbstractCharacter) target,DamageType.Crush,damage);
trueDamage = ((AbstractCharacter) target).modifyHealth(-damage, agent, false); trueDamage = ((AbstractCharacter) target).modifyHealth(-damage, agent, false);
else if (target.getObjectType() == GameObjectType.Building) }else if (target.getObjectType() == GameObjectType.Building)
trueDamage = ((Building) target).modifyHealth(-damage, agent); trueDamage = ((Building) target).modifyHealth(-damage, agent);
//Don't send 0 damage kay thanx. //Don't send 0 damage kay thanx.

13
src/engine/objects/Resists.java

@ -125,7 +125,7 @@ public class Resists {
} }
//Handle Fortitudes //Handle Fortitudes
private static float handleFortitude(AbstractCharacter target, DamageType type, float damage) { public static float handleFortitude(AbstractCharacter target, DamageType type, float damage) {
if (target == null || !(target.getObjectType().equals(Enum.GameObjectType.PlayerCharacter))) if (target == null || !(target.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)))
return damage; return damage;
PlayerBonuses bonus = target.getBonuses(); PlayerBonuses bonus = target.getBonuses();
@ -456,10 +456,11 @@ public class Resists {
//handle fortitudes //handle fortitudes
//damage = handleFortitude(target, type, damage); //damage = handleFortitude(target, type, damage);
//calculate armor piercing //calculate armor piercing
float ap = source.getBonuses().getFloatPercentAll(ModType.ArmorPiercing, SourceType.None); //float ap = 0;
float damageAfterResists = damage; //if(type.equals(DamageType.Pierce) || type.equals(DamageType.Crush) || type.equals(DamageType.Slash))
if(type.equals(DamageType.Pierce) || type.equals(DamageType.Crush) || type.equals(DamageType.Slash)) //source.getBonuses().getFloatPercentAll(ModType.ArmorPiercing, SourceType.None);
damageAfterResists = damage * (1 - (this.getResist(type, trains) * 0.01f) + ap);
float damageAfterResists = damage * (1 - (this.getResist(type, trains) * 0.01f));
//check to see if any damage absorbers should cancel //check to see if any damage absorbers should cancel
if (target != null) { if (target != null) {
//debug damage shields if any found //debug damage shields if any found
@ -479,7 +480,7 @@ public class Resists {
} }
target.cancelOnTakeDamage(type, (damageAfterResists)); target.cancelOnTakeDamage(type, (damageAfterResists));
} }
damageAfterResists = handleFortitude(target, type, damageAfterResists); //damageAfterResists = handleFortitude(target, type, damageAfterResists);
return damageAfterResists; return damageAfterResists;
} }

5
src/engine/powers/effectmodifiers/HealthEffectModifier.java

@ -303,9 +303,10 @@ public class HealthEffectModifier extends AbstractEffectModifier {
// calculate resists in if any // calculate resists in if any
if (resists != null) { if (resists != null) {
if (AbstractWorldObject.IsAbstractCharacter(awo)) if (AbstractWorldObject.IsAbstractCharacter(awo)) {
damage = Resists.handleFortitude((AbstractCharacter) awo, damageType, damage * -1);
damage = resists.getResistedDamage(source, (AbstractCharacter) awo, damageType, damage * -1, trains) * -1; damage = resists.getResistedDamage(source, (AbstractCharacter) awo, damageType, damage * -1, trains) * -1;
else }else
damage = resists.getResistedDamage(source, null, damageType, damage * -1, trains) * -1; damage = resists.getResistedDamage(source, null, damageType, damage * -1, trains) * -1;
} }

Loading…
Cancel
Save