示例#1
0
        /// <summary>
        /// If any <TriggerSubgroup> is false, then the <TriggerGroup> evaluates as false
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public TriggerOutput Eval(CommsLayerMessage msg)
        {
            if (subgroups == null)
            {
                AssembleSubgroups();
            }

            if (msg.isPrivateChat != privateTrigger)
            {
                return(new TriggerOutput(false, null));
            }

            var groupOutput = new TriggerOutput(true, null);

            foreach (var keypair in subgroups)
            {
                var subgroup       = keypair.Value;
                var subgroupOutput = subgroup.Eval(msg);

                if (subgroupOutput.result == false)
                {
                    return(subgroupOutput);
                }
            }
            return(groupOutput);
        }
示例#2
0
        /// <summary>
        /// If any <Trigger> is <true>, then the <TriggerSubgroup> evaluates as <true>
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public TriggerOutput Eval(CommsLayerMessage msg)
        {
            var subgroupOutput = new TriggerOutput(true, null);

            foreach (var trigger in triggers)
            {
                var triggerOutput = trigger.Eval(msg);

                if (triggerOutput.result)
                {
                    return(triggerOutput);
                }
                else
                {
                    subgroupOutput = triggerOutput;
                }
            }
            return(subgroupOutput);
        }