using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace SimplifyXR
{

    [DirectiveCategory(DirectiveCategories.Initiator,
        subCategory = DirectiveSubCategory.UI,
        directiveInfo = "This <i>initiator</i> starts a sequence when a <b>right multiple choice selection is submitted</b>.",
        prettyName = "Multiple Choice Submitted Right")]
    public class OnMultipleChoiceSubmittedRight : Initiator
    {

        public simpleARInstructionFeatures instructionPanel;
        InstructionMultipleChoice multipleChoice;

        public bool listenForMultipleChoiceId;

        [Conditional("listenForMultipleChoiceId", true, ComparisonType.Equals)]
        public string multipleChoiceId;

        public override List<KnobKeywords> ReceiveKeywords()
        {
            return new List<KnobKeywords>();
        }

        public override List<KnobKeywords> SendKeywords()
        {
            return new List<KnobKeywords>();
        }

        public new void Awake()
        {
            base.Awake();

            instructionPanel =
                instructionPanel == null ?
                Object.FindObjectOfType<simpleARInstructionFeatures>() :
                instructionPanel;

            multipleChoice = instructionPanel?.GetComponentInChildren<InstructionMultipleChoice>();

            multipleChoice?.OnMultipleChoiceSubmittedRight
                .AddListener(HandleMultipleChoiceSubmittedRight);
        }

        public new void OnDestroy()
        {
            base.OnDestroy();
            multipleChoice?.OnMultipleChoiceSubmittedRight
                .RemoveListener(HandleMultipleChoiceSubmittedRight);
        }

        public void HandleMultipleChoiceSubmittedRight(string id)
        {
            if (listenForMultipleChoiceId)
            {
                if (id == multipleChoiceId) base.Initiate();
            }
            else
            {
                base.Initiate();
            }
        }
    }
}