From 6a0f3d7a252de4b1741cfe5e1c561412c602becc Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Tue, 9 Jun 2026 20:32:44 -0400 Subject: feat: better login screen --- internal/game/game.go | 53 +++++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 25 deletions(-) (limited to 'internal/game') diff --git a/internal/game/game.go b/internal/game/game.go index 0e1b82d..528c895 100644 --- a/internal/game/game.go +++ b/internal/game/game.go @@ -98,7 +98,7 @@ func (g *Game) handleAccountName(sess *net.Session, input string) { } else { sess.Account = &net.AccountEntry{Name: name} sess.State = net.StateNewAccountPass - sess.Write("Account not found. Enter a password to create it (or press enter to cancel): ") + sess.Write("A new visitor to this rock!\nChoose password: ") } } @@ -379,7 +379,7 @@ func (g *Game) handlePurgeAccount(sess *net.Session, input string) { // Delete account file os.Remove(g.AccountStore.AccountPath(sess.Account.Name)) - sess.WriteLine(fmt.Sprintf("Account %s has been purged.", sess.Account.Name)) + sess.WriteLine(fmt.Sprintf("Account %s has been purged. Thanks for playing.", sess.Account.Name)) sess.Conn.Close() } @@ -387,22 +387,25 @@ func (g *Game) showMenu(sess *net.Session) { sess.State = net.StateMenu lines := []string{ "", - fmt.Sprintf("Welcome, %s!", sess.Account.Name), + fmt.Sprintf("SUCCESSFUL LOGIN as %s.", sess.Account.Name), "", - "(C)onnect to character", } if len(sess.Account.Characters) > 0 { - lines = append(lines, "(L)ist characters") + lines = append(lines, + " (C)onnect character to TC", + "", + " (L)ist characters", + " (R)ename character", + " (D)elete character", + ) } lines = append(lines, - "(N)ew character", - "(R)ename character", - "(D)elete character", - "(P)urge account", - "(A)ccount rename", - "(Q)uit", + " (N)ew character", + " (P)urge account", + " (A)ccount rename", + " (Q)uit", "", - "Choice: ", + "INPUT: ", ) sess.WriteLines(lines...) } @@ -410,11 +413,11 @@ func (g *Game) showMenu(sess *net.Session) { func (g *Game) handleMenu(sess *net.Session, input string) { switch strings.ToLower(strings.TrimSpace(input)) { case "": - sess.Write("Choice: ") + sess.Write("INPUT: ") case "c": if len(sess.Account.Characters) == 0 { - sess.WriteLine("\nNo characters on this account.") - sess.Write("\nChoice: ") + sess.WriteLine("\nSYSTEM ERROR: Make a character with 'N' first!") + sess.Write("\nINPUT: ") return } if len(sess.Account.Characters) == 1 { @@ -431,19 +434,19 @@ func (g *Game) handleMenu(sess *net.Session, input string) { case "l": if len(sess.Account.Characters) == 0 { - sess.WriteLine("\nNo characters on this account.") + sess.WriteLine("\nSYSTEM ERROR: Zero characters on this account.\n(Make a character with 'N' first)") } else { - sess.WriteLine("\nCharacters:") + sess.WriteLine("\nSELECT Humans FROM GaiaZeroFour:") for _, name := range sess.Account.Characters { sess.WriteLine(fmt.Sprintf(" - %s", name)) } } - sess.Write("\nChoice: ") + sess.Write("\nINPUT: ") case "n": sess.State = net.StateNewCharName sess.PendingChar = "" - sess.Write("Character name: ") + sess.Write("What's your character name?: ") case "a": sess.State = net.StateRenameAccount @@ -467,12 +470,12 @@ func (g *Game) handleMenu(sess *net.Session, input string) { for i, name := range sess.Account.Characters { sess.WriteLine(fmt.Sprintf(" %d) %s", i+1, name)) } - sess.Write("\nChoice: ") + sess.Write("\n> : ") case "d": if len(sess.Account.Characters) == 0 { sess.WriteLine("\nNo characters to delete.") - sess.Write("\nChoice: ") + sess.Write("\nINPUT: ") return } if len(sess.Account.Characters) == 1 { @@ -483,23 +486,23 @@ func (g *Game) handleMenu(sess *net.Session, input string) { for i, name := range sess.Account.Characters { sess.WriteLine(fmt.Sprintf(" %d) %s", i+1, name)) } - sess.Write("\nChoice: ") + sess.Write("\n>: ") return } g.showDeleteConfirm(sess) case "p": sess.State = net.StatePurgeAccount - sess.WriteLine(fmt.Sprintf("\nPurge account %s and all characters? Type PURGE %s to confirm, or anything else to cancel.", sess.Account.Name, sess.Account.Name)) + sess.WriteLine(fmt.Sprintf("\nPurge account %s and all characters?\nTo be clear you are about to PERMANENTLY DELETE EVERYTHING!\nType PURGE %s to confirm, or anything else to cancel.", sess.Account.Name, sess.Account.Name)) sess.Write("\n> ") case "q": - sess.WriteLine("Goodbye.") + sess.WriteLine("Later.") sess.Conn.Close() return default: - sess.Write("Invalid choice. Choice: ") + sess.Write("SYNTAX ERROR\nINPUT: ") } } -- cgit v1.2.3