Обе сцены собраны через Code Mode, не руками. - loader: поднимает модули, прогревает арт карт, уходит в lobby - lobby: обе UI-ветки в одной сцене (по ARCHITECTURE.md), матч — это смена видимого корня, а не загрузка сцены - GameScreen рисует текущее состояние и доводит узлы твинами, а не проигрывает поток событий: узел карты живёт вместе со своей картой, поэтому "шестёрка ушла из руки на стол" не требует отдельного случая - один тап = ход целиком; логика вынесена в core/rules/intent.ts и покрыта тестами, в том числе проверкой, что она никогда не предложит ход, который правила отвергнут - арт карт переехал в assets/resources: .pac — это инструкция упаковки на сборке, а не рантайм-ассет, и без ссылок на кадры в сборку не попадало ничего. Теперь все 37 спрайтов в одной текстуре 2048x2048 - клики кнопок подписываются в коде, а не через clickEvents сцены - строки интерфейса собраны в одном файле Сборка web-mobile проходит чисто, все ссылки в сцене проверены. Вживую не запускалось: браузер в этом окружении не поднимает главный цикл движка. Подробности — в docs/TECHNICAL.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
30 lines
1.5 KiB
Markdown
30 lines
1.5 KiB
Markdown
# Card face attribution
|
|
|
|
The 36 card faces in this folder are rendered from **Vector Playing Cards** by
|
|
**Chris Aguilar** (`totalnonsense.com/open-source-vector-playing-cards/`,
|
|
originally `code.google.com/p/vector-playing-cards/`).
|
|
|
|
- **Licence:** LGPL-3.0
|
|
- **Attribution is a requirement of the licence** and must appear in the shipped
|
|
game — a credits screen, an about box, or the store listing description.
|
|
- The unmodified vector sources are kept in [`art-src/cards`](../../../art-src/cards)
|
|
so the LGPL obligation to make the source form available is met, and so the
|
|
sprites can be regenerated: `npm run build:art`.
|
|
|
|
The court cards (J, Q, K) come from the set's alternate variants, which carry the
|
|
proper court illustrations; the plain variants are only a large suit pip.
|
|
|
|
Everything else in `assets/art` — the card back, the table surface, the panels
|
|
and the buttons — was authored for this project in
|
|
[`scripts/build-art.mjs`](../../../scripts/build-art.mjs) and carries no third
|
|
party licence.
|
|
|
|
## Note for whoever ships this
|
|
|
|
LGPL-3.0 is a copyleft licence. It is usable in a closed-source game as long as
|
|
the licensed part stays separable and replaceable and its source is available —
|
|
which is why the SVGs are in the repository rather than deleted after the build.
|
|
If that is not acceptable for this product, the 36 faces are the only thing that
|
|
has to be replaced; nothing in the code depends on their appearance, only on the
|
|
file names, which follow `<rank>_of_<suit>.png` (see `Card.assetName`).
|