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; } }
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; }
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; }