diff options
| author | Onkelz28 <angelo.schoening@me.com> | 2016-12-17 11:11:02 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-12-17 13:07:56 +0100 |
| commit | 17f94855f07b331ba3ad109c6d6e213ed08b70df (patch) | |
| tree | 19a0fce9eb40555ef3c200ff7f87b5ddfd98254d /src/server/game/Entities/Unit | |
| parent | 12ac800effc552d36bfd46f24e0896433573e66f (diff) | |
Core/Auras: Implemented aura 179 SPELL_AURA_MOD_POWER_DISPLAY (and renamed aura 402 to OVERRIDE)
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 37 |
1 files changed, 10 insertions, 27 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index bff0123aa87..0d035c748f6 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6693,32 +6693,17 @@ void Unit::UpdateDisplayPower() break; default: { - ChrClassesEntry const* cEntry = sChrClassesStore.LookupEntry(getClass()); - if (cEntry && cEntry->PowerType < MAX_POWERS) - displayPower = Powers(cEntry->PowerType); - if (GetTypeId() == TYPEID_PLAYER) + Unit::AuraEffectList const& powerTypeAuras = GetAuraEffectsByType(SPELL_AURA_MOD_POWER_DISPLAY); + if (!powerTypeAuras.empty()) { - switch (GetUInt32Value(PLAYER_FIELD_CURRENT_SPEC_ID)) - { - case TALENT_SPEC_PRIEST_SHADOW: - displayPower = POWER_INSANITY; - break; - case TALENT_SPEC_SHAMAN_ELEMENTAL: - case TALENT_SPEC_SHAMAN_ENHANCEMENT: - displayPower = POWER_MAELSTROM; - break; - case TALENT_SPEC_MONK_MISTWEAVER: - displayPower = POWER_MANA; - break; - case TALENT_SPEC_DRUID_BALANCE: - displayPower = POWER_LUNAR_POWER; // only balance druids get lunar power, even if other specs have access to moonkin form - break; - case TALENT_SPEC_DEMON_HUNTER_VENGEANCE: - displayPower = POWER_PAIN; - break; - default: - break; - } + AuraEffect const* powerTypeAura = powerTypeAuras.front(); + displayPower = Powers(powerTypeAura->GetMiscValue()); + } + else + { + ChrClassesEntry const* cEntry = sChrClassesStore.LookupEntry(getClass()); + if (cEntry && cEntry->PowerType < MAX_POWERS) + displayPower = Powers(cEntry->PowerType); } break; } @@ -8297,8 +8282,6 @@ float Unit::GetUnitSpellCriticalChance(Unit* victim, SpellInfo const* spellProto { if (!spellProto->IsPositive()) { - // Modify critical chance by victim SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE - crit_chance += victim->GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE, schoolMask); // Modify critical chance by victim SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE crit_chance += victim->GetTotalAuraModifier(SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE); } |
