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); }
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(); }