diff --git a/NWN.Anvil/src/main/Services/ELC/EnforceLegalCharacterService.cs b/NWN.Anvil/src/main/Services/ELC/EnforceLegalCharacterService.cs index f9a0d3385..9b3089dd4 100644 --- a/NWN.Anvil/src/main/Services/ELC/EnforceLegalCharacterService.cs +++ b/NWN.Anvil/src/main/Services/ELC/EnforceLegalCharacterService.cs @@ -855,7 +855,20 @@ static bool CheckColoredName(CExoLocString lsName) // Keep track of our ability values if (nLevel % 4 == 0) { - nAbilityAtLevel[pLevelStats.m_nAbilityGain]++; + if (pLevelStats.m_nAbilityGain < nAbilityAtLevel.Length) + { + nAbilityAtLevel[pLevelStats.m_nAbilityGain]++; + } + else if (HandleValidationFailure(out int strRefFailure, new OnELCValidationFailure + { + Player = nwPlayer, + Type = ValidationFailureType.Character, + SubType = ValidationFailureSubType.AbilityPointBuySystemCalculation, + StrRef = StrRefCharacterInvalidAbilityScores, + })) + { + return strRefFailure; + } } // Get the stat bonus from feats