I’m sort of skeptical about recalculating the level every time we check it, particularly considering how many times we check for the player’s level, and for how many different reasons (sometimes even every frame).
Wouldn’t it be better and more performant to task Experience to check if the level is increased whenever we add some to the total? That happens far less frequently, and I can’t think of any non-design-time situation when the level changes but Experience remains the same.
If I go down this route, is there any future part of the course which will clash with this solution?