Beispiel #1
0
        /// <summary>
        /// 현재 단계 완료.
        /// 모든 단계 완료 여부 리턴.
        /// </summary>
        private bool CompleteProgressProcess()
        {
            // 모든 단계가 완료됨.
            var isCompleteAllProgress = _progressIndex >= QuestProgresses.Count - 1;

            if (!isCompleteAllProgress)
            {
                _subscribeQuestModule.OnNext(this);
                return(false);
            }
            NowProgressModel.CompleteProgress();
            QuestState = QuestState.WaitForComplete;
            _subscribeQuestModule.OnNext(this);
            return(true);
        }
Beispiel #2
0
        public bool CompleteQuest()
        {
            if (QuestState != QuestState.WaitForComplete)
            {
                return(false);
            }

            QuestState = QuestState.Complete;
            NowProgressModel.CompleteProgress();
            _onCompleteQuestAction.CallSafe();

            if (!_iterateQuest)
            {
                _subscribeQuestModule.DisposeSafe();
                _onFinishQuestAction.CallSafe();
                return(true);
            }

            IterationQuest();
            return(QuestState == QuestState.WaitForComplete);
        }