From 0008b8e398d95b44c1df55e6822627d14b0f2148 Mon Sep 17 00:00:00 2001 From: Mashy Date: Mon, 25 Feb 2019 13:43:59 +1000 Subject: [PATCH] Return to home page --- client/src/events.js | 17 ++++-- client/src/scenes/cryps.js | 1 + client/src/scenes/home.cryps.js | 21 +------ client/src/scenes/home.js | 2 +- client/src/scenes/menu.js | 5 +- client/src/scenes/menu.navigation.js | 88 ++++------------------------ client/src/socket.js | 7 +-- 7 files changed, 35 insertions(+), 106 deletions(-) diff --git a/client/src/events.js b/client/src/events.js index 2fd75e2a..08365325 100644 --- a/client/src/events.js +++ b/client/src/events.js @@ -6,6 +6,11 @@ function registerEvents(registry, events, tutorial) { tutorial('homepage'); } + function setCrypList(cryps) { + registry.set('crypList', cryps); + } + + function setWs(ws) { registry.set('ws', ws); } @@ -32,13 +37,16 @@ function registerEvents(registry, events, tutorial) { registry.set('menu', true); } - function setVbox(items) { registry.set('vbox', items); } - function setInstance(instance) { - registry.set('instance', instance); + function setPlayer(player) { + if (!registry.get('inMenu')) { + setMenu(); + setCryps(player.cryps); + } + setVbox(player.vbox); } function setZone(zone) { @@ -185,9 +193,10 @@ function registerEvents(registry, events, tutorial) { setAccount, setActiveSkill, setCryps, + setCrypList, setGame, - setInstance, setMenu, + setPlayer, setVbox, setWs, setGameList, diff --git a/client/src/scenes/cryps.js b/client/src/scenes/cryps.js index 45ac57ce..04c286d6 100644 --- a/client/src/scenes/cryps.js +++ b/client/src/scenes/cryps.js @@ -48,6 +48,7 @@ function renderCryps() { } if (key === 'menu') { + if (!data || game.registry.get('inMenu')) return false; if (data) return game.scene.add('Menu', Menu, true); } diff --git a/client/src/scenes/home.cryps.js b/client/src/scenes/home.cryps.js index 626c9f97..e9648f22 100644 --- a/client/src/scenes/home.cryps.js +++ b/client/src/scenes/home.cryps.js @@ -7,8 +7,6 @@ const genAvatar = require('./avatar'); const ROW_HEIGHT = CRYP_LIST.height() * 0.2; const ROW_WIDTH = CRYP_LIST.width(); -const TEXT_MARGIN = 24; - const KEY_MAP = [ 'keydown-ONE', 'keydown-TWO', @@ -24,7 +22,7 @@ class HomeCrypList extends Phaser.Scene { updateData(parent, key, data) { - if (key === 'cryps') { + if (key === 'crypList') { KEY_MAP.forEach(k => this.input.keyboard.removeListener(k)); this.scene.restart(); } @@ -34,7 +32,7 @@ class HomeCrypList extends Phaser.Scene { // this.cameras.main.setViewport(CRYP_LIST.x(), CRYP_LIST.y(), CRYP_LIST.width(), CRYP_LIST.height()); this.registry.events.on('changedata', this.updateData, this); this.registry.events.on('setdata', this.updateData, this); - const cryps = this.registry.get('cryps'); + const cryps = this.registry.get('crypList'); if (!cryps) return true; @@ -65,7 +63,6 @@ class HomeCrypList extends Phaser.Scene { this.activeCryps.push(crypInteract); crypInteract.setAlpha(1); } - console.log(this.activeCryps); }); crypInteract.itemSelect = () => { @@ -124,19 +121,7 @@ class HomeCrypList extends Phaser.Scene { .text(joinInstance.getCenter().x, joinInstance.getCenter().y, 'Join Instance', TEXT.HEADER) .setOrigin(0.5, 0.5); - - // Dialog to view all cryps - // const crypList = this.add - // .rectangle(ROW_WIDTH * 0.55, ROW_HEIGHT * 3.5, ROW_WIDTH * 0.4, ROW_HEIGHT, 0xff9215) - // .setInteractive() - // .setOrigin(0) - // .on('pointerdown', () => { - // // this.game.events.emit('CRYP_LIST'); - // // Placeholder will give a full list of all cryps in the center - // }); - // this.add - // .text(crypList.getCenter().x, crypList.getCenter().y, 'Cryp List (soon)', TEXT.NORMAL) - // .setOrigin(0.5, 0.5); + return this; } cleanUp() { diff --git a/client/src/scenes/home.js b/client/src/scenes/home.js index 2a3279d3..db16e0a2 100644 --- a/client/src/scenes/home.js +++ b/client/src/scenes/home.js @@ -18,13 +18,13 @@ class Home extends Phaser.Scene { this.registry.events.on('changedata', this.updateData, this); this.registry.events.on('setdata', this.updateData, this); this.scene.manager.add('HomeCryps', HomeCryps, true); - return true; } updateData(parent, key, data) { if (!data) return false; if (key === 'menu') { + console.log(this.scene.manager); this.cleanUp(); } return true; } diff --git a/client/src/scenes/menu.js b/client/src/scenes/menu.js index b7f15041..cd74e9e4 100644 --- a/client/src/scenes/menu.js +++ b/client/src/scenes/menu.js @@ -38,7 +38,7 @@ class Menu extends Phaser.Scene { this.scene.manager.add('MenuCrypList', MenuCrypList, true); this.scene.manager.add('MenuNavigation', MenuNavigation, true); this.scene.manager.add('ItemList', ItemList, true); - + this.registry.set('inMenu', true); return true; } @@ -47,6 +47,7 @@ class Menu extends Phaser.Scene { // Controls which scene shows in the main top right section switch (key) { case 'game': return this.cleanUp(); + case 'home': return this.cleanUp(); case 'zone': return this.newMainScene('Zones', Zones, data); case 'gameList': return this.newMainScene('GameList', GameList, data); case 'crypStats': return this.newMainScene('StatSheet', StatSheet, data); @@ -74,6 +75,7 @@ class Menu extends Phaser.Scene { } cleanUp() { + this.registry.events.off('changedata', this.updateData, this); this.registry.events.off('setdata', this.updateData, this); // Delete scenes which could be showing before switching to battle scene @@ -82,6 +84,7 @@ class Menu extends Phaser.Scene { }; FIXED_MENU_SCENES.forEach(removeScenes); MAIN_MENU_SCENES.forEach(removeScenes); + this.registry.set('inMenu', false); this.scene.remove(); } diff --git a/client/src/scenes/menu.navigation.js b/client/src/scenes/menu.navigation.js index aca662d8..a8e6b4ff 100644 --- a/client/src/scenes/menu.navigation.js +++ b/client/src/scenes/menu.navigation.js @@ -16,94 +16,28 @@ class MenuNavigation extends Phaser.Scene { } create() { - const ws = this.registry.get('ws'); + // const ws = this.registry.get('ws'); this.cameras.main.setViewport(X, Y, WIDTH, HEIGHT); - const play = this.add - .rectangle(BTN_WIDTH * 3, BTN_HEIGHT, BTN_WIDTH, BTN_HEIGHT, 0x222222) - .setInteractive() - .setOrigin(0); - const playText = this.add - .text(play.getCenter().x, play.getCenter().y, 'Play Cryps', TEXT.HEADER) - .setOrigin(0.5, 0.5); - play.on('pointerdown', () => { - this.selectMode(ws); - play.destroy(); - playText.destroy(); - }); - } - - selectMode(ws) { - this.buttons = this.add.group(); - const pvp = this.add - .rectangle(BTN_WIDTH * 2, 0, BTN_WIDTH, BTN_HEIGHT, 0x440000) - .setInteractive() - .setOrigin(0); - const pvpText = this.add - .text(pvp.getCenter().x, pvp.getCenter().y, 'Play PVP', TEXT.HEADER) - .setOrigin(0.5, 0.5); - - const pve = this.add - .rectangle(BTN_WIDTH * 2, BTN_HEIGHT, BTN_WIDTH, BTN_HEIGHT, 0x004400) - .setInteractive() - .setOrigin(0); - - const pveText = this.add - .text(pve.getCenter().x, pve.getCenter().y, 'Play PVE', TEXT.HEADER) - .setOrigin(0.5, 0.5); - - pve.on('pointerdown', () => { - pve.destroy(); - pveText.destroy(); - pvp.destroy(); - pvpText.destroy(); - }); - - pvp.on('pointerdown', () => { - this.addPvpModes(ws); - pve.destroy(); - pveText.destroy(); - pvp.destroy(); - pvpText.destroy(); - }); - - const cancel = this.add + const ready = this.add .rectangle(BTN_WIDTH * 3, 0, BTN_WIDTH, BTN_HEIGHT, 0x222222) .setInteractive() - .setOrigin(0) - .on('pointerdown', () => this.scene.restart()); - + .setOrigin(0); this.add - .text(cancel.getCenter().x, cancel.getCenter().y, 'Cancel', TEXT.HEADER) + .text(ready.getCenter().x, ready.getCenter().y, 'Ready', TEXT.HEADER) .setOrigin(0.5, 0.5); - } + ready.on('pointerdown', () => { + // Put player in game + }); - addPvpModes(ws) { - const hostPvp = this.add - .rectangle(BTN_WIDTH, 0, BTN_WIDTH, BTN_HEIGHT, 0x440000) + const leave = this.add + .rectangle(BTN_WIDTH * 3, BTN_HEIGHT, BTN_WIDTH, BTN_HEIGHT, 0x440000) .setInteractive() .setOrigin(0) - .on('pointerdown', () => { - const team = this.registry.get('cryps').filter(c => c.active).map(c => c.id); - ws.sendGamePvp(team); - }); - this.add - .text(hostPvp.getCenter().x, hostPvp.getCenter().y, 'Host PVP game', TEXT.HEADER) - .setOrigin(0.5, 0.5); - } - - addPveModes(ws) { - const quickPve = this.add - .rectangle(BTN_WIDTH, BTN_HEIGHT, BTN_WIDTH, BTN_HEIGHT, 0x222222) - .setInteractive() - .setOrigin(0) - .on('pointerdown', () => { - const team = this.registry.get('cryps').filter(c => c.active).map(c => c.id); - ws.sendGamePve(team); - }); + .on('pointerdown', () => this.registry.set('home', true)); this.add - .text(quickPve.getCenter().x, quickPve.getCenter().y, 'Quick Game', TEXT.HEADER) + .text(leave.getCenter().x, leave.getCenter().y, 'Leave', TEXT.HEADER) .setOrigin(0.5, 0.5); } diff --git a/client/src/socket.js b/client/src/socket.js index b41c6bb7..9b78de48 100644 --- a/client/src/socket.js +++ b/client/src/socket.js @@ -154,7 +154,7 @@ function createSocket(events) { function accountCryps(response) { const [structName, cryps] = response; - events.setCryps(cryps); + events.setCrypList(cryps); } function gameState(response) { @@ -177,10 +177,7 @@ function createSocket(events) { function playerState(response) { const [structName, player] = response; - events.setMenu(); - events.setCryps(player.cryps); - events.setInstance(player.instance); - events.setVbox(player.vbox); + events.setPlayer(player); } // -------------