130 lines
8.1 KiB
Markdown
130 lines
8.1 KiB
Markdown
---
|
||
name: Vanguard ReMaster
|
||
description: Use for any work in the Vanguard ReMaster repository: Cardfight!! Vanguard rules and card abilities, Vanguard.Rules/GameEngine, WebSocket+MessagePack protocol and server, Unity 6 3D client and uGUI, tests, deployment, or project conventions.
|
||
---
|
||
|
||
# Vanguard ReMaster
|
||
|
||
Фанатский ремейк Cardfight!! Vanguard базовой эры: формат **Classic**
|
||
(BT01 + TD01/TD02), сервер на .NET 10 и Unity-клиент 6.6.6f1. Это рабочая база
|
||
правил проекта, а не пересказ официального компендиума.
|
||
|
||
## Как пользоваться
|
||
|
||
1. Перед задачей читай `docs/SESSION-STATE.md`, затем `docs/HANDOFF.md` и
|
||
`docs/client-visual-direction.md`.
|
||
2. Для правил/карт/эффектов открывай `game-rules.md` и
|
||
`card-implementation.md`.
|
||
3. Для сервера, клиента, протокола и зависимостей — `architecture.md`.
|
||
4. Для процесса, антипаттернов и открытых вопросов —
|
||
`workflow-and-decisions.md`.
|
||
5. Не читай все документы сразу, если задача узкая. Не пересказывай их в
|
||
ответе.
|
||
|
||
Статусы в документах:
|
||
|
||
- **[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`.
|
||
|
||
## Быстрая карта проекта
|
||
|
||
```text
|
||
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; в
|
||
коллекции лимита копий нет.
|
||
- Верхний `CombatStats` strip — допустимый HUD; world-space Power/Shield ещё
|
||
не сделаны.
|
||
- Отдельный `CostPaymentOverlay` для multi-target стоимости **требуется**, но
|
||
пока реализован только выбор Counter Blast в панели «Действия».
|
||
- `AttackResolutionQueue` — требование на будущее, сейчас бой имеет одну цель.
|
||
- `DropZoneFaceDown` существует в конфиге; по Classic default `false`.
|
||
|
||
## Проверки
|
||
|
||
```powershell
|
||
# серверные тесты — только на 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](game-rules.md) — правила Classic, зоны, фазы, триггеры,
|
||
стоимости, порядок эффектов, известные расхождения.
|
||
- [architecture.md](architecture.md) — сервер/клиент/протокол, границы,
|
||
источник истины, сохранение, Unity-слой.
|
||
- [card-implementation.md](card-implementation.md) — YAML, AUTO/ACT/CONT,
|
||
выборы, стоимости, тесты и чеклист новой карты.
|
||
- [workflow-and-decisions.md](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`.
|