Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 4.26 KB

File metadata and controls

59 lines (45 loc) · 4.26 KB

Quest — модуль квестов

Что это: папка документации по модулю квестов. Описывает скрипты в Scripts/Quest/ и как с ними работать.

Как с этим работать:

  • Нужно создать квест → открой QuestConfig.
  • Нужно принять/зачесть квест в сцене → открой QuestManager и при необходимости QuestBridge.
  • Нужно прочитать прогресс или сохранить → QuestState, Saving.
  • Настраиваешь в инспекторе (кнопки, UnityEvent) → Сценарии в инспекторе.
  • Пишешь код (AcceptQuest, события, NotifyKill) → Code.

Навигация: ← К Docs · оглавление — таблица ниже


Оглавление документов

Документ О чём
QuestConfig Ассет Quest Config (ScriptableObject): поля, типы целей, условия старта.
QuestFlowConfig Конфиг потоков квестов: последовательные цепочки и standalone-квесты.
QuestManager Компонент QuestManager в сцене: методы, события, Condition Context, Known Quests.
QuestContext Marker-компонент объекта, который используется как Condition Context.
QuestState Класс состояния квеста: откуда брать, что читать, сериализация.
QuestBridge Универсальный no-code компонент QuestNoCodeAction для UnityEvent.
Scenarios Пошаговые сценарии в инспекторе: кнопка принятия, цель по условию, UI по событиям.
Code Вызовы из C#: AcceptQuest, CompleteObjective, события, NotifyKill/NotifyCollect.
Saving Сохранение и загрузка списка QuestState.

Поток данных

QuestConfig (SO)  →  Known Quests в QuestManager  →  AcceptQuest(id) проверяет Start Conditions по Condition Context
                                                         ↓
                                              Создаётся QuestState, события OnQuestAccepted
                                                         ↓
CompleteObjective(id, index) / NotifyKill / NotifyCollect  →  обновление прогресса, при всех целях — OnQuestCompleted

Конфиг задаёт «что сделать»; менеджер хранит состояния и вызывает события. Состояние получать только через QuestManager.GetState(...). QuestConfig поддерживает UI-поля (Title, Description, Icon), а QuestObjectiveDataDisplayText для читаемого списка задач.


Структура кода

Файл Назначение
Scripts/Quest/QuestConfig.cs ScriptableObject квеста.
Scripts/Quest/QuestObjectiveData.cs Одна цель: Type, TargetId, RequiredCount, DisplayText, Condition.
Scripts/Quest/QuestStatus.cs enum: NotStarted, Active, Completed, Failed.
Scripts/Quest/QuestState.cs Состояние одного квеста (прогресс, флаги).
Scripts/Quest/QuestManager.cs Компонент в сцене: реестр состояний, Accept/Complete/Fail, события.
Scripts/Quest/QuestContext.cs Маркер объекта для Condition Context (опционально).
Scripts/Quest/Bridge/QuestNoCodeAction.cs Универсальный no-code action: Accept/Complete/Fail/Restart/Reset/ResetAll.

Зависимость: Neo.Condition (ConditionEntry) для Start Conditions и опционально для целей по условию.