mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 16:38:42 +01:00
Core/Unit: partial cherry picked from commit b6a8045adc
This commit is contained in:
@@ -6454,7 +6454,7 @@ uint32 Unit::SpellDamageBonusDone(Unit* victim, SpellInfo const* spellProto, uin
|
||||
// Pets just add their bonus damage to their spell damage
|
||||
// note that their spell damage is just gain of their own auras
|
||||
if (HasUnitTypeMask(UNIT_MASK_GUARDIAN))
|
||||
DoneAdvertisedBenefit += ((Guardian*)this)->GetBonusDamage();
|
||||
DoneAdvertisedBenefit += static_cast<Guardian const*>(this)->GetBonusDamage();
|
||||
|
||||
// Check for table values
|
||||
if (effect->BonusCoefficientFromAP > 0.0f)
|
||||
@@ -6670,9 +6670,9 @@ int32 Unit::SpellBaseDamageBonusDone(SpellSchoolMask schoolMask) const
|
||||
int32 DoneAdvertisedBenefit = 0;
|
||||
|
||||
AuraEffectList const& mDamageDone = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_DONE);
|
||||
for (AuraEffectList::const_iterator i = mDamageDone.begin(); i != mDamageDone.end(); ++i)
|
||||
if ((*i)->GetMiscValue() & schoolMask)
|
||||
DoneAdvertisedBenefit += (*i)->GetAmount();
|
||||
for (AuraEffect const* aurEff : mDamageDone)
|
||||
if (aurEff->GetMiscValue() & schoolMask)
|
||||
DoneAdvertisedBenefit += aurEff->GetAmount();
|
||||
|
||||
if (GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
@@ -6685,22 +6685,21 @@ int32 Unit::SpellBaseDamageBonusDone(SpellSchoolMask schoolMask) const
|
||||
|
||||
// Damage bonus from stats
|
||||
AuraEffectList const& mDamageDoneOfStatPercent = GetAuraEffectsByType(SPELL_AURA_MOD_SPELL_DAMAGE_OF_STAT_PERCENT);
|
||||
for (AuraEffectList::const_iterator i = mDamageDoneOfStatPercent.begin(); i != mDamageDoneOfStatPercent.end(); ++i)
|
||||
for (AuraEffect const* aurEff : mDamageDoneOfStatPercent)
|
||||
{
|
||||
if ((*i)->GetMiscValue() & schoolMask)
|
||||
if ((aurEff->GetMiscValue() & schoolMask) != 0)
|
||||
{
|
||||
// stat used stored in miscValueB for this aura
|
||||
Stats usedStat = Stats((*i)->GetMiscValueB());
|
||||
DoneAdvertisedBenefit += int32(CalculatePct(GetStat(usedStat), (*i)->GetAmount()));
|
||||
Stats const usedStat = static_cast<Stats>(aurEff->GetMiscValueB());
|
||||
DoneAdvertisedBenefit += static_cast<int32>(CalculatePct(GetStat(usedStat), aurEff->GetAmount()));
|
||||
}
|
||||
}
|
||||
|
||||
// ... and attack power
|
||||
AuraEffectList const& mDamageDonebyAP = GetAuraEffectsByType(SPELL_AURA_MOD_SPELL_DAMAGE_OF_ATTACK_POWER);
|
||||
for (AuraEffectList::const_iterator i =mDamageDonebyAP.begin(); i != mDamageDonebyAP.end(); ++i)
|
||||
if ((*i)->GetMiscValue() & schoolMask)
|
||||
DoneAdvertisedBenefit += int32(CalculatePct(GetTotalAttackPowerValue(BASE_ATTACK), (*i)->GetAmount()));
|
||||
DoneAdvertisedBenefit += static_cast<int32>(CalculatePct(GetTotalAttackPowerValue(BASE_ATTACK), GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_DAMAGE_OF_ATTACK_POWER, schoolMask)));
|
||||
|
||||
}
|
||||
|
||||
return DoneAdvertisedBenefit;
|
||||
}
|
||||
|
||||
@@ -7358,7 +7357,7 @@ uint32 Unit::MeleeDamageBonusDone(Unit* victim, uint32 pdamage, WeaponAttackType
|
||||
|
||||
if (APbonus != 0) // Can be negative
|
||||
{
|
||||
bool normalized = spellProto && spellProto->HasEffect(GetMap()->GetDifficultyID(), SPELL_EFFECT_NORMALIZED_WEAPON_DMG);
|
||||
bool const normalized = spellProto && spellProto->HasEffect(GetMap()->GetDifficultyID(), SPELL_EFFECT_NORMALIZED_WEAPON_DMG);
|
||||
DoneFlatBenefit += int32(APbonus / 3.5f * GetAPMultiplier(attType, normalized));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user