Esempio n. 1
0
        protected IEnumerator DisplayDialogueCoroutine(List <DisplayDialogue> displayTexts, QuestObjective qo, bool isHuman = true)
        {
            for (int i = 0; i < displayTexts.Count; i++)
            {
                qo.questTrigger.Initialize();
                DisplayDialogue dd = displayTexts[i];

                float delay = dd.displayText.Length * characterDelay;

                float desiredTime = delay;

                if (dd.clip != null)
                {
                    desiredTime = dd.clip.length;
                    delay       = dd.clip.length;
                    SoundSource ss = GameManager.Get <SoundManager>().Play(dd.clip);
                    if (isHuman && radioAmg != null)
                    {
                        ss.cachedAudioSource.outputAudioMixerGroup = radioAmg;
                    }
                    if (!isHuman && aiAmg != null)
                    {
                        ss.cachedAudioSource.outputAudioMixerGroup = aiAmg;
                    }
                }
                UIManager.GetMenu <ObjectiveTracker>().Open(dd.displayText, isHuman, true, delay);
                desiredTime += 0.75f;

                switch (dd.effect)
                {
                case Sol.DisplayDialogue.DisplayEffect.Glitch:
                    StartCoroutine(GlitchOut(dd.duration));
                    break;

                case Sol.DisplayDialogue.DisplayEffect.FadeIn:
                    UIManager.GetMenu <FadeMenu>().Fade(dd.duration, Color.black, Color.clear);
                    break;

                case Sol.DisplayDialogue.DisplayEffect.FadeOut:
                    UIManager.GetMenu <FadeMenu>().Fade(dd.duration, Color.clear, Color.black, true);
                    break;

                case Sol.DisplayDialogue.DisplayEffect.None:
                default:
                    break;
                }

                float elapsedTime = 0f;

                while (elapsedTime < desiredTime)
                {
                    elapsedTime += Time.deltaTime;
                    //if (GameManager.Get<QuestManager>().testMode && Input.GetKeyDown(KeyCode.Return)) break;
                    yield return(null);
                }
            }

            while (!canProceed)
            {
                yield return(null);
            }

            CurrentQuest.CompleteObjective(endQuest, targetQuest);
            canProceed = false;
        }
Esempio n. 2
0
 public virtual void DisplayPermanentObjective(string objective)
 {
     UIManager.GetMenu <ObjectiveTracker>().ShowPermanentObjective(objective);
 }