Exemple #1
0
 bool TryHandleAnswer(QuestCollection.QuestInfo info, string message)
 {
     if (info.CorrectAnswer == message.Trim())
     {
         Debug.Log("Answer is correct");
         _upcomingQuestInfo = info;
         return(true);
     }
     Debug.LogWarning("Answer is not correct");
     return(false);
 }
Exemple #2
0
 public override void Update()
 {
     if (_upcomingQuestInfo == null)
     {
         return;
     }
     _finishTimer += Time.deltaTime;
     if (_finishTimer < QuestFinishDelay)
     {
         return;
     }
     _finishTimer = 0;
     HandleQuestFinish(_upcomingQuestInfo);
     _upcomingQuestInfo = null;
 }
Exemple #3
0
        void HandleQuestFinish(QuestCollection.QuestInfo info)
        {
            _progressController.FinishGame(_questIndex.ToString(), () => {});
            _questIndex++;

            if (_pendingQuestEvents.Count > 0)
            {
                Debug.LogError("Not all quest events fired");
                _pendingQuestEvents.Clear();
            }
            if (_curRetweetChain != null)
            {
                Debug.LogError("Retweet chain left unfinished");
                _curRetweetChainId    = -1;
                _curRetweetChain      = null;
                _curRetweetChainIndex = 0;
            }
            var questInfo = _questCollection.TryGetQuestInfo(_questIndex);

            if (questInfo != null)
            {
                _pendingQuestEvents.AddRange(questInfo.QuestEvents);
            }
            else
            {
                GameFinish();
            }

            _glitchController.AddConstantly(info.BaseGlitchIncrease);
            _glitchController.AddOneShot(info.OneShotGlitch, QuestFinishGlitchTime);

            if (questInfo != null)
            {
                OnQuestStarted();
            }
            SetupCurrentTweets();
            SoundSource.Current.PlayQuestFinished();
        }