コード例 #1
0
ファイル: Calc.cs プロジェクト: request-time-out/A-Scripts
        private static ValData Calculate(ValData a, Calc.Formula1 f1, ValData b)
        {
            ValData valData = a;

            switch (f1)
            {
            case Calc.Formula1.Equal:
                valData = b;
                break;

            case Calc.Formula1.PlusEqual:
                valData += b;
                break;

            case Calc.Formula1.MinusEqual:
                valData -= b;
                break;

            case Calc.Formula1.AstaEqual:
                valData *= b;
                break;

            case Calc.Formula1.SlashEqual:
                valData /= b;
                break;
            }
            return(valData);
        }
コード例 #2
0
ファイル: Calc.cs プロジェクト: request-time-out/A-Scripts
        private void DBTEST(ValData answerVal)
        {
            Dictionary <string, ValData> Vars  = this.scenario.Vars;
            ValData                dbOutputVal = answerVal;
            List <string>          stringList1 = new List <string>();
            ValData                valData1;
            Func <string, ValData> func1 = (Func <string, ValData>)(s => Vars.TryGetValue(s, out valData1) ? new ValData(valData1.o) : new ValData(dbOutputVal.Convert((object)s)));
            int num1 = 0;
            Func <string, ValData> func2     = func1;
            List <string>          argsList1 = this.argsList;
            int     index1   = num1;
            int     num2     = index1 + 1;
            string  str1     = argsList1[index1];
            ValData valData2 = func2(str1);

            stringList1.Add(valData2.o.ToString());
            while (num2 < this.argsList.Count)
            {
                List <string>          argsList2 = this.argsList;
                int                    index2    = num2;
                int                    num3      = index2 + 1;
                Calc.Formula2          formula2  = (Calc.Formula2) int.Parse(argsList2[index2]);
                Func <string, ValData> func3     = func1;
                List <string>          argsList3 = this.argsList;
                int                    index3    = num3;
                num2 = index3 + 1;
                string  str2 = argsList3[index3];
                ValData b    = func3(str2);
                stringList1.Add(Calc.Cast(formula2));
                stringList1.Add(b.o.ToString());
                valData2 = Calc.Calculate(valData2, Calc.Formula2to1(formula2), b);
            }
            dbOutputVal = Calc.Calculate(dbOutputVal, (Calc.Formula1) int.Parse(this.arg1), valData2);
            Calc.Formula1 formula = (Calc.Formula1) int.Parse(this.arg1);
            int           num4    = 0;

            if (formula != Calc.Formula1.Equal)
            {
                stringList1.Insert(num4++, answerVal.o.ToString());
            }
            List <string> stringList2 = stringList1;
            int           index4      = num4;
            int           num5        = index4 + 1;
            string        str3        = Calc.Cast(formula);

            stringList2.Insert(index4, str3);
            Debug.LogFormat("answer:{0}\n{1}", new object[2]
            {
                dbOutputVal.o,
                (object)string.Join(" ", stringList1.ToArray())
            });
        }
コード例 #3
0
ファイル: Calc.cs プロジェクト: request-time-out/A-Scripts
        public static string Cast(Calc.Formula1 formula)
        {
            switch (formula)
            {
            case Calc.Formula1.Equal:
                return("=");

            case Calc.Formula1.PlusEqual:
                return("+=");

            case Calc.Formula1.MinusEqual:
                return("-=");

            case Calc.Formula1.AstaEqual:
                return("*=");

            case Calc.Formula1.SlashEqual:
                return("/=");

            default:
                return(string.Empty);
            }
        }
コード例 #4
0
ファイル: ValData.cs プロジェクト: request-time-out/A-Scripts
        private static ValData Calculate(Calc.Formula1 numerical, object a, object b)
        {
            switch (a)
            {
            case int num3:
                int num1 = (int)ValData.Cast(b, typeof(int));
                switch (numerical)
                {
                case Calc.Formula1.PlusEqual:
                    return(new ValData((object)(num3 + num1)));

                case Calc.Formula1.MinusEqual:
                    return(new ValData((object)(num3 - num1)));

                case Calc.Formula1.AstaEqual:
                    return(new ValData((object)(num3 * num1)));

                case Calc.Formula1.SlashEqual:
                    return(new ValData((object)(num3 / num1)));
                }
                break;

            case float num3:
                float num2 = (float)ValData.Cast(b, typeof(float));
                switch (numerical)
                {
                case Calc.Formula1.PlusEqual:
                    return(new ValData((object)(float)((double)num3 + (double)num2)));

                case Calc.Formula1.MinusEqual:
                    return(new ValData((object)(float)((double)num3 - (double)num2)));

                case Calc.Formula1.AstaEqual:
                    return(new ValData((object)(float)((double)num3 * (double)num2)));

                case Calc.Formula1.SlashEqual:
                    return(new ValData((object)(float)((double)num3 / (double)num2)));
                }
                break;

            case bool flag2:
                bool flag1 = (bool)ValData.Cast(b, typeof(bool));
                switch (numerical)
                {
                case Calc.Formula1.PlusEqual:
                    return(new ValData((object)((!flag2 ? 0 : 1) + (!flag1 ? 0 : 1) > 0)));

                case Calc.Formula1.MinusEqual:
                    return(new ValData((object)((!flag2 ? 0 : 1) - (!flag1 ? 0 : 1) > 0)));

                case Calc.Formula1.AstaEqual:
                    return(new ValData((object)(flag2 | flag1)));

                case Calc.Formula1.SlashEqual:
                    return(new ValData((object)(flag2 & flag1)));
                }
                break;

            default:
                string str      = a.ToString();
                string oldValue = b.ToString();
                if (numerical == Calc.Formula1.PlusEqual)
                {
                    return(new ValData((object)(str + oldValue)));
                }
                if (numerical == Calc.Formula1.MinusEqual)
                {
                    return(new ValData((object)str.Replace(oldValue, string.Empty)));
                }
                break;
            }
            Debug.LogError((object)(numerical.ToString() + a + b));
            return(new ValData((object)null));
        }