aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp5
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp15
2 files changed, 12 insertions, 8 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index f8727ae0745..4695d133a39 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -5278,13 +5278,12 @@ float Player::GetRatingBonusValue(CombatRating cr) const
float Player::GetExpertiseDodgeOrParryReduction(WeaponAttackType attType) const
{
- float baseExpertise = 7.5f;
switch (attType)
{
case BASE_ATTACK:
- return baseExpertise + m_activePlayerData->MainhandExpertise / 4.0f;
+ return m_activePlayerData->MainhandExpertise / 4.0f;
case OFF_ATTACK:
- return baseExpertise + m_activePlayerData->OffhandExpertise / 4.0f;
+ return m_activePlayerData->OffhandExpertise / 4.0f;
default:
break;
}
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index c0057e6ae7b..a2a353aead8 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -120,6 +120,7 @@ bool Player::UpdateStats(Stats stat)
switch (stat)
{
case STAT_AGILITY:
+ UpdateArmor();
UpdateAllCritPercentages();
UpdateDodgePercentage();
break;
@@ -143,7 +144,6 @@ bool Player::UpdateStats(Stats stat)
UpdateAttackPowerAndDamage(true);
}
- UpdateArmor();
UpdateSpellDamageAndHealingBonus();
UpdateManaRegen();
return true;
@@ -254,7 +254,7 @@ void Player::UpdateArmor()
float value = GetFlatModifierValue(unitMod, BASE_VALUE); // base armor
value *= GetPctModifierValue(unitMod, BASE_PCT); // armor percent
-
+ value += GetStat(STAT_AGILITY) * 2.0f; // armor bonus from stats
float baseValue = value;
value += GetFlatModifierValue(unitMod, TOTAL_VALUE); // bonus armor from auras and items
@@ -279,16 +279,21 @@ void Player::UpdateArmor()
float Player::GetHealthBonusFromStamina() const
{
- float ratio = 10.0f;
float stamina = GetStat(STAT_STAMINA);
- return stamina * ratio;
+ float baseStam = std::min(20.0f, stamina);
+ float moreStam = stamina - baseStam;
+
+ return baseStam + (moreStam * 10.0f);
}
float Player::GetManaBonusFromIntellect() const
{
float intellect = GetStat(STAT_INTELLECT);
- return intellect * 15.0f;
+ float baseInt = std::min(20.0f, intellect);
+ float moreInt = intellect - baseInt;
+
+ return baseInt + (moreInt * 15.0f);
}
void Player::UpdateMaxHealth()