public PackContent GetCards(Pack pack, Set set) { var ret = new PackContent(); if (Quantity < 0) { ret.UnlimitedCards.AddRange( from card in set.Cards where card.Properties.SelectMany(x=>x.Value.Properties).Any( x => x.Key.Name.ToLower() ==Key.ToLower() && x.Value.ToString().ToLower() ==Value.ToLower()) select card); } else { var list = ( from card in set.Cards where card.Properties.SelectMany(x=>x.Value.Properties).Any( x => x.Key.Name.ToLower() ==Key.ToLower() && x.Value.ToString().ToLower() ==Value.ToLower()) select card).ToArray(); for (var i = 0; i <Quantity; i++) ret.LimitedCards.Add(list.RandomElement()); } return ret; }
public PackContent GetCards(Pack pack, Set set) { var ret = new PackContent(); if (Quantity < 0) { ret.UnlimitedCards.AddRange( from card in set.Cards where card.Properties.SelectMany(x => x.Value.Properties).Any( x => x.Key.Name.ToLower() == Key.ToLower() && x.Value.ToString().ToLower() == Value.ToLower()) select card); } else { var list = ( from card in set.Cards where card.Properties.SelectMany(x => x.Value.Properties).Any( x => x.Key.Name.ToLower() == Key.ToLower() && x.Value.ToString().ToLower() == Value.ToLower()) select card).ToArray(); for (var i = 0; i < Quantity; i++) { ret.LimitedCards.Add(list.RandomElement()); } } return(ret); }
public PackContent GenerateContent(Pack pack, Set set) { var result = new PackContent(); foreach (PackContent defContent in Items.Select(def => def.GetCards(pack,set))) { result.Merge(defContent); } return result; }
public PackContent GenerateContent(Pack pack, Set set) { var result = new PackContent(); foreach (PackContent defContent in Items.Select(def => def.GetCards(pack, set))) { result.Merge(defContent); } return(result); }
public PackContent GetCards(Pack pack) { var result = new PackContent(); //TODO [DB MIGRATION] blah throw new NotImplementedException("Holy Moly"); //var conditions = new string[2]; //conditions[0] = "set_id = '" + pack.Set.Id + "'"; //conditions[1] = string.Format("{0} = '{1}'", Key, Value); //if (Quantity < 0) // result.UnlimitedCards.AddRange(pack.Set.Game.SelectCardModels(conditions)); //else // result.LimitedCards.AddRange(pack.Set.Game.SelectRandomCardModels(Quantity, conditions)); return result; }
public PackContent GetCards(Pack pack, Set set) { var ret = new PackContent(); if (Quantity < 0) { ret.UnlimitedCards.AddRange( from card in set.Cards where card.Properties.SelectMany(x => x.Value.Properties).Any( x => x.Key.Name.ToLower() == Key.ToLower() && x.Value.ToString().ToLower() == Value.ToLower()) select card); } else { var list = ( from card in set.Cards where card.Properties.Where(x => x.Key == "").SelectMany(x => x.Value.Properties).Any( x => x.Key.Name.ToLower() == Key.ToLower() && x.Value.ToString().ToLower() == Value.ToLower()) select card).ToList(); for (var i = 0; i < Quantity; i++) { var pick = list.RandomElement(); if (pick != null) { ret.LimitedCards.Add(pick); list.Remove(pick); } else { Log.Warn(String.Format("Set {0} ({1}) does not contain enough cards to create this booster pack correctly.", set.Id, set.Name)); } } } return(ret); }
public PackContent GetCards(Pack pack, Set set) { var ret = new PackContent(); if (Quantity < 0) { ret.UnlimitedCards.AddRange( from card in set.Cards where card.Properties.SelectMany(x=>x.Value.Properties).Any( x => x.Key.Name.ToLower() ==Key.ToLower() && x.Value.ToString().ToLower() ==Value.ToLower()) select card); } else { var list = ( from card in set.Cards where card.Properties.Where(x=> x.Key == "").SelectMany(x=>x.Value.Properties).Any( x => x.Key.Name.ToLower() ==Key.ToLower() && x.Value.ToString().ToLower() ==Value.ToLower()) select card).ToList(); for (var i = 0; i < Quantity; i++) { var pick = list.RandomElement(); if (pick != null) { ret.LimitedCards.Add(pick); list.Remove(pick); } else { Log.Warn(String.Format("Set {0} ({1}) does not contain enough cards to create this booster pack correctly.", set.Id, set.Name)); } } } return ret; }
public void Merge(PackContent content) { LimitedCards.AddRange(content.LimitedCards); UnlimitedCards.AddRange(content.UnlimitedCards); }
public void Merge(PackContent content) { LimitedCards.AddRange(content.LimitedCards); UnlimitedCards.AddRange(content.UnlimitedCards); }
public PackContent GetCards(Pack pack, Set set) { var ret = new PackContent(); var cardList = set.Cards.ToList(); // add the include cards to the set for this booster var cards = ( from qset in pack.Includes.Select(x => x.SetId).Distinct().SelectMany(x => DbContext.Get().SetsById(x)) from card in qset.Cards join inc in pack.Includes on qset.Id equals inc.SetId where card.Id == inc.Id select new { Card = card, Include = inc } ) .Select(picked => { var card = new Card(picked.Card); foreach (var p in picked.Include.Properties) { var key = picked.Card.Properties[""].Properties.Where(x => x.Key.Name.ToLower() == p.Item1.ToLower()).FirstOrDefault().Key; if (key != null) // if the include property name isn't a defined custom property, ignore it { if (key.Type is PropertyType.RichText) { var span = new RichSpan(); span.Items.Add(new RichText() { Text = p.Item2 }); card.Properties[""].Properties[key] = new RichTextPropertyValue() { Value = span }; } else { card.Properties[""].Properties[key] = p.Item2; } } } return(card); }) ; cardList.AddRange(cards); foreach (var prop in Properties) { var Key = prop.Name; var Value = prop.Value; var list = ( from card in cardList where card.Properties.Where(x => x.Key == "").SelectMany(x => x.Value.Properties).Any( x => x.Key.Name.ToLower() == Key.ToLower() && x.Value.ToString().ToLower() == Value.ToLower()) select card).ToList(); cardList = list; } if (Quantity < 0) { ret.UnlimitedCards.AddRange(cardList); } else { for (var i = 0; i < Quantity; i++) { var pick = cardList.RandomElement(); if (pick != null) { ret.LimitedCards.Add(pick); cardList.Remove(pick); } else { Log.Warn(String.Format("Set {0} ({1}) does not contain enough cards to create this booster pack correctly.", set.Id, set.Name)); } } } return(ret); }
public PackContent GetCards(Pack pack, Set set) { var ret = new PackContent(); var cardList = set.Cards.ToList(); // add the include cards to the set for this booster var cards = ( from qset in pack.Includes.Select(x=>x.SetId).Distinct().SelectMany(x=>DbContext.Get().SetsById(x)) from card in qset.Cards join inc in pack.Includes on qset.Id equals inc.SetId where card.Id == inc.Id select new { Card = card, Include = inc } ) .Select(dong => { var card = new Card(dong.Card); foreach (var p in dong.Include.Properties) { var key = dong.Card.Properties[""].Properties.Where(x => x.Key.Name.ToLower() == p.Item1.ToLower()).FirstOrDefault().Key; if (key != null) // if the include property name isn't a defined custom property, ignore it card.Properties[""].Properties[key] = p.Item2; } return card; }) ; cardList.AddRange(cards); foreach (var prop in Properties) { var Key = prop.Item1; var Value = prop.Item2; var list = ( from card in cardList where card.Properties.Where(x => x.Key == "").SelectMany(x => x.Value.Properties).Any( x => x.Key.Name.ToLower() == Key.ToLower() && x.Value.ToString().ToLower() == Value.ToLower()) select card).ToList(); cardList = list; } if (Quantity < 0) { ret.UnlimitedCards.AddRange(cardList); } else { for (var i = 0; i < Quantity; i++) { var pick = cardList.RandomElement(); if (pick != null) { ret.LimitedCards.Add(pick); cardList.Remove(pick); } else { Log.Warn(String.Format("Set {0} ({1}) does not contain enough cards to create this booster pack correctly.", set.Id, set.Name)); } } } return ret; }