first commit

This commit is contained in:
Warren H
2026-07-10 17:54:26 -04:00
commit 141ec64963
+84
View File
@@ -0,0 +1,84 @@
# 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.