levelForTotalXp function
Level reached at totalXp against curve (already validated, sorted by
level ascending). Caps at the curve's last (max) level regardless of how
far totalXp exceeds it.
Implementation
int levelForTotalXp(List<LevelDefinition> curve, int totalXp) {
var level = 1;
var remaining = totalXp;
for (final def in curve) {
if (def.xpToNext == 0) break;
if (remaining < def.xpToNext) break;
remaining -= def.xpToNext;
level++;
}
return level;
}