Beispiel #1
0
        public override void Load()
        {
            base.Load();

            NatureEntries = new List <NatureEntry>();

            DataView view = DataTable.DefaultView;

            foreach (DataRowView rowView in view)
            {
                NatureEntry newEntry = new NatureEntry();
                newEntry.ID   = int.Parse(rowView["ID"].ToString());
                newEntry.Name = rowView["Name"] as String;
                string addsStr = rowView["Additions"] as String;

                JSONArray ary = JSON.Parse(addsStr).AsArray;
                newEntry.Additions = new AdditionList();

                foreach (JSONNode node in ary)
                {
                    Addition add = new Addition();
                    add.Type  = (EAddition)node["Type"].AsInt;
                    add.Value = node["Value"].AsInt;
                    newEntry.Additions.Add(add);
                }

                NatureEntries.Add(newEntry);
            }
        }
Beispiel #2
0
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            if (AppUtil.IsInDesignMode)
            {
                return("0");
            }

            try
            {
                NatureRequirement natureRequirement = values[0] as NatureRequirement;

                if (natureRequirement == null)
                {
                    return("nature_nil");
                }

                int grade = 1;
                int.TryParse(values[1].ToString(), out grade);

                if (grade < 0)
                {
                    return("grade<0");
                }
                else if (grade == 0)
                {
                    return("0");
                }

                EAddition addType = (EAddition)values[2];

                int sum = 0;

                for (int i = 1; i <= grade; i++)
                {
                    int index = i - 1;
                    if (index >= natureRequirement.Count)
                    {
                        break;
                    }

                    NatureList natureList = natureRequirement[index];
                    foreach (NatureEnumWrap wrap in natureList)
                    {
                        NatureEntry entry = ModelManager.Instance.NatureXlsData[wrap.Value];
                        Addition    add   = entry.Additions[addType];
                        sum += add.Value;
                    }
                }

                return(sum.ToString());
            }
            catch (Exception e)
            {
                LogManager.Instance.Error(e.Message);
                LogManager.Instance.Error(e.Source);
                LogManager.Instance.Error(e.StackTrace);
                return("100");
            }
        }