109 lines
4.9 KiB
Markdown
109 lines
4.9 KiB
Markdown
# Vanguard Re:Master
|
||
|
||
Фанатский ремастер Cardfight!! Vanguard базовой эры (2011): формат `Classic`, сет BT01 и два триал-дека TD01/TD02.
|
||
|
||
> Fan-made project. Not affiliated with Bushiroad. All card names and art belong to their respective owners.
|
||
|
||
## Статус
|
||
|
||
| Блок | Состояние |
|
||
|---|---|
|
||
| Документация и решения | готово |
|
||
| Каталог карт (94 / 124 принта) | готово |
|
||
| Контент-пайплайн и валидатор | готово |
|
||
| Игровое ядро (правила) | в работе |
|
||
| Сервер, клиент, лаунчер | не начато |
|
||
|
||
## Требования
|
||
|
||
- **.NET SDK 10** (LTS). Версия зафиксирована в `global.json`.
|
||
- **Python 3** — только для переимпорта карт из первоисточника.
|
||
|
||
## Быстрый старт
|
||
|
||
```powershell
|
||
# проверить целостность контента
|
||
dotnet run --project server/src/Vanguard.Cli -- validate
|
||
|
||
# сводка по кланам, триггерам и редкостям
|
||
dotnet run --project server/src/Vanguard.Cli -- stats
|
||
|
||
# тесты
|
||
dotnet test server/Vanguard.slnx
|
||
```
|
||
|
||
Ожидаемый вывод валидатора:
|
||
|
||
```
|
||
Карт: 94 Принтов: 124
|
||
|
||
[Warning] card.no-ru-name: Без русского названия: 94 карт (...).
|
||
|
||
OK: ошибок 0, предупреждений 1
|
||
```
|
||
|
||
## Структура
|
||
|
||
```
|
||
/server/src/Vanguard.Rules ядро правил: карты, колоды, состояние игры
|
||
/server/src/Vanguard.Content загрузка и проверка YAML-контента
|
||
/server/src/Vanguard.Shared общие контракты (netstandard2.1, для Unity)
|
||
/server/src/Vanguard.Cli консольные команды
|
||
/server/tests тесты правил и контента
|
||
/content/sets карты в YAML
|
||
/content/keywords.yaml ключевые слова и иконки
|
||
/content/translations/ru.yaml русские названия и тексты
|
||
/tools импорт из первоисточника
|
||
```
|
||
|
||
`Vanguard.Rules` — чистая библиотека без Orleans, БД и сети. Это позволяет прогонять
|
||
матчи в консоли и проверять правила до появления клиента.
|
||
|
||
## Контент
|
||
|
||
Первоисточник — официальный карт-лист `en.cf-vanguard.com`; триггеры и редкости
|
||
выгружены из вики. Пересобрать YAML:
|
||
|
||
```powershell
|
||
python tools/import_cards.py
|
||
```
|
||
|
||
Валидатор проверяет инварианты, которые легко нарушить вручную:
|
||
|
||
- у grade 0 щит 5000 **только** у Draw-триггера, иначе 10000;
|
||
- Sentinel всегда со щитом 0;
|
||
- параллельный принт (`BT01/S01`…`S12`) ссылается на существующий базовый принт той же карты;
|
||
- в колоде ровно 50 карт, ≤4 копий по имени (а не по принту), ≤4 Sentinel, ≤4 Heal.
|
||
|
||
## Тексты карт и иконки
|
||
|
||
Ключевые слова (`[AUTO]`, `[Counter-Blast 3]`, `(VC/RC)`, `<Kagero>`) заменяются
|
||
на иконки при отрисовке. Чтобы перевод не ломал разметку, тексты хранятся в виде
|
||
**шаблонов с токенами**:
|
||
|
||
```
|
||
{auto}:{cb:2} When this unit is placed on {vc}, you may pay the cost...
|
||
```
|
||
|
||
Список токенов и их иконок — `content/keywords.yaml`.
|
||
Русские тексты — `content/translations/ru.yaml`: заполняются `nameRu` и `textRu`,
|
||
токены в `textRu` нужно сохранить в том же количестве.
|
||
|
||
```powershell
|
||
# создать файл переводов или обновить шаблоны, сохранив введённые переводы
|
||
dotnet run --project server/src/Vanguard.Cli -- translations build
|
||
|
||
# проверить заполнение и целостность токенов
|
||
dotnet run --project server/src/Vanguard.Cli -- translations check
|
||
```
|
||
|
||
Проверка ловит: незаполненные имена и тексты, потерянные или лишние токены,
|
||
токены, которых нет в справочнике.
|
||
|
||
## Документация
|
||
|
||
- `plan.md` — исходный дизайн-документ.
|
||
- `DEVELOPMENT_CHECKLIST.md` — решения, механики, экономика, риски.
|
||
- `IMPLEMENTATION_CHECKLIST.md` — план реализации по блокам и гейтам.
|
||
- `content/cards-mvp.md` — каталог карт с разбором состава сетов.
|