first commit
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user