From 00d55d638c55a6cc63c76999e3bd5c8905e30c32 Mon Sep 17 00:00:00 2001 From: Kim Ravn Hansen Date: Mon, 13 Oct 2025 15:58:34 +0200 Subject: [PATCH] Stuff and things --- scenes/justLoggedIn/justLoggedInScene.js | 2 +- scenes/partyCreation/partyCreationScene.js | 44 ++++++++++++------- scenes/playerCreation/createUasswprdPrompt.js | 0 scenes/playerCreation/playerCreationSene.js | 3 +- scenes/prompt.js | 17 +++---- 5 files changed, 36 insertions(+), 30 deletions(-) mode change 100644 => 100755 scenes/playerCreation/createUasswprdPrompt.js diff --git a/scenes/justLoggedIn/justLoggedInScene.js b/scenes/justLoggedIn/justLoggedInScene.js index 2b2f861..7351c07 100755 --- a/scenes/justLoggedIn/justLoggedInScene.js +++ b/scenes/justLoggedIn/justLoggedInScene.js @@ -1,4 +1,4 @@ -import { Session } from "../models/session.js"; +/** @typedef {import("../models/session.js").Session} Session */ const castle = ` ▄ diff --git a/scenes/partyCreation/partyCreationScene.js b/scenes/partyCreation/partyCreationScene.js index eaefa7a..c1ed327 100755 --- a/scenes/partyCreation/partyCreationScene.js +++ b/scenes/partyCreation/partyCreationScene.js @@ -5,6 +5,18 @@ import { frameText } from "../utils/tui.js"; import { Config } from "../config.js"; import { State } from "./state.js"; +// _____ ___ ____ ___ ____ _ _____ +// |_ _/ _ \| _ \ / _ \ _ / ___|___ _ ____ _____ _ __| |_ |_ _|__ +// | || | | | | | | | | (_) | | / _ \| '_ \ \ / / _ \ '__| __| | |/ _ \ +// | || |_| | |_| | |_| |_ | |__| (_) | | | \ V / __/ | | |_ | | (_) | +// |_| \___/|____/ \___/(_) \____\___/|_| |_|\_/ \___|_| \__| |_|\___/ +// +// ____ +// / ___| ___ ___ _ __ ___ ___ +// \___ \ / __/ _ \ '_ \ / _ \/ __| +// ___) | (_| __/ | | | __/\__ \ +// |____/ \___\___|_| |_|\___||___/ + export class PartyCreationState extends State { /** * @proteted @@ -16,7 +28,7 @@ export class PartyCreationState extends State { /** @param {Session} session */ constructor(session) { - /** @type {Session} */ + super(); this.session = session; } @@ -32,11 +44,7 @@ export class PartyCreationState extends State { this.sendText(createPartyLogo, { preformatted: true }); - this.session.sendText([ - "", - `Current party size: ${charCount}`, - `Max party size: ${Config.maxPartySize}`, - ]); + this.session.sendText(["", `Current party size: ${charCount}`, `Max party size: ${Config.maxPartySize}`]); const min = 1; const max = Config.maxPartySize - charCount; const prompt = [ @@ -46,32 +54,32 @@ export class PartyCreationState extends State { this.sendText(`You can create a party with ${min} - ${max} characters, how big should your party be?`); - /** @param {WebsocketMessage} message */ - this.sendPrompt(prompt, (m) => this.receivePlayerCount(m)); + /** @param {WebsocketMessage} m */ + this.sendPrompt(prompt, (m) => this.receiveCharacterCount(m)); } /** @param {WebsocketMessage} m */ - receivePlayerCount(m) { + receiveCharacterCount(m) { if (m.isHelpRequest()) { return this.partySizeHelp(); } if (!m.isInteger()) { this.sendError("You didn't enter an integer"); - this.sendPrompt(prompt, (m) => this.receivePlayerCount(m)); + this.sendPrompt(prompt, (m) => this.receiveCharacterCount(m)); return; } - const numCharactersToCreate = Number(message.text); - if (numCharactersToCreate > max) { + const numCharactersToCreate = Number(m.text); + if (numCharactersToCreate > Config.maxPartySize) { this.sendError("Number too high"); - this.sendPrompt(prompt, (m) => this.receivePlayerCount(m)); + this.sendPrompt(prompt, (m) => this.receiveCharacterCount(m)); return; } - if (numCharactersToCreate < min) { + if (numCharactersToCreate < 1) { this.sendError("Number too low"); - this.sendPrompt(prompt, (m) => this.receivePlayerCount(m)); + this.sendPrompt(prompt, (m) => this.receiveCharacterCount(m)); return; } @@ -80,7 +88,7 @@ export class PartyCreationState extends State { partySizeHelp() { this.sendText([ - `Your party can consist of 1 to ${mps} characters.`, + `Your party can consist of 1 to ${Config.maxPartySize} characters.`, "", "* Large parties tend live longer", `* If you have fewer than ${Config.maxPartySize} characters, you can`, @@ -95,3 +103,7 @@ export class PartyCreationState extends State { return; } } + +if (Math.PI < 0 && Session && WebsocketMessage) { + ("STFU Linda"); +} diff --git a/scenes/playerCreation/createUasswprdPrompt.js b/scenes/playerCreation/createUasswprdPrompt.js old mode 100644 new mode 100755 diff --git a/scenes/playerCreation/playerCreationSene.js b/scenes/playerCreation/playerCreationSene.js index 0b495d2..8f69fcd 100755 --- a/scenes/playerCreation/playerCreationSene.js +++ b/scenes/playerCreation/playerCreationSene.js @@ -1,5 +1,6 @@ import { Config } from "../../config.js"; import { gGame } from "../../models/globals.js"; +import { generateHash } from "../../utils/security.js"; import { Scene } from "../scene.js"; import { CreateUsernamePrompt } from "./createUsernamePrompt.js"; @@ -47,6 +48,6 @@ export class PlayerCreationScene extends Scene { passwordAccepted(password) { this.password = password; this.session.sendText("*_Success_* ✅ You will now be asked to log in again, sorry for that ;)"); - this.player.setPasswordHash(security.generateHash(this.password)); + this.player.setPasswordHash(generateHash(this.password)); } } diff --git a/scenes/prompt.js b/scenes/prompt.js index cfde0aa..f5114ff 100755 --- a/scenes/prompt.js +++ b/scenes/prompt.js @@ -1,11 +1,8 @@ -import figlet from "figlet"; -import { gGame } from "../models/globals.js"; -import { Session } from "../models/session.js"; import { Scene } from "./scene.js"; -import { MessageType, WebsocketMessage } from "../utils/messages.js"; -import { mustBe, mustBeString } from "../utils/mustbe.js"; -import { sprintf } from "sprintf-js"; +/** @typedef {import("../models/session.js").Session} Session */ +/** @typedef {import("../utils/message.js").WebsocketMessage} WebsocketMessage */ +/** @typedef {import("../utils/message.js").MessageType} MessageType */ /** * @typedef {object} PromptMethods * @property {function(...any): any} [onColon_*] - Any method starting with "onColon_" @@ -27,10 +24,6 @@ export class Prompt { return this._scene; } - // - // Extra info about the prompt we send to the client. - promptOptions = undefined; - /** * Dictionary of help topics. * Keys: string matching /^[a-z]+$/ (topic name) @@ -159,7 +152,7 @@ export class Prompt { * * @param {WebsocketMessage} message The incoming reply */ - onReply(message) {} + onReply() {} /** * @overload @@ -202,7 +195,7 @@ export class Prompt { * @param {string} errorMessage */ calamity(...args) { - this.session.calamity(); + this.session.calamity(...args); } //