aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTuxity <kevin.darcel@gmail.com>2012-12-29 11:48:38 +0100
committerTuxity <kevin.darcel@gmail.com>2012-12-29 11:48:38 +0100
commit24eba2359a66e9b897baac6662fb94f7d64ff94e (patch)
tree8c43a9ad9f0e471d7a57b3def134552c88220260 /src
parent6c4e348412fc1bfb15ffedc55043b341e33034b6 (diff)
Core/Stats: Fix haste display in character panel
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 86fd8d2f39c..7df33ceb2d8 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -14089,11 +14089,27 @@ void Unit::ApplyAttackTimePercentMod(WeaponAttackType att, float val, bool apply
{
ApplyPercentModFloatVar(m_modAttackSpeedPct[att], val, !apply);
ApplyPercentModFloatValue(UNIT_FIELD_BASEATTACKTIME+att, val, !apply);
+
+ if (GetTypeId() == TYPEID_PLAYER)
+ {
+ if (att == BASE_ATTACK)
+ ApplyPercentModFloatValue(PLAYER_FIELD_MOD_HASTE, val, !apply);
+ else if (att == RANGED_ATTACK)
+ ApplyPercentModFloatValue(PLAYER_FIELD_MOD_RANGED_HASTE, val, !apply);
+ }
}
else
{
ApplyPercentModFloatVar(m_modAttackSpeedPct[att], -val, apply);
ApplyPercentModFloatValue(UNIT_FIELD_BASEATTACKTIME+att, -val, apply);
+
+ if (GetTypeId() == TYPEID_PLAYER)
+ {
+ if (att == BASE_ATTACK)
+ ApplyPercentModFloatValue(PLAYER_FIELD_MOD_HASTE, -val, apply);
+ else if (att == RANGED_ATTACK)
+ ApplyPercentModFloatValue(PLAYER_FIELD_MOD_RANGED_HASTE, -val, apply);
+ }
}
m_attackTimer[att] = uint32(GetAttackTime(att) * m_modAttackSpeedPct[att] * remainingTimePct);
}
@@ -14101,9 +14117,15 @@ void Unit::ApplyAttackTimePercentMod(WeaponAttackType att, float val, bool apply
void Unit::ApplyCastTimePercentMod(float val, bool apply)
{
if (val > 0)
+ {
ApplyPercentModFloatValue(UNIT_MOD_CAST_SPEED, val, !apply);
+ ApplyPercentModFloatValue(UNIT_MOD_CAST_HASTE, val, !apply);
+ }
else
+ {
ApplyPercentModFloatValue(UNIT_MOD_CAST_SPEED, -val, apply);
+ ApplyPercentModFloatValue(UNIT_MOD_CAST_HASTE, -val, apply);
+ }
}
uint32 Unit::GetCastingTimeForBonus(SpellInfo const* spellProto, DamageEffectType damagetype, uint32 CastingTime) const