export class XPSystem { constructor(scene) { this.scene = scene; this.xp = 0; this.level = 1; this.xpToNext = this._threshold(1); } /** XP needed to go from level `lvl` to `lvl+1`. */ _threshold(lvl) { return 100 + (lvl - 1) * 75; } addXP(amount) { this.xp += amount; while (this.xp >= this.xpToNext) { this.xp -= this.xpToNext; this.level++; this.xpToNext = this._threshold(this.level); this.scene.events.emit('level-up', this.level); } } /** 0–1 progress toward next level. */ get progress() { return this.xp / this.xpToNext; } reset() { this.xp = 0; this.level = 1; this.xpToNext = this._threshold(1); } }