diff options
author | ariel- <ariel-@users.noreply.github.com> | 2016-11-16 02:26:18 -0300 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2018-01-13 15:38:38 +0100 |
commit | acdc2d6d63b2606de70134a3dbfa8cb230b3ed8e (patch) | |
tree | 51fefbfee3dba487510fccde771db43f0e9b80e6 /src | |
parent | 61ce48e782e8cb5d980334d4e0bb4fcf0f5e9559 (diff) |
Core/Unit: partial cherry picked from commit b6a8045adcbccfba4fa4a48a3dfcc2ccf1972206
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index bdb3b00e050..ad0a9569ea3 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -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)); } |