コード例 #1
0
        public void MigrateAspectDataToEcoData(EconomyRequestFacade ecoData, string branchKey)
        {
            var targetDic = ecoData.EconomyTierlistOverview[branchKey];

            foreach (var keyValuePair in this.EconomyTierListOverview[branchKey])
            {
                var baseType       = keyValuePair.Key;
                var sourceItemList = keyValuePair.Value;

                if (!targetDic.ContainsKey(baseType))
                {
                    targetDic.Add(baseType, new ItemList <NinjaItem>());
                }

                var targetItems = targetDic[baseType];

                foreach (var sourceItem in sourceItemList.GroupBy(x => x.Name).Select(x => x.First()))
                {
                    var targetItem = targetItems.Where(x => sourceItem.Equals(x)).ToList();
                    if (targetItem.Count == 0)
                    {
                        var newItem = new NinjaItem {
                            BaseType = baseType, Name = sourceItem.Name, IsVirtual = true
                        };
                        targetItems.Add(newItem);
                        targetItem.Add(newItem);
                    }

                    targetItem.ForEach(x => x.Aspects = new ObservableCollection <IItemAspect>(sourceItem.Aspects));
                }
            }
        }
コード例 #2
0
 private float AdjustPriceBasedOn(NinjaItem item, Func <NinjaItem, bool> rule, float factor)
 {
     if (rule(item))
     {
         return(factor);
     }
     else
     {
         return(0);
     }
 }
コード例 #3
0
        private void RefreshAspects(ContentControl control)
        {
            NinjaItem item          = (ItemVariationTable.SelectedItem as NinjaItem);
            var       clickedAspect = (control.DataContext as AbstractItemAspect);

            if (item.Aspects.Any(x => x.Name == clickedAspect.Name))
            {
                item.Aspects.RemoveAll(x => x.Name == clickedAspect.Name);
            }
            else
            {
                item.Aspects.Add(this.AvailableAspects.First(x => clickedAspect.Name == x.Name));
            }

            RefreshAspectColoration();
        }
コード例 #4
0
        internal void ToggleTag(string v)
        {
            NinjaItem item = (ItemVariationTable.SelectedItem as NinjaItem);

            if (item != null)
            {
                ItemVariationTable.SelectedItem = ItemVariationTable.Items[0];
            }

            if (!item.HasAspect(v))
            {
                item.Aspects.Add(this.AvailableAspects.Where(x => x.Name == v).First());
            }
            else
            {
                item.Aspects.Remove(this.AvailableAspects.Where(x => x.Name == v).First());
            }

            this.RefreshAspectColoration();
        }
コード例 #5
0
        public static IEnumerable <NinjaItem> ParseNinjaString(string input)
        {
            dynamic jsonObj = JsonConvert.DeserializeObject <dynamic>(input, new JsonSerializerSettings()
            {
                CheckAdditionalContent = true
            });

            if (jsonObj == null)
            {
                yield break;
            }

            foreach (JObject job in jsonObj.lines)
            {
                NinjaItem nItem = new NinjaItem();
                job["explicitModifiers"] = job["explicitModifiers"].ToString();
                JsonConvert.PopulateObject(job.ToString(), nItem);
                yield return(nItem);
            }
        }
コード例 #6
0
        public static IEnumerable <NinjaItem> ParseNinjaString(string input, string branchKey)
        {
            dynamic jsonObj = JsonConvert.DeserializeObject <dynamic>(input, new JsonSerializerSettings()
            {
                CheckAdditionalContent = true
            });

            if (jsonObj == null)
            {
                yield break;
            }

            if (branchKey.ToLower() == "currency")
            {
                JObject           jo     = new JObject(jsonObj);
                CurrencyNinjaItem nCItem = new CurrencyNinjaItem();
                JsonConvert.PopulateObject(jo.ToString(), nCItem);
                foreach (var item in nCItem.ToNinjaItems())
                {
                    yield return(item);
                }

                yield break;
            }

            foreach (JObject job in jsonObj.lines)
            {
                NinjaItem nItem = new NinjaItem();

                if (job.ContainsKey("explicitModifiers"))
                {
                    job["explicitModifiers"] = job["explicitModifiers"].ToString();
                }

                JsonConvert.PopulateObject(job.ToString(), nItem);
                yield return(nItem);
            }
        }