# 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 # 1000 партий случайного бота с проверкой инвариантов dotnet run --project server/src/Vanguard.Cli -- stress 1000 # тесты dotnet test server/Vanguard.slnx ``` Ожидаемый вывод валидатора: ``` Карт: 94 Принтов: 124 OK: ошибок 0, предупреждений 0 ``` ## Структура ``` /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 импорт и сид переводов /docs правила перевода и прочие документы ``` `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)`, ``) заменяются на иконки при отрисовке. Чтобы перевод не ломал разметку, тексты хранятся в виде **шаблонов с токенами**: ``` {auto}:{cb:2} When this unit is placed on {vc}, you may pay the cost... ``` Список токенов и их иконок — `content/keywords.yaml`. Русские тексты — `content/translations/ru.yaml`: заполняется только `textRu`. Поле `nameRu` существует, но пока содержит английское название — на случай, если позже решим переименовать карты. Правила перевода и спорные термины — `docs/translation-rules.md`. Черновой перевод всех 66 текстов уже залит; его правит человек, после чего правила уточняются под фактические правки. ```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` — план реализации по блокам и гейтам. - `docs/HANDOFF.md` — состояние на конец сессии и порядок следующих шагов. - `content/cards-mvp.md` — каталог карт с разбором состава сетов.