using System;

namespace BehaviorTreeSlayer
{
    public class EventCaller : ConditionalNode
    {
        [OutField]
        public string Event;
        public override void Enter(object args)
        {
            BehaviorTree tree = (BehaviorTree)args;
            if (!string.IsNullOrEmpty(Event))
                tree.Regist(Event, OnEvent);

        }
        public override void Exit(object args)
        {            

        }
        private void OnEvent(object obj)
        {
            IsConditionOK = true;
        }
        public override TaskResult Tick(double dt, object args = null)
        {
            return IsConditionOK ? TaskResult.Running : TaskResult.None;
        }
    }
}