/// <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); }
/// <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); }