Example #1
0
 public IEnumerable<CardModel> ChooseOrder(CardOrderType choiceType, string choiceText, IEnumerable<CardModel> choices)
 {
     if (choices.GroupBy(new Func<CardModel, string>(c => c.Name)).Count() <= 1)
     {
         return choices;
     }
     else
     {
         return Order(choiceType, choiceText, choices);
     }
 }
Example #2
0
 public abstract IEnumerable<CardModel> Order(CardOrderType choiceType, string choiceText, IEnumerable<CardModel> choices);
Example #3
0
 public override IEnumerable<CardModel> Order(CardOrderType choiceType, string choiceText, IEnumerable<CardModel> choices)
 {
     return choices;
 }
Example #4
0
 public override IEnumerable<CardModel> Order(CardOrderType choiceType, string choiceText, IEnumerable<CardModel> choices)
 {
     return choices.OrderBy(c => Randomizer.Next());
 }
Example #5
0
 public override IEnumerable<CardModel> Order(CardOrderType choiceType, string choiceText, IEnumerable<CardModel> choices)
 {
     IEnumerable<string> chosen = this.MakeCardPileChoice(choiceText, from c in choices select c.ID, choices.Count(), choices.Count(), ChoiceSource.None, card:true, order: true);
     List<CardModel> chosenCards = new List<CardModel>();
     Dictionary<string, int> seen = new Dictionary<string, int>();
     foreach (string c in chosen)
     {
         int skip = 0;
         seen.TryGetValue(c, out skip);
         CardModel foundCard = null;
         int counter = skip;
         foreach (CardModel card in choices)
         {
             if (c == card.ID)
             {
                 if (counter > 0)
                 {
                     counter--;
                 }
                 else
                 {
                     foundCard = card;
                     break;
                 }
             }
         }
         seen[c] = skip + 1;
         chosenCards.Add(foundCard);
     }
     return chosenCards;
 }