diff --git a/src/engine/objects/PlayerCombatStats.java b/src/engine/objects/PlayerCombatStats.java index 05c33739..e5fe2681 100644 --- a/src/engine/objects/PlayerCombatStats.java +++ b/src/engine/objects/PlayerCombatStats.java @@ -182,8 +182,7 @@ public class PlayerCombatStats { if(weapon != null && weapon.getItemBase().isStrBased()){ atr = (((primaryStat / 2) + (skillLevel * 4 + masteryLevel * 3) + prefixValues) * preciseRune + atrEnchants) * (1.0f + stanceValue); - atr += 1; - atr = (float) Math.ceil(atr); + atr = (float) Math.round(atr); }else { float dexterity = getDexAfterPenalty(this.owner); atr = dexterity / 2; @@ -193,7 +192,7 @@ public class PlayerCombatStats { atr *= preciseRune; atr += atrEnchants; 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(); float dexterity = getDexAfterPenalty(this.owner); - //dexterity += this.owner.bonuses.getFloat(Enum.ModType.Attr, Enum.SourceType.Dexterity); float luckyRune = 1.0f; for(CharacterRune rune : this.owner.runes){ @@ -577,16 +575,19 @@ public class PlayerCombatStats { else if(this.owner.charItemManager != null && this.owner.charItemManager.getEquipped(2) != null && !this.owner.charItemManager.getEquipped(2).getItemBase().isShield()) 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; defense += (1 + blockSkill / 100) * shieldDefense; defense += (weaponSkill / 2); defense += (masterySkill / 2); defense += dexterity * 2; - defense *= luckyRune; defense += flatBonuses; + defense *= luckyRune; defense *= stanceMod; - defense = (int)defense; - this.defense = (int)defense; + defense = Math.round(defense); + this.defense = (int) defense; } public static float calculateModifiedSkill(String skillName, PlayerCharacter pc) { @@ -680,7 +681,7 @@ public class PlayerCombatStats { for(Item equipped : pc.charItemManager.getEquipped().values()){ ItemBase ib = equipped.getItemBase(); if(ib.isHeavyArmor() || ib.isLightArmor() || ib.isMediumArmor()){ - penaltyFactor += (ib.dexReduction); + penaltyFactor += ib.dexReduction; } } @@ -689,7 +690,8 @@ public class PlayerCombatStats { float totalPenalty = dex * penaltyFactor; - return Math.round(dex - totalPenalty); + float returnedDex = Math.round(dex - totalPenalty); + return (int) returnedDex; } }