aboutsummaryrefslogtreecommitdiff
path: root/src/game/StatSystem.cpp
diff options
context:
space:
mode:
authorMachiavelli <none@none>2009-10-07 19:34:20 +0200
committerMachiavelli <none@none>2009-10-07 19:34:20 +0200
commitb059ff3839138d5d350045058df77137e00401ea (patch)
treee258c5d0e2b075053cc0f5da09cbae6c40ca4d9d /src/game/StatSystem.cpp
parent58258597d9f056af89f0073588d23c0b0327429b (diff)
* Do not make nonphysical damage spells that use EffectWeaponDmg (like Seal of Command) receive total damage mod % auras twice - based on nos4r2zod's patch for MaNGOS
--HG-- branch : trunk
Diffstat (limited to 'src/game/StatSystem.cpp')
-rw-r--r--src/game/StatSystem.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp
index 74d790de1a4..56bde0e5442 100644
--- a/src/game/StatSystem.cpp
+++ b/src/game/StatSystem.cpp
@@ -409,7 +409,7 @@ void Player::UpdateShieldBlockValue()
SetUInt32Value(PLAYER_SHIELD_BLOCK, GetShieldBlockValue());
}
-void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, float& min_damage, float& max_damage)
+void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bool addTotalPct, float& min_damage, float& max_damage)
{
UnitMods unitMod;
UnitMods attPower;
@@ -436,7 +436,7 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, fl
float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType)/ 14.0f * att_speed;
float base_pct = GetModifierValue(unitMod, BASE_PCT);
float total_value = GetModifierValue(unitMod, TOTAL_VALUE);
- float total_pct = GetModifierValue(unitMod, TOTAL_PCT);
+ float total_pct = addTotalPct ? GetModifierValue(unitMod, TOTAL_PCT) : 1.0f;
float weapon_mindamage = GetWeaponDamageRange(attType, MINDAMAGE);
float weapon_maxdamage = GetWeaponDamageRange(attType, MAXDAMAGE);
@@ -476,7 +476,7 @@ void Player::UpdateDamagePhysical(WeaponAttackType attType)
float mindamage;
float maxdamage;
- CalculateMinMaxDamage(attType,false,mindamage,maxdamage);
+ CalculateMinMaxDamage(attType, false, true, mindamage, maxdamage);
switch(attType)
{