コード例 #1
0
        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);
        }
コード例 #2
0
        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()));
        }