| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -182,8 +182,7 @@ public class PlayerCombatStats { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if(weapon != null && weapon.getItemBase().isStrBased()){ | 
					 | 
					 | 
					 | 
					        if(weapon != null && weapon.getItemBase().isStrBased()){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            atr = (((primaryStat / 2) + (skillLevel * 4 + masteryLevel * 3) + prefixValues) * preciseRune + atrEnchants) * (1.0f + stanceValue); | 
					 | 
					 | 
					 | 
					            atr = (((primaryStat / 2) + (skillLevel * 4 + masteryLevel * 3) + prefixValues) * preciseRune + atrEnchants) * (1.0f + stanceValue); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            atr += 1; | 
					 | 
					 | 
					 | 
					            atr = (float) Math.round(atr); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            atr = (float) Math.ceil(atr); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }else { | 
					 | 
					 | 
					 | 
					        }else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            float dexterity = getDexAfterPenalty(this.owner); | 
					 | 
					 | 
					 | 
					            float dexterity = getDexAfterPenalty(this.owner); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            atr = dexterity / 2; | 
					 | 
					 | 
					 | 
					            atr = dexterity / 2; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -193,7 +192,7 @@ public class PlayerCombatStats { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            atr *= preciseRune; | 
					 | 
					 | 
					 | 
					            atr *= preciseRune; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            atr += atrEnchants; | 
					 | 
					 | 
					 | 
					            atr += atrEnchants; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            atr *= 1.0f + stanceValue; | 
					 | 
					 | 
					 | 
					            atr *= 1.0f + stanceValue; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            atr = (float) Math.ceil(atr); | 
					 | 
					 | 
					 | 
					            atr = (float) Math.round(atr); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -541,7 +540,6 @@ public class PlayerCombatStats { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            masterySkill = this.owner.skills.get(masteryName).getModifiedAmount(); | 
					 | 
					 | 
					 | 
					            masterySkill = this.owner.skills.get(masteryName).getModifiedAmount(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float dexterity = getDexAfterPenalty(this.owner); | 
					 | 
					 | 
					 | 
					        float dexterity = getDexAfterPenalty(this.owner); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //dexterity += this.owner.bonuses.getFloat(Enum.ModType.Attr, Enum.SourceType.Dexterity);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float luckyRune = 1.0f; | 
					 | 
					 | 
					 | 
					        float luckyRune = 1.0f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        for(CharacterRune rune : this.owner.runes){ | 
					 | 
					 | 
					 | 
					        for(CharacterRune rune : this.owner.runes){ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -577,15 +575,18 @@ public class PlayerCombatStats { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        else if(this.owner.charItemManager != null && this.owner.charItemManager.getEquipped(2) != null && !this.owner.charItemManager.getEquipped(2).getItemBase().isShield()) | 
					 | 
					 | 
					 | 
					        else if(this.owner.charItemManager != null && this.owner.charItemManager.getEquipped(2) != null && !this.owner.charItemManager.getEquipped(2).getItemBase().isShield()) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            blockSkill = 0; | 
					 | 
					 | 
					 | 
					            blockSkill = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        //Defense = (1+Armor skill / 50) * Armor defense + (1 + Block skill / 100) * Shield defense
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        // + (Primary weapon skill / 2) + (Weapon mastery skill/ 2) + ROUND((Dexterity-Dex penalty),0) * 2 + Flat bonuses from rings or cloth
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float defense = (1 + armorSkill/ 50) * armorDefense; | 
					 | 
					 | 
					 | 
					        float defense = (1 + armorSkill/ 50) * armorDefense; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        defense += (1 + blockSkill / 100) * shieldDefense; | 
					 | 
					 | 
					 | 
					        defense += (1 + blockSkill / 100) * shieldDefense; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        defense += (weaponSkill / 2); | 
					 | 
					 | 
					 | 
					        defense += (weaponSkill / 2); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        defense += (masterySkill / 2); | 
					 | 
					 | 
					 | 
					        defense += (masterySkill / 2); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        defense += dexterity * 2; | 
					 | 
					 | 
					 | 
					        defense += dexterity * 2; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        defense *= luckyRune; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        defense += flatBonuses; | 
					 | 
					 | 
					 | 
					        defense += flatBonuses; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        defense *= luckyRune; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        defense *= stanceMod; | 
					 | 
					 | 
					 | 
					        defense *= stanceMod; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        defense = (int)defense; | 
					 | 
					 | 
					 | 
					        defense = Math.round(defense); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        this.defense = (int) defense; | 
					 | 
					 | 
					 | 
					        this.defense = (int) defense; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -680,7 +681,7 @@ public class PlayerCombatStats { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        for(Item equipped : pc.charItemManager.getEquipped().values()){ | 
					 | 
					 | 
					 | 
					        for(Item equipped : pc.charItemManager.getEquipped().values()){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            ItemBase ib = equipped.getItemBase(); | 
					 | 
					 | 
					 | 
					            ItemBase ib = equipped.getItemBase(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if(ib.isHeavyArmor() || ib.isLightArmor() || ib.isMediumArmor()){ | 
					 | 
					 | 
					 | 
					            if(ib.isHeavyArmor() || ib.isLightArmor() || ib.isMediumArmor()){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                penaltyFactor += (ib.dexReduction); | 
					 | 
					 | 
					 | 
					                penaltyFactor += ib.dexReduction; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            } | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -689,7 +690,8 @@ public class PlayerCombatStats { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float totalPenalty = dex *  penaltyFactor; | 
					 | 
					 | 
					 | 
					        float totalPenalty = dex *  penaltyFactor; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return Math.round(dex - totalPenalty); | 
					 | 
					 | 
					 | 
					        float returnedDex = Math.round(dex - totalPenalty); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        return (int) returnedDex; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					 | 
					
  |