Система заданий
Система заданий предоставляет полный жизненный цикл заданий: создание, отслеживание, выполнение, за вершение, провал, награды, предварительные требования, временные ограничения и повторяемые задания. Все данные заданий определяются через ScriptableObjects и интегрированы с системой сохранения и CommandGraph.
Обзор архитектуры
| Класс | Назначение |
|---|---|
Quest | ScriptableObject, определяющий цели, награды, предварительные требования и метаданные задания |
Objective | Сериализуемый класс, представляющий одну отслеживаемую задачу в рамках задания |
QuestReward | Сериализуемый класс, представляющий награду, выдаваемую при завершении |
QuestStatus | Состояние задания во время выполнения: счётчики прогресса, временные метки, флаги завершения/провала |
QuestManager | SavableObject, отслеживающий все состояния заданий, обрабатывающий жизненный цикл и вызывающий события |
Quest
Создайте задание через MCE > Quests > Quest в меню активов. Каждый Quest ScriptableObject имеет следующие разделы:
Классификация
| Поле | Тип | Описание |
|---|---|---|
IsMainQuest | bool | Основные задания критичны для продвижения по сюжету |
Category | QuestCategory | Организует задание в журнале заданий (см. ниже) |
Difficulty | QuestDifficulty | Easy, Normal, Hard, Expert — отображается в UI |
Категории заданий:
MainStory— продвижение по основному сюжетуSideQuest— опциональные задания NPCDailyTask— сбрасывается каждые 24 часаWeeklyChallenge— сбрасывается каждые 7 днейEvent— временные event-заданияCollection— заполнить MonsterDex, найти все предметы и т.д.