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

28
src/engine/objects/PlayerCombatStats.java

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

Loading…
Cancel
Save