57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
const Phaser = require('phaser');
|
|
|
|
const MenuCrypList = require('./menu.cryps.list');
|
|
const MenuGameList = require('./menu.game.list');
|
|
|
|
const ItemList = require('./item.list');
|
|
const StatSheet = require('./statsheet');
|
|
|
|
class Menu extends Phaser.Scene {
|
|
constructor() {
|
|
super({ key: 'Menu', active: true });
|
|
}
|
|
|
|
create() {
|
|
this.registry.events.on('changedata', this.updateData, this);
|
|
this.registry.events.on('setdata', this.updateData, this);
|
|
|
|
this.scene.manager.add('MenuCrypList', MenuCrypList, true);
|
|
this.scene.manager.add('MenuGameList', MenuGameList, true);
|
|
this.scene.manager.add('ItemList', ItemList, true);
|
|
|
|
return true;
|
|
}
|
|
|
|
updateData(parent, key, data) {
|
|
if (key === 'game') {
|
|
if (data) return this.cleanUp();
|
|
return this.scene.restart();
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
// Scene switch to statsheet called by MenuCrypRows scene
|
|
displaySkills(cryp) {
|
|
if (cryp) {
|
|
this.scene.manager.add('StatSheet', StatSheet, true, cryp);
|
|
this.cleanUp();
|
|
}
|
|
return true;
|
|
}
|
|
|
|
cleanUp() {
|
|
console.log('rip menu');
|
|
this.registry.events.off('changedata', this.updateData, this);
|
|
this.registry.events.off('setdata', this.updateData, this);
|
|
|
|
this.scene.get('MenuCrypList').cleanUp();
|
|
this.scene.get('MenuGameList').cleanUp();
|
|
this.scene.get('ItemList').cleanUp();
|
|
|
|
this.scene.remove();
|
|
}
|
|
}
|
|
|
|
module.exports = Menu;
|