Browse Source

reconstructed passive chance formulas

lakebane-ai
FatBoy-DOTC 3 weeks ago
parent
commit
603d4ca3a8
  1. 12
      src/engine/objects/PlayerCharacter.java

12
src/engine/objects/PlayerCharacter.java

@ -4736,27 +4736,28 @@ public class PlayerCharacter extends AbstractCharacter {
return 0; return 0;
float blockBonusFromShield = 0; float blockBonusFromShield = 0;
blockBonusFromShield = offHand.getItemBase().getBlockMod() * 100; ItemBase ib = offHand.getItemBase();
blockBonusFromShield = ib.getBlockMod() * 5;
for(Effect eff : offHand.effects.values()){ for(Effect eff : offHand.effects.values()){
for(AbstractEffectModifier mod : eff.getEffectModifiers()){ for(AbstractEffectModifier mod : eff.getEffectModifiers()){
if(mod.modType.equals(ModType.PassiveDefense)){ if(mod.modType.equals(ModType.PassiveDefense)){
float min = mod.minMod; float min = mod.minMod;
int trains = eff.getTrains(); int trains = eff.getTrains();
float ramp = mod.getRamp(); float ramp = mod.getRamp();
blockBonusFromShield += (min + (trains * ramp)) * 10; blockBonusFromShield += (min + (trains * ramp)) * 5;
} }
} }
} }
float blockChance = ((passiveSkill.getModifiedAmount() + blockBonusFromShield) / 4) + levelDifference; float blockChance = ((passiveSkill.getModifiedAmount() + blockBonusFromShield) / 4) + levelDifference;
if(this.bonuses != null) if(this.bonuses != null)
blockChance *= 1 + this.bonuses.getFloatPercentAll(ModType.PassiveDefense, SourceType.None); blockChance *= 1 + this.bonuses.getFloatPercentAll(ModType.Block, SourceType.None);
return blockChance; return blockChance;
case "Parry": case "Parry":
if(!fromCombat) if(!fromCombat)
return 0; return 0;
if(mainHand == null) if(mainHand == null && this.getRaceID() != 1999) // saetors can always parry using their horns
return 0; return 0;
int parryBonus = 0; int parryBonus = 0;
@ -4790,6 +4791,9 @@ public class PlayerCharacter extends AbstractCharacter {
float dodgeChance = ((passiveSkill.getModifiedAmount()) / divisor) + levelDifference; float dodgeChance = ((passiveSkill.getModifiedAmount()) / divisor) + levelDifference;
if(this.bonuses != null)
dodgeChance *= 1 + this.bonuses.getFloatPercentAll(ModType.Dodge, SourceType.None);
return dodgeChance; return dodgeChance;
default: default:
return 0; return 0;

Loading…
Cancel
Save