M5-M7: сцены, лобби, экран игры и цикл матча
Обе сцены собраны через 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>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# 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`).
|
||||
Reference in New Issue
Block a user