diff --git a/scenes/authentication/authenticationScene.js b/scenes/authentication/authenticationScene.js index 77b8d9f..4ce939d 100755 --- a/scenes/authentication/authenticationScene.js +++ b/scenes/authentication/authenticationScene.js @@ -22,18 +22,17 @@ export class AuthenticationScene extends Scene { } /** @param {Player} player */ - usernameAccepted(player) { + usernameSuccess(player) { this.player = player; this.session.sendSystemMessage("salt", player.salt); this.show(PasswordPrompt); } - passwordAccepted() { + passwordSuccess() { this.player.loggedIn = true; this.session.setPlayer(this.player); - this.session.sendText(["= Success!", "((but I don't know what to do now...))"]); - this.session.setScene(new GameScene()); + this.session.setScene(new GameScene(this.session)); } /** @@ -46,6 +45,18 @@ export class AuthenticationScene extends Scene { } } +// _ _ +// | | | |___ ___ _ __ _ __ __ _ _ __ ___ ___ +// | | | / __|/ _ \ '__| '_ \ / _` | '_ ` _ \ / _ \ +// | |_| \__ \ __/ | | | | | (_| | | | | | | __/ +// \___/|___/\___|_| |_| |_|\__,_|_| |_| |_|\___| +// +// ____ _ +// | _ \ _ __ ___ _ __ ___ _ __ | |_ +// | |_) | '__/ _ \| '_ ` _ \| '_ \| __| +// | __/| | | (_) | | | | | | |_) | |_ +// |_| |_| \___/|_| |_| |_| .__/ \__| +// |_| class UsernamePrompt extends Prompt { // promptText = [ @@ -96,10 +107,23 @@ class UsernamePrompt extends Prompt { // // Tell daddy that we're done - this.scene.usernameAccepted(player); + this.scene.usernameSuccess(player); } } +// +// ____ _ +// | _ \ __ _ ___ _____ _____ _ __ __| | +// | |_) / _` / __/ __\ \ /\ / / _ \| '__/ _` | +// | __/ (_| \__ \__ \\ V V / (_) | | | (_| | +// |_| \__,_|___/___/ \_/\_/ \___/|_| \__,_| +// +// ____ _ +// | _ \ _ __ ___ _ __ ___ _ __ | |_ +// | |_) | '__/ _ \| '_ ` _ \| '_ \| __| +// | __/| | | (_) | | | | | | |_) | |_ +// |_| |_| \___/|_| |_| |_| .__/ \__| +// |_| class PasswordPrompt extends Prompt { // promptText = "Please enter your password"; @@ -174,7 +198,6 @@ class PasswordPrompt extends Prompt { } // Password was correct, go to main game - // this.scene.passwordAccepted(); - this.scene.passwordAccepted(); + this.scene.passwordSuccess(); } } diff --git a/scenes/gameLoop/gameScene.js b/scenes/gameLoop/gameScene.js index 43db875..606d9f5 100755 --- a/scenes/gameLoop/gameScene.js +++ b/scenes/gameLoop/gameScene.js @@ -6,39 +6,7 @@ import { Scene } from "../scene.js"; * It's here we listen for player commands. */ export class GameScene extends Scene { - introText = "= Welcome"; - - onReady() { - // - // Find out which state the player and their characters are in - // Find out where we are - // Re-route to the relevant scene if necessary. - // - // IF player has stored state THEN - // restore it and resume [main flow] - // END - // - // IF player has no characters THEN - // go to createCharacterScene - // END - // - // set player's current location = Hovedstad - // display the welcome to Hovedstad stuff, and - // await the player's commands. - // - // - // IDEA: - // Does a player have a previous state? - // The state that was on the previous session? - // - // If player does not have a previous session - // then we start in the Adventurers Guild in the Hovedstad - // - this.showBasicPrompt(this.castle); - } - - get castle() { - return ` + introText = ` ▄ █▐▀▀▀▌▄ █ ▐▀▀▀▌▌▓▌ @@ -78,6 +46,36 @@ export class GameScene extends Scene { ▓░ ▓░ ▐▌ ▀▌ ▐▌ ▐█ ▀▌▄▄ ▓▄▄ ▐█ ▓▌ ▄▄▄▐▌ ▄▄▄▀ ▐▐▐▀▀▀▀▐▐▐ ▐▐▀▀▀▀▀▀▐▐ + + += Welcome to Hovedstad `; + + onReady() { + // + // Find out which state the player and their characters are in + // Find out where we are + // Re-route to the relevant scene if necessary. + // + // IF player has stored state THEN + // restore it and resume [main flow] + // END + // + // IF player has no characters THEN + // go to createCharacterScene + // END + // + // set player's current location = Hovedstad + // display the welcome to Hovedstad stuff, and + // await the player's commands. + // + // + // IDEA: + // Does a player have a previous state? + // The state that was on the previous session? + // + // If player does not have a previous session + // then we start in the Adventurers Guild in the Hovedstad + // } } diff --git a/scenes/scene.js b/scenes/scene.js index 425f02c..9911980 100755 --- a/scenes/scene.js +++ b/scenes/scene.js @@ -64,9 +64,7 @@ export class Scene { throw new Error("Abstract method must be implemented by subclass"); } - /** - * @param {Prompt} prompt - */ + /** @param {Prompt} prompt */ showPrompt(prompt) { this.#currentPrompt = prompt; prompt.execute(); @@ -82,12 +80,14 @@ export class Scene { * * We route that message to the current prompt. * - * It should not be necessary to override this function + * You SHOULD NOT: + * - call this method directly + * - override this method * * @param {WebsocketMessage} message */ onReply(message) { - console.log("REPLY", { + console.debug("REPLY", { message, type: typeof message, }); @@ -99,11 +99,12 @@ export class Scene { * * We route that message to the current prompt. * - * It should may be necessary to override this method - * in case you want to trigger specific behavior before + * It may be necessary to override this method in + * case you want to trigger specific behavior before * quitting. * - * Default behavior is to route this message to the current prompt. + * You SHOULD NOT: + * - call this method directly */ onQuit() { this.currentPrompt.onQuit(); @@ -120,6 +121,9 @@ export class Scene { * many prompts, so handling this behavior inside the prompt * should be the primary choice. * + * You SHOULD NOT: + * - call this method directly + * * @param {WebsocketMessage} message */ onHelp(message) { diff --git a/test.js b/test.js index 9978d0c..516eb05 100644 --- a/test.js +++ b/test.js @@ -1,26 +1,25 @@ -let cnt = 0; +class TestParent { + someString = "foo"; -let val = Math.floor(Math.random() * 5); - -switch (val) { - case cnt++: - console.log("zero"); - break; - case cnt++: - console.log("one"); - break; - case cnt++: - console.log("two"); - break; - case cnt++: - console.log("three"); - break; - case cnt++: - console.log("four"); - break; - case cnt++: - console.log("five"); - break; - default: - console.log("waaat", { val }); + constructor() { + console.log(this.someString); + } } + +class TestChild extends TestParent { + get someString() { + return "bar"; + } + + set someString(_val) { + console.log("was I called?"); + } + + constructor() { + super(); + this.someString = "baz"; + console.log(this.someString); + } +} + +console.log(new TestChild());