Fix character sheet showing wrong values for weapon dependant damage mods
--HG-- branch : trunk
This commit is contained in:
@@ -7320,7 +7320,14 @@ void Player::_ApplyWeaponDependentAuraDamageMod(Item *item, WeaponAttackType att
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!item->IsBroken()&&item->IsFitToSpellRequirements(aura->GetSpellProto()))
|
if (!item->IsBroken()&&item->IsFitToSpellRequirements(aura->GetSpellProto()))
|
||||||
|
{
|
||||||
HandleStatModifier(unitMod, unitModType, float(aura->GetAmount()),apply);
|
HandleStatModifier(unitMod, unitModType, float(aura->GetAmount()),apply);
|
||||||
|
|
||||||
|
if (unitModType == TOTAL_PCT)
|
||||||
|
ApplyModSignedFloatValue(PLAYER_FIELD_MOD_DAMAGE_DONE_PCT,aura->GetAmount()/100.0f,apply);
|
||||||
|
else
|
||||||
|
ApplyModUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_POS,aura->GetAmount(),apply);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::ApplyItemEquipSpell(Item *item, bool apply, bool form_change)
|
void Player::ApplyItemEquipSpell(Item *item, bool apply, bool form_change)
|
||||||
|
|||||||
@@ -5098,11 +5098,6 @@ void AuraEffect::HandleModDamageDone(AuraApplication const * aurApp, uint8 mode,
|
|||||||
target->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_VALUE, float(GetAmount()), apply);
|
target->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_VALUE, float(GetAmount()), apply);
|
||||||
target->HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_VALUE, float(GetAmount()), apply);
|
target->HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_VALUE, float(GetAmount()), apply);
|
||||||
target->HandleStatModifier(UNIT_MOD_DAMAGE_RANGED, TOTAL_VALUE, float(GetAmount()), apply);
|
target->HandleStatModifier(UNIT_MOD_DAMAGE_RANGED, TOTAL_VALUE, float(GetAmount()), apply);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// done in Player::_ApplyWeaponDependentAuraMods
|
|
||||||
}
|
|
||||||
|
|
||||||
if(target->GetTypeId() == TYPEID_PLAYER)
|
if(target->GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
@@ -5112,6 +5107,11 @@ void AuraEffect::HandleModDamageDone(AuraApplication const * aurApp, uint8 mode,
|
|||||||
target->ApplyModUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_NEG,GetAmount(),apply);
|
target->ApplyModUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_NEG,GetAmount(),apply);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// done in Player::_ApplyWeaponDependentAuraMods
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Skip non magic case for speedup
|
// Skip non magic case for speedup
|
||||||
if((GetMiscValue() & SPELL_SCHOOL_MASK_MAGIC) == 0)
|
if((GetMiscValue() & SPELL_SCHOOL_MASK_MAGIC) == 0)
|
||||||
@@ -5185,14 +5185,14 @@ void AuraEffect::HandleModDamagePercentDone(AuraApplication const * aurApp, uint
|
|||||||
target->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, float(GetAmount()), apply);
|
target->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, float(GetAmount()), apply);
|
||||||
target->HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_PCT, float(GetAmount()), apply);
|
target->HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_PCT, float(GetAmount()), apply);
|
||||||
target->HandleStatModifier(UNIT_MOD_DAMAGE_RANGED, TOTAL_PCT, float(GetAmount()), apply);
|
target->HandleStatModifier(UNIT_MOD_DAMAGE_RANGED, TOTAL_PCT, float(GetAmount()), apply);
|
||||||
|
// For show in client
|
||||||
|
if(target->GetTypeId() == TYPEID_PLAYER)
|
||||||
|
target->ApplyModSignedFloatValue(PLAYER_FIELD_MOD_DAMAGE_DONE_PCT,GetAmount()/100.0f,apply);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// done in Player::_ApplyWeaponDependentAuraMods
|
// done in Player::_ApplyWeaponDependentAuraMods
|
||||||
}
|
}
|
||||||
// For show in client
|
|
||||||
if(target->GetTypeId() == TYPEID_PLAYER)
|
|
||||||
target->ApplyModSignedFloatValue(PLAYER_FIELD_MOD_DAMAGE_DONE_PCT,GetAmount()/100.0f,apply);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip non magic case for speedup
|
// Skip non magic case for speedup
|
||||||
|
|||||||
Reference in New Issue
Block a user