/// <summary>
        /// Runs all requirements and returns the event index of the code to be executed.
        /// </summary>
        /// <returns></returns>
        public int Run()
        {
            int index = 0;

            foreach (List <RequirementInfo> list in _requirements)
            {
                bool failed = false;
                foreach (RequirementInfo req in list)
                {
                    bool isTrue = Scriptor.ApplyRequirement(req);
                    if (!isTrue)
                    {
                        failed = true;
                        break;
                    }
                }
                if (!failed)
                {
                    return(_reqIndices[index]);
                }
                index++;
            }
            if (_elseIndex >= 0)
            {
                return(_elseIndex);
            }
            return(_endIndex);
        }
        public bool Evaluate()
        {
            foreach (RequirementInfo i in _requirements)
            {
                if (!Scriptor.ApplyRequirement(i))
                {
                    return(false);
                }
            }

            return(true);
        }