# I Want To Heal — Thor healer roguelike Playable low-poly third-person combat vertical slice for AYN Thor's dual displays. Offline-first frontend includes three timestamped save slots, optional account sync, local/online overwrite controls, Hunter Profile statistics, boss collection logs, Settings, and PvE/PvP mode entry points. ## Run ```bash pnpm install pnpm dev ``` The development server listens on `0.0.0.0:4173`. ## TrueNAS deployment The production preview server uses the existing deployment address and port: - Public URL: `https://iwanttoheal.phenomrom.com` - Host/container port: `4173` - App directory: `/mnt/usbssds/apps/iwanttoheal/app` Copy the repository into the app directory, then deploy `compose.yaml`. The old app's `db:init` step is intentionally omitted because this game has no database. The existing reverse proxy can keep forwarding the public hostname to port `4173`. ## Publish updates to Gitea The repository target is: ```text https://git.whoagland.com/phenom/i-want-to-heal-mmo.git ``` Publish a checked update from the `main` branch: ```bash pnpm publish:gitea -- --message "Describe the update" ``` The script installs locked dependencies, builds, runs tests, commits all project changes, and pushes `main`. If the TrueNAS app directory is mounted locally, it also performs a fast-forward-only pull. Otherwise it prints the clone/pull command to run on TrueNAS before restarting the app. The pull refuses to run when the TrueNAS checkout still points at the old game's repository; move or archive that checkout and clone the new repository first. Preview checks without changing Git or TrueNAS: ```bash pnpm publish:gitea -- --dry-run ``` Gitea credentials must come from Git's credential manager or an SSH remote. Do not store access tokens in this repository. ## Controls - `WASD` / left stick: move - `Q` and `E` / D-pad: cycle party target - `1`–`6`: cast Smite, Renew, Shield, Purify, Radiance, Flash Heal - Gamepad: `X`, `Y`, `B`, `A`, `LB`, `RB` map to those abilities - `M`: tactical map - `I`: inventory and item tooltip - `Enter` / Start: begin or reset encounter Touch controls on lower display support party targeting, ability casting, map, and inventory. ## Prototype scope - Five-member AI party with Disc Priest healer - Animated Druid healer, Knight tank, Ranger, Rogue, and Mage party models - One animated boss: Bulldrome, using the Bull model at 180% of its original prototype scale - Telegraph, charge, 0.75-second knockdown, and return-to-tank behavior - Three-charge cycle into a five-second stack marker and 300-damage shared pounce - Tank pressure, party-wide Cinder Nova, dispellable Ember Brand - Full cooldown, mana, healing-over-time, shield absorption, and victory/defeat simulation - True display ratios: 1920×1080 top and 1240×1080 bottom - Android layout targets: approximately 960×540 CSS pixels top and 620×540 CSS pixels bottom - Lower-screen typography scales against its own container, never the main page viewport Current build is browser-based for fast iteration. Shipping to separate physical Thor displays needs an Android host that presents the game viewport and tactical React surface on distinct display contexts.