protected override IEnumerable <IGrouping <ModLocation, StatIdValuePair> > RecalculateItemSpecific(out int requiredLevel) { var selectedPrefixes = MsPrefix.Where(s => !s.IsEmptySelection).ToArray(); var selectedSuffixes = MsSuffix.Where(s => !s.IsEmptySelection).ToArray(); if (selectedPrefixes.Length + selectedSuffixes.Length == 0) { Item.Frame = FrameType.White; } else if (selectedPrefixes.Length <= 1 && selectedSuffixes.Length <= 1) { Item.Frame = FrameType.Magic; var typeline = ""; if (selectedPrefixes.Length > 0) { var pref = selectedPrefixes[0]; typeline = pref.Query().Name + " "; } typeline += Item.BaseType; if (selectedSuffixes.Length > 0) { var suff = selectedSuffixes[0]; typeline += " " + suff.Query().Name; } Item.TypeLine = typeline; } else { Item.Frame = FrameType.Rare; } UpdateItemNameLine(); requiredLevel = selectedPrefixes.Concat(selectedSuffixes) .Select(ms => ms.Query().RequiredLevel) .DefaultIfEmpty() .Max(); return (from ms in MsPrefix.Concat(MsSuffix) where !ms.IsEmptySelection let location = ms.Query().Domain == ModDomain.Crafted ? ModLocation.Crafted : ModLocation.Explicit from tuple in ms.GetStatValues() group tuple by location); }
RecalculateItemSpecific(out int requiredLevel) { var selectedPrefixes = MsPrefix.Where(s => !s.IsEmptySelection).ToArray(); var selectedSuffixes = MsSuffix.Where(s => !s.IsEmptySelection).ToArray(); if (selectedPrefixes.Length + selectedSuffixes.Length == 0) { Item.Frame = FrameType.White; } else if (selectedPrefixes.Length <= 1 && selectedSuffixes.Length <= 1) { Item.Frame = FrameType.Magic; var typeline = ""; if (selectedPrefixes.Length > 0) { var pref = selectedPrefixes[0]; typeline = pref.Query().Name + " "; } typeline += Item.BaseType; if (selectedSuffixes.Length > 0) { var suff = selectedSuffixes[0]; typeline += " " + suff.Query().Name; } Item.TypeLine = typeline; } else { Item.Frame = FrameType.Rare; } UpdateItemNameLine(); requiredLevel = selectedPrefixes.Concat(selectedSuffixes) .Select(ms => ms.Query().RequiredLevel) .DefaultIfEmpty() .Max(); var(craftedMs, explicitMs) = MsPrefix.Concat(MsSuffix) .Where(s => !s.IsEmptySelection) .Partition(s => s.Query().Domain == ModDomain.Crafted); return(explicitMs.SelectMany(s => s.GetStatValues()), craftedMs.SelectMany(s => s.GetStatValues())); }