Exemplo n.º 1
0
        public CompiledCondition(ConditionContainer container, ConditionService service)
        {
            Container = container;
            List<CompiledConditionWorker> and = new List<CompiledConditionWorker>();
            if (container.AndConditions != null)
            {
                foreach (ConditionAtom atom in container.AndConditions)
                {
                    if (atom.Type == ConditionAtomType.Standard)
                    {
                        and.Add(new CompiledMaskCondition(atom.PrimaryMask));
                    }
                    else
                    {
                        ConditionContainer linked = service.Definition.ConfiguredConditions.Find(x => x.ID == atom.LinkedContainerId);
                        CompiledCondition subCondition = new CompiledCondition(linked, service);
                        and.Add(new CompiledSubCondition(subCondition));
                    }
                }
            }
            _andConditions = and.ToArray();

            List<CompiledConditionWorker> or = new List<CompiledConditionWorker>();
            if (container.OrConditions != null)
            {
                foreach (ConditionAtom atom in container.OrConditions)
                {
                    if (atom.Type == ConditionAtomType.Standard)
                    {
                        or.Add(new CompiledMaskCondition(atom.PrimaryMask));
                    }
                    else
                    {
                        ConditionContainer linked = service.Definition.ConfiguredConditions.Find(x => x.ID == atom.LinkedContainerId);
                        CompiledCondition subCondition = new CompiledCondition(linked, service);
                        or.Add(new CompiledSubCondition(subCondition));
                    }
                }
            }
            _orConditions = or.ToArray();
        }
Exemplo n.º 2
0
 public CompiledSubCondition(CompiledCondition condition)
 {
     _condition = condition;
 }
Exemplo n.º 3
0
 public HandValueRange(CompiledCondition[] mask)
 {
     Mask = mask;
     Probability = new int[mask.Length];
 }