User accounts, login before the title screen, own savegames per user, standalone download

- Service: accounts with Argon2 password hashes and session tokens; the first login creates
  the admin (shared savegames of before move to the admin); the admin creates and deletes
  users; everybody can change the password; savegames are stored and listed per user
- Game: login page before the title (only when the service is reachable), with licence and
  repository link; account page (password, logout; users for the admin); text fields with
  Tab/Enter, masked passwords, browser dialog on touch screens; long status messages wrap
- Download Standalone: DungeonCraft.html with the game embedded (built in the Docker image,
  served to logged-in users via nginx auth_request); works from file:// without server and
  opens downloaded savegames
- Without the service (standalone, local files) there is no login, savegame files as before

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-03 13:33:22 +01:00
1 parent 8853d84564
commit c9848c8948
15 files changed
+1232 -83

No files matched your search

+33
View File
@@ -539,3 +539,36 @@ cost.steel = {0} gold/wall, {1} for reinforced walls
hint.steel_where = Steel can only be put on earth walls next to your own ground.
tile.steel = Steel wall
tile.steel_info = Heroes need ages to get through.
# accounts and standalone
login.title = Login
login.setup = Create the admin account
login.setup_hint = First start of the server: this name and password become the admin account.
login.name = Name:
login.password = Password:
login.button = Log in
login.create_admin = Create admin account
login.err_invalid = Name: letters, digits, - and _ (max. 24); password at least 4 characters.
login.err_wrong = Wrong name or password.
login.err_session = Please log in again.
login.welcome = Logged in as {0}.
menu.account = Account: {0}
menu.standalone = Download Standalone
account.title = Account of {0}
account.title_admin = Account of {0} (admin)
account.change_pw = Change password
account.old_pw = Old password:
account.new_pw = New password:
account.save_pw = Change
account.users = Users
account.user_name = New user:
account.user_pw = Password:
account.create = Create user
account.logout = Log out
account.err_old = The old password is wrong.
account.err_exists = This user already exists.
account.pw_changed = Password changed.
account.users_changed = Users updated.
standalone.running = Preparing the standalone version ...
standalone.done = DungeonCraft.html downloaded: open it in any browser, no server needed. Your downloaded savegames load there too.
standalone.failed = The standalone version could not be downloaded.