Files
ConfigurableCombo/UserComboDefinition.cs
2026-02-04 22:12:08 -05:00

44 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace ConfigurableCombo;
/// <summary>
/// A single user-defined combo: put the first action on your hotbar; pressing it advances through the sequence.
/// </summary>
[Serializable]
public class UserComboDefinition
{
/// <summary>
/// Display name for this combo (e.g. "WAR ST Combo").
/// </summary>
public string Name { get; set; } = "New Combo";
/// <summary>
/// Ordered list of action IDs. The first action is the one you place on the hotbar; each press advances to the next.
/// Combo resets to the first action when the game combo timer expires or the sequence is broken.
/// </summary>
public List<uint> ActionIds { get; set; } = new();
/// <summary>
/// Whether this combo is enabled.
/// </summary>
public bool Enabled { get; set; } = true;
/// <summary>
/// ClassJob.RowId this combo belongs to. 0 = Unspecified (shown when "Unspecified" job is selected).
/// </summary>
public uint JobId { get; set; }
/// <summary>
/// Unique id for this combo (for UI and serialization).
/// </summary>
public Guid Id { get; set; } = Guid.NewGuid();
/// <summary>
/// The action ID that is "on the bar" — i.e. the trigger. This is ActionIds[0] when the list is non-empty.
/// </summary>
public uint TriggerActionId => ActionIds.Count > 0 ? ActionIds[0] : 0;
}