|  |  | @ -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; | 
			
		
	
	
		
		
			
				
					|  |  | 
 |