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