public void Resolve(Game game, IPlayer player) { //TODO: reveal hand var treasureFilter = new TreasureFilter(); var treasureCount = player.Hand.Select(CardFactory.Create).Count(treasureFilter.Apply); player.MoneyPlayed = Math.Max(0, player.MoneyPlayed - treasureCount); Resolved = true; }
public void Resolve(Game game, IPlayer player) { var treasureFilter = new TreasureFilter(); var treasuresInTrash = game .Supply.Trash .Select(CardFactory.Create) .Where(treasureFilter.Apply) .Select(x => x.Name) .Distinct() .ToList(); player.MoneyPlayed += treasuresInTrash.Count * GoldPerTreasure; Resolved = true; }