Core/Players: Fixed autoattack damage in shapeshift forms that don't have offhand attacks but can dual wield (ghost wolf and druids with feral/bear artifacts)

This commit is contained in:
Shauren
2016-08-17 18:52:58 +02:00
parent 4a6cf1b61d
commit d9aca10221
2 changed files with 17 additions and 2 deletions
+1 -1
View File
@@ -1141,7 +1141,7 @@ void Player::Update(uint32 p_time)
}
}
if (haveOffhandWeapon() && isAttackReady(OFF_ATTACK))
if (!IsInFeralForm() && haveOffhandWeapon() && isAttackReady(OFF_ATTACK))
{
if (!IsWithinMeleeRange(victim))
setAttackTimer(OFF_ATTACK, 100);
+16 -1
View File
@@ -2058,7 +2058,17 @@ uint32 Unit::CalculateDamage(WeaponAttackType attType, bool normalized, bool add
float maxDamage = 0.0f;
if (normalized || !addTotalPct)
{
CalculateMinMaxDamage(attType, normalized, addTotalPct, minDamage, maxDamage);
if (IsInFeralForm() && attType == BASE_ATTACK)
{
float minOffhandDamage = 0.0f;
float maxOffhandDamage = 0.0f;
CalculateMinMaxDamage(OFF_ATTACK, normalized, addTotalPct, minOffhandDamage, maxOffhandDamage);
minDamage += minOffhandDamage;
maxDamage += maxOffhandDamage;
}
}
else
{
switch (attType)
@@ -2070,6 +2080,11 @@ uint32 Unit::CalculateDamage(WeaponAttackType attType, bool normalized, bool add
case BASE_ATTACK:
minDamage = GetFloatValue(UNIT_FIELD_MINDAMAGE);
maxDamage = GetFloatValue(UNIT_FIELD_MAXDAMAGE);
if (IsInFeralForm())
{
minDamage += GetFloatValue(UNIT_FIELD_MINOFFHANDDAMAGE);
maxDamage += GetFloatValue(UNIT_FIELD_MAXOFFHANDDAMAGE);
}
break;
case OFF_ATTACK:
minDamage = GetFloatValue(UNIT_FIELD_MINOFFHANDDAMAGE);
@@ -14067,7 +14082,7 @@ float Unit::MeleeSpellMissChance(const Unit* victim, WeaponAttackType attType, u
//calculate miss chance
float missChance = victim->GetUnitMissChance(attType);
if (!spellId && haveOffhandWeapon())
if (!spellId && haveOffhandWeapon() && !IsInFeralForm())
missChance += 19;
// Calculate hit chance