public Player(IGame game, string name, IPlayerDeck deck) : base(game) { if (name == null) throw new ArgumentNullException("name"); if (deck == null) throw new ArgumentNullException("deck"); this.name = name; this.deck = deck; this.hand = new Hand<IPlayerCard>(game); }
public Player(IGame game, string name, IPlayerDeck deck) : base(game) { if (name == null) { throw new ArgumentNullException("name"); } if (deck == null) { throw new ArgumentNullException("deck"); } this.name = name; this.deck = deck; this.hand = new Hand <IPlayerCard>(game); }
private static void DisplayDeck(IPlayerDeck deck) { WriteLine(); WriteLine("Player Deck: {0}", deck.Name); if (deck.Heroes.Count() > 0) { WriteLine("Heroes: {0}", string.Join(", ", deck.Heroes.Select(x => x.Title))); WriteLine("Starting Threat: {0}", deck.Heroes.Select(x => (int)x.ThreatCost).Sum()); } else { WriteLine("Heroes: None"); WriteLine("Starting Threat: 0"); } WriteLine(); WriteLine("Cards: {0} with Avg. Cost {1:0.0}", deck.Cards.Count(), deck.Cards.OfType <ICostlyCard>().Average(x => x.PrintedCost)); foreach (var sphere in deck.Cards.OfType <ICostlyCard>().GroupBy(x => x.PrintedSphere)) { var count = deck.Cards.OfType <ICostlyCard>().Where(x => x.PrintedSphere == sphere.Key).Count(); var avg = deck.Cards.OfType <ICostlyCard>().Where(x => x.PrintedSphere == sphere.Key).Average(x => x.PrintedCost); WriteLine("{0} Sphere: {1} Cards with Avg. Cost {2:0.0}", sphere.Key, count, avg); } if (deck.Cards.OfType <IAllyCard>().Count() > 0) { WriteLine(); WriteLine("{0,3} Allies", deck.Cards.OfType <IAllyCard>().Count()); foreach (var card in deck.Cards.OfType <IAllyCard>().GroupBy(x => x.Title)) { WriteLine("{0,3} {1}", deck.Cards.OfType <IAllyCard>().Where(x => x.Title == card.Key).Count(), card.Key); } } if (deck.Cards.OfType <IAttachmentCard>().Count() > 0) { WriteLine(); WriteLine("{0,3} Attachments", deck.Cards.OfType <IAttachmentCard>().Count()); foreach (var card in deck.Cards.OfType <IAttachmentCard>().GroupBy(x => x.Title)) { WriteLine("{0,3} {1}", deck.Cards.OfType <IAttachmentCard>().Where(x => x.Title == card.Key).Count(), card.Key); } } if (deck.Cards.OfType <IEventCard>().Count() > 0) { WriteLine(); WriteLine("{0,3} Events", deck.Cards.OfType <IEventCard>().Count()); foreach (var card in deck.Cards.OfType <IEventCard>().GroupBy(x => x.Title)) { WriteLine("{0,3} {1}", deck.Cards.OfType <IEventCard>().Where(x => x.Title == card.Key).Count(), card.Key); } } if (deck.Cards.OfType <ITreasureCard>().Count() > 0) { WriteLine(); WriteLine("{0,3} Treasures", deck.Cards.OfType <ITreasureCard>().Count()); foreach (var card in deck.Cards.OfType <ITreasureCard>().GroupBy(x => x.Title)) { WriteLine("{0,3} {1}", deck.Cards.OfType <ITreasureCard>().Where(x => x.Title == card.Key).Count(), card.Key); } } WriteLine(); }