From b00a895f19f4ef18eb9c8c6afc037fa28e460d84 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 29 Mar 2021 11:56:15 -0400 Subject: [PATCH] Core/Players: Added Player::GetPrimaryStat retrieving intended primary stat for current specialization Port From (https://github.com/TrinityCore/TrinityCore/commit/d889b4b0e8fc082505f6bf70a551ad4b38f3f34c) --- Source/Game/Entities/StatSystem.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Source/Game/Entities/StatSystem.cs b/Source/Game/Entities/StatSystem.cs index 66f7bfe0d..d9820ecc2 100644 --- a/Source/Game/Entities/StatSystem.cs +++ b/Source/Game/Entities/StatSystem.cs @@ -1851,6 +1851,26 @@ namespace Game.Entities ModSpellHitChance = 15.0f + GetTotalAuraModifier(AuraType.ModSpellHitChance); ModSpellHitChance += GetRatingBonusValue(CombatRating.HitSpell); } + + Stats GetPrimaryStat() + { + byte primaryStatPriority; + var specialization = CliDB.ChrSpecializationStorage.LookupByKey(GetPrimarySpecialization()); + if (specialization != null) + primaryStatPriority = (byte)specialization.PrimaryStatPriority; + else + primaryStatPriority = CliDB.ChrClassesStorage.LookupByKey(GetClass()).PrimaryStatPriority; + + + if (primaryStatPriority >= 4) + return Stats.Strength; + + if (primaryStatPriority >= 2) + return Stats.Agility; + + return Stats.Intellect; + } + public override void UpdateMaxHealth() { UnitMods unitMod = UnitMods.Health;