void CreateNewQuest() { Coroutine c; Quest quest = GetRandomizedQuest(); if (quest == null) { return; } activeQuests.Add(quest); TimeManager.Instance.StartQuestFailTimer(timeBeforeQuestFail, FailQuest, quest, out c); TimeManager.Instance.StartTimer(timeBetweenQuests, CreateNewQuest); quest.FailCoroutine = c; ChangeQuestTimers(); CreateObjectsNeededForQuest(quest); if (quest.TypeOfQuest == QuestType.ThrowTheTrashOut) { foreach (ObjectTrigger trashcan in trashcans) { trashcan.QuestCreated(FinishQuest, quest); } } else if (quest.TypeOfQuest == QuestType.ChangeMusic) { jukebox.QuestCreated(FinishQuest, quest); } if (quest.TypeOfQuest != QuestType.Puking) { quest.Npc.GetComponent <StateMachine>().ChangeState(NpcState.Waiting); quest.Npc.GetComponent <NPCAnimations>().ChangeAnimation(AnimationType.Waiting); } else { quest.Npc.GetComponent <StateMachine>().ChangeState(NpcState.Sick); quest.Npc.GetComponent <NPCAnimations>().ChangeAnimation(AnimationType.Puking); } quest.Npc.GetComponent <QuestState>().ActiveQuest = quest; //Debug.Log("New quest: " + quest.TypeOfQuest); }