Beispiel #1
0
        public void BFS(QuestEvent qE, int orderNumber = 1)    //傳入首個事件,爲之後的事件排序
        {
            QuestEvent thisEvent = FindQuestEvent(qE.GetID());

            thisEvent.order = orderNumber;

            if (orderNumber > 1)
            {
                thisEvent.UpDateQuestEvent(QuestEvent.EventStatus.waiting);
            }
            else if (orderNumber == 1)
            {
                thisEvent.UpDateQuestEvent(QuestEvent.EventStatus.current);
            }
            else
            {
                thisEvent.UpDateQuestEvent(QuestEvent.EventStatus.done);
                thisEvent.goTo.UpDateQuestEvent(QuestEvent.EventStatus.current);
            }

            foreach (QuestEvent qES in questEvents)
            {
                if (qES.order == -1)
                {
                    BFS(qES, orderNumber + 1);
                }
            }
        }
Beispiel #2
0
        //標記當前任務狀態並處理currentEvent;
        public void UpDateQuestEvent(EventStatus eS)
        {
            status = eS;

            if (eS == EventStatus.done && goTo != null)
            {
                isDone = true;
                Debug.Log(goTo);
                goTo.UpDateQuestEvent(EventStatus.current);
                Debug.Log("goto next");
            }
            else if (eS == EventStatus.done && goTo == null)
            {
                belongTo.isDone      = true;
                belongTo.questStatus = Quest.QuestStatus.done;
            }
        }