/** * SplashScene.js * * Hipodevil666 Studios™ Splash Screen * First screen players see when launching the game * * Features: * - Studio branding * - Fade in/out animation * - Auto-transition to main menu (3 seconds) * - Style 32 (Neon Noir) aesthetic * * Created: Jan 10, 2026 * Author: David "HIPO" Kotnik * Studio: Hipodevil666 Studios™ */ export default class SplashScene extends Phaser.Scene { constructor() { super({ key: 'SplashScene' }); } preload() { // Preload splash screen assets (if any) // For now, using text-based splash } create() { const { width, height } = this.cameras.main; // Dark background (Neon Noir style) this.cameras.main.setBackgroundColor('#0a0a0f'); // Studio logo text const studioText = this.add.text( width / 2, height / 2 - 40, 'Hipodevil666 Studios™', { fontFamily: 'Arial, sans-serif', fontSize: '48px', fontStyle: 'bold', color: '#ff00ff', // Neon magenta stroke: '#000000', strokeThickness: 4, shadow: { offsetX: 0, offsetY: 0, color: '#ff00ff', blur: 20, fill: true } } ).setOrigin(0.5); // "Presents" text const presentsText = this.add.text( width / 2, height / 2 + 40, 'Presents', { fontFamily: 'Arial, sans-serif', fontSize: '24px', fontStyle: 'italic', color: '#00ffff', // Neon cyan stroke: '#000000', strokeThickness: 2, shadow: { offsetX: 0, offsetY: 0, color: '#00ffff', blur: 15, fill: true } } ).setOrigin(0.5); // Decorative elements (Neon Noir style) const topLine = this.add.graphics(); topLine.lineStyle(2, 0xff00ff, 1); topLine.lineBetween(width / 2 - 300, height / 2 - 80, width / 2 + 300, height / 2 - 80); topLine.setAlpha(0); const bottomLine = this.add.graphics(); bottomLine.lineStyle(2, 0x00ffff, 1); bottomLine.lineBetween(width / 2 - 300, height / 2 + 80, width / 2 + 300, height / 2 + 80); bottomLine.setAlpha(0); // Set initial alpha to 0 for fade-in studioText.setAlpha(0); presentsText.setAlpha(0); // FADE IN animation (0.8s) this.tweens.add({ targets: [studioText, topLine], alpha: 1, duration: 800, ease: 'Power2' }); this.tweens.add({ targets: [presentsText, bottomLine], alpha: 1, duration: 800, delay: 400, ease: 'Power2' }); // Pulsing glow effect this.tweens.add({ targets: studioText, scaleX: 1.02, scaleY: 1.02, duration: 1500, yoyo: true, repeat: -1, ease: 'Sine.easeInOut' }); // FADE OUT and transition (after 3 seconds total) this.time.delayedCall(2200, () => { this.tweens.add({ targets: [studioText, presentsText, topLine, bottomLine], alpha: 0, duration: 800, ease: 'Power2', onComplete: () => { // Transition to main menu (or BootScene if needed) this.scene.start('BootScene'); } }); }); // Skip on click/tap (accessibility) this.input.on('pointerdown', () => { this.scene.start('BootScene'); }); // Skip on any key press (accessibility) this.input.keyboard.once('keydown', () => { this.scene.start('BootScene'); }); console.log('🎮 Hipodevil666 Studios™ Splash Screen loaded!'); } }