export default class LevelComplete extends Phaser.Scene {
    constructor() {
        super({ key: 'LevelComplete' });
    }

    init(data) {
        this.config = data.config;
        this.level = data.level;
        this.lives = data.lives;
        this.hasNextLevel = data.hasNextLevel;
    }

    create() {
        const cx = 800, cy = 450;

        this.add.text(cx, 300, `LEVEL ${this.level} COMPLETE!`, {
            fontSize: '80px', fontFamily: 'monospace',
            color: '#00ff00', stroke: '#005500', strokeThickness: 4,
        }).setOrigin(0.5);

        this.add.text(cx, 420, '♥ '.repeat(this.lives).trim(), {
            fontSize: '48px', fontFamily: 'monospace', color: '#ff4444',
        }).setOrigin(0.5);

        if (this.hasNextLevel) {
            this.add.text(cx, 530, `PREPARE FOR LEVEL ${this.level + 1}`, {
                fontSize: '40px', fontFamily: 'monospace', color: '#ffff00',
            }).setOrigin(0.5);

            const prompt = this.add.text(cx, 650, 'PRESS SPACE OR CLICK TO CONTINUE', {
                fontSize: '28px', fontFamily: 'monospace', color: '#ffffff',
            }).setOrigin(0.5);
            this.tweens.add({ targets: prompt, alpha: 0, duration: 600, yoyo: true, repeat: -1 });

            this.input.keyboard.once('keydown-SPACE', () => this._nextLevel());
            this.input.once('pointerdown', () => this._nextLevel());
        } else {
            this.add.text(cx, 530, 'YOU BEAT THE GAME!', {
                fontSize: '48px', fontFamily: 'monospace', color: '#ffff00',
            }).setOrigin(0.5);

            const prompt = this.add.text(cx, 650, 'PRESS SPACE OR CLICK TO RESTART', {
                fontSize: '28px', fontFamily: 'monospace', color: '#ffffff',
            }).setOrigin(0.5);
            this.tweens.add({ targets: prompt, alpha: 0, duration: 600, yoyo: true, repeat: -1 });

            this.input.keyboard.once('keydown-SPACE', () => this.scene.start('MainMenu'));
            this.input.once('pointerdown', () => this.scene.start('MainMenu'));
        }
    }

    _nextLevel() {
        this.scene.start('GameManager', {
            config: this.config,
            level: this.level + 1,
            lives: this.lives,
        });
    }
}
