export default class XPManager extends Phaser.Events.EventEmitter { constructor(scene) { super(); this.scene = scene; this.xp = 0; this.level = 1; this.nextLevelXP = this.calculateNextThreshold(); } calculateNextThreshold() { return Math.round(100 * Math.pow(this.level, 1.5)); // simple exponential curve } addXP(amount) { this.xp += amount; if (this.xp >= this.nextLevelXP) { this.level++; this.nextLevelXP = this.calculateNextThreshold(); this.emit('levelup', this.level); } this.scene.uiManager.updateXP(this.xp, this.nextLevelXP); } }