protected override int localCompare(ref PartyCharacterVM x, ref PartyCharacterVM y)
        {
            var xName = x.Troop.Character.Culture.Name?.ToString();
            var yName = y.Troop.Character.Culture.Name?.ToString();

            if (xName == null || yName == null)
            {
                return(1);
            }

            xName = CustomSettingsList.Contains(xName) ? xName : CultureCode.AnyOtherCulture.ToString();
            yName = CustomSettingsList.Contains(yName) ? yName : CultureCode.AnyOtherCulture.ToString();

            if (xName.Equals(yName))
            {
                return(EqualSorter?.Compare(x, y) ?? 0);
            }

            foreach (var setting in CustomSettingsList)
            {
                bool xMatch = xName.Equals(setting);
                bool yMatch = yName.Equals(setting);

                if (xMatch && !yMatch)
                {
                    return(Descending ? -1 : 1);
                }
                if (yMatch && !xMatch)
                {
                    return(Descending ? 1 : -1);
                }
            }

            return(1);
        }
예제 #2
0
 public override void FillCustomList()
 {
     base.FillCustomList();
     CustomSettingsList.AddRange(new[] { "Infantry", "Archers", "Cavalry", "Horse Archers" });
     if (_compDictionary == null)
     {
         FillDictionary();
     }
 }
        public override void FillCustomList()
        {
            base.FillCustomList();
            var cultures = Enum.GetValues(typeof(CultureCode));

            foreach (CultureCode cultureCode in cultures)
            {
                CustomSettingsList.Add(cultureCode.ToString());
            }
            CustomSettingsList.Sort(StringComparer.CurrentCulture);
            CustomSettingsList.Reverse();
        }