ChitChat/Data/DialogueActionBase.cs
using System.Text.Json.Serialization;

namespace ChitChat;

[JsonDerivedType(typeof(EventAction), 0)]
[JsonDerivedType(typeof(SpeakAction), 1)]
[JsonDerivedType(typeof(ChoiceAction), 2)]
public class DialogueActionBase
{
	/// <summary>
	/// What happens when entering this action.
	/// </summary>
	/// <returns>Returns if the action needs input.</returns>
	public virtual bool OnEnter(DialogueSystemComponent system, DialoguePanelComponent ui, DialogueWriterComponent writer, DialogueAudioComponent audio) => true;
	public virtual void OnExit() { }
}