Code/Example/DialogueHud.razor
@using Sandbox;
@using Sandbox.UI;
@using Ink.Runtime;

@inherits PanelComponent
@namespace Sandbox

<root>
    @if (DialogueComponent.IsPlayingDialogue)
    {
        <div class="background" onclick=@(() => DialogueComponent.Continue())>
            <div class="dialogue">
                <div class="text">
                    @DialogueComponent.CurrentText
                </div>
                @if (DialogueComponent.CurrentTags.Contains("ending"))
                {
                    <button onclick=@(() => DialogueComponent.StartDialogue())>Start Again!</button>
                    <button onclick=@(() => DialogueComponent.EndDialogue())>End</button>
                }

                <div class="choices">
                    @foreach (var choice in DialogueComponent.CurrentChoices)
                    {
                        <button onclick=@(() => DialogueComponent.MakeChoice(choice.index))>@choice.text</button>
                    }
                </div>
            </div>
        </div>
    }
    
</root>

@code
{
    [Property] DialogueComponent DialogueComponent { get; set; }
    protected override int BuildHash() => System.HashCode.Combine(DialogueComponent.CurrentText, DialogueComponent.CurrentChoices, DialogueComponent.CurrentTags);
}