Table of Contents

Class QuestController

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

Manages quest instances for a character including acceptance, objective tracking, completion, turn-in, failure, and abandonment. Syncs state via broadcasts.

public class QuestController : CharacterBehaviour, IQuestController, ICharacterBehaviour
Inheritance
Object
Component
Behaviour
MonoBehaviour
NetworkBehaviour
QuestController
Implements
Inherited Members
NetworkBehaviour.IsSpawned
NetworkBehaviour.ComponentIndex
NetworkBehaviour.NetworkObject
NetworkBehaviour.MAXIMUM_NETWORKBEHAVIOURS
NetworkBehaviour.UNSET_NETWORKBEHAVIOUR_ID
NetworkBehaviour.ToString()
NetworkBehaviour.Reset()
NetworkBehaviour.OnValidate()
NetworkBehaviour.IsBehaviourReconciling
NetworkBehaviour.ClearReplicateCache()
NetworkBehaviour.CreateReconcile()
NetworkBehaviour.Reconcile_Reader<T>(PooledReader, ref T)
NetworkBehaviour.OnStartServerCalled
NetworkBehaviour.OnStartClientCalled
NetworkBehaviour.WritePayload(NetworkConnection, Writer)
NetworkBehaviour.ReadPayload(NetworkConnection, Reader)
NetworkBehaviour.OnStartNetwork()
NetworkBehaviour.OnStopNetwork()
NetworkBehaviour.OnStartServer()
NetworkBehaviour.OnStopServer()
NetworkBehaviour.OnOwnershipServer(NetworkConnection)
NetworkBehaviour.OnSpawnServer(NetworkConnection)
NetworkBehaviour.OnDespawnServer(NetworkConnection)
NetworkBehaviour.OnStartClient()
NetworkBehaviour.OnStopClient()
NetworkBehaviour.OnOwnershipClient(NetworkConnection)
NetworkBehaviour.ClearBuffedRpcs()
NetworkBehaviour.ExcludeOwnerFromUnbufferedObserversRpcs
NetworkBehaviour.IsClientOnly
NetworkBehaviour.IsServerOnly
NetworkBehaviour.IsHost
NetworkBehaviour.IsClient
NetworkBehaviour.IsServer
NetworkBehaviour.IsDeinitializing
NetworkBehaviour.NetworkManager
NetworkBehaviour.ServerManager
NetworkBehaviour.ClientManager
NetworkBehaviour.ObserverManager
NetworkBehaviour.TransportManager
NetworkBehaviour.TimeManager
NetworkBehaviour.SceneManager
NetworkBehaviour.PredictionManager
NetworkBehaviour.RollbackManager
NetworkBehaviour.NetworkObserver
NetworkBehaviour.IsClientInitialized
NetworkBehaviour.IsClientStarted
NetworkBehaviour.IsClientOnlyInitialized
NetworkBehaviour.IsClientOnlyStarted
NetworkBehaviour.IsServerInitialized
NetworkBehaviour.IsServerStarted
NetworkBehaviour.IsServerOnlyInitialized
NetworkBehaviour.IsServerOnlyStarted
NetworkBehaviour.IsHostInitialized
NetworkBehaviour.IsHostStarted
NetworkBehaviour.IsOffline
NetworkBehaviour.IsNetworked
NetworkBehaviour.GetIsNetworked()
NetworkBehaviour.IsManagerReconciling
NetworkBehaviour.Observers
NetworkBehaviour.IsOwner
NetworkBehaviour.IsController
NetworkBehaviour.HasAuthority
NetworkBehaviour.Owner
NetworkBehaviour.OwnerId
NetworkBehaviour.ObjectId
NetworkBehaviour.LocalConnection
NetworkBehaviour.OwnerMatches(NetworkConnection)
NetworkBehaviour.Despawn(GameObject, DespawnType?)
NetworkBehaviour.Despawn(NetworkObject, DespawnType?)
NetworkBehaviour.Despawn(DespawnType?)
NetworkBehaviour.Spawn(GameObject, NetworkConnection, Scene)
NetworkBehaviour.Spawn(NetworkObject, NetworkConnection, Scene)
NetworkBehaviour.RemoveOwnership()
NetworkBehaviour.GiveOwnership(NetworkConnection)
NetworkBehaviour.GetInstance<T>()
NetworkBehaviour.TryRegisterInstance<T>(T)
NetworkBehaviour.UnregisterInstance<T>()
NetworkBehaviour.CanLog(LoggingType)
MonoBehaviour.IsInvoking()
MonoBehaviour.CancelInvoke()
MonoBehaviour.StopCoroutine(Coroutine)
MonoBehaviour.StopAllCoroutines()
MonoBehaviour.destroyCancellationToken
MonoBehaviour.useGUILayout
MonoBehaviour.didStart
MonoBehaviour.didAwake
MonoBehaviour.runInEditMode
Behaviour.enabled
Behaviour.isActiveAndEnabled
Component.GetComponent<T>()
Component.TryGetComponent<T>(out T)
Component.GetComponentInChildren<T>()
Component.GetComponentsInChildren<T>()
Component.GetComponentInParent<T>()
Component.GetComponentsInParent<T>()
Component.GetComponents<T>()
Component.GetComponentIndex()
Component.CompareTag(TagHandle)
Component.transform
Component.transformHandle
Component.gameObject
Component.tag
Object.GetEntityId()
Object.GetInstanceID()
Object.GetHashCode()
Object.InstantiateAsync<T>(T)
Object.InstantiateAsync<T>(T, Transform)
Object.InstantiateAsync<T>(T, Vector3, Quaternion)
Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Scene)
Object.Instantiate<T>(T, InstantiateParameters)
Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.DestroyObject(Object)
Object.FindObjectsOfType<T>()
Object.FindObjectsByType<T>(FindObjectsSortMode)
Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
Object.FindObjectOfType<T>()
Object.FindFirstObjectByType<T>()
Object.FindAnyObjectByType<T>()
Object.FindFirstObjectByType<T>(FindObjectsInactive)
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.FindObjectsByType<T>()
Object.FindObjectsByType<T>(FindObjectsInactive)
Object.name
Object.hideFlags

Properties

Quests

Read-only accessor for all active quests keyed by template name.

public Dictionary<string, QuestInstance> Quests { get; }

Property Value

Dictionary<string, QuestInstance>

Methods

AbandonQuest(string)

Abandons a quest, removing it from the character's quest log.

public bool AbandonQuest(string questName)

Parameters

questName string

The name of the quest to abandon.

Returns

bool

True if the quest was found and removed.

Acquire(QuestTemplate)

Accepts a new quest for the character. Ignored if already acquired.

public void Acquire(QuestTemplate template)

Parameters

template QuestTemplate

The quest template to accept.

AdvanceObjective(string, int, long)

Advances a specific objective within a quest by the given amount.

public void AdvanceObjective(string questName, int objectiveIndex, long amount)

Parameters

questName string

The name of the quest.

objectiveIndex int

The index of the objective to advance.

amount long

The amount to increment.

FailQuest(string)

Fails an active quest.

public bool FailQuest(string questName)

Parameters

questName string

The name of the quest to fail.

Returns

bool

True if the quest was successfully failed.

OnStartCharacter()

Registers broadcast handlers on the owning client.

public override void OnStartCharacter()

OnStopCharacter()

Unregisters broadcast handlers on the owning client.

public override void OnStopCharacter()

RequestAbandonQuest(int)

Sends a quest abandon request to the server for the given quest.

public void RequestAbandonQuest(int templateID)

Parameters

templateID int

RequestAcceptQuest(int, long)

Sends a quest accept request to the server for the given quest at the given interactable.

public void RequestAcceptQuest(int templateID, long interactableID)

Parameters

templateID int
interactableID long

RequestTurnInQuest(int, long)

Sends a quest turn-in request to the server for the given quest at the given interactable.

public void RequestTurnInQuest(int templateID, long interactableID)

Parameters

templateID int
interactableID long

ResetState(bool)

Resets quest state on the server or client.

public override void ResetState(bool asServer)

Parameters

asServer bool

Whether this reset is on the server.

SetQuest(QuestTemplate, QuestStatus, long[])

Sets quest state from broadcast or database load. Used by client-side sync.

public void SetQuest(QuestTemplate template, QuestStatus status, long[] objectiveValues)

Parameters

template QuestTemplate

The quest template.

status QuestStatus

The status to set.

objectiveValues long[]

Per-objective progress values.

TryCompleteQuest(string)

Attempts to complete a quest, transitioning it from Active to Complete. Returns false if objectives are not met or the quest is not active.

public bool TryCompleteQuest(string questName)

Parameters

questName string

The name of the quest to complete.

Returns

bool

True if the quest transitioned to Complete.

TryGetQuest(string, out QuestInstance)

Attempts to retrieve a quest instance by template name.

public bool TryGetQuest(string name, out QuestInstance quest)

Parameters

name string

The name of the quest to look up.

quest QuestInstance

The found quest instance, or null if not found.

Returns

bool

True if the quest is found, false otherwise.

TurnInQuest(string)

Turns in a completed quest, granting rewards and transitioning to TurnedIn.

public bool TurnInQuest(string questName)

Parameters

questName string

The name of the quest to turn in.

Returns

bool

True if the quest was successfully turned in.