Exemple #1
0
        public override float Run()
        {
            if (runtimeConversation == null)
            {
                return(0f);
            }

            if (isRunning)
            {
                if (runtimeConversation.IsActive(true))
                {
                    return(defaultPauseTime);
                }

                isRunning = false;
                return(0f);
            }

            isRunning = false;

            if (overrideOptions)
            {
                if (runtimeConversation.lastOption >= 0)
                {
                    KickStarter.actionListManager.ignoreNextConversationSkip = true;
                    return(0f);
                }
                KickStarter.actionListManager.ignoreNextConversationSkip = false;
            }


            if (overrideOptions)
            {
                runtimeConversation.Interact(this);
            }
            else
            {
                runtimeConversation.Interact();

                if (willWait && !KickStarter.settingsManager.allowGameplayDuringConversations)
                {
                    isRunning = true;
                    return(defaultPauseTime);
                }
            }

            return(0f);
        }
Exemple #2
0
        override public float Run()
        {
            if (KickStarter.speechManager == null)
            {
                ACDebug.Log("No Speech Manager present");
                return(0f);
            }

            if (KickStarter.dialog && KickStarter.stateHandler)
            {
                if (!isRunning)
                {
                    EventManager.OnClickConversation += GetChoiceID;
                    EventManager.OnStartSpeech       += SpeechStart;
                    EventManager.OnStopSpeech        += SpeechStop;
                    isRunning = true;
                    tagIndex  = -1;
                    choiceID  = -1;
                    SetScript();
                    return(defaultPauseTime);
                }
                else
                {
                    if (evaluatingTags)
                    {
                        float t = EvaluateTags();

                        if (t > actionComplete)
                        {
                            return(t);
                        }
                        evaluatingTags = false;
                        return(defaultPauseTime);
                    }

                    CheckSpeechAudioEnded();

                    if (speech != null)
                    {
                        if (speech.isAlive && !speech.isBackground)
                        {
                            return(defaultPauseTime);
                        }
                    }


                    if (ACInkIntegration.inkStory.canContinue && currentLine == string.Empty)
                    {
                        if (tagIndex == -1)
                        {
                            currentLine = ACInkIntegration.inkStory.Continue();
                            tagIndex    = 0;
                            if (ACInkIntegration.inkStory.currentTags.Count > 0 && !evaluatingTags)
                            {
                                evaluatingTags = true;
                                return(defaultPauseTime);
                            }
                        }
                    }

                    if (currentLine != string.Empty)
                    {
                        RunScript(currentLine);
                        tagIndex    = -1;
                        currentLine = string.Empty;
                        return(defaultPauseTime);
                    }

                    if (conversation != null)
                    {
                        if (!conversation.IsActive(false) && choiceID >= 0)
                        {
                            ACInkIntegration.inkStory.ChooseChoiceIndex(choiceID);
                            choiceID = -1;
                            tagIndex = -1;
                            return(defaultPauseTime);
                        }

                        if (ACInkIntegration.inkStory.currentChoices.Count > 0 && !conversation.IsActive(false))
                        {
                            GetChoices();
                            if (conversation.options.Count == 1 && autoSelectLoneOption)
                            {
                                choiceID = 0;
                                return(defaultPauseTime);
                            }
                            else
                            {
                                conversation.Interact();
                            }
                        }

                        if (conversation != null && conversation.IsActive(false))
                        {
                            return(defaultPauseTime);
                        }
                    }
                    isRunning = false;
                    EventManager.OnClickConversation -= GetChoiceID;
                    EventManager.OnStartSpeech       -= SpeechStart;
                    EventManager.OnStopSpeech        -= SpeechStop;
                    return(0f);
                }
            }
            return(0f);
        }