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;