diff --git a/card_db_src/cards_db.json b/card_db_src/cards_db.json index 195ded96..bcc85a8f 100644 --- a/card_db_src/cards_db.json +++ b/card_db_src/cards_db.json @@ -1714,7 +1714,8 @@ { "card_tag": "Bag of Gold", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "0*", "group_tag": "Tournament and Prizes", @@ -1727,7 +1728,8 @@ { "card_tag": "Diadem", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "0*", "group_tag": "Tournament and Prizes", @@ -1740,7 +1742,8 @@ { "card_tag": "Fairgrounds", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopiaAndGuilds2ndEdition" ], "cost": "6", "types": [ @@ -1750,7 +1753,8 @@ { "card_tag": "Farming Village", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "4", "types": [ @@ -1760,7 +1764,8 @@ { "card_tag": "Followers", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "0*", "group_tag": "Tournament and Prizes", @@ -1774,7 +1779,8 @@ { "card_tag": "Fortune Teller", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "3", "types": [ @@ -1785,7 +1791,8 @@ { "card_tag": "Hamlet", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopiaAndGuilds2ndEdition" ], "cost": "2", "types": [ @@ -1795,7 +1802,8 @@ { "card_tag": "Harvest", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "5", "types": [ @@ -1805,7 +1813,8 @@ { "card_tag": "Horn of Plenty", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopiaAndGuilds2ndEdition" ], "cost": "5", "types": [ @@ -1815,7 +1824,8 @@ { "card_tag": "Horse Traders", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "4", "types": [ @@ -1826,7 +1836,8 @@ { "card_tag": "Hunting Party", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopiaAndGuilds2ndEdition" ], "cost": "5", "types": [ @@ -1836,7 +1847,8 @@ { "card_tag": "Jester", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopiaAndGuilds2ndEdition" ], "cost": "5", "types": [ @@ -1847,7 +1859,8 @@ { "card_tag": "Menagerie", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopiaAndGuilds2ndEdition" ], "cost": "3", "types": [ @@ -1857,7 +1870,8 @@ { "card_tag": "Princess", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "0*", "group_tag": "Tournament and Prizes", @@ -1870,7 +1884,8 @@ { "card_tag": "Remake", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopiaAndGuilds2ndEdition" ], "cost": "4", "types": [ @@ -1880,7 +1895,8 @@ { "card_tag": "Tournament", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "4", "group_tag": "Tournament and Prizes", @@ -1892,7 +1908,8 @@ { "card_tag": "Trusty Steed", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopia1stEditionRemoved" ], "cost": "0*", "group_tag": "Tournament and Prizes", @@ -1905,7 +1922,8 @@ { "card_tag": "Young Witch", "cardset_tags": [ - "cornucopia" + "cornucopia1stEdition", + "cornucopiaAndGuilds2ndEdition" ], "cost": "4", "types": [ @@ -3757,7 +3775,8 @@ { "card_tag": "Advisor", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition", "guilds-bigbox2-de" ], "cost": "4", @@ -3768,7 +3787,8 @@ { "card_tag": "Baker", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition", "guilds-bigbox2-de" ], "cost": "5", @@ -3779,7 +3799,8 @@ { "card_tag": "Butcher", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition", "guilds-bigbox2-de" ], "cost": "5", @@ -3790,7 +3811,8 @@ { "card_tag": "Candlestick Maker", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition", "guilds-bigbox2-de" ], "cost": "2", @@ -3801,7 +3823,8 @@ { "card_tag": "Doctor", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "guilds1stEditionRemoved", "guilds-bigbox2-de" ], "cost": "3+", @@ -3812,7 +3835,8 @@ { "card_tag": "Herald", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition", "guilds-bigbox2-de" ], "cost": "4+", @@ -3823,7 +3847,8 @@ { "card_tag": "Journeyman", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition", "guilds-bigbox2-de" ], "cost": "5", @@ -3834,7 +3859,8 @@ { "card_tag": "Masterpiece", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "guilds1stEditionRemoved", "guilds-bigbox2-de" ], "cost": "3+", @@ -3845,7 +3871,8 @@ { "card_tag": "Merchant Guild", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition", "guilds-bigbox2-de" ], "cost": "5", @@ -3856,7 +3883,8 @@ { "card_tag": "Plaza", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition", "guilds-bigbox2-de" ], "cost": "4", @@ -3867,7 +3895,8 @@ { "card_tag": "Soothsayer", "cardset_tags": [ - "guilds" + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition" ], "cost": "5", "types": [ @@ -3889,7 +3918,8 @@ { "card_tag": "Stonemason", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "cornucopiaAndGuilds2ndEdition", "guilds-bigbox2-de" ], "cost": "2+", @@ -3900,7 +3930,8 @@ { "card_tag": "Taxman", "cardset_tags": [ - "guilds", + "guilds1stEdition", + "guilds1stEditionRemoved", "guilds-bigbox2-de" ], "cost": "4", @@ -8722,5 +8753,182 @@ "Duration", "Attack" ] + }, + { + "card_tag": "Carnival", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "5", + "types": [ + "Action" + ] + }, + { + "card_tag": "Coronet", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "0*", + "group_tag": "Joust and Rewards", + "randomizer": false, + "types": [ + "Action", + "Treasure", + "Reward" + ] + }, + { + "card_tag": "Courser", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "0*", + "group_tag": "Joust and Rewards", + "randomizer": false, + "types": [ + "Action", + "Reward" + ] + }, + { + "card_tag": "Demesne", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "0*", + "group_tag": "Joust and Rewards", + "randomizer": false, + "types": [ + "Action", + "Victory", + "Reward" + ] + }, + { + "card_tag": "Farmhands", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "4", + "types": [ + "Action" + ] + }, + { + "card_tag": "Farrier", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "guilds2ndEditionUpgrade" + ], + "cost": "2+", + "types": [ + "Action" + ] + }, + { + "card_tag": "Ferryman", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "5", + "types": [ + "Action" + ] + }, + { + "card_tag": "Footpad", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "guilds2ndEditionUpgrade" + ], + "cost": "5", + "types": [ + "Action", + "Attack" + ] + }, + { + "card_tag": "Housecarl", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "0*", + "group_tag": "Joust and Rewards", + "randomizer": false, + "types": [ + "Action", + "Reward" + ] + }, + { + "card_tag": "Huge Turnip", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "0*", + "group_tag": "Joust and Rewards", + "randomizer": false, + "types": [ + "Treasure", + "Reward" + ] + }, + { + "card_tag": "Infirmary", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "guilds2ndEditionUpgrade" + ], + "cost": "3+", + "types": [ + "Action" + ] + }, + { + "card_tag": "Joust", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "5", + "group_tag": "Joust and Rewards", + "group_top": true, + "types": [ + "Action" + ] + }, + { + "card_tag": "Renown", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "0*", + "group_tag": "Joust and Rewards", + "randomizer": false, + "types": [ + "Action", + "Reward" + ] + }, + { + "card_tag": "Shop", + "cardset_tags": [ + "cornucopiaAndGuilds2ndEdition", + "cornucopia2ndEditionUpgrade" + ], + "cost": "3", + "types": [ + "Action" + ] } ] diff --git a/card_db_src/en_us/cards_en_us.json b/card_db_src/en_us/cards_en_us.json index d0a103cd..236bb8a6 100644 --- a/card_db_src/en_us/cards_en_us.json +++ b/card_db_src/en_us/cards_en_us.json @@ -420,6 +420,11 @@ "extra": "The card you set aside doesn't have to be the next card you gain; you could gain multiple cards and then gain one where you decided to set it aside. If you don't set a card aside at all, Cargo Ship is discarded that turn.", "name": "Cargo Ship" }, + "Carnival": { + "description": "Reveal the top 4 cards of your deck. Put one of each differently named card into your hand and discard the rest.", + "extra": "For example if you revealed 3 Coppers and a Farmhands, you'd put one Copper and the Farmhands into your hand, and discard the other two Coppers. Shuffle if necessary to get 4 cards to reveal; if there still aren't 4 cards, reveal what you can.", + "name": "Carnival" + }, "Cartographer": { "description": "+1 Card
+1 ActionLook at the top 4 cards of your deck. Discard any number of them. Put the rest back on top in any order.", "extra": "You draw a card first, then look at the top 4 cards of your deck. If there are fewer than 4 cards left in your deck, look at the remaining cards, and shuffle your discard pile (which does not include those cards) to get the remainder needed to look at. If there are still not enough cards, just look at as many as you can. Discard any number of the cards you looked at - none, all four, or something in-between - and put the rest back on top of your deck in any order. if there were no cards left in your deck, these become the only cards in your deck. You do not reveal the cards you put back.", @@ -610,6 +615,11 @@ "extra": "This just changes how much money you get when playing Copper. The effect is cumulative; if you use Throne Room on Coppersmith, each Copper that you play that turn will produce 3 coins.", "name": "Coppersmith" }, + "Coronet": { + "description": "You may play a non-Reward Action from your hand twice.

You may play a non-Reward Treasure from your hand twice.

(This is not in the Supply.)", + "extra": " Playing either type of card is optional; you can play an Action twice, play a Treasure twice, do both, or do neither. If you do both, you play the Action first. This can't play Rewards. Playing a card twice with this means playing the card, resolving that completely, then playing the same card again. Playing cards with this doesn't use up Action plays for the turn. For example you could Coronet a Village and a Silver; you'd get +2 Cards and +4 Actions from the Village plays, and +4 coin from the Silver plays.", + "name": "Coronet" + }, "Corsair": { "description": "+2 Coin

At the start of your next turn, +1 Card. Until then, each other player trashes the first Silver or Gold they play each turn.", "extra": "The trashed Silver or Gold still made _ Coin for the player to spend that turn.
If you're under multiple Corsair attacks, you'll only trash 1 Silver and/or Gold.", @@ -635,6 +645,11 @@ "extra": "This card lets you look through your discard pile, something you normally are not allowed to do. You only get to look through your discard pile when you play this. You do not have to show the other players your entire discard pile, just the Coppers you take out. After you take out the Coppers, you can leave the cards in your discard pile in any order.", "name": "Counting House" }, + "Courser": { + "description": "Choose two different options:
+2 Cards; +2 Actions;
+2 coin; gain 4 Silvers.

(This is not in the Supply.)", + "extra": "First choose any two of the four options, then do those options in the order listed. So if you choose both +2 Cards and \"Gain 4 Silvers,\" you will draw cards before you gain the Silvers.", + "name": "Courser" + }, "Courtier": { "description": "Reveal a card from your hand. For each type it has (Action, Attack, etc.), choose one: +1 Action; or +1 Buy; or +3 Coin; or gain a Gold. The choices must be different.", "extra": "First reveal a card from your hand, then count the types.The types are the words on the bottom line including Action, Attack, Curse, Reaction, Treasure, and Victory (with more in expansions).Then choose one different thing per type the card had; if you revealed a card with two types, you pick two things.For example you could reveal a Copper and choose \"gain a Gold,\" or reveal a Mill and choose \"+1 Action\" and \"+3 Coin\".If you gain a Gold, put the Gold into your discard pile.", @@ -755,6 +770,11 @@ "extra": "The Horse goes on top first, then the card costing up to 4 coin does.", "name": "Demand" }, + "Demesne": { + "description": "+2 Actions
+2 Buys
Gain a Gold.Worth 1 VP per Gold you have.

(This is not in the supply.)", + "extra": "When you play this, you get +2 Actions, +2 Buys, and gain a Gold. When scoring, this is worth 1 VP per Gold you have then.", + "name": "Demesne" + }, "Den of Sin": { "description": "At the start of your next turn,+2 Cards.This is gained to your hand (instead of your discard pile).", "extra": "Since Night is after the Buy phase, normally you can play this the turn you buy it.", @@ -1011,6 +1031,11 @@ "extra": "The first time this is played, it produces +1 Coin (and +1 Buy), the next time +2 Coin, then +3 Coin, then +4 Coin, then the next time the player takes the 4 (and gets no + _ Coin), then the next time it is back to +1 Coin. This still functions if the Farmers' Market pile is empty.", "name": "Farmers' Market" }, + "Farmhands": { + "description": "+1 Card
+2 ActionsWhen you gain this, you may set aside an Action or Treasure from your hand, and play it at the start of your next turn.", + "extra": "Setting aside a card when you gain this is optional. Once you do it, you have to play the card at the start of your next turn, even if you no longer want to. Playing the Action card does not \"use up\" one of your Action plays for the turn. The set aside card is face up.", + "name": "Farmhands" + }, "Farming Village": { "description": "+2 ActionsReveal cards from the top of your deck until you reveal an Action or Treasure card. Put that card into your hand and discard the other cards.", "extra": "Reveal cards from the top of your deck until you reveal a Treasure or Action card. If you run out of cards before finding one, shuffle your discard pile (but not the revealed cards), and keep revealing cards. If you still cannot find one, just discard all of the revealed cards. If you do find a Treasure or Action card, put it into your hand, and discard the rest of the revealed cards. A card with multiple types, one of which is Treasure or Action (for example Diadem, a Treasure - Prize), is a Treasure or Action and so will be drawn by this. You do not choose Treasure or Action - you stop on the first card matching either type.", @@ -1021,6 +1046,11 @@ "extra": "This is a Victory card, not an Action card. It is worth 2 victory points at the end of the game. When you buy it, you trash a card from your hand if able, and if you did, you gain a card from the supply costing exactly 2 coins more than the trashed card if able. If there are no cards left in your hand to trash, you do not trash or gain a card, and if you trashed a card but there are no cards in the supply costing exactly 2 coins more than the trashed card, you do not gain a card. This ability only functions when you buy Farmland, not when you gain it some other way. During set-up, put all 12 Farmlands in the Supply for a game with 3 or more players, but only 8 in the Supply for a 2-player game.", "name": "Farmland" }, + "Farrier": { + "description": "+1 Card
+1 Action
+1 BuyOverpay: +1 Card at the end of this turn per 1 coin overpaid.", + "extra": "When you gain a Farrier you overpaid for, you draw an extra card at end of turn per 1 coin you overpaid. For example you could pay 4 coin for Farrier, and draw 2 extra cards at end of turn. This doesn't happen if you gain a Farrier without paying for it (such as with Horn of Plenty).", + "name": "Farrier" + }, "Fated": { "description": "When shuffling, you may look through the cards and reveal Fated cards to put them on the top or bottom.", "extra": "Each time you shuffle, you can choose to put Fated cards on the top or bottom of your deck, while shuffling the other cards normally.
In games with Fated, you can look through your deck before shuffling, even if you're sure you don't have any Fated cards.", @@ -1051,6 +1081,11 @@ "extra": "When you buy this, you move your - 2 Coin cost token to any Action Supply pile. This token makes cards from that pile cost 2 Coins less, but not less than 0 Coins, on your turns; see the Tokens section.", "name": "Ferry" }, + "Ferryman": { + "description": "+2 Cards
+1 Action
Discard a card.Setup: Choose an unused Kingdom card pile costing 3 coin or 4 coin. Gain one when you gain a Ferryman.", + "extra": "When you gain a Ferryman, you also gain a copy of whichever card was set aside in setup. For example in setup you might set aside Shop, which costs 3 coin; then that game, when you gained a Ferryman, you'd also gain a Shop. The card chosen for Ferryman can't be gained other ways, only by gaining a Ferryman. If the chosen card is a split pile (such as the Augurs from Dominion: Allies), different cards will be gained via Ferryman gains as they get uncovered.", + "name": "Ferryman" + }, "Festival": { "description": "+2 Actions
+1 Buy
+2 Coins", "extra": "If you are playing multiple Festivals, keep a careful count of your Actions. Say how many you have left out loud; this trick works every time (i.e. \"I'm playing the Festival and now have two Actions remaining. I play a Market and have two Actions remaining. I play another Festival and now have three actions remaining...).", @@ -1129,6 +1164,11 @@ "extra": "This is both a Treasure and a Reaction. It can be played in your Buy phase like other Treasures. When you play it, it is worth 1 coin if this is the first time you played a Fool's Gold this turn, and otherwise it is worth 4 coins. So if your lay three Fool's Golds in the same turn, the first is worth 1 coin, the second is worth 4 coins, and the third is worth 4 coins. Fool's Gold is also a Reaction. When another player gains a Province, you may trash Fool's Gold from your hand; if you do, you gain a Gold from the Supply, putting it on top of your deck rather than into your discard pile. If there are no cards in your deck, the Gold becomes the only card in your deck. If there are no Gold cards left in the Supply, you do not gain one, but can still trash Fool's Gold. This Reaction is only usable when another player gains a Province, not you. It is usable whether a Province was gained due to being bought, or gained some other way.", "name": "Fool's Gold" }, + "Footpad": { + "description": "+2 Coffers
Each other player discards down to 3 cards in hand.In games using this, when you gain a card in an Action phase, +1 Card.", + "extra": "This changes any game it's part of, even if no-one has gained a Footpad. For that entire game, any time you gain a card in an Action phase, you draw a card. For example if you played Remake to turn two Estates into two Silvers, you'd draw two cards. Drawing isn't optional. This doesn't draw you cards in Buy phases or Clean-up, just Action phases. When you play a Footpad, you get +2 Coffers, and the other players discard down to 3 cards in hand.", + "name": "Footpad" + }, "Forager": { "description": "+1 Action
+1 BuyTrash a card from your hand.+1 Coin per differently named Treasure in the trash.", "extra": "Trash a card from your hand if you can. Whether or not you can, you still get +1 Coin per differently named Treasure in the trash, plus +1 Action and +1 Buy. Multiple copies of the same Treasure card do not increase how much you get. For example, if the trash has four Coppers, a Counterfeit, and six Estates, you get +2 Coins. Cards with multiple types, one of which is Treasure (such as Harem from Intrigue), are Treasures.", @@ -1472,11 +1512,21 @@ "extra": "When you gain this, you may discard any number of Treasure cards from your hand, to gain that many Horses from their pile.Reveal the discarded Treasure cards.You do not have to discard anything, and cannot discard anything but Treasures.", "name": "Hostelry" }, + "Housecarl": { + "description": "+1 Card per differently named Action card you have in play.

(This is not in the supply.)", + "extra": "This includes Housecarl itself.", + "name": "Housecarl" + }, "Hovel": { "description": "When you buy a Victory card, you may trash this from your hand.", "extra": "This is a Shelter; see Preparation. It is never in the Supply. When you buy a Victory card, if Hovel is in your hand, you may trash the Hovel. A card with multiple types, one of which is Victory, is a Victory card. You do not get anything for trashing Hovel; you just get to get rid of it.", "name": "Hovel" }, + "Huge Turnip": { + "description": "+2 Coffers

+1 coin per Coffers you have.

(This is not in the Supply.)", + "extra": "The +1 coin per Coffers you have includes the 2 you just got.", + "name": "Huge Turnip" + }, "Hunting Grounds": { "description": "+ 4 CardsWhen you trash this, gain a Duchy or 3 Estates.", "extra": "When you play this, draw 4 cards. If this is trashed, you either gain a Duchy or 3 Estates, your choice. These cards come from the Supply and are put into your discard pile. If you choose the 3 Estates and there are not 3 left, just gain as many as you can.", @@ -1512,6 +1562,11 @@ "extra": "You can only trash an Action card that would be discarded this turn; you cannot trash a non-Action like Silver, or a Duration card that will stay out (but you can trash a Duration card that will be discarded). You can trash the Improve itself. The card you gain does not have to be an Action, it just has to cost exactly 1 Coin more than the trashed Action. Using this ability is optional, but if you trash a card then you have to gain one if you can.", "name": "Improve" }, + "Infirmary": { + "description": "+1 Card
You may trash a card from your hand.Overpay: Play this once per 1 coin overpaid.", + "extra": "When you gain an Infirmary you overpaid for, you play it once per 1 coin you overpaid. For example if you buy an Infirmary for 5 coin, you'd play the Infirmary twice - drawing a card, optionally trashing a card from your hand, drawing another card, and optionally trashing another card. This doesn't happen when you gain Infirmary without paying for it (such as with Horn of Plenty).", + "name": "Infirmary" + }, "Inheritance": { "description": "Once per game: Set aside a non-Command Action card from the Supply costing up to 4 Coin. Move your Estate token to it. (During your turns, Estates are also Actions with \"Play the card with your Estate token, leaving it there.\")", "extra": "You can only buy this once per game. When you do, set aside a non-Command Action card from the Supply that costs up to 4 Coins, and put your Estate token on it (the one depicting a house). This is not gaining a card, and does not count for things that care about gaining, such as Treasure Hunter; however at the end of the game, include the card in your deck when scoring. For the rest of the game, all of your Estates have the abilities and types of the set aside card. For example if you set aside a Port, then your Estates are Action - Victory cards, that can be played for +1 Card +2 Actions. This also changes Estates you buy or otherwise gain during the game; if you used Inheritance on a Port and then later bought an Estate, that Estate would come with a Port, just as buying a Port gains you a Port. This only affects your own Estates, not Estates of other players. An Estate is yours if either it started in your deck, or you gained it or bought it, or you were passed it with Masquerade (from Intrigue). An Estate stops being yours if you trash it, return it to the Supply, pass it with Masquerade, or are stopped from gaining it due to Possession (from Alchemy) or Trader (from Hinterlands). There are no limits on the set aside card other than being a non-Victory Action from the Supply costing up to 4 Coins; it may be a Duration card, a Reaction card, and so on. It does not have to continue costing up to 4 Coins, it only has to cost up to 4 Coins when set aside. Your Estates are still worth 1 Victory Point when scoring at the end of the game. Your Estates only copy abilities and types; they do not copy cost, name, or what pile they are from (thus they don't trigger tokens like +1 Action on the copied pile, and are not the Bane for Young Witch from Cornucopia even if the copied pile is the Bane). Starting Estates come from the Estates pile.", @@ -1613,6 +1668,16 @@ "extra": "This draws you three cards that are not a particular card. First name a card. It does not have to be a card being used this game. Then reveal cards from the top of your deck until you have revealed three cards that are not the named card. If you run out of cards without finding three, shuffle your discard pile into your deck and continue. If you still cannot find three, stop. Put the cards you found that were not the named card into your hand and discard the rest.", "name": "Journeyman" }, + "Joust": { + "description": "+1 Card
+1 Action
+1 coin
You may set aside a Province from your hand to gain any Reward to your hand. Discard the Province in Clean-up.", + "extra": "Use one copy of each Reward for games with 2 players, and two copies of each Reward for games with 3-6 players. With 3 or more players, it's okay to gain a Reward you already have a copy of. To gain a Reward you have to set aside a Province from your hand, discarding that Province in Clean-up with your other cards. If all Rewards have been claimed, you can still set aside a Province, but this won't do anything special for you. Rewards are not in the Supply, and can only be gained via playing Joust.", + "name": "Joust" + }, + "Joust and Rewards": { + "description": "+1 Card
+1 Action
+1 coin
You may set aside a Province from your hand to gain any Reward to your hand. Discard the Province in Clean-up.", + "extra": " Use one copy of each Reward for games with 2 players, and two copies of each Reward for games with 3-6 players. With 3 or more players, it's okay to gain a Reward you already have a copy of. To gain a Reward you have to set aside a Province from your hand, discarding that Province in Clean-up with your other cards. If all Rewards have been claimed, you can still set aside a Province, but this won't do anything special for you. Rewards are not in the Supply, and can only be gained via playing Joust.\nThere are two each of six rewards: Coronet, Courser, Demesne, Housecarl, Huge Turnip, Renown.
• These are cards which are never part of the Supply. If the Rewards run out, that does not count towards the game end condition.
• The Rewards may not be bought, or gained via cards like Horn of Plenty; only Joust can gain them from their pile. They can be gained from other places normally; for example Lurker from Intrigue can gain some of them from the trash.
• Use all 12 Rewards with 3 or more players; use just one of each with 2 players. With 3 or more players, a single player can get two of the same Reward.
• Trashed Rewards go to the trash pile, like other cards; they do not return to the Rewards pile.
• If using the promotional card Black Market, do not put Rewards into the Black Market deck. ", + "name": "Joust and Rewards" + }, "Junk Dealer": { "description": "+1 Card
+1 Action
+1 CoinTrash a card from your hand.", "extra": "You have to trash a card from your hand if you can. You draw before trashing.", @@ -2465,6 +2530,11 @@ "extra": "You cannot trash the Remodel as it isn't in your hand when you resolve it (you can trash a different Remodel card from your hand). If you do not have a card to trash, you cannot gain a card from the Remodel. The gained card goes in your Discard pile. You can only gain cards from the Supply. The gained card need not cost exactly 2 Coins more than the trashed card; it can cost that much or any amount less. You cannot use coins from Treasures or previous Actions (like the Market) to increase the cost of the card you gain. You can trash a card to gain a copy of the same card.", "name": "Remodel" }, + "Renown": { + "description": "+1 Buy

This turn, cards cost 2 coin less.

(This is not in the Supply.)", + "extra": "Costs can't go below 0 coin. This applies to all cards everywhere - cards in the Supply, cards in hand, cards in decks. For example if you play Renown and then Remake, trashing a Copper, you could gain a Silver, as Silver would cost 1 coin while Copper would still cost 0 coin. Using a card like Throne Room on Renown will make cards cost 4 coin less.", + "name": "Renown" + }, "Replace": { "description": "Trash a card from your hand. Gain a card costing up to 2 Coins more than it. If the gained card is an Action or Treasure, put it onto your deck; if it's a Victory card, each other player gains a Curse.", "extra": "Like Remodel, you first trash a card from your hand, then gain a card from the Supply costing up to 2 Coin more than the trashed card, putting the gained card into your discard pile.Replace gives you an additional bonus based on the types of the gained card; if it is an Action or Treasure you move it to the top of your deck, and if it is a Victory card the other players each gain a Curse.It is possible to get both bonuses; if you gain Harem, Mill, or Nobles with Replace, it both goes on your deck and causes the other players to each gain a Curse.", @@ -2795,6 +2865,11 @@ "This card is currently not used." ] }, + "Shop": { + "description": "+1 Card
+ 1 coin

You may play an Action card from your hand that you don’t have a copy of in play.", + "extra": "This lets you play an Action card from your hand, provided that you do not have a copy of that card in play. It does not matter if you played a copy of that Action that turn, only that it is not in play when you play Shop.", + "name": "Shop" + }, "Shy": { "description": "At the start of your turn, you may discard one Shy card for +2 Cards.", "extra": "You can only discard one Shy card per turn this way.", diff --git a/card_db_src/en_us/types_en_us.json b/card_db_src/en_us/types_en_us.json index 71179ff2..1f3a0113 100644 --- a/card_db_src/en_us/types_en_us.json +++ b/card_db_src/en_us/types_en_us.json @@ -35,6 +35,8 @@ "Projects": "Projects", "Reaction": "Reaction", "Reserve": "Reserve", + "Reward": "Reward", + "Rewards": "Rewards", "Ruins": "Ruins", "Shelter": "Shelter", "Shelters": "Shelters", diff --git a/card_db_src/sets_db.json b/card_db_src/sets_db.json index 953a89b1..d59537b4 100644 --- a/card_db_src/sets_db.json +++ b/card_db_src/sets_db.json @@ -53,14 +53,50 @@ "set_text": "", "text_icon": "*" }, - "cornucopia": { + "cornucopia1stEdition": { + "edition": [ + "1" + ], + "image": "cornucopia_set.png", + "set_name": "*cornucopia1stEdition*", + "set_text": "", + "short_name": "Cornucopia", + "text_icon": "*" + }, + "cornucopia1stEditionRemoved": { + "edition": [ + "1", + "removed" + ], + "has_extras": false, + "image": "cornucopia_set.png", + "set_name": "*cornucopia1stEditionRemoved*", + "set_text": "", + "short_name": "Cornucopia", + "text_icon": "*" + }, + "cornucopia2ndEditionUpgrade": { "edition": [ "1", + "upgrade" + ], + "has_extras": false, + "image": "cornucopia_set.png", + "set_name": "*cornucopia2ndEditionUpgrade*", + "set_text": "", + "short_name": "Cornucopia", + "text_icon": "*", + "upgrades": "cornucopia1stEdition" + }, + "cornucopiaAndGuilds2ndEdition": { + "edition": [ + "2", "latest" ], "image": "cornucopia_set.png", - "set_name": "*cornucopia*", + "set_name": "*cornucopiaAndGuilds2ndEdition*", "set_text": "", + "short_name": "Cornucopia and Guilds", "text_icon": "*" }, "dark ages": { @@ -139,26 +175,51 @@ "set_text": "", "text_icon": "*" }, - "guilds": { + "guilds-bigbox2-de": { "edition": [ "1", "latest" ], "image": "guilds_set.png", - "set_name": "*guilds*", + "set_name": "*guilds-bigbox2-de*", "set_text": "", "text_icon": "*" }, - "guilds-bigbox2-de": { + "guilds1stEdition": { + "edition": [ + "1" + ], + "image": "guilds_set.png", + "set_name": "*guilds1stEdition*", + "set_text": "", + "short_name": "Guilds", + "text_icon": "*" + }, + "guilds1stEditionRemoved": { "edition": [ "1", - "latest" + "removed" ], + "has_extras": false, "image": "guilds_set.png", - "set_name": "*guilds-bigbox2-de*", + "set_name": "*guilds1stEditionRemoved*", "set_text": "", + "short_name": "Guilds", "text_icon": "*" }, + "guilds2ndEditionUpgrade": { + "edition": [ + "1", + "upgrade" + ], + "has_extras": false, + "image": "guilds_set.png", + "set_name": "*guilds2ndEditionUpgrade*", + "set_text": "", + "short_name": "Guilds", + "text_icon": "*", + "upgrades": "guilds1stEdition" + }, "hinterlands1stEdition": { "edition": [ "1" diff --git a/card_db_src/types_db.json b/card_db_src/types_db.json index c07f29cd..66b7ac84 100644 --- a/card_db_src/types_db.json +++ b/card_db_src/types_db.json @@ -241,6 +241,16 @@ "tabCostHeightOffset": -1, "tabTextHeightOffset": 0 }, + { + "card_type": [ + "Action", + "Reward" + ], + "card_type_image": "action.png", + "defaultCardCount": 2, + "tabCostHeightOffset": -1, + "tabTextHeightOffset": 0 + }, { "card_type": [ "Action", @@ -291,6 +301,17 @@ "tabCostHeightOffset": -1, "tabTextHeightOffset": 0 }, + { + "card_type": [ + "Action", + "Treasure", + "Reward" + ], + "card_type_image": "action-treasure.png", + "defaultCardCount": 2, + "tabCostHeightOffset": -1, + "tabTextHeightOffset": 0 + }, { "card_type": [ "Action", @@ -301,6 +322,17 @@ "tabCostHeightOffset": -1, "tabTextHeightOffset": 0 }, + { + "card_type": [ + "Action", + "Victory", + "Reward" + ], + "card_type_image": "action-victory.png", + "defaultCardCount": 2, + "tabCostHeightOffset": -1, + "tabTextHeightOffset": 0 + }, { "card_type": [ "Action", @@ -797,6 +829,24 @@ "tabCostHeightOffset": -1, "tabTextHeightOffset": 0 }, + { + "card_type": [ + "Reward" + ], + "card_type_image": "action.png", + "defaultCardCount": 1, + "tabCostHeightOffset": -1, + "tabTextHeightOffset": 0 + }, + { + "card_type": [ + "Rewards" + ], + "card_type_image": "action.png", + "defaultCardCount": 0, + "tabCostHeightOffset": -1, + "tabTextHeightOffset": 0 + }, { "card_type": [ "Shelters" @@ -978,6 +1028,16 @@ "tabCostHeightOffset": -1, "tabTextHeightOffset": 0 }, + { + "card_type": [ + "Treasure", + "Reward" + ], + "card_type_image": "treasure.png", + "defaultCardCount": 2, + "tabCostHeightOffset": -1, + "tabTextHeightOffset": 0 + }, { "card_type": [ "Treasure", diff --git a/card_db_src/xx/cards_xx.json b/card_db_src/xx/cards_xx.json index 0a3366a1..9f8a1088 100644 --- a/card_db_src/xx/cards_xx.json +++ b/card_db_src/xx/cards_xx.json @@ -365,6 +365,12 @@ "name": "Cargo Ship", "used": true }, + "Carnival": { + "description": "Reveal the top 4 cards of your deck. Put one of each differently named card into your hand and discard the rest.", + "extra": "For example if you revealed 3 Coppers and a Farmhands, you'd put one Copper and the Farmhands into your hand, and discard the other two Coppers. Shuffle if necessary to get 4 cards to reveal; if there still aren't 4 cards, reveal what you can.", + "name": "Carnival", + "used": true + }, "Cartographer": { "description": "+1 Card
+1 ActionLook at the top 4 cards of your deck. Discard any number of them. Put the rest back on top in any order.", "extra": "You draw a card first, then look at the top 4 cards of your deck. If there are fewer than 4 cards left in your deck, look at the remaining cards, and shuffle your discard pile (which does not include those cards) to get the remainder needed to look at. If there are still not enough cards, just look at as many as you can. Discard any number of the cards you looked at - none, all four, or something in-between - and put the rest back on top of your deck in any order. if there were no cards left in your deck, these become the only cards in your deck. You do not reveal the cards you put back.", @@ -545,6 +551,12 @@ "name": "Coppersmith", "used": true }, + "Coronet": { + "description": "You may play a non-Reward Action from your hand twice.

You may play a non-Reward Treasure from your hand twice.

(This is not in the Supply.)", + "extra": " Playing either type of card is optional; you can play an Action twice, play a Treasure twice, do both, or do neither. If you do both, you play the Action first. This can't play Rewards. Playing a card twice with this means playing the card, resolving that completely, then playing the same card again. Playing cards with this doesn't use up Action plays for the turn. For example you could Coronet a Village and a Silver; you'd get +2 Cards and +4 Actions from the Village plays, and +4 coin from the Silver plays.", + "name": "Coronet", + "used": true + }, "Council Room": { "description": "+4 Cards
+1 BuyEach other player draws a card.", "extra": "The other players must draw a card whether they want to or not. All players should shuffle as necessary.", @@ -569,6 +581,12 @@ "name": "Counting House", "used": true }, + "Courser": { + "description": "Choose two different options:
+2 Cards; +2 Actions;
+2 coin; gain 4 Silvers.

(This is not in the Supply.)", + "extra": "First choose any two of the four options, then do those options in the order listed. So if you choose both +2 Cards and \"Gain 4 Silvers,\" you will draw cards before you gain the Silvers.", + "name": "Courser", + "used": true + }, "Courtier": { "description": "Reveal a card from your hand. For each type it has (Action, Attack, etc.), choose one: +1 Action; or +1 Buy; or +3 Coin; or gain a Gold. The choices must be different.", "extra": "First reveal a card from your hand, then count the types.The types are the words on the bottom line including Action, Attack, Curse, Reaction, Treasure, and Victory (with more in expansions).Then choose one different thing per type the card had; if you revealed a card with two types, you pick two things.For example you could reveal a Copper and choose \"gain a Gold,\" or reveal a Mill and choose \"+1 Action\" and \"+3 Coin\".If you gain a Gold, put the Gold into your discard pile.", @@ -659,6 +677,12 @@ "name": "Delve", "used": true }, + "Demesne": { + "description": "+2 Actions
+2 Buys
Gain a Gold.Worth 1 VP per Gold you have.

(This is not in the supply.)", + "extra": "When you play this, you get +2 Actions, +2 Buys, and gain a Gold. When scoring, this is worth 1 VP per Gold you have then.", + "name": "Demesne", + "used": true + }, "Den of Sin": { "description": "At the start of your next turn,+2 Cards.This is gained to your hand (instead of your discard pile).", "extra": "Since Night is after the Buy phase, normally you can play this the turn you buy it.", @@ -905,6 +929,12 @@ "name": "Farmers' Market", "used": true }, + "Farmhands": { + "description": "+1 Card
+2 ActionsWhen you gain this, you may set aside an Action or Treasure from your hand, and play it at the start of your next turn.", + "extra": "Setting aside a card when you gain this is optional. Once you do it, you have to play the card at the start of your next turn, even if you no longer want to. Playing the Action card does not \"use up\" one of your Action plays for the turn. The set aside card is face up.", + "name": "Farmhands", + "used": true + }, "Farming Village": { "description": "+2 ActionsReveal cards from the top of your deck until you reveal an Action or Treasure card. Put that card into your hand and discard the other cards.", "extra": "Reveal cards from the top of your deck until you reveal a Treasure or Action card. If you run out of cards before finding one, shuffle your discard pile (but not the revealed cards), and keep revealing cards. If you still cannot find one, just discard all of the revealed cards. If you do find a Treasure or Action card, put it into your hand, and discard the rest of the revealed cards. A card with multiple types, one of which is Treasure or Action (for example Diadem, a Treasure - Prize), is a Treasure or Action and so will be drawn by this. You do not choose Treasure or Action - you stop on the first card matching either type.", @@ -917,6 +947,12 @@ "name": "Farmland", "used": true }, + "Farrier": { + "description": "+1 Card
+1 Action
+1 BuyOverpay: +1 Card at the end of this turn per 1 coin overpaid.", + "extra": "When you gain a Farrier you overpaid for, you draw an extra card at end of turn per 1 coin you overpaid. For example you could pay 4 coin for Farrier, and draw 2 extra cards at end of turn. This doesn't happen if you gain a Farrier without paying for it (such as with Horn of Plenty).", + "name": "Farrier", + "used": true + }, "Fear": { "description": "If you have at least 5 cards in hand, discard an Action or Treasure (or reveal you can't.)", "extra": "You discard an Action or Treasure if you have either, and only reveal your hand if you have no Actions and no Treasures.", @@ -941,6 +977,12 @@ "name": "Ferry", "used": true }, + "Ferryman": { + "description": "+2 Cards
+1 Action
Discard a card.Setup: Choose an unused Kingdom card pile costing 3 coin or 4 coin. Gain one when you gain a Ferryman.", + "extra": "When you gain a Ferryman, you also gain a copy of whichever card was set aside in setup. For example in setup you might set aside Shop, which costs 3 coin; then that game, when you gained a Ferryman, you'd also gain a Shop. The card chosen for Ferryman can't be gained other ways, only by gaining a Ferryman. If the chosen card is a split pile (such as the Augurs from Dominion: Allies), different cards will be gained via Ferryman gains as they get uncovered.", + "name": "Ferryman", + "used": true + }, "Festival": { "description": "+2 Actions
+1 Buy
+2 Coins", "extra": "If you are playing multiple Festivals, keep a careful count of your Actions. Say how many you have left out loud; this trick works every time (i.e. \"I'm playing the Festival and now have two Actions remaining. I play a Market and have two Actions remaining. I play another Festival and now have three actions remaining...).", @@ -1001,6 +1043,12 @@ "name": "Fool's Gold", "used": true }, + "Footpad": { + "description": "+2 Coffers
Each other player discards down to 3 cards in hand.In games using this, when you gain a card in an Action phase, +1 Card.", + "extra": "This changes any game it's part of, even if no-one has gained a Footpad. For that entire game, any time you gain a card in an Action phase, you draw a card. For example if you played Remake to turn two Estates into two Silvers, you'd draw two cards. Drawing isn't optional. This doesn't draw you cards in Buy phases or Clean-up, just Action phases. When you play a Footpad, you get +2 Coffers, and the other players discard down to 3 cards in hand.", + "name": "Footpad", + "used": true + }, "Forager": { "description": "+1 Action
+1 BuyTrash a card from your hand.+1 Coin per differently named Treasure in the trash.", "extra": "Trash a card from your hand if you can. Whether or not you can, you still get +1 Coin per differently named Treasure in the trash, plus +1 Action and +1 Buy. Multiple copies of the same Treasure card do not increase how much you get. For example, if the trash has four Coppers, a Counterfeit, and six Estates, you get +2 Coins. Cards with multiple types, one of which is Treasure (such as Harem from Intrigue), are Treasures.", @@ -1307,12 +1355,24 @@ "name": "Horse Traders", "used": true }, + "Housecarl": { + "description": "+1 Card per differently named Action card you have in play.

(This is not in the supply.)", + "extra": "This includes Housecarl itself.", + "name": "Housecarl", + "used": true + }, "Hovel": { "description": "When you buy a Victory card, you may trash this from your hand.", "extra": "This is a Shelter; see Preparation. It is never in the Supply. When you buy a Victory card, if Hovel is in your hand, you may trash the Hovel. A card with multiple types, one of which is Victory, is a Victory card. You do not get anything for trashing Hovel; you just get to get rid of it.", "name": "Hovel", "used": true }, + "Huge Turnip": { + "description": "+2 Coffers

+1 coin per Coffers you have.

(This is not in the Supply.)", + "extra": "The +1 coin per Coffers you have includes the 2 you just got.", + "name": "Huge Turnip", + "used": true + }, "Hunting Grounds": { "description": "+ 4 CardsWhen you trash this, gain a Duchy or 3 Estates.", "extra": "When you play this, draw 4 cards. If this is trashed, you either gain a Duchy or 3 Estates, your choice. These cards come from the Supply and are put into your discard pile. If you choose the 3 Estates and there are not 3 left, just gain as many as you can.", @@ -1349,6 +1409,12 @@ "name": "Improve", "used": true }, + "Infirmary": { + "description": "+1 Card
You may trash a card from your hand.Overpay: Play this once per 1 coin overpaid.", + "extra": "When you gain an Infirmary you overpaid for, you play it once per 1 coin you overpaid. For example if you buy an Infirmary for 5 coin, you'd play the Infirmary twice - drawing a card, optionally trashing a card from your hand, drawing another card, and optionally trashing another card. This doesn't happen when you gain Infirmary without paying for it (such as with Horn of Plenty).", + "name": "Infirmary", + "used": true + }, "Inheritance": { "description": "Once per game: Set aside a non-Victory Action card from the Supply costing up to 4 Coin. Move your Estate token to it (your Estates gain the abilities and types of that card).", "extra": "You can only buy this once per game. When you do, set aside a non-Victory Action card from the Supply that costs up to 4 Coins, and put your Estate token on it (the one depicting a house). This is not gaining a card, and does not count for things that care about gaining, such as Treasure Hunter; however at the end of the game, include the card in your deck when scoring. For the rest of the game, all of your Estates have the abilities and types of the set aside card. For example if you set aside a Port, then your Estates are Action - Victory cards, that can be played for +1 Card +2 Actions. This also changes Estates you buy or otherwise gain during the game; if you used Inheritance on a Port and then later bought an Estate, that Estate would come with a Port, just as buying a Port gains you a Port. This only affects your own Estates, not Estates of other players. An Estate is yours if either it started in your deck, or you gained it or bought it, or you were passed it with Masquerade (from Intrigue). An Estate stops being yours if you trash it, return it to the Supply, pass it with Masquerade, or are stopped from gaining it due to Possession (from Alchemy) or Trader (from Hinterlands). There are no limits on the set aside card other than being a non-Victory Action from the Supply costing up to 4 Coins; it may be a Duration card, a Reaction card, and so on. It does not have to continue costing up to 4 Coins, it only has to cost up to 4 Coins when set aside. Your Estates are still worth 1 Victory Point when scoring at the end of the game. Your Estates only copy abilities and types; they do not copy cost, name, or what pile they are from (thus they don't trigger tokens like +1 Action on the copied pile, and are not the Bane for Young Witch from Cornucopia even if the copied pile is the Bane). Starting Estates come from the Estates pile.", @@ -1409,6 +1475,18 @@ "name": "Journeyman", "used": true }, + "Joust": { + "description": "+1 Card
+1 Action
+1 coin
You may set aside a Province from your hand to gain any Reward to your hand. Discard the Province in Clean-up.", + "extra": "Use one copy of each Reward for games with 2 players, and two copies of each Reward for games with 3-6 players. With 3 or more players, it's okay to gain a Reward you already have a copy of. To gain a Reward you have to set aside a Province from your hand, discarding that Province in Clean-up with your other cards. If all Rewards have been claimed, you can still set aside a Province, but this won't do anything special for you. Rewards are not in the Supply, and can only be gained via playing Joust.", + "name": "Joust", + "used": true + }, + "Joust and Rewards": { + "description": "+1 Card
+1 Action
+1 coin
You may set aside a Province from your hand to gain any Reward to your hand. Discard the Province in Clean-up.", + "extra": " Use one copy of each Reward for games with 2 players, and two copies of each Reward for games with 3-6 players. With 3 or more players, it's okay to gain a Reward you already have a copy of. To gain a Reward you have to set aside a Province from your hand, discarding that Province in Clean-up with your other cards. If all Rewards have been claimed, you can still set aside a Province, but this won't do anything special for you. Rewards are not in the Supply, and can only be gained via playing Joust.\nThere are two each of six rewards: Coronet, Courser, Demesne, Housecarl, Huge Turnip, Renown.
• These are cards which are never part of the Supply. If the Rewards run out, that does not count towards the game end condition.
• The Rewards may not be bought, or gained via cards like Horn of Plenty; only Joust can gain them from their pile. They can be gained from other places normally; for example Lurker from Intrigue can gain some of them from the trash.
• Use all 12 Rewards with 3 or more players; use just one of each with 2 players. With 3 or more players, a single player can get two of the same Reward.
• Trashed Rewards go to the trash pile, like other cards; they do not return to the Rewards pile.
• If using the promotional card Black Market, do not put Rewards into the Black Market deck. ", + "name": "Joust and Rewards", + "used": true + }, "Junk Dealer": { "description": "+1 Card
+1 Action
+1 CoinTrash a card from your hand.", "extra": "You have to trash a card from your hand if you can. You draw before trashing.", @@ -2183,6 +2261,12 @@ "name": "Remodel", "used": true }, + "Renown": { + "description": "+1 Buy

This turn, cards cost 2 coin less.

(This is not in the Supply.)", + "extra": "Costs can't go below 0 coin. This applies to all cards everywhere - cards in the Supply, cards in hand, cards in decks. For example if you play Renown and then Remake, trashing a Copper, you could gain a Silver, as Silver would cost 1 coin while Copper would still cost 0 coin. Using a card like Throne Room on Renown will make cards cost 4 coin less.", + "name": "Renown", + "used": true + }, "Replace": { "description": "Trash a card from your hand. Gain a card costing up to 2 Coins more than it. If the gained card is an Action or Treasure, put it onto your deck; if it's a Victory card, each other player gains a Curse.", "extra": "Like Remodel, you first trash a card from your hand, then gain a card from the Supply costing up to 2 Coin more than the trashed card, putting the gained card into your discard pile.Replace gives you an additional bonus based on the types of the gained card; if it is an Action or Treasure you move it to the top of your deck, and if it is a Victory card the other players each gain a Curse.It is possible to get both bonuses; if you gain Harem, Mill, or Nobles with Replace, it both goes on your deck and causes the other players to each gain a Curse.", @@ -2435,6 +2519,12 @@ "name": "Shepherd / Pasture", "used": true }, + "Shop": { + "description": "+1 Card
+ 1 coin

You may play an Action card from your hand that you don’t have a copy of in play.", + "extra": "This lets you play an Action card from your hand, provided that you do not have a copy of that card in play. It does not matter if you played a copy of that Action that turn, only that it is not in play when you play Shop.", + "name": "Shop", + "used": true + }, "Silk Merchant": { "description": "+2 Cards
+1 BuyWhen you gain or trash this, +1 Coffers and +1 Villager.", "extra": "When you play this, you get +2 Cards and +1 Buy; when you trash it or gain it, you get +1 Coffers and +1 Villager. If Silk Merchant is trashed, the player trashing it takes the +1 Coffers and +1 Villager, regardless of whose turn it is.", diff --git a/card_db_src/xx/types_xx.json b/card_db_src/xx/types_xx.json index 626de33f..eae70a1f 100644 --- a/card_db_src/xx/types_xx.json +++ b/card_db_src/xx/types_xx.json @@ -24,6 +24,8 @@ "Project": "Project", "Reaction": "Reaction", "Reserve": "Reserve", + "Reward": "Reward", + "Rewards": "Rewards", "Ruins": "Ruins", "Shelter": "Shelter", "Shelters": "Shelters", diff --git a/src/domdiv/card_db/cards_db.json.gz b/src/domdiv/card_db/cards_db.json.gz index 5a96b9df..ba6e364a 100644 Binary files a/src/domdiv/card_db/cards_db.json.gz and b/src/domdiv/card_db/cards_db.json.gz differ diff --git a/src/domdiv/card_db/cs/cards_cs.json.gz b/src/domdiv/card_db/cs/cards_cs.json.gz index 8c754c57..a031da90 100644 Binary files a/src/domdiv/card_db/cs/cards_cs.json.gz and b/src/domdiv/card_db/cs/cards_cs.json.gz differ diff --git a/src/domdiv/card_db/cs/sets_cs.json.gz b/src/domdiv/card_db/cs/sets_cs.json.gz index 975e27ec..b3edb2d4 100644 Binary files a/src/domdiv/card_db/cs/sets_cs.json.gz and b/src/domdiv/card_db/cs/sets_cs.json.gz differ diff --git a/src/domdiv/card_db/cs/types_cs.json.gz b/src/domdiv/card_db/cs/types_cs.json.gz index b5e190ab..1a2a4773 100644 Binary files a/src/domdiv/card_db/cs/types_cs.json.gz and b/src/domdiv/card_db/cs/types_cs.json.gz differ diff --git a/src/domdiv/card_db/de/cards_de.json.gz b/src/domdiv/card_db/de/cards_de.json.gz index a7cc15f6..bb10ee69 100644 Binary files a/src/domdiv/card_db/de/cards_de.json.gz and b/src/domdiv/card_db/de/cards_de.json.gz differ diff --git a/src/domdiv/card_db/de/sets_de.json.gz b/src/domdiv/card_db/de/sets_de.json.gz index a45a2dfe..4c960317 100644 Binary files a/src/domdiv/card_db/de/sets_de.json.gz and b/src/domdiv/card_db/de/sets_de.json.gz differ diff --git a/src/domdiv/card_db/de/types_de.json.gz b/src/domdiv/card_db/de/types_de.json.gz index 24798927..f704ada1 100644 Binary files a/src/domdiv/card_db/de/types_de.json.gz and b/src/domdiv/card_db/de/types_de.json.gz differ diff --git a/src/domdiv/card_db/en_us/cards_en_us.json.gz b/src/domdiv/card_db/en_us/cards_en_us.json.gz index 78ed9631..26706b91 100644 Binary files a/src/domdiv/card_db/en_us/cards_en_us.json.gz and b/src/domdiv/card_db/en_us/cards_en_us.json.gz differ diff --git a/src/domdiv/card_db/en_us/sets_en_us.json.gz b/src/domdiv/card_db/en_us/sets_en_us.json.gz index e7c47d51..4e03c4b4 100644 Binary files a/src/domdiv/card_db/en_us/sets_en_us.json.gz and b/src/domdiv/card_db/en_us/sets_en_us.json.gz differ diff --git a/src/domdiv/card_db/en_us/types_en_us.json.gz b/src/domdiv/card_db/en_us/types_en_us.json.gz index 63afe6d5..b7e4e2a9 100644 Binary files a/src/domdiv/card_db/en_us/types_en_us.json.gz and b/src/domdiv/card_db/en_us/types_en_us.json.gz differ diff --git a/src/domdiv/card_db/es/cards_es.json.gz b/src/domdiv/card_db/es/cards_es.json.gz index e8b82c7a..2963ec5a 100644 Binary files a/src/domdiv/card_db/es/cards_es.json.gz and b/src/domdiv/card_db/es/cards_es.json.gz differ diff --git a/src/domdiv/card_db/es/sets_es.json.gz b/src/domdiv/card_db/es/sets_es.json.gz index beff668c..227c3c2b 100644 Binary files a/src/domdiv/card_db/es/sets_es.json.gz and b/src/domdiv/card_db/es/sets_es.json.gz differ diff --git a/src/domdiv/card_db/es/types_es.json.gz b/src/domdiv/card_db/es/types_es.json.gz index 20098cb5..360fa85f 100644 Binary files a/src/domdiv/card_db/es/types_es.json.gz and b/src/domdiv/card_db/es/types_es.json.gz differ diff --git a/src/domdiv/card_db/fr/cards_fr.json.gz b/src/domdiv/card_db/fr/cards_fr.json.gz index 5bdb87a9..f2656536 100644 Binary files a/src/domdiv/card_db/fr/cards_fr.json.gz and b/src/domdiv/card_db/fr/cards_fr.json.gz differ diff --git a/src/domdiv/card_db/fr/sets_fr.json.gz b/src/domdiv/card_db/fr/sets_fr.json.gz index d1c3051b..8152d1aa 100644 Binary files a/src/domdiv/card_db/fr/sets_fr.json.gz and b/src/domdiv/card_db/fr/sets_fr.json.gz differ diff --git a/src/domdiv/card_db/fr/types_fr.json.gz b/src/domdiv/card_db/fr/types_fr.json.gz index d514b00d..3a402a25 100644 Binary files a/src/domdiv/card_db/fr/types_fr.json.gz and b/src/domdiv/card_db/fr/types_fr.json.gz differ diff --git a/src/domdiv/card_db/it/cards_it.json.gz b/src/domdiv/card_db/it/cards_it.json.gz index d7f6948e..0c59925b 100644 Binary files a/src/domdiv/card_db/it/cards_it.json.gz and b/src/domdiv/card_db/it/cards_it.json.gz differ diff --git a/src/domdiv/card_db/it/sets_it.json.gz b/src/domdiv/card_db/it/sets_it.json.gz index aef30512..aaabfc23 100644 Binary files a/src/domdiv/card_db/it/sets_it.json.gz and b/src/domdiv/card_db/it/sets_it.json.gz differ diff --git a/src/domdiv/card_db/it/types_it.json.gz b/src/domdiv/card_db/it/types_it.json.gz index 3b2496d9..c71f8e60 100644 Binary files a/src/domdiv/card_db/it/types_it.json.gz and b/src/domdiv/card_db/it/types_it.json.gz differ diff --git a/src/domdiv/card_db/nl_nl/cards_nl_nl.json.gz b/src/domdiv/card_db/nl_nl/cards_nl_nl.json.gz index 652e8f35..8104bc34 100644 Binary files a/src/domdiv/card_db/nl_nl/cards_nl_nl.json.gz and b/src/domdiv/card_db/nl_nl/cards_nl_nl.json.gz differ diff --git a/src/domdiv/card_db/nl_nl/sets_nl_nl.json.gz b/src/domdiv/card_db/nl_nl/sets_nl_nl.json.gz index 6f35c1ce..d789b424 100644 Binary files a/src/domdiv/card_db/nl_nl/sets_nl_nl.json.gz and b/src/domdiv/card_db/nl_nl/sets_nl_nl.json.gz differ diff --git a/src/domdiv/card_db/nl_nl/types_nl_nl.json.gz b/src/domdiv/card_db/nl_nl/types_nl_nl.json.gz index cd92cf82..b1e54b4e 100644 Binary files a/src/domdiv/card_db/nl_nl/types_nl_nl.json.gz and b/src/domdiv/card_db/nl_nl/types_nl_nl.json.gz differ diff --git a/src/domdiv/card_db/sets_db.json.gz b/src/domdiv/card_db/sets_db.json.gz index b256acbc..346f6e89 100644 Binary files a/src/domdiv/card_db/sets_db.json.gz and b/src/domdiv/card_db/sets_db.json.gz differ diff --git a/src/domdiv/card_db/types_db.json.gz b/src/domdiv/card_db/types_db.json.gz index dffb2ce3..b749cd7e 100644 Binary files a/src/domdiv/card_db/types_db.json.gz and b/src/domdiv/card_db/types_db.json.gz differ diff --git a/src/domdiv/card_db/xx/cards_xx.json.gz b/src/domdiv/card_db/xx/cards_xx.json.gz index 28262f65..df85b5df 100644 Binary files a/src/domdiv/card_db/xx/cards_xx.json.gz and b/src/domdiv/card_db/xx/cards_xx.json.gz differ diff --git a/src/domdiv/card_db/xx/sets_xx.json.gz b/src/domdiv/card_db/xx/sets_xx.json.gz index 4fac05ce..049453df 100644 Binary files a/src/domdiv/card_db/xx/sets_xx.json.gz and b/src/domdiv/card_db/xx/sets_xx.json.gz differ diff --git a/src/domdiv/card_db/xx/types_xx.json.gz b/src/domdiv/card_db/xx/types_xx.json.gz index b96fa060..5dfddd4c 100644 Binary files a/src/domdiv/card_db/xx/types_xx.json.gz and b/src/domdiv/card_db/xx/types_xx.json.gz differ diff --git a/src/domdiv/main.py b/src/domdiv/main.py index 0a69394c..9a10a150 100644 --- a/src/domdiv/main.py +++ b/src/domdiv/main.py @@ -312,9 +312,11 @@ def filter_sort_cards(cards, options): keep_cards.append(card) # not part of a group, so just keep the card else: # have a card in a group - if card.group_tag not in group_cards: + if (card.group_tag, card.cardset_tag) not in group_cards: # First card of a group - group_cards[card.group_tag] = card # save to update cost later + group_cards[(card.group_tag, card.cardset_tag)] = ( + card # save to update cost later + ) # this card becomes the card holder for the whole group. card.card_tag = card.group_tag # These text fields should be updated later if there is a translation for this group_tag. @@ -335,31 +337,41 @@ def filter_sort_cards(cards, options): # subsequent cards in the group. Update group info, but don't keep the card. if card.group_top: # this is a designated card to represent the group, so update important data - group_cards[card.group_tag].cost = card.cost - group_cards[card.group_tag].potcost = card.potcost - group_cards[card.group_tag].debtcost = card.debtcost - group_cards[card.group_tag].types = card.types - group_cards[card.group_tag].randomizer = card.randomizer - group_cards[card.group_tag].image = card.image - - group_cards[card.group_tag].addCardCount( + group_cards[(card.group_tag, card.cardset_tag)].cost = card.cost + group_cards[(card.group_tag, card.cardset_tag)].potcost = ( + card.potcost + ) + group_cards[(card.group_tag, card.cardset_tag)].debtcost = ( + card.debtcost + ) + group_cards[(card.group_tag, card.cardset_tag)].types = ( + card.types + ) + group_cards[(card.group_tag, card.cardset_tag)].randomizer = ( + card.randomizer + ) + group_cards[(card.group_tag, card.cardset_tag)].image = ( + card.image + ) + + group_cards[(card.group_tag, card.cardset_tag)].addCardCount( card.count ) # increase the count - # group_cards[card.group_tag].set_lowest_cost(card) # set holder to lowest cost of the two cards + # set holder to lowest cost of the two cards + # group_cards[(card.group_tag, card.cardset_tag)].set_lowest_cost(card) cards = keep_cards # Now fix up card costs for groups by Type (Events, Landmarks, etc.) for card in cards: - if ( - card.card_tag in group_cards - and group_cards[card.group_tag].get_GroupCost() - ): - group_cards[card.group_tag].cost = group_cards[ - card.group_tag + if (card.card_tag, card.cardset_tag) in group_cards and group_cards[ + (card.group_tag, card.cardset_tag) + ].get_GroupCost(): + group_cards[(card.group_tag, card.cardset_tag)].cost = group_cards[ + (card.group_tag, card.cardset_tag) ].get_GroupCost() - group_cards[card.group_tag].debtcost = 0 - group_cards[card.group_tag].potcost = 0 + group_cards[(card.group_tag, card.cardset_tag)].debtcost = 0 + group_cards[(card.group_tag, card.cardset_tag)].potcost = 0 # Get the final type names in the requested language Card.type_names = add_type_text(Card.type_names, db.LANGUAGE_DEFAULT) diff --git a/tests/carddb_tests.py b/tests/carddb_tests.py index cc417b01..243f61d5 100644 --- a/tests/carddb_tests.py +++ b/tests/carddb_tests.py @@ -23,10 +23,11 @@ def rmd(): def test_cardread(): - num_cards_expected = 958 + # we test the number of cards only to make sure it doesn't get changed + # inadvertently by unrelated changes + num_cards_expected = 1017 options = config_options.parse_opts([]) - options.data_path = "." cards = db.read_card_data(options) assert len(cards) == num_cards_expected valid_cardsets = { @@ -49,14 +50,19 @@ def test_cardread(): "prosperity2ndEdition", "prosperity2ndEditionUpgrade", "cornucopia extras", - "cornucopia", + "cornucopia1stEdition", + "cornucopia1stEditionRemoved", + "cornucopia2ndEditionUpgrade", + "cornucopiaAndGuilds2ndEdition", "hinterlands1stEdition", "hinterlands1stEditionRemoved", "hinterlands2ndEdition", "hinterlands2ndEditionUpgrade", "dark ages", "dark ages extras", - "guilds", + "guilds1stEdition", + "guilds1stEditionRemoved", + "guilds2ndEditionUpgrade", "guilds-bigbox2-de", "adventures", "adventures extras", diff --git a/tools/CrossReference.csv b/tools/CrossReference.csv index 806b927d..f861bdde 100644 --- a/tools/CrossReference.csv +++ b/tools/CrossReference.csv @@ -248,6 +248,7 @@ "Groups","Urchin - Mercenary","Urchin / Mercenary","Gassenjunge / Söldner",,"Orphelin / Mercenaire", "Groups","Sauna - Avanto","Sauna / Avanto","Sauna / Eisloch",,, "Groups","Tournament and Prizes","Tournament and Prizes","Turnier und Preise",,, +"Groups","Joust and Rewards","Joust and Rewards",,,, "Groups","Hermit - Madman","Hermit / Madman","Eremit / Verrückter",,, "Groups","Shelters","Shelters","Unterschlupfe",,, "Groups","Settlers - Bustling Village","Settlers / Bustling Village","Siedler / Emsiges Dorf",,,