VanguardReMaster/AGENTS.md

5.3 KiB
Raw Blame History

Правила работы

Это общие правила для ассистента и будущих сессий.

Общение

  • Ответы короткие. Не повторять уже сохранённое в документации, не пересказывать код и не добавлять длинные вступления. Экономить токены.
  • Любое сомнение или вопрос — диалог. Если есть выбор, неоднозначность или риск, сначала показать 2–4 варианта с краткой рекомендацией, дать пользователю выбрать или ответить самому. Не угадывать и не принимать решение за него.

Контекст

  • При работе с этим проектом всегда загружать скилл vanguard-remaster (.opencode/skills/vanguard-remaster/SKILL.md) до начала анализа или правок.
  • Перед началом работы читать docs/SESSION-STATE.md, затем docs/HANDOFF.md и docs/client-visual-direction.md.
  • Главное состояние и следующие шаги хранить в docs/SESSION-STATE.md, подробную историю — в docs/HANDOFF.md.
  • После блока: тесты, validate, translations check, коммит и push.

UI и взаимодействие

  • Выбор делаем интерактивом по объектам: клик/драг по карте, кругу, зоне или полю. Не заменяем выбор карты, круга или цели списком кнопок в интерфейсе.
  • Кнопки допустимы только для глобальных действий и подтверждений: завершить ход, сдаться, отмена, принять/пропустить опциональную способность. Если выбирается конкретная карта/круг/зона — это делается кликом по объекту.
  • Информационные оверлеи (ActionPrompt, подсказки) не должны перехватывать клики и не дублируют выбор кнопками.

Способности

  • Каждая текстовая способность карты должна иметь ровно одну реализацию: CardScript (Abilities/Continuous/Activated), общий движок (Sentinel, Heal/Trigger, Tejas) или флаг данных. Текст без реализации — баг.
  • AUTO: AbilityDefinition с Trigger, Condition, Optional, CanPay/Pay и Resolve. Проверяй зону/источник через IsVanguardOf/IsRearGuardOf/IsInHand; OnPlace не должен срабатывать от VC, если текст требует RC.
  • ACT: ActivatedAbility; флаги RestsSelf, RetiresSelf, RequiresDiscard, FromHand, FromDropZone. CanActivate — только проверка условий; оплата и эффект — в Resolve (или Pay для AUTO).
  • CONT: ContinuousAbility для силы/критики; исключения вроде «нельзя поддерживать» — через CardScript.CanBeBoosted, ограничения передвижения/атаки — через RestrictionType.
  • Sentinel: IsSentinel в данных, общий механизм Guard + сброс карты того же клана; отдельный скрипт не нужен.
  • Trigger/Heal: данные trigger; общий движок проверок и лечения.
  • Ключевые механики: Tejas — CanSnipeBackRow; Restraint — флаг; Boost/Intercept — HasBoost/HasIntercept и общий движок.
  • Выбор и цели: только AskUnitChoice, AskUnitMultiChoice, AskHandCardChoice, AskEmptyRearGuardChoice; клиент не выбирает карты кнопками вместо объектов.
  • Клиент: AUTO-подтверждение — оверлей; ACT — меню/оверлей карты; стоимость способности (сброс/урон/поле) выбирается по объектам и подтверждается кнопкой панели «Действия».
  • После правок способностей проверять весь реестр CardScripts.Default, тесты правил, validate и translations check.
  • Полный аудит 66 карт и правила для новых карт — docs/ability-implementation.md.

Технические ограничения

  • Не запускать dotnet и Docker на рабочем ПК; сервер проверять на ssh home.
  • Не открывать второй экземпляр Unity с тем же проектом; для batch-проверок делать копию проекта без Library.
  • Vanguard.Rules остаётся чистой библиотекой; сервер зависит от неё, а не наоборот.