コード例 #1
0
    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);
    }