Пример #1
0
        private IEnumerator DialogStep()
        {
            if (_enumerator == null)
            {
                RunNode(_dialogTree.StartNode);
            }

            if (_enumerator.MoveNext())
            {
                Yarn.Dialogue.RunnerResult step = _enumerator.Current;

                foreach (IDialogHandler handler in Handlers)
                {
                    var handle = handler.Handle(step, this);
                    while (handle.MoveNext())
                    {
                        yield return(null);
                    }
                }

                yield return(null);
            }
            else
            {
                DebugLog.Log("Finished Dialog Execution");
                _newAppraisal = true;
            }
        }
Пример #2
0
        protected void HandleResult(Yarn.Dialogue.RunnerResult result)
        {
            if (result is Yarn.Dialogue.LineResult)
            {
                var text = (result as Yarn.Dialogue.LineResult).line.text;

                Console.WriteLine("Line: " + text);

                if (isExpectingLine)
                {
                    Assert.AreEqual(text, nextExpectedLine);
                }
            }
            else if (result is Yarn.Dialogue.OptionSetResult)
            {
                var options        = (result as Yarn.Dialogue.OptionSetResult).options.options;
                var optionCount    = options.Count;
                var resultDelegate = (result as Yarn.Dialogue.OptionSetResult).setSelectedOptionDelegate;

                Console.WriteLine("Options:");
                foreach (var option in options)
                {
                    Console.WriteLine(" - " + option);
                }

                if (nextExpectedOptionCount != -1)
                {
                    Assert.AreEqual(nextExpectedOptionCount, optionCount);
                }

                if (nextOptionToSelect != -1)
                {
                    resultDelegate(nextOptionToSelect);
                }
                else
                {
                    resultDelegate(0);
                }
            }
            else if (result is Yarn.Dialogue.CommandResult)
            {
                var commandText = (result as Yarn.Dialogue.CommandResult).command.text;

                Console.WriteLine("Command: " + commandText);

                if (nextExpectedCommand != null)
                {
                    Assert.AreEqual(nextExpectedCommand, commandText);
                }
            }

            // Reset all 'expected' stuff
            nextExpectedLine        = null;
            nextExpectedCommand     = null;
            nextExpectedOptionCount = -1;
            nextOptionToSelect      = -1;
        }
Пример #3
0
        private void HandleResult(Yarn.Dialogue.RunnerResult result)
        {
            Console.WriteLine(result);

            if (result is Yarn.Dialogue.LineResult)
            {
                var text = (result as Yarn.Dialogue.LineResult).line.text;

                if (nextExpectedLine != null)
                {
                    Assert.AreEqual(text, nextExpectedLine);
                }
            }
            else if (result is Yarn.Dialogue.OptionSetResult)
            {
                var optionCount    = (result as Yarn.Dialogue.OptionSetResult).options.options.Count;
                var resultDelegate = (result as Yarn.Dialogue.OptionSetResult).setSelectedOptionDelegate;

                if (nextExpectedOptionCount != -1)
                {
                    Assert.AreEqual(nextExpectedOptionCount, optionCount);
                }

                if (nextOptionToSelect != -1)
                {
                    resultDelegate(nextOptionToSelect);
                }
            }
            else if (result is Yarn.Dialogue.CommandResult)
            {
                var commandText = (result as Yarn.Dialogue.CommandResult).command.text;

                if (nextExpectedCommand != null)
                {
                    Assert.AreEqual(nextExpectedCommand, commandText);
                }
            }

            Console.WriteLine(result.ToString());

            nextExpectedLine        = null;
            nextExpectedCommand     = null;
            nextExpectedOptionCount = -1;
            nextOptionToSelect      = -1;
        }