using UnityEngine; using System; using System.Collections; using System.Collections.Generic; namespace Fungus { [CommandInfo("Dialog", "Add Option", "Adds an option for the player to select. All previously added options are displayed by the next Choose command. " + "You can specify another sequence to call and/or a variable to set when the options is selected.")] public class AddOption : SetVariable { [Tooltip("Option text to display when presenting the option to the player")] public string optionText; [Tooltip("Sequence to execute when the player selects this option")] public Sequence targetSequence; [Tooltip("Hide this option once it has been selected so that it won't appear again even if executed again")] public bool hideOnSelected; protected bool wasSelected; public override void OnEnter() { if (hideOnSelected && wasSelected) { Continue(); return; } Choose.Option option = new Choose.Option(); option.optionText = optionText; option.targetSequence = targetSequence; option.action = () => { wasSelected = true; DoSetOperation(); // Set variable (if one is specified) }; Choose.options.Add(option); Continue(); } public override string GetSummary() { string summaryText = optionText; if (targetSequence == null) { summaryText += " ( )"; } else { summaryText += " (" + targetSequence.sequenceName + ")"; } return summaryText; } public override void GetConnectedSequences(ref List connectedSequences) { if (targetSequence != null) { connectedSequences.Add(targetSequence); } } public override Color GetButtonColor() { return new Color32(184, 210, 235, 255); } public override void OnReset() { wasSelected = false; } } }