public interface IQuestObjectiveAn objective type: what verb it counts and how it counts it.
Remarks
Doc 28's named seam — "a game adds one by implementing IQuestObjective". An implementation is stateless and there is one instance per type per build: the per-player progress lives in the QuestJournal, because ten thousand players tracking the same objective must not be ten thousand objects.
⚠ Almost every member has a default, and the ten shipped types are mostly verbs. That is the honest shape of the thing rather than an economy: an objective is a subscription and a counter, and what makes Kill differ from Craft is which verb it waits for. Saying so in the seam is what makes an eleventh type five lines instead of a class with nine methods, eight of which would be copied from Kill.
Fields and properties (5)
string TypeWhat a definition's type: says to get this — Kill.
string VerbThe verb it counts — Event.Kill. Empty for an objective driven only by time.
string FailVerbThe verb that fails it outright, or empty for one that cannot be failed.
bool IsTimedWhether it counts seconds rather than events, with count: as the seconds.
bool IsLevelWhether progress can go back down.
Methods (1)
int Advance(ObjectiveTemplate objective, in GameplayEvent gameplayEvent)How much an event advances it.
Used by (16)
- YodelObjectiveVixen.Editor.Gameplay.Quests.Tests
- CollectObjectiveVixen.Gameplay.Quests
- CraftObjectiveVixen.Gameplay.Quests
- DeliverObjectiveVixen.Gameplay.Quests
- DiscoverObjectiveVixen.Gameplay.Quests
- EscortObjectiveVixen.Gameplay.Quests
- InteractObjectiveVixen.Gameplay.Quests
- KillObjectiveVixen.Gameplay.Quests
- ObjectiveTemplateVixen.Gameplay.Quests
- ObjectiveTrackerVixen.Gameplay.Quests
- QuestLibraryVixen.Gameplay.Quests
- QuestObjectiveRegistryVixen.Gameplay.Quests
- QuestObjectivesVixen.Gameplay.Quests
- ReachObjectiveVixen.Gameplay.Quests
- SpendObjectiveVixen.Gameplay.Quests
- SurviveObjectiveVixen.Gameplay.Quests