85 lines
3.2 KiB
Markdown
85 lines
3.2 KiB
Markdown
# 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.
|