public static List <Card> VictoryAndTreasures() { return(new List <Card> { Copper.Get(), Silver.Get(), Gold.Get(), Estate.Get(), Duchy.Get(), Province.Get() }); }
private static List <Pile> VictoryAndTreasures(bool two) { return(new List <Pile> { new Pile(Copper.Get(), 60), new Pile(Silver.Get(), 40), new Pile(Gold.Get(), 30), new Pile(Estate.Get(), two ? 8 : 12), new Pile(Duchy.Get(), two ? 8 : 12), new Pile(Province.Get(), two ? 8 : 12) }); }
public override Card SelectCardToGain(KingdomWrapper wrapper, PlayerState ps, Kingdom k, Phase phase) { var provinces = k.GetPile(CardType.Province); if (buyAgenda.Provinces > provinces.Count && wrapper.GetCard(CardType.Province) != null) { return(Province.Get()); } var duchies = k.GetPile(CardType.Duchy); if (buyAgenda.Duchies > provinces.Count && wrapper.GetCard(CardType.Duchy) != null) { return(Duchy.Get()); } var estates = k.GetPile(CardType.Estate); if (buyAgenda.Estates > provinces.Count && wrapper.GetCard(CardType.Estate) != null) { return(Estate.Get()); } for (int i = 0; i < buyAgenda.BuyMenu.Count; i++) { var tuple = buyAgenda.BuyMenu[i]; if (tuple.Number <= 0) { continue; } var card = wrapper.GetCard(tuple.Card); if (card == null) { continue; } tuple.Number--; if (tuple.Number == 0) { buyAgenda.BuyMenu.RemoveAt(i); } else { buyAgenda.BuyMenu[i] = tuple; // this is a value type, i have to return the value back } if (card.IsTreasure) { playerInfo.TreasureTotal += card.Coins; } if (card.Type == CardType.Moneylender) { playerInfo.TreasureTotal -= 1; } else if (card.Type == CardType.Bureaucrat) { playerInfo.TreasureTotal += 2; } else if (card.Type == CardType.Mine) { playerInfo.TreasureTotal += 1; } return(card); } return(null); }