diff --git a/zone/bonuses.cpp b/zone/bonuses.cpp index 68e35a9bf..d806704d3 100644 --- a/zone/bonuses.cpp +++ b/zone/bonuses.cpp @@ -1658,6 +1658,13 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon) newbon->ItemEnduranceRegenCap += base1; break; + + case SE_SecondaryForte: + if (newbon->SecondaryForte < base1) { + newbon->SecondaryForte = base1; + } + break; + case SE_ZoneSuspendMinion: newbon->ZoneSuspendMinion = base1; break; @@ -1669,8 +1676,6 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon) break; case SE_BandolierSlots: break; - case SE_SecondaryForte: - break; case SE_ReduceApplyPoisonTime: break; case SE_NimbleEvasion: diff --git a/zone/client.cpp b/zone/client.cpp index f221c5fd9..7b499c62a 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -2503,8 +2503,8 @@ uint16 Client::GetMaxSkillAfterSpecializationRules(EQ::skills::SkillType skillid uint16 PrimarySpecialization = 0, SecondaryForte = 0; uint16 PrimarySkillValue = 0, SecondarySkillValue = 0; - - uint16 MaxSpecializations = GetAA(aaSecondaryForte) ? 2 : 1; + + uint16 MaxSpecializations = aabonuses.SecondaryForte ? 2 : 1; if (skillid >= EQ::skills::SkillSpecializeAbjure && skillid <= EQ::skills::SkillSpecializeEvocation) { diff --git a/zone/common.h b/zone/common.h index 0561ebb36..772441025 100644 --- a/zone/common.h +++ b/zone/common.h @@ -556,6 +556,7 @@ struct StatBonuses { bool ZoneSuspendMinion; // base 1 allows suspended minions to zone // AAs + uint16 SecondaryForte; // allow a second skill to be specialized with a cap of this value. int32 ShieldDuration; // extends duration of /shield ability int32 ExtendedShielding; // extends range of /shield ability int8 Packrat; // weight reduction for items, 1 point = 10%