Title screen, pause menu, settings dialog and savegames
- title screen (continue/new/load/settings/help) and Esc pause menu - settings: language & sound, camera, graphics, game, rebindable keys; stored in localStorage and in every savegame (always applied on load) - savegames as JSON (.dcsave): download, load via file picker or drag & drop - autosave to localStorage every 2 minutes and when the tab is hidden/closed - configurable wall detail, light count, interface size, game speed, hints - audio behind a cargo feature so native tests run (cargo test --no-default-features) - savegame round-trip test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
fbf6f223fc
commit
fb7dab3683
17 files changed
+1742
-345
No files matched your search
@@ -34,12 +34,17 @@ python3 -m http.server 8080 -d www # open http://localhost:8080
|
||||
|
||||
### Testing the game logic
|
||||
|
||||
The game logic (`src/game.rs`, `src/map.rs`) does not depend on macroquad and contains a headless simulation test.
|
||||
The game logic (`src/game.rs`, `src/map.rs`) does not depend on macroquad. The tests (a headless simulation of whole games and a savegame round trip) run natively without the audio feature:
|
||||
|
||||
```sh
|
||||
cargo test --release --no-default-features
|
||||
```
|
||||
|
||||
## Controls
|
||||
|
||||
| Input | Action |
|
||||
|---|---|
|
||||
| Esc | Pause menu (save, load, settings) |
|
||||
| Left click / drag | Use the active tool (dig and rooms: drag a rectangle) |
|
||||
| Right click | Drop a unit from your hand |
|
||||
| Right drag, WASD, arrows, screen edge | Move the camera |
|
||||
@@ -51,6 +56,12 @@ The game logic (`src/game.rs`, `src/map.rs`) does not depend on macroquad and co
|
||||
| G | Tile outlines on/off |
|
||||
| H | Help |
|
||||
|
||||
All keys except Esc and the arrow keys can be changed in Settings → Keys.
|
||||
|
||||
## Savegames
|
||||
|
||||
Use *Save Game* in the pause menu to download a `.dcsave` file (JSON). Load it again via *Load Game* or by dropping the file onto the game window. The game also autosaves into the browser every two minutes and when the tab is closed; *Continue* on the title screen resumes from there.
|
||||
|
||||
## Adding a language
|
||||
|
||||
1. Copy `lang/en.lang` to `lang/<code>.lang` and translate the texts (placeholders `{0}`, `{1}` stay as they are).
|
||||
|
||||
Reference in new issue
Block a user