8.3 KiB
Для создания системы, которая будет работать как надежный 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, принадлежащий храму; брошенная повозка с золотом).
Как это работает в Питоне (Пример логики):
- Скрипт выбирает Тип:
PvP. - Скрипт выбирает Хук:
The Task (Поручение). - Скрипт выбирает Субъектов: Из таблицы биома
Forestвыпадают2d4 scouts. - Скрипт бросает ACKS II:
- Reaction = 3 (Hostile).
- Surprise = Party is Attentive.
- Формирование вывода для Нейронки:
- Вектор: 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). Скрипт просто дает «сцену», а кубики — «драму».