Browse Source

healer def stance ATR removed again

lakebane-jobs
FatBoy-DOTC 3 days ago
parent
commit
bfd89036b2
  1. 4
      src/engine/objects/ItemFactory.java
  2. 28
      src/engine/objects/PlayerCombatStats.java

4
src/engine/objects/ItemFactory.java

@ -710,6 +710,8 @@ public class ItemFactory { @@ -710,6 +710,8 @@ public class ItemFactory {
int randomPrefix = TableRoll(vendor.getLevel());
if(vendor.contract.getName().contains("Heavy") || vendor.contract.getName().contains("Medium") || vendor.contract.getName().contains("Leather"))
randomPrefix += vendor.level * 0.5f;
if(randomPrefix > 320)
randomPrefix = 320;
prefixEntry = ModTableEntry.rollTable(prefixTypeTable.modTableID, randomPrefix);
if (prefixEntry != null)
@ -727,6 +729,8 @@ public class ItemFactory { @@ -727,6 +729,8 @@ public class ItemFactory {
int randomSuffix = TableRoll(vendor.getLevel());
if(vendor.contract.getName().contains("Heavy") || vendor.contract.getName().contains("Medium") || vendor.contract.getName().contains("Leather"))
randomSuffix += vendor.level * 0.25f;
if(randomSuffix > 320)
randomSuffix = 320;
suffixEntry = ModTableEntry.rollTable(suffixTypeTable.modTableID, randomSuffix);
if (suffixEntry != null)

28
src/engine/objects/PlayerCombatStats.java

@ -358,13 +358,22 @@ public class PlayerCombatStats { @@ -358,13 +358,22 @@ public class PlayerCombatStats {
float stanceValue = 0.0f;
float atrEnchants = 0;
float healerDefStance = 0.0f;
for(String effID : this.owner.effects.keySet()) {
if (effID.contains("Stance")) {
Effect effect = this.owner.effects.get(effID);
EffectsBase eb = effect.getEffectsBase();
if(eb.getIDString().equals("STC-H-DA"))
if(eb.getIDString().equals("STC-H-DA")){
for (AbstractEffectModifier mod : this.owner.effects.get(effID).getEffectModifiers()) {
if (mod.modType.equals(Enum.ModType.OCV)) {
float percent = mod.getPercentMod();
int trains = this.owner.effects.get(effID).getTrains();
float modValue = percent + (trains * mod.getRamp());
healerDefStance += modValue * 0.01f;
}
}
continue;
}
for (AbstractEffectModifier mod : this.owner.effects.get(effID).getEffectModifiers()) {
if (mod.modType.equals(Enum.ModType.OCV)) {
float percent = mod.getPercentMod();
@ -432,6 +441,7 @@ public class PlayerCombatStats { @@ -432,6 +441,7 @@ public class PlayerCombatStats {
if(stanceValue > 0.0f){
modifier -= (stanceValue);
}
modifier -= healerDefStance;
atr *= modifier;
}
atr = (float) Math.round(atr);
@ -982,12 +992,22 @@ public class PlayerCombatStats { @@ -982,12 +992,22 @@ public class PlayerCombatStats {
float stanceMod = 1.0f;
float atrBuffs = 0.0f;
float healerDefStance = 0.0f;
for(String effID : pc.effects.keySet()) {
if (effID.contains("Stance")) {
Effect effect = pc.effects.get(effID);
EffectsBase eb = effect.getEffectsBase();
if(eb.getIDString().equals("STC-H-DA"))
if(eb.getIDString().equals("STC-H-DA")){
for (AbstractEffectModifier mod : pc.effects.get(effID).getEffectModifiers()) {
if (mod.modType.equals(Enum.ModType.OCV)) {
float percent = mod.getPercentMod();
int trains = pc.effects.get(effID).getTrains();
float modValue = percent + (trains * mod.getRamp());
healerDefStance += modValue * 0.01f;
}
}
continue;
}
for (AbstractEffectModifier mod : pc.effects.get(effID).getEffectModifiers()) {
if (mod.modType.equals(Enum.ModType.OCV)) {
float percent = mod.getPercentMod();
@ -1015,7 +1035,7 @@ public class PlayerCombatStats { @@ -1015,7 +1035,7 @@ public class PlayerCombatStats {
atr *= precise;
atr += atrBuffs;
if(pc.bonuses != null)
atr *= 1 + (pc.bonuses.getFloatPercentAll(Enum.ModType.OCV, Enum.SourceType.None) - (stanceMod - 1) - (precise - 1));
atr *= 1 + (pc.bonuses.getFloatPercentAll(Enum.ModType.OCV, Enum.SourceType.None) - (stanceMod - 1) - (precise - 1) - healerDefStance);
atr *= stanceMod;
return atr;
}

Loading…
Cancel
Save