managarten/games/whopixels/js/scenes/MainMenuScene.js
Till JS 8511c2ca4c feat(cd): add Matrix notification on deploy failure
Sends a message to a Matrix room when a deploy fails, including
the failing services, commit, deployer, and a link to the logs.

Requires two GitHub Actions secrets:
- DEPLOY_NOTIFY_ROOM_ID: Matrix room ID
- DEPLOY_NOTIFY_BOT_TOKEN: Matrix bot access token

Skips silently if secrets are not configured.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 19:47:53 +01:00

98 lines
2.1 KiB
JavaScript

class MainMenuScene extends Phaser.Scene {
constructor() {
super({ key: 'MainMenuScene' });
}
create() {
// Add background
this.add.image(400, 300, 'background');
// Add title
this.add
.text(400, 120, 'WhoPixels', {
fontSize: '64px',
fill: '#fff',
fontStyle: 'bold',
})
.setOrigin(0.5);
// Add subtitle
this.add
.text(400, 180, 'Ein Pixel-Abenteuer', {
fontSize: '32px',
fill: '#fff',
})
.setOrigin(0.5);
// Create buttons
const startButton = this.add
.text(400, 280, 'RPG Spiel starten', {
fontSize: '32px',
fill: '#fff',
backgroundColor: '#4a4a4a',
padding: { x: 20, y: 10 },
})
.setOrigin(0.5)
.setInteractive();
const editorButton = this.add
.text(400, 350, 'Pixel Editor', {
fontSize: '32px',
fill: '#fff',
backgroundColor: '#4a4a4a',
padding: { x: 20, y: 10 },
})
.setOrigin(0.5)
.setInteractive();
const optionsButton = this.add
.text(400, 420, 'Optionen', {
fontSize: '32px',
fill: '#fff',
backgroundColor: '#4a4a4a',
padding: { x: 20, y: 10 },
})
.setOrigin(0.5)
.setInteractive();
// Button interactions - RPG Game
startButton.on('pointerover', () => {
startButton.setStyle({ fill: '#ff0' });
});
startButton.on('pointerout', () => {
startButton.setStyle({ fill: '#fff' });
});
startButton.on('pointerdown', () => {
this.scene.start('RPGScene');
});
// Button interactions - Pixel Editor
editorButton.on('pointerover', () => {
editorButton.setStyle({ fill: '#ff0' });
});
editorButton.on('pointerout', () => {
editorButton.setStyle({ fill: '#fff' });
});
editorButton.on('pointerdown', () => {
this.scene.start('GameScene');
});
// Button interactions - Options
optionsButton.on('pointerover', () => {
optionsButton.setStyle({ fill: '#ff0' });
});
optionsButton.on('pointerout', () => {
optionsButton.setStyle({ fill: '#fff' });
});
optionsButton.on('pointerdown', () => {
// Options functionality would go here
console.log('Options button clicked');
});
}
}