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(); }
public CompiledSubCondition(CompiledCondition condition) { _condition = condition; }
public HandValueRange(CompiledCondition[] mask) { Mask = mask; Probability = new int[mask.Length]; }