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