Vixen
c7401864
csharp
public interface IQuestObjective

An objective type: what verb it counts and how it counts it.

Read the guide page for this →

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 Type

    What a definition's type: says to get this — Kill.

  • string Verb

    The verb it counts — Event.Kill. Empty for an objective driven only by time.

  • string FailVerb

    The verb that fails it outright, or empty for one that cannot be failed.

  • bool IsTimed

    Whether it counts seconds rather than events, with count: as the seconds.

  • bool IsLevel

    Whether progress can go back down.

Methods (1)

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