8.1 KiB
Vanguard ReMaster
Фанатский ремейк Cardfight!! Vanguard базовой эры: формат Classic (BT01 + TD01/TD02), сервер на .NET 10 и Unity-клиент 6.6.6f1. Это рабочая база правил проекта, а не пересказ официального компендиума.
Как пользоваться
- Перед задачей читай
docs/SESSION-STATE.md, затемdocs/HANDOFF.mdиdocs/client-visual-direction.md. - Для правил/карт/эффектов открывай
game-rules.mdиcard-implementation.md. - Для сервера, клиента, протокола и зависимостей —
architecture.md. - Для процесса, антипаттернов и открытых вопросов —
workflow-and-decisions.md. - Не читай все документы сразу, если задача узкая. Не пересказывай их в ответе.
Статусы в документах:
- [D] — подтверждённое пользователем решение;
- [C] — фактическое устройство проекта (код/конфиг);
- [O] — открытый вопрос или незавершённая часть.
Критические правила
- Источник истины — сервер.
GameEngine/MatchGrainменяют состояние; клиент только отправляетIntentPayloadи рисуетMatchView. - Не выдумывай правила и API. Если правило не подтверждено, это
[O], а не «как в Vanguard обычно». - Сначала вопрос, потом решение. Для существенной неопределённости
используй инструмент
questionс 2–4 вариантами. - Минимальные изменения. Не переписывай работающие системы, не создавай дубликаты, не меняй сцены/префабы без причины.
- Геймплей вручную проверяет пользователь. Автотесты и smoke — да; собственное прохождение не выдавай за приёмку.
- Сервер проверяется только на
ssh home/Docker. Локальныйdotnetи Docker на рабочем ПК не запускать. - Unity batch — только в копии проекта без
Library. - Выбор объектов — клик/драг по карте, кругу, зоне или полю. Кнопки — только глобальные действия и подтверждения.
- Одна текстовая способность — одна реализация.
CardScript, общий движок или флаг данных. Текст без реализации — баг. - После блока: клиентские EditMode, серверные тесты (на home),
validate,translations check, коммит и push. - Сначала план, потом код: новые изменения проходят анализ DeepSeek с
записью в
docs/Development/IMPLEMENTATION_PLAN.md, затем реализацию — её тоже выполняет DeepSeek, отдельным проходом по готовому плану. Передача — через файлы и Git, не через память модели. Детали —docs/Development/AGENT-WORKFLOW.md.
Быстрая карта проекта
content/ YAML карт, переводы, ключевые слова, триал-деки, шансы
docs/ правила, протокол, API, аудит способностей, состояние
server/src/Vanguard.Rules чистое ядро: карты, колоды, GameEngine
server/src/Vanguard.Shared DTO, MessagePack, проекции (netstandard2.1 + net10)
server/src/Vanguard.Content загрузка/валидация YAML
server/src/Vanguard.Server ASP.NET, auth/meta, матчи, Orleans, WebSocket
server/tests правила и сервер/E2E
client/Assets/Vanguard/Runtime Unity: Api/Auth/State/Meta/Battle/Board3D/UI/App
client/Assets/Vanguard/Editor SceneBuilder, StandaloneBuild, SceneSmoke
client/Assets/Vanguard/Tests EditMode
Ключевые классы: GameEngine, GameState, CardScripts.Default,
MatchGrain, MatchProjection, GameConnection, BattleView,
GameBoard3D, Card3D, CardMoveAnimator, CameraDirector,
TriggerCheckSequence, ArrowDirector, InputLockService.
Текущие подтверждённые ограничения
- Формат — Classic, не Standard/Premium/G. Ride Deck, Persona Ride, Stride, Gift, Legion, Front/Over-триггеры и G-зона не входят в текущую игру.
- Смешивать кланы в колоде можно; эффекты с условием клана могут не
сработать.
DeckValidatorэтого не запрещает. - 50 карт, 16 триггеров, ≤4 копий по
nameId, ≤4 Heal, ≤4 Sentinel; в коллекции лимита копий нет. - Верхний
CombatStatsstrip — допустимый HUD; world-space Power/Shield ещё не сделаны. - Отдельный
CostPaymentOverlayдля multi-target стоимости требуется, но пока реализован только выбор Counter Blast в панели «Действия». AttackResolutionQueue— требование на будущее, сейчас бой имеет одну цель.DropZoneFaceDownсуществует в конфиге; по Classic defaultfalse.
Проверки
# серверные тесты — только на home
ssh home "docker run --rm -v ~/VanguardReMaster-test:/src -w /src \
mcr.microsoft.com/dotnet/sdk:10.0 dotnet test server/Vanguard.slnx"
# контент
ssh home "docker run --rm -v ~/VanguardReMaster:/src -w /src \
mcr.microsoft.com/dotnet/sdk:10.0 dotnet run --project server/src/Vanguard.Cli -- validate"
ssh home "docker run --rm -v ~/VanguardReMaster:/src -w /src \
mcr.microsoft.com/dotnet/sdk:10.0 dotnet run --project server/src/Vanguard.Cli -- translations check"
# клиентская копия
& 'C:\Program Files\Unity\Hub\Editor\6000.6.6f1\Editor\Unity.exe' `
-batchmode -nographics -projectPath <copy> `
-runTests -testPlatform EditMode -testResults <copy>\TestResults.xml
Smoke: Vanguard.Editor.SceneSmoke.Run / RunPlaymat; сборка:
Vanguard.Editor.StandaloneBuild.BuildWindowsCli.
Дополнительные документы
- game-rules.md — правила Classic, зоны, фазы, триггеры, стоимости, порядок эффектов, известные расхождения.
- architecture.md — сервер/клиент/протокол, границы, источник истины, сохранение, Unity-слой.
- card-implementation.md — YAML, AUTO/ACT/CONT, выборы, стоимости, тесты и чеклист новой карты.
- workflow-and-decisions.md — решения, процесс, антипаттерны, известные ошибки и открытые вопросы.
Связанные документы репозитория: docs/game-rules.md,
docs/ability-implementation.md, docs/protocol.md,
docs/server-api.md, docs/client-visual-direction.md,
docs/translation-rules.md, docs/Development/IMPLEMENTATION_PLAN.md,
docs/Development/AGENT-WORKFLOW.md.