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:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user