dnd5-scripts/generate_encounter/Encounter Classification.md
2026-06-17 22:32:48 +03:00

8.3 KiB
Raw Blame History

Для создания системы, которая будет работать как надежный Python-скрипт и выдавать данные для нейросети, нам нужно абстрагироваться от конкретных существ и сосредоточиться на состоянии мира.

Хуки (Hooks) должны быть «контейнерами», которые описывают контекст происходящего, но оставляют вопрос «кто в этом участвует» и «как они настроены» на долю генераторов (Beasts/NPC) и бросков Реакции.

Вот классификация и обобщенные хуки, расширенные на основе данных dmg_encounters.txt:


1. PvP (Персонаж против Персонажа/Существа)

Суть: Столкновение воль. Существа заняты своим делом, в которое втягиваются герои. Логика для Питона: Генерирует 1d4+1 NPC (через henchmen.py) или Монстров (через encounter_generator.py). Хуки (Нейтральные к Реакции):

  • The Claim (Притязание): Существа охраняют территорию, пост или право прохода. (При Hostile — требуют плату/атакуют; при Friendly — делятся советом о дороге).
  • The Task (Поручение/Призыв): Существа находятся при исполнении обязанностей (патруль, сбор налогов, охота). Они оценивают героев как ресурс или помеху.
  • The Internal Conflict (Свалка): Группа существ конфликтует между собой. Герои могут стать судьями, жертвами или союзниками. (Темы: Brawl, Protest, Patrol vs Raiders).
  • The Shadow (Слежка/Промысел): Существа скрытно наблюдают за героями или пытаются совершить скрытое действие (Pickpocket, Shady transaction, Spy).
  • The Interaction (Предложение/Запрос): Существа активно ищут контакта для обмена, торговли или получения помощи (Merfolk traders, Companion, Urchin).

2. PvE (Персонаж против Среды)

Суть: Опасность или изменение ландшафта. Живые существа здесь — лишь статисты или жертвы, не влияющие на саму угрозу. Логика для Питона: Не требует бросков Реакции для самой угрозы. Хуки (Нейтральные к Реакции):

  • The Catastrophe (Катастрофа): Внезапное изменение среды, требующее немедленного действия (Fire, Whirlpool, Sandstorm, Iceberg).
  • The Obstacle (Препятствие): Дорога перекрыта чем-то масштабным и движущимся (Procession, Runaway cart, огромный Kelp bed, миграция животных).
  • The Anomaly (Аномалия): Энергетический или природный всплеск (Steam vent, Grove of burned trees, Blizzard, Волшебное пение на ветру).
  • The Landmark (Ориентир): Место, меняющее восприятие пути (Statue, Monolith, Sunken ruins, Abandoned grove). Были ли здесь враги — решит Discovery.

3. PvX (Персонаж против Неизвестного)

Суть: Тайна, след или ресурс. Существа здесь скрыты, либо являются объектом изучения. Логика для Питона: Бросок Surprise определяет, найдут ли герои «источник», прежде чем он найдет их. Хуки (Нейтральные к Реакции):

  • The Remnant (Останки/След): Свидетельство недавнего присутствия существ (Corpse, Floating debris, Tracks, Ghost ship).
  • The Cache (Схрон/Ресурс): Ожидаемая или случайная находка (Found trinket, Sunken treasure chest, Magical plant/berries, Bed of giant oysters).
  • The Lair (Логово): Герои натыкаются на место обитания (Undersea cave, Hidden nest, Shady lair). Кто внутри — решит бросок монстров.
  • The Omen (Знамение/Тень): Неясный визуальный или звуковой сигнал (Shadow in the water, Sighting of a killer whale, Distant horn sound).

4. PvSelf (Персонаж против Себя)

Суть: Дилемма. Ситуация, требующая выбора между риском, совестью и выгодой. Логика для Питона: Обычно один NPC или слабое существо. Хуки (Нейтральные к Реакции):

  • The Plea (Просьба о спасении): Существо в беде (NPC in the water, Wounded scout, Beggar). Помощь сулит награду или проблемы.
  • The Moral Crossroads (Моральный перекресток): Ситуация несправедливости, свидетелями которой стали герои (Execution, Bullies vs Commoner, Unfair decree).
  • The Temptation (Искушение): Возможность получить что-то ценное, нарушив закон или обычаи (Found trinket, принадлежащий храму; брошенная повозка с золотом).

Как это работает в Питоне (Пример логики):

  1. Скрипт выбирает Тип: PvP.
  2. Скрипт выбирает Хук: The Task (Поручение).
  3. Скрипт выбирает Субъектов: Из таблицы биома Forest выпадают 2d4 scouts.
  4. Скрипт бросает ACKS II:
    • Reaction = 3 (Hostile).
    • Surprise = Party is Attentive.
  5. Формирование вывода для Нейронки:
    • Вектор: PvP / The Task.
    • Объект: Группа эльфов-разведчиков (Scouts).
    • Состояние: Реакция враждебная (Hostile). Разведчики выполняют патрулирование границ и воспринимают героев как нарушителей/шпионов. Благодаря Внимательности, герои видят, как разведчики готовят луки.

Обобщение Hooks по биомам (Примеры для базы данных):

  • Sea (PvX/Remnant): «Среди волн покачиваются обломки судна и куски парусины (Floating debris). Что-то темное движется под водой...»
  • Sylvan Forest (PvP/The Internal Conflict): «Звуки стычки доносятся из-за вековых дубов. Группа лесных существ (Gnolls) что-то не поделила с местными обитателями...»
  • Undersea (PvE/The Anomaly): «Вода внезапно становится обжигающе горячей, вверх поднимаются пузыри пара (Steam vent). Видимость падает...»
  • Urban (PvSelf/The Moral Crossroads): «На площади стража готовит плаху для осужденного (Spectacle/Execution). Толпа замерла в ожидании...»

Эта система полностью нейтральна: The Task может обернуться как дружеским приветствием патруля (Reaction 12), так и попыткой ареста (Reaction 2). Скрипт просто дает «сцену», а кубики — «драму».