Esempio n. 1
0
 public static SimpleOperator[] Add(SimpleOperator n, SimpleOperator[] list)
 {
     ArrayList tmp = new ArrayList();
     foreach(SimpleOperator str in list) tmp.Add(str);
     tmp.Add(n);
     return tmp.ToArray(typeof(SimpleOperator)) as SimpleOperator[];
 }
Esempio n. 2
0
 public SimpleOperatorCondition(SimpleOperator @operator, string member, string value)
 {
     if (!OPERATORS.TryGetValue(@operator, out _operator))
     {
         throw new Exception($"Unknown operator: {@operator.ToString()}");
     }
     _member = member;
     _value  = value;
 }
        ///// <summary>
        /////
        ///// </summary>
        //private SimpleExpression()
        //{
        //}

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="op">查询条件类型</param>
        /// <param name="fullPropertyName">属性名</param>
        /// <param name="values">数据</param>
        public SimpleExpression(string fullPropertyName, object values, SimpleOperator op)
        {
            m_op = op;
            m_fullPropertyName = fullPropertyName;
            m_values           = values;

            if (op == SimpleOperator.InG ||
                op == SimpleOperator.GInG)
            {
                System.Diagnostics.Debug.Assert(values is IList, "data in collection op should be IList");
            }
        }
        private static string GetSimpleOperatorName(SimpleOperator op)
        {
            switch (op)
            {
            case SimpleOperator.Like:
                return("Like");

            case SimpleOperator.InG:
                return("In");

            case SimpleOperator.NotEq:
                return("<>");

            case SimpleOperator.IsNotNull:
                return("ISNOTNULL");

            case SimpleOperator.Gt:
                return(">");

            case SimpleOperator.Ge:
                return(">=");

            case SimpleOperator.Eq:
                return("=");

            case SimpleOperator.EqProperty:
                return("=P");

            case SimpleOperator.GInG:
                return("InG");

            case SimpleOperator.IsNull:
                return("ISNULL");

            case SimpleOperator.Lt:
                return("<");

            case SimpleOperator.Le:
                return("<=");

            case SimpleOperator.Sql:
                return("IsSql");

            default:
                throw new ArgumentException("Invalide op of " + op);
            }
        }
Esempio n. 5
0
        private float GetNewValue(float originalValue, SimpleOperator op, EventFloat value, BaseEvent baseEvent)
        {
            var newValue = originalValue;

            switch (op)
            {
            case SimpleOperator.Set:
                newValue = value.GetValue(baseEvent);
                break;

            case SimpleOperator.Add:
                newValue += value.GetValue(baseEvent);
                break;

            case SimpleOperator.Sub:
                newValue -= value.GetValue(baseEvent);
                break;
            }
            return(Mathf.Clamp(newValue, -100, 100));
        }
Esempio n. 6
0
        private IQuery <T> GetSimpleOperatorCondition <TMember>(Expression <Func <T, TMember> > member, TMember value, SimpleOperator op)
        {
            MemberExpression memExp = null;

            if ((memExp = member.Body as MemberExpression) == null)
            {
                throw new ArgumentException($"{nameof(GetSimpleOperatorCondition)} Can not be called with an expression of type {member.Body.GetType().Name}");
            }

            var memberName = _parser.ExtractMemberName(memExp);

            EnsureMemberQueryable(memberName);
            var attrName = GetMemberAttributeName(memberName);

            var valueString = _serializer.Serialize(value);

            return(new Query <T>(new SimpleOperatorCondition(op, attrName, valueString)));
        }
 public static void ORKChangeFactionSympathy(string factionName, string otherName, double change, SimpleOperator op)
 {
     ORKFramework.ORK.Game.Faction.ChangeSympathy(GetFactionID(factionName), GetFactionID(otherName), (float)change, op);
 }
Esempio n. 8
0
    public void SetData(Hashtable ht)
    {
        this.active = true;
        this.simpleOperator = (SimpleOperator)System.Enum.Parse(typeof(SimpleOperator), (string)ht["operator"]);
        this.formulaChooser = (FormulaChooser)System.Enum.Parse(typeof(FormulaChooser), (string)ht["formulachooser"]);
        if(ht.ContainsKey("cancelskills")) this.cancelSkills = true;
        if(ht.ContainsKey("blockable")) this.blockable = true;
        if(ht.ContainsKey("ignoredefend")) this.ignoreDefend = true;
        if(ht.ContainsKey("ignoreelement")) this.ignoreElement = true;
        if(ht.ContainsKey("ignorerace")) this.ignoreRace = true;
        if(ht.ContainsKey("ignoresize")) this.ignoreSize = true;
        if(ht.ContainsKey("efficiency")) this.efficiency = float.Parse((string)ht["efficiency"]);

        if(FormulaChooser.VALUE.Equals(this.formulaChooser))
        {
            this.value = int.Parse((string)ht["value"]);
        }
        else if(FormulaChooser.STATUS.Equals(this.formulaChooser))
        {
            this.status = int.Parse((string)ht["status"]);
        }
        else if(FormulaChooser.FORMULA.Equals(this.formulaChooser))
        {
            this.formula = int.Parse((string)ht["formula"]);
        }
        else if(FormulaChooser.RANDOM.Equals(this.formulaChooser))
        {
            this.randomMin = int.Parse((string)ht["min"]);
            this.randomMax = int.Parse((string)ht["max"]);
        }
    }
 private static string GetSimpleOperatorName(SimpleOperator op)
 {
     switch (op)
     {
         case SimpleOperator.Like:
             return "Like";
         case SimpleOperator.InG:
             return "In";
         case SimpleOperator.NotEq:
             return "<>";
         case SimpleOperator.IsNotNull:
             return "ISNOTNULL";
         case SimpleOperator.Gt:
             return ">";
         case SimpleOperator.Ge:
             return ">=";
         case SimpleOperator.Eq:
             return "=";
         case SimpleOperator.EqProperty:
             return "=P";
         case SimpleOperator.GInG:
             return "InG";
         case SimpleOperator.IsNull:
             return "ISNULL";
         case SimpleOperator.Lt:
             return "<";
         case SimpleOperator.Le:
             return "<=";
         case SimpleOperator.Sql:
             return "IsSql";
         default:
             throw new ArgumentException("Invalide op of " + op);
     }
 }
        ///// <summary>
        ///// 
        ///// </summary>
        //private SimpleExpression()
        //{
        //}
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="op">查询条件类型</param>
        /// <param name="fullPropertyName">属性名</param>
        /// <param name="values">数据</param>
        public SimpleExpression(string fullPropertyName, object values, SimpleOperator op)
        {
            m_op = op;
            m_fullPropertyName = fullPropertyName;
            m_values = values;

            if (op == SimpleOperator.InG
                || op == SimpleOperator.GInG)
            {
                System.Diagnostics.Debug.Assert(values is IList, "data in collection op should be IList");
            }
        }
Esempio n. 11
0
 public SimpleBinaryOperator(SimpleOperator sopr, int priority, char expr)
 {
     oprt = sopr; base.priority = priority; base.expr = expr;
 }
Esempio n. 12
0
 public static SimpleOperator[] Remove(int index, SimpleOperator[] list)
 {
     ArrayList tmp = new ArrayList();
     foreach(SimpleOperator str in list) tmp.Add(str);
     tmp.RemoveAt(index);
     return tmp.ToArray(typeof(SimpleOperator)) as SimpleOperator[];
 }
Esempio n. 13
0
    public void SetData(Hashtable ht)
    {
        this.apply = true;
        if(ht.ContainsKey("stopchange")) this.stopChange = true;

        this.simpleOperator = (SimpleOperator)System.Enum.Parse(
                typeof(SimpleOperator), (string)ht["operator"]);
        this.value = int.Parse((string)ht["value"]);
        this.setter = (ValueSetter)System.Enum.Parse(
                typeof(ValueSetter), (string)ht["setter"]);
        this.execution = (StatusConditionExecution)System.Enum.Parse(
                typeof(StatusConditionExecution), (string)ht["execution"]);
        this.time = int.Parse((string)ht["time"]);
    }