An easy to use Unity 3D library for creating illustrated Interactive Fiction games and more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.7 KiB

// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using UnityEngine;
using System.Collections;
namespace Fungus
{
/// <summary>
/// Do multiple say and portrait commands in a single block of text. Format is: [character] [portrait] [stage position] [: Story text].
/// </summary>
[CommandInfo("Narrative",
"Conversation",
"Do multiple say and portrait commands in a single block of text. Format is: [character] [portrait] [stage position] [: Story text]")]
[AddComponentMenu("")]
[ExecuteInEditMode]
public class Conversation : Command
{
[SerializeField] protected StringDataMulti conversationText;
protected ConversationManager conversationManager = new ConversationManager();
protected virtual void Start()
{
conversationManager.PopulateCharacterCache();
}
public override void OnEnter()
{
StartCoroutine(DoConversation());
}
protected virtual IEnumerator DoConversation()
{
Flowchart flowchart = GetFlowchart();
string subbedText = flowchart.SubstituteVariables(conversationText.Value);
yield return StartCoroutine(conversationManager.DoConversation(subbedText));
Continue();
}
public override string GetSummary()
{
return conversationText.Value;
}
public override Color GetButtonColor()
{
return new Color32(184, 210, 235, 255);
}
}
}