import Phaser from "phaser";
import { Scene } from 'phaser';

export class SplashScene extends Scene {
  constructor() {
    super("SplashScene");
  }

  preload() {
    this.load.image('splash', 'splash_bg.png');
  }

  create() {
    const { width, height } = this.scale;

    // Background (Placeholder for Image)
    // If we successfully load the image 'splash', we use it.
    if (this.textures.exists('splash')) {
        const splash = this.add.image(width / 2, height / 2, 'splash');
        
        // Scale to cover the screen while maintaining aspect ratio
        const scaleX = width / splash.width;
        const scaleY = height / splash.height;
        const scale = Math.max(scaleX, scaleY);
        splash.setScale(scale);
    } else {
        this.add.rectangle(0, 0, width, height, 0x110022).setOrigin(0);
        this.add.text(width/2, height/2, "ROGUE LEGACY", {
            fontSize: "48px",
            color: "#ffffff",
            fontStyle: "bold"
        }).setOrigin(0.5);
    }

    // Fade In
    this.cameras.main.fadeIn(1000, 0, 0, 0);

    // Fade Out after delay
    this.time.delayedCall(2500, () => {
      this.cameras.main.fadeOut(1000, 0, 0, 0);
    });

    this.cameras.main.once(Phaser.Cameras.Scene2D.Events.FADE_OUT_COMPLETE, () => {
      this.scene.start("StartScene");
    });
  }
}
