using UnityEngine;
using RenownedGames.Apex;
using RenownedGames.AITree;

namespace AC.Downloads.AITree
{

	[NodeContent ("Run ActionList", "Tasks/AC/Run ActionList", IconPath = "Images/Icons/Node/MoveObjectIcon.png")]
	public class AC_RunActionList : TaskNode
	{

		[Title ("Node")]
		[SerializeField] private TransformKey actionList;
		[SerializeField] private bool waitUntilFinish;
		private ActionList _actionList;
		private bool ranList;

		protected override void OnEntry ()
        {
            base.OnEntry ();

			ranList = false;
			if (actionList != null && actionList.TryCastValueTo<Transform> (out Transform _transform))
			{
				_actionList = _transform.GetComponent<ActionList> ();
				if (_actionList)
				{
					_actionList.Interact ();
					ranList = true;
				}
			}
		}

		protected override State OnUpdate ()
		{
			if (ranList)
			{
				if (waitUntilFinish && _actionList.AreActionsRunning ())
				{
					return State.Running;
				}
				return State.Success;
			}
			return State.Failure;
		}

	}

}