void Player::UpdateMastery() { if (!CanUseMastery()) { SetFloatValue(PLAYER_MASTERY, 0.0f); return; } float value = GetTotalAuraModifier(SPELL_AURA_MASTERY); value += GetRatingBonusValue(CR_MASTERY); SetFloatValue(PLAYER_MASTERY, value); ChrSpecializationEntry const* chrSpec = sChrSpecializationStore.LookupEntry(GetUInt32Value(PLAYER_FIELD_CURRENT_SPEC_ID)); if (!chrSpec) return; for (uint32 i = 0; i < MAX_MASTERY_SPELLS; ++i) { if (Aura* aura = GetAura(chrSpec->MasterySpellID[i])) { for (SpellEffectInfo const* effect : aura->GetSpellEffectInfos()) { if (!effect) continue; float mult = effect->BonusCoefficient; if (G3D::fuzzyEq(mult, 0.0f)) continue; aura->GetEffect(effect->EffectIndex)->ChangeAmount(int32(value * mult)); } } } }
void Player::UpdateMastery() { if (!CanUseMastery()) { SetFloatValue(PLAYER_FIELD_MASTERY, 0.0f); return; } float value = GetTotalAuraModifier(SPELL_AURA_MASTERY); value += GetRatingBonusValue(CR_MASTERY); SetFloatValue(PLAYER_FIELD_MASTERY, value); /* TalentTabEntry const* talentTab = sTalentTabStore.LookupEntry(GetTalentSpecialization(GetActiveSpec())); if (!talentTab) return; for (uint32 i = 0; i < MAX_MASTERY_SPELLS; ++i) { if (!talentTab->MasterySpellId[i]) continue; if (Aura* aura = GetAura(talentTab->MasterySpellId[i])) { for (uint32 j = 0; j < MAX_SPELL_EFFECTS; ++j) { if (!aura->HasEffect(j)) continue; float mult = aura->GetSpellInfo()->Effects[j].BonusMultiplier; if (G3D::fuzzyEq(mult, 0.0f)) continue; aura->GetEffect(j)->ChangeAmount(int32(value * aura->GetSpellInfo()->Effects[j].BonusMultiplier)); } } }*/ }