diff --git a/common/src/sys/stats.rs b/common/src/sys/stats.rs index 5355cc5120..6a6ebc8bf7 100644 --- a/common/src/sys/stats.rs +++ b/common/src/sys/stats.rs @@ -40,9 +40,11 @@ impl<'a> System<'a> for Sys { } if stat.exp.current() >= stat.exp.maximum() { - stat.exp.change_by(-(stat.exp.maximum() as i64)); - stat.exp.change_maximum_by(25); - stat.level.change_by(1); + while stat.exp.current() >= stat.exp.maximum() { + stat.exp.change_by(-(stat.exp.maximum() as i64)); + stat.exp.change_maximum_by(25); + stat.level.change_by(1); + } stat.update_hp_bonus(stat.level.level()); stat.health .set_to(stat.health.maximum(), HealthSource::LevelUp)