feat(loldle): add ability and splash champion-guessing modules

Closes deferred phases 04 + 05 of loldle-new-modes plan.

- loldle-ability: 5 guesses, DDragon ability icon as photo. State pins
  slot (P/Q/W/E/R) so the same icon shows every turn. Abilities pulled
  from DDragon per-champion — same source loldle.net uses at runtime.
- loldle-splash: 4 guesses, random skin splash as photo. Skin pool
  scraped from loldle.net bundle (var Ad=[…] — 172 champs × 1939 skins,
  non-chroma, matches their splash mode exactly). URLs from Riot
  DDragon CDN (no version segment, stable across patches).
- fetch-ddragon-data.js: extended to write all four JSONs in one run.
  Shares a single DDragon per-champion fetch cycle (concurrency 10).
- Credits loldle.net + Riot Games in all loldle-family READMEs.

19 new tests (503 total). Lint clean. register:dry reports 12 loldle_*
commands with no conflicts.
This commit is contained in:
2026-04-24 23:58:42 +07:00
parent bd5626534b
commit 3ac06bffaa
24 changed files with 16998 additions and 5 deletions
+10
View File
@@ -68,6 +68,8 @@ src/
│ ├── loldle/ # classic-mode LoL champion guessing (KV storage)
│ ├── loldle-emoji/ # emoji-clue LoL champion guessing (KV storage)
│ ├── loldle-quote/ # lore-blurb LoL champion guessing (KV storage)
│ ├── loldle-ability/ # ability-icon LoL champion guessing (KV storage)
│ ├── loldle-splash/ # splash-art LoL champion guessing (KV storage)
│ └── misc/ # stub (KV storage)
└── util/
└── escape-html.js
@@ -198,6 +200,14 @@ TL;DR:
| `npm run register` exits `missing env: X` | Add `X` to `.env.deploy`. |
| `--env-file` flag not recognized | Node < 20.6. Upgrade Node. |
## Credits
The `loldle` module family (classic, emoji, quote, ability, splash) is
inspired by [**loldle.net**](https://loldle.net/). Classic's champion
metadata and splash mode's skin pool are scraped from their JS bundle;
other modes derive or generate data from [Riot Data Dragon](https://ddragon.leagueoflegends.com/).
League of Legends, champion art, and ability icons are © Riot Games.
## Further reading
- [`docs/architecture.md`](docs/architecture.md) — deeper dive: cold-start, module lifecycle, KV + D1 storage, cron dispatch, deploy flow, design tradeoffs.