An original turn-based island-conquest game, inspired by Soleau Software's Isle Wars Pro, built in TypeScript: a pure rules core, an SVG map, and a DOM and CSS UI. Its design comes from the reviewed findings of isle-wars-archaeology. It restarts from the TypeScript spike of malpaco-godot-poc, the archived Godot proof of concept.
How work is done here: CLAUDE.md and docs/process.md. Tasks: docs/tasks/. Task status lives in GitHub issue labels.
Play on GitHub Pages · Netlify, or download the
latest published playable archive.
The illustrated player manual explains every phase, cards, events,
controls and settings. Open Full player manual with screenshots in Help during
play, or run npm run manual:refresh for a portable copy. The
maintenance guide keeps it and inline Help current;
0.5.5 release notes,
publication receipt and
provenance describe that published release.
0.5.5 was published from reviewed source 009e827, after independent
MiniMax-M3 thinking AGREE and explicit owner approval. It adds Windows x64
installer and portable downloads, repository/Releases links in Help and the
manual, and a fully reachable Help close control in fullscreen.
Milestone #465 retains the
review, byte verification and publication receipts; Windows instructions
explain WebView2, unsigned delivery and per-user saves.
Release contracts and the acceptance protocol define its boundaries. Previous 0.5.4 publication records and all older tags/assets remain preserved.
The launcher adapts to portrait/landscape windows and offers Start or Resume. Button labels support Text, Icons, or Text 2 turns, then Icons (default), counting your personal turns. Choose Slow/Normal/Fast/Very fast computer turns; both display preferences apply immediately and persist on this browser. Widget −/+ and Hide/Show controls preserve map zoom and keep Resume reachable. Ambiguous taps select the region with the most area under the contact and zoom in slightly. Choose 1–3 Normal opponents, starting-army range, events and map size for the next game; retained games keep their original rules and replay identity.
Place armies, then use ATTACK beside a selected country. Capture and friendly-move panels have Min/Max, +/− and manual entry; only Confirm moves troops. The colour tracker shows turn order and phase guidance while executed computer actions play at a readable pace. Cards use army amounts/effects; draw notices close after three unpaused seconds, while input choices still require an explicit decision.
New game asks before giving up; Settings holds the scoreboard, and ? opens Help. Games and scores stay in this browser. The archive runs offline with Node 22+. This release publishes the web game; Android production persistence and delivery remain separate work. There is no account or cross-device synchronization.
For development, run npm ci and npm run dev. ?seed=1994 fixes geography, deal
and dice and keeps its own game. ?setup opens the development setup and file controls;
?view=reference-game opens the fixed Nine Isles board. Legacy generated views are
available in the source development build and retired in the published archive.
npm run dev uses the committed Vite configuration to exclude this checkout’s
.cache directory, which can otherwise consume large numbers of filesystem
watches. The exclusion is anchored to this checkout,
so source, data, public assets and tests still update when the checkout itself
lives under another .cache directory. Vitest watch mode retains test reruns.
Run npm run package:playable to rebuild and package the game as
release/malpaco-playable.tar.gz. The play instructions explain
how to run the extracted build without the source checkout or npm dependencies.
The Pages workflow builds the production game with VITE_MALPACO_RELEASE=1 and
--base=/malpaco/, then publishes only dist/. In Settings → Pages, choose
GitHub Actions. Pushes to main deploy automatically; manual runs are supported.
This is a separate web mirror, with browser-local saves and preferences separate
from Netlify. Existing release tags, archives and the Netlify publication are
unchanged. Help opens the illustrated guide inside the hosting path, and the
guide’s Play link returns to the same game.