|
|
@ -3844,7 +3844,7 @@ public class PlayerCharacter extends AbstractCharacter { |
|
|
|
|
|
|
|
|
|
|
|
// make sure weapon exists
|
|
|
|
// make sure weapon exists
|
|
|
|
boolean noWeapon = false; |
|
|
|
boolean noWeapon = false; |
|
|
|
ItemBase wb = null; |
|
|
|
ItemBase weaponBase = null; |
|
|
|
if (weapon == null) |
|
|
|
if (weapon == null) |
|
|
|
noWeapon = true; |
|
|
|
noWeapon = true; |
|
|
|
else { |
|
|
|
else { |
|
|
@ -3855,7 +3855,7 @@ public class PlayerCharacter extends AbstractCharacter { |
|
|
|
defaultAtrAndDamage(mainHand); |
|
|
|
defaultAtrAndDamage(mainHand); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} else |
|
|
|
} else |
|
|
|
wb = ib; |
|
|
|
weaponBase = ib; |
|
|
|
} |
|
|
|
} |
|
|
|
float skillPercentage, masteryPercentage; |
|
|
|
float skillPercentage, masteryPercentage; |
|
|
|
float mastDam; |
|
|
|
float mastDam; |
|
|
@ -3905,16 +3905,16 @@ public class PlayerCharacter extends AbstractCharacter { |
|
|
|
this.rangeHandTwo *= range_bonus; |
|
|
|
this.rangeHandTwo *= range_bonus; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
skillPercentage = getModifiedAmount(this.skills.get(wb.getSkillRequired())); |
|
|
|
skillPercentage = getModifiedAmount(this.skills.get(weaponBase.getSkillRequired())); |
|
|
|
masteryPercentage = getModifiedAmount(this.skills.get(wb.getMastery())); |
|
|
|
masteryPercentage = getModifiedAmount(this.skills.get(weaponBase.getMastery())); |
|
|
|
if (masteryPercentage == 0f) |
|
|
|
if (masteryPercentage == 0f) |
|
|
|
mastDam = 0f; |
|
|
|
mastDam = 0f; |
|
|
|
// mastDam = CharacterSkill.getQuickMastery(this, wb.getMastery());
|
|
|
|
// mastDam = CharacterSkill.getQuickMastery(this, weaponBase.getMastery());
|
|
|
|
else |
|
|
|
else |
|
|
|
mastDam = masteryPercentage; |
|
|
|
mastDam = masteryPercentage; |
|
|
|
min = (float) wb.getMinDamage(); |
|
|
|
min = (float) weaponBase.getMinDamage(); |
|
|
|
max = (float) wb.getMaxDamage(); |
|
|
|
max = (float) weaponBase.getMaxDamage(); |
|
|
|
strBased = wb.isStrBased(); |
|
|
|
strBased = weaponBase.isStrBased(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -3926,13 +3926,16 @@ public class PlayerCharacter extends AbstractCharacter { |
|
|
|
this.atrHandTwo = (short) 0; |
|
|
|
this.atrHandTwo = (short) 0; |
|
|
|
else { |
|
|
|
else { |
|
|
|
// calculate atr
|
|
|
|
// calculate atr
|
|
|
|
|
|
|
|
//(Primary Stat / 2) + (Weapon Skill * 4) + (Weapon Mastery * 3) + (ATR Enchantments) * 1.stance modifier
|
|
|
|
float atr = 0; |
|
|
|
float atr = 0; |
|
|
|
atr += (int) skillPercentage * 4f; //<-round down skill% -
|
|
|
|
int primaryStat; |
|
|
|
atr += (int) masteryPercentage * 3f; |
|
|
|
if(weaponBase != null && !weaponBase.isStrBased()){ |
|
|
|
if (this.statStrCurrent > this.statDexCurrent) |
|
|
|
primaryStat = this.statDexCurrent; |
|
|
|
atr += statStrCurrent / 2; |
|
|
|
}else{ |
|
|
|
else |
|
|
|
primaryStat = this.statStrCurrent; |
|
|
|
atr += statDexCurrent / 2; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
atr = (primaryStat * 0.5f) + (skillPercentage * 4) + (masteryPercentage * 3); |
|
|
|
|
|
|
|
|
|
|
|
// add in any bonuses to atr
|
|
|
|
// add in any bonuses to atr
|
|
|
|
if (this.bonuses != null) { |
|
|
|
if (this.bonuses != null) { |
|
|
@ -3943,10 +3946,6 @@ public class PlayerCharacter extends AbstractCharacter { |
|
|
|
float pos_Bonus = (1 + this.bonuses.getFloatPercentPositive(ModType.OCV, SourceType.None)); |
|
|
|
float pos_Bonus = (1 + this.bonuses.getFloatPercentPositive(ModType.OCV, SourceType.None)); |
|
|
|
atr *= pos_Bonus; |
|
|
|
atr *= pos_Bonus; |
|
|
|
|
|
|
|
|
|
|
|
// next precise
|
|
|
|
|
|
|
|
//runes will have their own bonuses.
|
|
|
|
|
|
|
|
// atr *= (1 + ((float) this.bonuses.getShort("rune.Attack") / 100));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//and negative percent modifiers
|
|
|
|
//and negative percent modifiers
|
|
|
|
float neg_Bonus = this.bonuses.getFloatPercentNegative(ModType.OCV, SourceType.None); |
|
|
|
float neg_Bonus = this.bonuses.getFloatPercentNegative(ModType.OCV, SourceType.None); |
|
|
|
|
|
|
|
|
|
|
@ -3963,8 +3962,8 @@ public class PlayerCharacter extends AbstractCharacter { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//calculate speed
|
|
|
|
//calculate speed
|
|
|
|
if (wb != null) |
|
|
|
if (weaponBase != null) |
|
|
|
speed = wb.getSpeed(); |
|
|
|
speed = weaponBase.getSpeed(); |
|
|
|
else |
|
|
|
else |
|
|
|
speed = 20f; //unarmed attack speed
|
|
|
|
speed = 20f; //unarmed attack speed
|
|
|
|
if (weapon != null) |
|
|
|
if (weapon != null) |
|
|
|