swiftlys2/docs/api/ai/
API Reference Menus.OptionsBase

ChoiceMenuOption

Class
Namespace: SwiftlyS2.Core.Menus.OptionsBase · Assembly: SwiftlyS2.CS2.dll
public sealed class ChoiceMenuOption : MenuOptionBase, IMenuOption, IDisposable

Represents a menu option that cycles through a list of choices.

View source

Constructors

ChoiceMenuOption(IEnumerable<string>, string?, int, int)

Creates an instance of ChoiceMenuOption with a list of choices.

public ChoiceMenuOption(IEnumerable<string> choices, string? defaultChoice = null, int updateIntervalMs = 120, int pauseIntervalMs = 1000)
Parameters
  • choicesIEnumerable<string>The list of available choices.
  • defaultChoicestring?optionalThe default choice to select. If null or not found, defaults to first choice.
  • updateIntervalMsintoptionalThe interval in milliseconds between text updates. Defaults to 120ms.
  • pauseIntervalMsintoptionalThe pause duration in milliseconds before starting the next text update cycle. Defaults to 1000ms.

When using this constructor, the Text property must be manually set to specify the initial text.

ChoiceMenuOption(string, IEnumerable<string>, string?, int, int)

Creates an instance of ChoiceMenuOption with a list of choices.

public ChoiceMenuOption(string text, IEnumerable<string> choices, string? defaultChoice = null, int updateIntervalMs = 120, int pauseIntervalMs = 1000)
Parameters
  • textstringThe text content to display.
  • choicesIEnumerable<string>The list of available choices.
  • defaultChoicestring?optionalThe default choice to select. If null or not found, defaults to first choice.
  • updateIntervalMsintoptionalThe interval in milliseconds between text updates. Defaults to 120ms.
  • pauseIntervalMsintoptionalThe pause duration in milliseconds before starting the next text update cycle. Defaults to 1000ms.

Properties

Choices

Gets the read-only list of available choices.

public IReadOnlyList<string> Choices { get; }
Property Value

Methods

GetDisplayText(IPlayer, int)

Gets the display text for this option as it should appear to the specified player.

public override string GetDisplayText(IPlayer player, int displayLine = 0)
Parameters
  • playerIPlayerThe player requesting the display text.
  • displayLineintoptionalThe display line index of the option.
Returns
The formatted display text for the option.

When a menu option occupies multiple lines, MenuAPI may only need to display a specific line of that option. When LineCount=1 : The displayLine parameter is not needed; return the HTML-formatted string directly. When LineCount>=2 : Check the displayLine parameter: displayLine=0 : Return all content displayLine=1 : Return only the first line content displayLine=2 : Return only the second line content And so on... Note: MenuAPI ensures that the displayLine parameter will not exceed the option's LineCount .

GetSelectedChoice(IPlayer)

Gets the currently selected choice for the specified player.

public string GetSelectedChoice(IPlayer player)
Parameters
  • playerIPlayerThe player whose selected choice to retrieve.
Returns
The currently selected choice string.

SetSelectedChoice(IPlayer, string)

Sets the selected choice for the specified player.

public void SetSelectedChoice(IPlayer player, string choice)
Parameters
  • playerIPlayerThe player whose choice to set.
  • choicestringThe choice to select. Must exist in the Choices list.

ValueChanged

Occurs when the selected choice changes for a player.

public event EventHandler<MenuOptionValueChangedEventArgs<string>>? ValueChanged
Value
EventHandler<MenuOptionValueChangedEventArgs<string>>?