Exemplo n.º 1
0
        private IEnumerable <ItemMod> CreateItemMods(ModLocation location, IEnumerable <StatIdValuePair> statValuePairs)
        {
            if (statValuePairs == null)
            {
                yield break;
            }

            // this list is used to translate the stats in order of appearance,
            // using merged.Keys wouldn't guarantee that
            var statIds = new List <string>();
            var merged  = new Dictionary <string, int>();

            foreach (var pair in statValuePairs)
            {
                var stat = pair.StatId;
                statIds.Add(stat);
                var value = pair.Value;
                if (merged.ContainsKey(stat))
                {
                    value += merged[stat];
                }
                merged[stat] = value;
            }

            var lines = EquipmentData.StatTranslator.GetTranslations(statIds)
                        .Select(t => t.Translate(merged))
                        .Where(l => l != null);

            foreach (var line in lines)
            {
                var attr    = ItemMod.Numberfilter.Replace(line, "#");
                var isLocal = StatLocalityChecker.DetermineLocal(SelectedBase.ItemClass, location, attr);
                yield return(new ItemMod(line, isLocal));
            }
        }
Exemplo n.º 2
0
        private ItemMod ItemModFromString(string attribute, ModLocation location,
                                          IEnumerable <ValueColoring> valueColor = null)
        {
            var isLocal = StatLocalityChecker.DetermineLocal(ItemClass, location, attribute);
            var itemMod = new ItemMod(attribute, isLocal);

            if (valueColor != null)
            {
                itemMod.ValueColors = valueColor.ToList();
            }
            return(itemMod);
        }