You have to make both additive, or make the Cap only obey the largest loaded value I suppose, but even then you either have to loop over all promotions to find the current cap, or find a convoluted method to store all caps so that if you lose the current best cap, but still have a promotion with a slightly lower cap, you remain capped properly. Or I suppose the best solution would be that when the cap is removed, THEN you loop over all promotions to find if there should be a new non-zero cap set in place. Pretty sure that the passive system will be massively overhauled to be easier for Joe Blow to understand precisely what he is getting out of the deal when we re-release someday. Quite possibly having it so that all gains are on a per-turn specification (so like the FreeXPPerTurn), with individual caps (So if I have +1 per turn up to 100, and +3 per turn up to 30, then I will gain 4 per turn for 10 turns, then continue to gain 1 per turn for another 90, getting me to a total of 130 at the end of it all, assuming nothing else gave me any XP during those 100 turns). Though I honestly don't know which method you reference, probably the same one I am thinking of, but it has evolved since I posted it somewhere.