mnml/client/src/scenes/menu.js
2018-12-23 23:48:36 +10:00

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;