Beispiel #1
0
 public override void PopulateFromJson(JObject jsonObject)
 {
     base.PopulateFromJson(jsonObject);
     m_selector   = ISingleEntitySelectorUtils.FromJsonProperty(jsonObject, "selector");
     m_comparison = (ListComparison)Serialization.JsonTokenValue <int>(jsonObject, "comparison", 1);
     m_properties = Serialization.JsonArrayAsList <PropertyId>(jsonObject, "properties");
 }
Beispiel #2
0
        public static bool ValidateCondition <T>(IReadOnlyCollection <T> currents, ListComparison comparison, IReadOnlyList <T> expected)
        {
            int count = expected.Count;

            switch (comparison)
            {
            case ListComparison.ContainsAll:
                for (int k = 0; k < count; k++)
                {
                    if (!currents.Contains(expected[k]))
                    {
                        return(false);
                    }
                }
                return(true);

            case ListComparison.ContainsAtLeastOne:
                for (int j = 0; j < count; j++)
                {
                    if (currents.Contains(expected[j]))
                    {
                        return(true);
                    }
                }
                return(false);

            case ListComparison.ContainsExactlyOne:
            {
                bool flag = false;
                for (int l = 0; l < count; l++)
                {
                    if (currents.Contains(expected[l]))
                    {
                        if (flag)
                        {
                            return(false);
                        }
                        flag = true;
                    }
                }
                return(flag);
            }

            case ListComparison.ContainsNone:
                for (int i = 0; i < count; i++)
                {
                    if (currents.Contains(expected[i]))
                    {
                        return(false);
                    }
                }
                return(true);

            default:
                throw new ArgumentOutOfRangeException("comparison", comparison, null);
            }
        }
Beispiel #3
0
        public static bool CheckCondition(BotData data, List <string> leftTerm, ListComparison comparison, string rightTerm)
        {
            var result = RuriLib.Functions.Conditions.Conditions.Check(leftTerm, comparison, rightTerm);

            if (result)
            {
                data.Logger.LogHeader();
                data.Logger.Log($"Matched key {leftTerm.AsString().TruncatePretty(50)} {comparison} {rightTerm.TruncatePretty(50)}");
            }

            return(result);
        }
        public IEnumerable <IEntity> Filter(IEnumerable <IEntity> entities, DynamicValueContext context)
        {
            ListComparison    comp = m_comparison;
            List <PropertyId> expectedProperties = m_properties;

            foreach (IEntity entity in entities)
            {
                if (ValidateCondition(entity, comp, expectedProperties))
                {
                    yield return(entity);
                }
            }
        }
Beispiel #5
0
 public override void PopulateFromJson(JObject jsonObject)
 {
     base.PopulateFromJson(jsonObject);
     m_comparison = (ListComparison)Serialization.JsonTokenValue <int>(jsonObject, "comparison", 1);
     m_spellTags  = Serialization.JsonArrayAsList <SpellTag>(jsonObject, "spellTags");
 }
 public static bool ValidateCondition(IEntity entity, ListComparison comparison, List <PropertyId> properties)
 {
     return(ListComparisonUtility.ValidateCondition(entity.properties, comparison, properties));
 }
 public void PopulateFromJson(JObject jsonObject)
 {
     m_comparison = (ListComparison)Serialization.JsonTokenValue <int>(jsonObject, "comparison", 1);
     m_properties = Serialization.JsonArrayAsList <PropertyId>(jsonObject, "properties");
 }