public virtual void CheckStory() { Story storyActive = storyTasks.GetFirstComponentInChildren <Story>(x => x.active); if (storyActive != null) { storyActive.BroadcastMessage("Check", SendMessageOptions.DontRequireReceiver); if (storyActive.GetFirstComponentInChildren <Story>(x => !x.complete) == null && ((storyActive.requirements.Count == 0) || storyActive.complete)) { storyActive.complete = true; storyActive.BroadcastMessage("SetActive", false, SendMessageOptions.DontRequireReceiver); storyActive = storyTasks.GetFirstComponentInChildren <Story>(x => !x.active && !x.complete); if (storyActive == null) { PlayerInfo.Instance.CharacterComplete(); } else { storyActive.BroadcastMessage("SetActive", true, SendMessageOptions.DontRequireReceiver); CheckStory(); } } } activeStoreCounter = GetActiveStory().Count - 1; activeStoreCounter = (activeStoreCounter < 0) ? 0 : activeStoreCounter; }