/** * <summary>Checks if the state matches a given display type, as used by InventoryBox elements</summary> * <param name = "displayType">The display type</param> * <returns>True if the state matches</returns> */ public bool DisplayTypeMatches(ObjectiveDisplayType displayType) { switch (displayType) { case ObjectiveDisplayType.All: return(true); case ObjectiveDisplayType.ActiveOnly: return(stateType == ObjectiveStateType.Active); case ObjectiveDisplayType.CompleteOnly: return(stateType == ObjectiveStateType.Complete); case ObjectiveDisplayType.FailedOnly: return(stateType == ObjectiveStateType.Fail); default: return(false); } }
/** * <summary>Gets all active Objective instances currently set to a particular display type of state</summary> * <param name = "objectiveDisplayType">The type of display state to search for</param> * <returns>All active Objective instances set to the type of display state</returns> */ public ObjectiveInstance[] GetObjectives(ObjectiveDisplayType objectiveDisplayType) { List <ObjectiveInstance> completedObjectives = new List <ObjectiveInstance>(); foreach (ObjectiveInstance objectiveInstance in playerObjectiveInstances) { if (objectiveInstance.CurrentState.DisplayTypeMatches(objectiveDisplayType)) { completedObjectives.Add(objectiveInstance); } } foreach (ObjectiveInstance objectiveInstance in globalObjectiveInstances) { if (objectiveInstance.CurrentState.DisplayTypeMatches(objectiveDisplayType)) { completedObjectives.Add(objectiveInstance); } } return(completedObjectives.ToArray()); }