MainHud/ChoiceEvent.cs

Defines two plain data classes for a UI choice event. EventOption holds a button label and an Action to run. ChoiceEvent holds title, prompt text, a list of options, and optional timer properties including timeout action.

using System;
using System.Collections.Generic;

namespace Keyboard_Warriors_.Systems;

public sealed class EventOption
{
	public string ButtonText { get; set; }
	public Action ActionToExecute { get; set; }
}

public sealed class ChoiceEvent
{
	public string Title { get; set; }
	public string PromptText { get; set; }

	public List<EventOption> Options { get; set; } = new List<EventOption>();

	// ⏱️ TIMER PROPERTIES 
	public bool HasTimeLimit { get; set; } = false;
	public float TimeRemaining { get; set; } = 0f;
	public float TotalDuration { get; set; } = 0f; // Used to calculate progress bar percentages
	public Action OnTimeoutAction { get; set; } // Fires if time hits zero!
}