fortitudes handled last
This commit is contained in:
@@ -850,6 +850,22 @@ public enum CombatManager {
|
||||
else
|
||||
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;
|
||||
|
||||
errorTrack = 12;
|
||||
@@ -1055,10 +1071,12 @@ public enum CombatManager {
|
||||
|
||||
//calculate resists in if any
|
||||
|
||||
|
||||
|
||||
if (resists != null)
|
||||
return resists.getResistedDamage(source, target, damageType, damage, 0);
|
||||
else
|
||||
return damage;
|
||||
damage = resists.getResistedDamage(source, target, damageType, damage, 0);
|
||||
|
||||
return damage;
|
||||
}
|
||||
|
||||
private static void sendPassiveDefenseMessage(AbstractCharacter source, ItemBase wb, AbstractWorldObject target, int passiveType, DeferredPowerJob dpj, boolean mainHand) {
|
||||
@@ -1400,9 +1418,9 @@ public enum CombatManager {
|
||||
|
||||
Resists resists = ac.getResists();
|
||||
|
||||
if (resists != null)
|
||||
if (resists != null) {
|
||||
amount = resists.getResistedDamage(target, ac, ds.getDamageType(), amount, 0);
|
||||
|
||||
}
|
||||
total += amount;
|
||||
}
|
||||
|
||||
|
||||
@@ -101,9 +101,10 @@ public class CombatUtilities {
|
||||
if (!target.isAlive())
|
||||
return;
|
||||
|
||||
if (AbstractWorldObject.IsAbstractCharacter(target))
|
||||
if (AbstractWorldObject.IsAbstractCharacter(target)) {
|
||||
damage = Resists.handleFortitude((AbstractCharacter) target,DamageType.Crush,damage);
|
||||
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);
|
||||
|
||||
//Don't send 0 damage kay thanx.
|
||||
|
||||
@@ -125,7 +125,7 @@ public class Resists {
|
||||
}
|
||||
|
||||
//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)))
|
||||
return damage;
|
||||
PlayerBonuses bonus = target.getBonuses();
|
||||
@@ -456,10 +456,11 @@ public class Resists {
|
||||
//handle fortitudes
|
||||
//damage = handleFortitude(target, type, damage);
|
||||
//calculate armor piercing
|
||||
float ap = source.getBonuses().getFloatPercentAll(ModType.ArmorPiercing, SourceType.None);
|
||||
float damageAfterResists = damage;
|
||||
if(type.equals(DamageType.Pierce) || type.equals(DamageType.Crush) || type.equals(DamageType.Slash))
|
||||
damageAfterResists = damage * (1 - (this.getResist(type, trains) * 0.01f) + ap);
|
||||
//float ap = 0;
|
||||
//if(type.equals(DamageType.Pierce) || type.equals(DamageType.Crush) || type.equals(DamageType.Slash))
|
||||
//source.getBonuses().getFloatPercentAll(ModType.ArmorPiercing, SourceType.None);
|
||||
|
||||
float damageAfterResists = damage * (1 - (this.getResist(type, trains) * 0.01f));
|
||||
//check to see if any damage absorbers should cancel
|
||||
if (target != null) {
|
||||
//debug damage shields if any found
|
||||
@@ -479,7 +480,7 @@ public class Resists {
|
||||
}
|
||||
target.cancelOnTakeDamage(type, (damageAfterResists));
|
||||
}
|
||||
damageAfterResists = handleFortitude(target, type, damageAfterResists);
|
||||
//damageAfterResists = handleFortitude(target, type, damageAfterResists);
|
||||
return damageAfterResists;
|
||||
}
|
||||
|
||||
|
||||
@@ -303,9 +303,10 @@ public class HealthEffectModifier extends AbstractEffectModifier {
|
||||
|
||||
// calculate resists in if any
|
||||
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;
|
||||
else
|
||||
}else
|
||||
damage = resists.getResistedDamage(source, null, damageType, damage * -1, trains) * -1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user