VanguardReMaster/.opencode/skills/vanguard-remaster/SKILL.md

130 lines
8.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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`.