コード例 #1
0
        public static string AsString(this TypeSortOption typeSortOption)
        {
            switch (typeSortOption)
            {
            // TODO: Add more options
            case TypeSortOption.CAVALRY: return("Cavalry");

            case TypeSortOption.RANGED_CAVALRY: return("Ranged Cavalry");

            case TypeSortOption.INFANTRY: return("Infantry");

            case TypeSortOption.RANGED: return("Archers");

            default: throw new ArgumentOutOfRangeException(nameof(typeSortOption), typeSortOption, null);
            }
        }
コード例 #2
0
 public TypeSortOptionVm(TypeSortOption value)
 {
     Value = value;
     Label = value.AsString();
 }
コード例 #3
0
 private static Func <TroopRosterElement, TroopRosterElement, int> ResolveTypeSortAction(TypeSortOption typeSortOption)
 {
     return(typeSortOption switch {
         TypeSortOption.CAVALRY => (a, b) => {
             if (a.Character.IsMounted && !a.Character.IsArcher && !(b.Character.IsMounted && !b.Character.IsArcher))
             {
                 return -1;
             }
             if (b.Character.IsMounted && !b.Character.IsArcher && !(a.Character.IsMounted && !a.Character.IsArcher))
             {
                 return 1;
             }
             if (a.Character.IsMounted && !a.Character.IsArcher && b.Character.IsMounted && !b.Character.IsArcher)
             {
                 return 0;
             }
             return int.MaxValue;
         },
         TypeSortOption.RANGED_CAVALRY => (a, b) => {
             if (a.Character.IsMounted && a.Character.IsArcher && !(b.Character.IsMounted && b.Character.IsArcher))
             {
                 return -1;
             }
             if (b.Character.IsMounted && b.Character.IsArcher && !(a.Character.IsMounted && a.Character.IsArcher))
             {
                 return 1;
             }
             if (a.Character.IsMounted && a.Character.IsArcher && b.Character.IsMounted && b.Character.IsArcher)
             {
                 return 0;
             }
             return int.MaxValue;
         },
         TypeSortOption.INFANTRY => (a, b) => {
             if (a.Character.IsInfantry && !b.Character.IsInfantry)
             {
                 return -1;
             }
             if (b.Character.IsInfantry && !a.Character.IsInfantry)
             {
                 return 1;
             }
             if (a.Character.IsInfantry && b.Character.IsInfantry)
             {
                 return 0;
             }
             return int.MaxValue;
         },
         TypeSortOption.RANGED => (a, b) => {
             if (a.Character.IsArcher && !b.Character.IsArcher)
             {
                 return -1;
             }
             if (b.Character.IsArcher && !a.Character.IsArcher)
             {
                 return 1;
             }
             if (a.Character.IsArcher && b.Character.IsArcher)
             {
                 return 0;
             }
             return int.MaxValue;
         },
         _ => throw new ArgumentOutOfRangeException(nameof(typeSortOption), typeSortOption, $"TypeSortOption {typeSortOption} does not exist")
     });