animals user expansion from BBG user rillaith (#148)
* animals user expansion from BBG user rillaith * Added fan attribute to animals set * animals.png - This is not the best image. But it is the best I could get from the original files. I *think* it is 3 penguins. * updated main.py for fan based expansions This includes two items: 1) adds --fan for specifying fan expansions to include 2) adds wild cards in specifying both --expansion as well as --fan. This also fixes issue #149 * Updated all language files for animals * Normalize all line endings and add gitattributes file to make git do so in the future * print the possible expansions when non-matching ones are provided * Allow for no official expansions to be included Kept the default behavior. Not specifying '--expansions' will have the same outcome as '--expansions *' (i.e., will print all of them.) Specifying '--expansions ' (without any named expansions) or '--expansions none ' will result in no cards from any Official expansion. For Fan expansions, the absence of '--fan', '--fan ' (without any named fan expansion), and '--fan none ' will all prevent any Fan expansions from printing. * Cleaned up expansion/fan lists
This commit is contained in:
parent
3578804882
commit
c5c876f8c5
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
* text=auto
|
||||||
|
*.py text
|
||||||
|
*.json text
|
||||||
@ -712,6 +712,36 @@
|
|||||||
"types": [
|
"types": [
|
||||||
"Victory"
|
"Victory"
|
||||||
]
|
]
|
||||||
|
},{
|
||||||
|
"card_tag": "Grey Mustang",
|
||||||
|
"cardset_tags": [
|
||||||
|
"animals"
|
||||||
|
],
|
||||||
|
"cost": "4",
|
||||||
|
"types": [
|
||||||
|
"Action",
|
||||||
|
"Victory"
|
||||||
|
]
|
||||||
|
},{
|
||||||
|
"card_tag": "Rabbits",
|
||||||
|
"cardset_tags": [
|
||||||
|
"animals"
|
||||||
|
],
|
||||||
|
"cost": "3",
|
||||||
|
"types": [
|
||||||
|
"Action",
|
||||||
|
"Attack"
|
||||||
|
]
|
||||||
|
},{
|
||||||
|
"card_tag": "Yard Dog",
|
||||||
|
"cardset_tags": [
|
||||||
|
"animals"
|
||||||
|
],
|
||||||
|
"cost": "2",
|
||||||
|
"types": [
|
||||||
|
"Action",
|
||||||
|
"Reaction"
|
||||||
|
]
|
||||||
},{
|
},{
|
||||||
"card_tag": "Potion",
|
"card_tag": "Potion",
|
||||||
"cardset_tags": [
|
"cardset_tags": [
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -11,6 +11,10 @@
|
|||||||
"set_name": "Alchemy",
|
"set_name": "Alchemy",
|
||||||
"text_icon": "A"
|
"text_icon": "A"
|
||||||
},
|
},
|
||||||
|
"animals": {
|
||||||
|
"set_name": "Animals",
|
||||||
|
"text_icon": "An"
|
||||||
|
},
|
||||||
"base": {
|
"base": {
|
||||||
"set_name": "Base",
|
"set_name": "Base",
|
||||||
"text_icon": "B"
|
"text_icon": "B"
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
"extra": "Dieses Ereignis darf nur 1 x pro Zug erworben werden. Du erhältst +1 Kauf. Wenn dein -1 card-Marker nicht auf deinem Nachziehstapel liegt, lege ihn dorthin und erhalte +1 coin. Das nächste Mal, wenn du Karten nachziehen musst, ziehst du 1 Karte weniger.",
|
"extra": "Dieses Ereignis darf nur 1 x pro Zug erworben werden. Du erhältst +1 Kauf. Wenn dein -1 card-Marker nicht auf deinem Nachziehstapel liegt, lege ihn dorthin und erhalte +1 coin. Das nächste Mal, wenn du Karten nachziehen musst, ziehst du 1 Karte weniger.",
|
||||||
"name": "Leihgabe"
|
"name": "Leihgabe"
|
||||||
},
|
},
|
||||||
"Bridge Troll": {
|
"Bridge Troll": {
|
||||||
"description": "Alle Mitspieler nehmen ihren -1 Coin-Marker. <n>Jetzt und zu Beginn deines nächsten Zuges:<n>+1 Kauf <line> Solange diese Karte im Spiel ist, kostet jede Karte in deinem Zug 1 coin weniger, allerdings nie weniger als 0 coin.",
|
"description": "Alle Mitspieler nehmen ihren -1 Coin-Marker. <n>Jetzt und zu Beginn deines nächsten Zuges:<n>+1 Kauf <line> Solange diese Karte im Spiel ist, kostet jede Karte in deinem Zug 1 coin weniger, allerdings nie weniger als 0 coin.",
|
||||||
"extra": "Diese Karte ist eine Dauerkarte. Alle Mitspieler müssen ihren -Coins-Marker vor sich ablegen. Sie erhalten beim nächsten Mal, wenn sie in irgendeiner Art und Weise mindestens 1 Coins erhalten würden, 1 Coins weniger. Danach wird der Marker wieder neben den Vorrat gelegt. Du erhältst jetzt und zu Beginn deines nächsten Zuges +1 Kauf. So lange diese Karte im Spiel ist, kosten alle Karten in deinem Zug 1 Coins weniger, allerdings nie weniger als 0 Coins. Dies betrifft nicht nur den Kauf, sondern alle Aktionen, bei denen die Kosten einer Karte eine Rolle spielen. Der BRÜCKENTROLL beeinflusst nicht die Kosten von Ereignissen. Die Wirkung des BRÜCKENTROLLS ist kumulativ, d. h. wenn du zwei oder mehr BRÜCKENTROLLE gleichzeitig im Spiel hast, kannst du die Kosten um 2 Coins oder mehr verringern.",
|
"extra": "Diese Karte ist eine Dauerkarte. Alle Mitspieler müssen ihren -Coins-Marker vor sich ablegen. Sie erhalten beim nächsten Mal, wenn sie in irgendeiner Art und Weise mindestens 1 Coins erhalten würden, 1 Coins weniger. Danach wird der Marker wieder neben den Vorrat gelegt. Du erhältst jetzt und zu Beginn deines nächsten Zuges +1 Kauf. So lange diese Karte im Spiel ist, kosten alle Karten in deinem Zug 1 Coins weniger, allerdings nie weniger als 0 Coins. Dies betrifft nicht nur den Kauf, sondern alle Aktionen, bei denen die Kosten einer Karte eine Rolle spielen. Der BRÜCKENTROLL beeinflusst nicht die Kosten von Ereignissen. Die Wirkung des BRÜCKENTROLLS ist kumulativ, d. h. wenn du zwei oder mehr BRÜCKENTROLLE gleichzeitig im Spiel hast, kannst du die Kosten um 2 Coins oder mehr verringern.",
|
||||||
"name": "Brückentroll"
|
"name": "Brückentroll"
|
||||||
@ -361,6 +361,21 @@
|
|||||||
"name": "Weinberg",
|
"name": "Weinberg",
|
||||||
"untranslated": "extra"
|
"untranslated": "extra"
|
||||||
},
|
},
|
||||||
|
"Grey Mustang": {
|
||||||
|
"description": "+1 Karte<n>(Punktekarten werden überquert)<n>+2 Aktionen<n>-1 Coin<br>Das Geld dient bei Ausspielen dem Unterhalt des kostbaren Vollblüters.<line>1 <*VP*><br>Den Siegpunkt gibt es einmalig bei Spielende.",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Edler Schimmel"
|
||||||
|
},
|
||||||
|
"Rabbits": {
|
||||||
|
"description": "+1 Karte<n>+1 Aktion<br>Alle Mitspiele legen eine Punktekartenaus der Hand (sofern vorhanden) auf den Ablagestapel.<br>Beim <b>2. Karnickel</b> im selben Zug muss auch der Ablagestapel nach Punktekarte duchsucht werden, falls keine auf der Hand ist.<br>Beim <b>3. Karnickel</b> (Karnickelplage):<br> Alle Mitspiele müssen alle Punktekarten aus Hand und Ablagestapel auf den Nachziehstapel legen.<br><b>Karnickel können nur durch den Hofhund abgewehrt werden.</b>",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Karnickel"
|
||||||
|
},
|
||||||
|
"Yard Dog": {
|
||||||
|
"description": "+1 Karte<n>+1 Aktion<br>Wehrt Angriffe gegen den Bereich (Hand, Nachzieh- oder Ablagestapel) ab, in dem er sich befindet, sofern er sichtbar ist/wird oder vorgezeigt werden kann.",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Hofhund"
|
||||||
|
},
|
||||||
"Potion": {
|
"Potion": {
|
||||||
"description": "1 <*POTION*>",
|
"description": "1 <*POTION*>",
|
||||||
"extra": "This is a basic Treasure card. It costs 4 Coins and produces Potion. It is not a Kingdom card. After you choose 10 Kingdom cards for the Supply, if any of them have Potion in the cost, add the Potion pile to the Supply. Also add the Potion pile if you are using the promotional card Black Market, and the Black Market deck includes at least one card with Potion in the cost. If you don't have any cards with Potion in the cost in the Supply or the Black Market deck, do not use the Potion pile in this game. When you have a Potion pile, put all 16 Potions in it, no matter how many players there are. In games using this pile, if the pile becomes empty, that will count towards the game ending condition.",
|
"extra": "This is a basic Treasure card. It costs 4 Coins and produces Potion. It is not a Kingdom card. After you choose 10 Kingdom cards for the Supply, if any of them have Potion in the cost, add the Potion pile to the Supply. Also add the Potion pile if you are using the promotional card Black Market, and the Black Market deck includes at least one card with Potion in the cost. If you don't have any cards with Potion in the cost in the Supply or the Black Market deck, do not use the Potion pile in this game. When you have a Potion pile, put all 16 Potions in it, no matter how many players there are. In games using this pile, if the pile becomes empty, that will count towards the game ending condition.",
|
||||||
@ -1486,7 +1501,9 @@
|
|||||||
},
|
},
|
||||||
"Spice Merchant": {
|
"Spice Merchant": {
|
||||||
"description": " Du darfst eine Karte aus deiner Hand entsorgen. Wenn du das machst, wählst du eine der beiden angegebenen Kombinationen. Entweder ziehst du 2 Karten nach und erhältst +1 Aktion oder du erhältst + 2 coins und +1 Kauf. Wenn du keine Karte aus deiner Hand entsorgen kannst oder willst, darfst du auch keine der angegebenen Anweisungen ausführen.",
|
"description": " Du darfst eine Karte aus deiner Hand entsorgen. Wenn du das machst, wählst du eine der beiden angegebenen Kombinationen. Entweder ziehst du 2 Karten nach und erhältst +1 Aktion oder du erhältst + 2 coins und +1 Kauf. Wenn du keine Karte aus deiner Hand entsorgen kannst oder willst, darfst du auch keine der angegebenen Anweisungen ausführen.",
|
||||||
"name": "Gewürzhändler"
|
"extra": "You may trash a Treasure card from your hand. This is optional. If you did trash a Treasure card, you choose either to get +2 Cards and +1 Action, or +2 coins and +1 Buy.",
|
||||||
|
"name": "Gewürzhändler",
|
||||||
|
"untranslated": "extra"
|
||||||
},
|
},
|
||||||
"Stables": {
|
"Stables": {
|
||||||
"description": "Du darfst eine Geldkarte aus deiner Hand ablegen. Wenn du das machst: +3 Karten, +1 Aktion.",
|
"description": "Du darfst eine Geldkarte aus deiner Hand ablegen. Wenn du das machst: +3 Karten, +1 Aktion.",
|
||||||
@ -1643,8 +1660,7 @@
|
|||||||
"Upgrade": {
|
"Upgrade": {
|
||||||
"description": "+1 Aktion<br>+1 Karte<br>Entsorge eine Karte aus deiner Hand. Nimm dir eine Karte, die genau 1 mehr kostet als die entsorgte Karte.",
|
"description": "+1 Aktion<br>+1 Karte<br>Entsorge eine Karte aus deiner Hand. Nimm dir eine Karte, die genau 1 mehr kostet als die entsorgte Karte.",
|
||||||
"extra": "Du ziehst zuerst eine Karte. Danach musst du eine Karte aus deiner Hand entsorgen und dann eine Karte nehmen, die genau 1 coin mehr kostet als die entsorgte Karte. Ist keine solche Karte im Vorrat, erhältst du keine Karte, musst jedoch trotzdem eine entsorgen. Wenn du keine Karte zum Entsorgen hast, entsorgst du keine und nimmst dir keine Karte.",
|
"extra": "Du ziehst zuerst eine Karte. Danach musst du eine Karte aus deiner Hand entsorgen und dann eine Karte nehmen, die genau 1 coin mehr kostet als die entsorgte Karte. Ist keine solche Karte im Vorrat, erhältst du keine Karte, musst jedoch trotzdem eine entsorgen. Wenn du keine Karte zum Entsorgen hast, entsorgst du keine und nimmst dir keine Karte.",
|
||||||
"name": "Anbau",
|
"name": "Anbau"
|
||||||
"untranslated": "extra"
|
|
||||||
},
|
},
|
||||||
"Wishing Well": {
|
"Wishing Well": {
|
||||||
"description": "+1 Karte<br>+1 Aktion<br>Benenne eine Karte. Decke die oberste Karte von deinem Nachziehstapel auf. Wenn es die benannte Karte ist, nimm sie auf die Hand.",
|
"description": "+1 Karte<br>+1 Aktion<br>Benenne eine Karte. Decke die oberste Karte von deinem Nachziehstapel auf. Wenn es die benannte Karte ist, nimm sie auf die Hand.",
|
||||||
@ -2042,12 +2058,12 @@
|
|||||||
"extra": "KLEINBAUER ist ein Reisender. Diese Karten sind durch einen hellgrauen Pfeil im Hintergrund des Anweisungstextes gekennzeichnet. Die Besonderheit dieser Karten ist, dass sie in höherwertige Karten eingetauscht werden können. Die ausgetauschte Karte wird zurück auf ihren Stapel gelegt. KLEINBAUER gehört zum Vorrat und kann wie jede andere Königreichkarte gekauft und genommen werden. Wird KLEINBAUER im Spiel verwendet, werden die zum Eintauschen nötigen Karten auf separate Stapel neben dem Vorrat bereit gelegt. Diese Eintausch-Karten sind mit einem kleinen Sternchen gekennzeichnet, jeweils 5x im Spiel enthalten und gehören nicht zum Vorrat. Außerdem können sie nur durch das Eintauschen von entsprechenden Reisenden erworben, nicht aber gekauft oder anderweitig genommen werden. Wird ein Stapel Eintausch-Karten im Spielverlauf leer, gilt dieser nicht als einer der drei leeren Vorratsstapel, die das Spielende herbeiführen.<n> Um eine Karte einzutauschen, muss sie sich im Spiel befinden. Der Spieler darf in seiner Aufräumphase die Karte zurück auf ihren Stapel legen, bekommt die nächst höherwertige Karte vom Stapel und legt diese ab. Ist der entsprechende Stapel leer, kann die Karte nicht eingetauscht werden. Die Karte LEHRER kann nicht eingetauscht werden. Eine Karte, die eingetauscht und damit auf ihren Stapel zurückgelegt wird, gilt nicht als entsorgt. Auch die durch das Eintauschen genommene Karte gilt nicht als genommen. Das ist wichtig für Anweisungen auf anderen Karten, die sich auf \"Nehmen\" und \"Entsorgen\" beziehen.",
|
"extra": "KLEINBAUER ist ein Reisender. Diese Karten sind durch einen hellgrauen Pfeil im Hintergrund des Anweisungstextes gekennzeichnet. Die Besonderheit dieser Karten ist, dass sie in höherwertige Karten eingetauscht werden können. Die ausgetauschte Karte wird zurück auf ihren Stapel gelegt. KLEINBAUER gehört zum Vorrat und kann wie jede andere Königreichkarte gekauft und genommen werden. Wird KLEINBAUER im Spiel verwendet, werden die zum Eintauschen nötigen Karten auf separate Stapel neben dem Vorrat bereit gelegt. Diese Eintausch-Karten sind mit einem kleinen Sternchen gekennzeichnet, jeweils 5x im Spiel enthalten und gehören nicht zum Vorrat. Außerdem können sie nur durch das Eintauschen von entsprechenden Reisenden erworben, nicht aber gekauft oder anderweitig genommen werden. Wird ein Stapel Eintausch-Karten im Spielverlauf leer, gilt dieser nicht als einer der drei leeren Vorratsstapel, die das Spielende herbeiführen.<n> Um eine Karte einzutauschen, muss sie sich im Spiel befinden. Der Spieler darf in seiner Aufräumphase die Karte zurück auf ihren Stapel legen, bekommt die nächst höherwertige Karte vom Stapel und legt diese ab. Ist der entsprechende Stapel leer, kann die Karte nicht eingetauscht werden. Die Karte LEHRER kann nicht eingetauscht werden. Eine Karte, die eingetauscht und damit auf ihren Stapel zurückgelegt wird, gilt nicht als entsorgt. Auch die durch das Eintauschen genommene Karte gilt nicht als genommen. Das ist wichtig für Anweisungen auf anderen Karten, die sich auf \"Nehmen\" und \"Entsorgen\" beziehen.",
|
||||||
"name": "Kleinbauer → Lehrer"
|
"name": "Kleinbauer → Lehrer"
|
||||||
},
|
},
|
||||||
"Turnier und Preise": {
|
"Tournament and Prizes": {
|
||||||
"description": "+1 Aktion<br>Du darfst eine Provinz aus deiner Hand ablegen. Wenn du das machst: Nimm dir einen Preis vom Preisstapel oder ein Herzogtum. Lege die neue Karte sofort auf deinen Nachziehstapel. Jeder Mitspieler darf eine Provinz aus seiner Hand aufdecken. Wenn das keiner macht: +1 Karte, +1 Coin.<n><justify>Preise: <u>Ein Sack voll Gold</u>, <u>Diadem</u>, <u>Gefolge</u>, <u>Prinzessin</u>, <u>Streitross</u>",
|
"description": "+1 Aktion<br>Du darfst eine Provinz aus deiner Hand ablegen. Wenn du das machst: Nimm dir einen Preis vom Preisstapel oder ein Herzogtum. Lege die neue Karte sofort auf deinen Nachziehstapel. Jeder Mitspieler darf eine Provinz aus seiner Hand aufdecken. Wenn das keiner macht: +1 Karte, +1 Coin.<n><justify>Preise: <u>Ein Sack voll Gold</u>, <u>Diadem</u>, <u>Gefolge</u>, <u>Prinzessin</u>, <u>Streitross</u>",
|
||||||
"extra": "Beim Ausspielen eines TURNIERS erhältst du +1 Aktion. Dann darfst du eine PROVINZ aus deiner Hand auf deinen Ablagestapel legen. Wenn du das machst, musst du dich entscheiden, entweder eine Preiskarte oder ein HERZOGTUM zu nehmen. Entscheidest du dich für die Preiskarte, suchst du dir eine der Karten vom Preisstapel aus. Entscheidest du dich für das HERZOGTUM, nimmst du dir ein HERZOGTUM vom Vorrat. Du kannst dich auch für einen der beiden Stapel entscheiden, wenn dieser leer ist. Ist der Stapel für den du dich entscheidest leer, nimmst du dir keine Karte.<n>Nun dürfen alle deine Mitspieler eine PROVINZ aus ihrer Hand aufdecken. Deine Mitspieler zeigen die PROVINZ vor und nehmen sie dann zurück auf ihre Hand. Wenn keiner deiner Mitspieler eine PROVINZ aufdeckt, erhältst du +1 Karte und +1 coin. Es gibt also 4 mögliche Ergebnisse: 1. Du legst keine PROVINZ ab und keiner deiner Mitspieler deckt eine PROVINZ auf: Du erhältst +1 Karte, +1 Aktion und +1 coin. 2. Du legst keine PROVINZ ab und mindestens einer deiner Mitspieler deckt eine PROVINZ auf: Du erhältst +1 Aktion. 3. Du legst eine PROVINZ ab aber keiner deiner Mitspieler deckt eine PROVINZ auf: Du nimmst dir eine Preiskarte oder ein HERZOGTUM und erhältst +1 Karte, +1 Aktion und +1 coin. 4. Du legst eine PROVINZ ab und mindestens einer deiner Mitspieler deckt eine PROVINZ auf: Du nimmst dir eine Preiskarte oder ein HERZOGTUM und erhältst +1 Aktion.<n> Du darfst den Preisstapel jederzeit durchsehen.",
|
"extra": "Beim Ausspielen eines TURNIERS erhältst du +1 Aktion. Dann darfst du eine PROVINZ aus deiner Hand auf deinen Ablagestapel legen. Wenn du das machst, musst du dich entscheiden, entweder eine Preiskarte oder ein HERZOGTUM zu nehmen. Entscheidest du dich für die Preiskarte, suchst du dir eine der Karten vom Preisstapel aus. Entscheidest du dich für das HERZOGTUM, nimmst du dir ein HERZOGTUM vom Vorrat. Du kannst dich auch für einen der beiden Stapel entscheiden, wenn dieser leer ist. Ist der Stapel für den du dich entscheidest leer, nimmst du dir keine Karte.<n>Nun dürfen alle deine Mitspieler eine PROVINZ aus ihrer Hand aufdecken. Deine Mitspieler zeigen die PROVINZ vor und nehmen sie dann zurück auf ihre Hand. Wenn keiner deiner Mitspieler eine PROVINZ aufdeckt, erhältst du +1 Karte und +1 coin. Es gibt also 4 mögliche Ergebnisse: 1. Du legst keine PROVINZ ab und keiner deiner Mitspieler deckt eine PROVINZ auf: Du erhältst +1 Karte, +1 Aktion und +1 coin. 2. Du legst keine PROVINZ ab und mindestens einer deiner Mitspieler deckt eine PROVINZ auf: Du erhältst +1 Aktion. 3. Du legst eine PROVINZ ab aber keiner deiner Mitspieler deckt eine PROVINZ auf: Du nimmst dir eine Preiskarte oder ein HERZOGTUM und erhältst +1 Karte, +1 Aktion und +1 coin. 4. Du legst eine PROVINZ ab und mindestens einer deiner Mitspieler deckt eine PROVINZ auf: Du nimmst dir eine Preiskarte oder ein HERZOGTUM und erhältst +1 Aktion.<n> Du darfst den Preisstapel jederzeit durchsehen.",
|
||||||
"name": "Turnier und Preise"
|
"name": "Turnier und Preise"
|
||||||
},
|
},
|
||||||
"Eremit - Verrückter": {
|
"Hermit - Madman": {
|
||||||
"description": "<justify>Wird der EREMITEN im Spiel verwendet, so wird auch der Verrückten-Stapel benötigt. Der Verrückten-Stapel wird neben dem Vorrat bereit gelegt. Die Karten vom Verrückten-Stapel können nur durch die Anweisung auf dem EREMITEN genommen werden. Auf andere Weise können keine Karten vom Verrückten-Stapel gekauft oder genommen werden. Der BOTSCHAFTER (Dominion - Seaside) darf keine Karten auf den Verrückten-Stapel zurück legen. Der Verrückten-Stapel wird für die Spielende-Bedingung nicht beachtet.<u>Eremit</u>: Sieh deinen Ablagestapel durch. Du darfst eine Karte, die keine Geldkarte ist, aus deinem Ablagestapel oder aus deiner Hand entsorgen. Nimm dir eine Karte, die bis zu 3 Coin kostet.<br>Wenn du diese Karte aus dem Spiel ablegst ablegst und in diesem Zug keine Karte gekauft hast, entsorge diese Karte und nimm dir einen Verrückten. <u>Verrückter</u>:+2 Aktionen<br>Lege diese Karte zurück auf den Verrückten-Stapel. Wenn du das machst: +1 Karte pro Karte, die du auf der Hand hast. (Der Verrückten-Stapel ist nicht Teil des Vorrats.)",
|
"description": "<justify>Wird der EREMITEN im Spiel verwendet, so wird auch der Verrückten-Stapel benötigt. Der Verrückten-Stapel wird neben dem Vorrat bereit gelegt. Die Karten vom Verrückten-Stapel können nur durch die Anweisung auf dem EREMITEN genommen werden. Auf andere Weise können keine Karten vom Verrückten-Stapel gekauft oder genommen werden. Der BOTSCHAFTER (Dominion - Seaside) darf keine Karten auf den Verrückten-Stapel zurück legen. Der Verrückten-Stapel wird für die Spielende-Bedingung nicht beachtet.<u>Eremit</u>: Sieh deinen Ablagestapel durch. Du darfst eine Karte, die keine Geldkarte ist, aus deinem Ablagestapel oder aus deiner Hand entsorgen. Nimm dir eine Karte, die bis zu 3 Coin kostet.<br>Wenn du diese Karte aus dem Spiel ablegst ablegst und in diesem Zug keine Karte gekauft hast, entsorge diese Karte und nimm dir einen Verrückten. <u>Verrückter</u>:+2 Aktionen<br>Lege diese Karte zurück auf den Verrückten-Stapel. Wenn du das machst: +1 Karte pro Karte, die du auf der Hand hast. (Der Verrückten-Stapel ist nicht Teil des Vorrats.)",
|
||||||
"extra": "Wenn du den EREMITEN ausspielst, siehst du dir zunächst deinen Ablagestapel durch. Dann darfst du eine Karte, die keine Geldkarte ist, aus dem Ablagestapel oder aus deiner Hand entsorgen. Du musst keine Karte entsorgen und du darfst keine Geldkarte entsorgen. Kombinierte Geldkarten, wie z.B. der HAREM (Dominion – Die Intrige) sind Geldkarten. Egal ob du eine Karte entsorgt hast oder nicht, musst du dir eine Karte nehmen, die bis zu 3 kostet. Du nimmst diese Karte aus dem Vorrat und legst sie auf deinen Ablagestapel. Du musst eine Karte nehmen, wenn möglich. Du darfst nicht darauf verzichten. Wenn du den EREMITEN aus dem Spiel ablegst (normalerweise in der Aufräumphase am Ende der Runde, in der du die Karte ausgespielt hast) und du in diesem Zug keine Karte gekauft hast, entsorge den EREMITEN und nimm dir einen VERRÜCKTEN. Du nimmst den VERRÜCKTEN vom Stapel neben dem Vorrat und legst ihn auf deinen Ablagestapel. Karten, die du auf andere Weise genommen hast, als sie zu kaufen, haben keinen Einfluss darauf, ob du den EREMITEN entsorgst. Ist der Verrückten-Stapel leer, so nimmst du dir keinen. Wird der EREMIT in der Aufräumphase nicht regulär abgelegt, sondern z.B. durch das KOMPLOTT (Dominion - Hinterland) zurück auf den Nachziehstapel gelegt, entsorgst du den EREMITEN nicht und nimmst dir auch keinen VERRÜCKTEN. Der VERRÜCKTEN ist nicht Teil des Vorrats. Er kann nur durch die Anweisung auf dem EREMITEN genommen werden. Auf eine andere Art kann der VERRÜCKTE nicht genommen oder gekauft werden. Wenn du den VERRÜCKTEN ausspielst, erhältst du +2 Aktionen. Dann legst du den VERRÜCKTEN normalerweise auf den Verrückten-Stapel zurück und ziehst pro Karte, die du noch auf der Hand hast, eine Karte nach (du verdoppelst also die Anzahl deiner Handkarten). Es kann jedoch vorkommen, dass du den VERRÜCKTEN nicht zurück legen kannst, weil du den „Anschluss verloren“ hast, z.B. weil du den VERRÜCKTEN auf eine PROZESSION oder einen THRONSAAL (Dominion - Basisspiel) ausgespielt hast.",
|
"extra": "Wenn du den EREMITEN ausspielst, siehst du dir zunächst deinen Ablagestapel durch. Dann darfst du eine Karte, die keine Geldkarte ist, aus dem Ablagestapel oder aus deiner Hand entsorgen. Du musst keine Karte entsorgen und du darfst keine Geldkarte entsorgen. Kombinierte Geldkarten, wie z.B. der HAREM (Dominion – Die Intrige) sind Geldkarten. Egal ob du eine Karte entsorgt hast oder nicht, musst du dir eine Karte nehmen, die bis zu 3 kostet. Du nimmst diese Karte aus dem Vorrat und legst sie auf deinen Ablagestapel. Du musst eine Karte nehmen, wenn möglich. Du darfst nicht darauf verzichten. Wenn du den EREMITEN aus dem Spiel ablegst (normalerweise in der Aufräumphase am Ende der Runde, in der du die Karte ausgespielt hast) und du in diesem Zug keine Karte gekauft hast, entsorge den EREMITEN und nimm dir einen VERRÜCKTEN. Du nimmst den VERRÜCKTEN vom Stapel neben dem Vorrat und legst ihn auf deinen Ablagestapel. Karten, die du auf andere Weise genommen hast, als sie zu kaufen, haben keinen Einfluss darauf, ob du den EREMITEN entsorgst. Ist der Verrückten-Stapel leer, so nimmst du dir keinen. Wird der EREMIT in der Aufräumphase nicht regulär abgelegt, sondern z.B. durch das KOMPLOTT (Dominion - Hinterland) zurück auf den Nachziehstapel gelegt, entsorgst du den EREMITEN nicht und nimmst dir auch keinen VERRÜCKTEN. Der VERRÜCKTEN ist nicht Teil des Vorrats. Er kann nur durch die Anweisung auf dem EREMITEN genommen werden. Auf eine andere Art kann der VERRÜCKTE nicht genommen oder gekauft werden. Wenn du den VERRÜCKTEN ausspielst, erhältst du +2 Aktionen. Dann legst du den VERRÜCKTEN normalerweise auf den Verrückten-Stapel zurück und ziehst pro Karte, die du noch auf der Hand hast, eine Karte nach (du verdoppelst also die Anzahl deiner Handkarten). Es kann jedoch vorkommen, dass du den VERRÜCKTEN nicht zurück legen kannst, weil du den „Anschluss verloren“ hast, z.B. weil du den VERRÜCKTEN auf eine PROZESSION oder einen THRONSAAL (Dominion - Basisspiel) ausgespielt hast.",
|
||||||
"name": "Eremit / Verrückter"
|
"name": "Eremit / Verrückter"
|
||||||
|
|||||||
@ -11,6 +11,10 @@
|
|||||||
"set_name": "Die Alchemisten",
|
"set_name": "Die Alchemisten",
|
||||||
"text_icon": "Al"
|
"text_icon": "Al"
|
||||||
},
|
},
|
||||||
|
"animals": {
|
||||||
|
"set_name": "Animals",
|
||||||
|
"text_icon": "An"
|
||||||
|
},
|
||||||
"base": {
|
"base": {
|
||||||
"set_name": "Base",
|
"set_name": "Base",
|
||||||
"text_icon": "B"
|
"text_icon": "B"
|
||||||
|
|||||||
@ -349,6 +349,21 @@
|
|||||||
"extra": "This Kingdom card is a Victory card, not an Action card. It does nothing until the end of the game, when it is worth 1 victory point per 3 Action cards in your Deck (counting all of your cards - your Discard pile and hand are part of your Deck at that point). Round down; if you have 11 Action cards, Vineyard is worth 3 victory points. During set-up, put all 12 Vineyards in the Supply for a game with 3 or more players, but only 8 in the Supply for a 2-player game. Cards with multiple types, one of which is Action, are Actions and so are counted by Vineyard.",
|
"extra": "This Kingdom card is a Victory card, not an Action card. It does nothing until the end of the game, when it is worth 1 victory point per 3 Action cards in your Deck (counting all of your cards - your Discard pile and hand are part of your Deck at that point). Round down; if you have 11 Action cards, Vineyard is worth 3 victory points. During set-up, put all 12 Vineyards in the Supply for a game with 3 or more players, but only 8 in the Supply for a 2-player game. Cards with multiple types, one of which is Action, are Actions and so are counted by Vineyard.",
|
||||||
"name": "Vineyard"
|
"name": "Vineyard"
|
||||||
},
|
},
|
||||||
|
"Grey Mustang": {
|
||||||
|
"description": "+1 Card<n>(Victory cards may be discarded, then draw another)<n>+2 Actions<n>-1 Coin<br>(The coin is used for the entertainment of the precious thoroughbred.)<line>1 <*VP*><br>The victory point is counted at the end of the game.",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Grey Mustang"
|
||||||
|
},
|
||||||
|
"Rabbits": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>All other players put a victory card from their hand on their deck.<br>If it's the <b>2nd Rabbits card</b> played (in this turn), players must also search through their discard pile for Victory cards if they have none in hand.<br>If it's the <b>3rd Rabbits card</b> (rabbit plague), all other players must put <b>all</b> Victory cards from their hand and discard pile on their deck.<br><b>Rabbits can only be defended against by Yard Dog.</b>",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Rabbits"
|
||||||
|
},
|
||||||
|
"Yard Dog": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>Defends the section in which he dwells (hand, discard pile or deck) against any attack which aims at this section (only if he is or becomes visible or can be shown)",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Yard Dog"
|
||||||
|
},
|
||||||
"Potion": {
|
"Potion": {
|
||||||
"description": "1 <*POTION*>",
|
"description": "1 <*POTION*>",
|
||||||
"extra": "This is a basic Treasure card. It costs 4 Coins and produces Potion. It is not a Kingdom card. After you choose 10 Kingdom cards for the Supply, if any of them have Potion in the cost, add the Potion pile to the Supply. Also add the Potion pile if you are using the promotional card Black Market, and the Black Market deck includes at least one card with Potion in the cost. If you don't have any cards with Potion in the cost in the Supply or the Black Market deck, do not use the Potion pile in this game. When you have a Potion pile, put all 16 Potions in it, no matter how many players there are. In games using this pile, if the pile becomes empty, that will count towards the game ending condition.",
|
"extra": "This is a basic Treasure card. It costs 4 Coins and produces Potion. It is not a Kingdom card. After you choose 10 Kingdom cards for the Supply, if any of them have Potion in the cost, add the Potion pile to the Supply. Also add the Potion pile if you are using the promotional card Black Market, and the Black Market deck includes at least one card with Potion in the cost. If you don't have any cards with Potion in the cost in the Supply or the Black Market deck, do not use the Potion pile in this game. When you have a Potion pile, put all 16 Potions in it, no matter how many players there are. In games using this pile, if the pile becomes empty, that will count towards the game ending condition.",
|
||||||
|
|||||||
@ -11,6 +11,10 @@
|
|||||||
"set_name": "Alchemy",
|
"set_name": "Alchemy",
|
||||||
"text_icon": "A"
|
"text_icon": "A"
|
||||||
},
|
},
|
||||||
|
"animals": {
|
||||||
|
"set_name": "Animals",
|
||||||
|
"text_icon": "An"
|
||||||
|
},
|
||||||
"base": {
|
"base": {
|
||||||
"set_name": "Base",
|
"set_name": "Base",
|
||||||
"text_icon": "B"
|
"text_icon": "B"
|
||||||
|
|||||||
@ -419,6 +419,24 @@
|
|||||||
"name": "Vignoble",
|
"name": "Vignoble",
|
||||||
"untranslated": "description, extra"
|
"untranslated": "description, extra"
|
||||||
},
|
},
|
||||||
|
"Grey Mustang": {
|
||||||
|
"description": "+1 Card<n>(Victory cards may be discarded, then draw another)<n>+2 Actions<n>-1 Coin<br>(The coin is used for the entertainment of the precious thoroughbred.)<line>1 <*VP*><br>The victory point is counted at the end of the game.",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Grey Mustang",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
|
"Rabbits": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>All other players put a victory card from their hand on their deck.<br>If it's the <b>2nd Rabbits card</b> played (in this turn), players must also search through their discard pile for Victory cards if they have none in hand.<br>If it's the <b>3rd Rabbits card</b> (rabbit plague), all other players must put <b>all</b> Victory cards from their hand and discard pile on their deck.<br><b>Rabbits can only be defended against by Yard Dog.</b>",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Rabbits",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
|
"Yard Dog": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>Defends the section in which he dwells (hand, discard pile or deck) against any attack which aims at this section (only if he is or becomes visible or can be shown)",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Yard Dog",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
"Potion": {
|
"Potion": {
|
||||||
"description": "1 <*POTION*>",
|
"description": "1 <*POTION*>",
|
||||||
"extra": "This is a basic Treasure card. It costs 4 Coins and produces Potion. It is not a Kingdom card. After you choose 10 Kingdom cards for the Supply, if any of them have Potion in the cost, add the Potion pile to the Supply. Also add the Potion pile if you are using the promotional card Black Market, and the Black Market deck includes at least one card with Potion in the cost. If you don't have any cards with Potion in the cost in the Supply or the Black Market deck, do not use the Potion pile in this game. When you have a Potion pile, put all 16 Potions in it, no matter how many players there are. In games using this pile, if the pile becomes empty, that will count towards the game ending condition.",
|
"extra": "This is a basic Treasure card. It costs 4 Coins and produces Potion. It is not a Kingdom card. After you choose 10 Kingdom cards for the Supply, if any of them have Potion in the cost, add the Potion pile to the Supply. Also add the Potion pile if you are using the promotional card Black Market, and the Black Market deck includes at least one card with Potion in the cost. If you don't have any cards with Potion in the cost in the Supply or the Black Market deck, do not use the Potion pile in this game. When you have a Potion pile, put all 16 Potions in it, no matter how many players there are. In games using this pile, if the pile becomes empty, that will count towards the game ending condition.",
|
||||||
|
|||||||
@ -11,6 +11,10 @@
|
|||||||
"set_name": "Alchimie",
|
"set_name": "Alchimie",
|
||||||
"text_icon": "Al"
|
"text_icon": "Al"
|
||||||
},
|
},
|
||||||
|
"animals": {
|
||||||
|
"set_name": "Animals",
|
||||||
|
"text_icon": "An"
|
||||||
|
},
|
||||||
"base": {
|
"base": {
|
||||||
"set_name": "Base",
|
"set_name": "Base",
|
||||||
"text_icon": "B"
|
"text_icon": "B"
|
||||||
|
|||||||
@ -407,6 +407,24 @@
|
|||||||
"extra": " Questa carta Regno è una carta Vittoria, non una carta Azione. Non fa nulla fino alla fine della partita, quando varrà 1 punto vittoria per ogni 3 carte Azione nel tuo mazzo (contando tutte le tue carte, la tua pila degli scarti e la mano fan parte del tuo mazzo a quel punto). Arrotonda per difetto; se hai 11 carte Azione, Vigna vale 3 punti vittoria. Durante la preparazione, metti 12 Vigne nella Riserva per una partita con 3, 4, 5 o 6 giocatori, 8 nella Riserva per una partita a 2 giocatori.",
|
"extra": " Questa carta Regno è una carta Vittoria, non una carta Azione. Non fa nulla fino alla fine della partita, quando varrà 1 punto vittoria per ogni 3 carte Azione nel tuo mazzo (contando tutte le tue carte, la tua pila degli scarti e la mano fan parte del tuo mazzo a quel punto). Arrotonda per difetto; se hai 11 carte Azione, Vigna vale 3 punti vittoria. Durante la preparazione, metti 12 Vigne nella Riserva per una partita con 3, 4, 5 o 6 giocatori, 8 nella Riserva per una partita a 2 giocatori.",
|
||||||
"name": "Vigna"
|
"name": "Vigna"
|
||||||
},
|
},
|
||||||
|
"Grey Mustang": {
|
||||||
|
"description": "+1 Card<n>(Victory cards may be discarded, then draw another)<n>+2 Actions<n>-1 Coin<br>(The coin is used for the entertainment of the precious thoroughbred.)<line>1 <*VP*><br>The victory point is counted at the end of the game.",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Grey Mustang",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
|
"Rabbits": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>All other players put a victory card from their hand on their deck.<br>If it's the <b>2nd Rabbits card</b> played (in this turn), players must also search through their discard pile for Victory cards if they have none in hand.<br>If it's the <b>3rd Rabbits card</b> (rabbit plague), all other players must put <b>all</b> Victory cards from their hand and discard pile on their deck.<br><b>Rabbits can only be defended against by Yard Dog.</b>",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Rabbits",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
|
"Yard Dog": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>Defends the section in which he dwells (hand, discard pile or deck) against any attack which aims at this section (only if he is or becomes visible or can be shown)",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Yard Dog",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
"Potion": {
|
"Potion": {
|
||||||
"description": "1 <*POTION*>",
|
"description": "1 <*POTION*>",
|
||||||
"extra": " Questa è una carta Tesoro base. Costa 4 Coins e produce una Pozione. Non è una carta Regno. Dopo che hai scelto 10 carte Regno per la Riserva, se qualsiasi di loro ha Pozioni nel costo aggiungi il mazzetto Pozione alla Riserva. Aggiungi il mazzetto Pozione se stai usando la carta promo Mercato Nero ed il suo mazzetto include almeno una carta con la Pozione nel costo. Se non hai carte con la Pozione nel costo nella Riserva o nel mazzetto del Mercato Nero, non usare il mazzetto Pozione in questa partita. Se hai un mazzetto Pozione, mettici tutte e 16 le Pozioni a prescindere dal numero di giocatori. In partite con questo mazzetto, se il mazzetto si svuota conta come uno dei tre che determinano il fine partita.",
|
"extra": " Questa è una carta Tesoro base. Costa 4 Coins e produce una Pozione. Non è una carta Regno. Dopo che hai scelto 10 carte Regno per la Riserva, se qualsiasi di loro ha Pozioni nel costo aggiungi il mazzetto Pozione alla Riserva. Aggiungi il mazzetto Pozione se stai usando la carta promo Mercato Nero ed il suo mazzetto include almeno una carta con la Pozione nel costo. Se non hai carte con la Pozione nel costo nella Riserva o nel mazzetto del Mercato Nero, non usare il mazzetto Pozione in questa partita. Se hai un mazzetto Pozione, mettici tutte e 16 le Pozioni a prescindere dal numero di giocatori. In partite con questo mazzetto, se il mazzetto si svuota conta come uno dei tre che determinano il fine partita.",
|
||||||
|
|||||||
@ -11,6 +11,10 @@
|
|||||||
"set_name": "Alchimia",
|
"set_name": "Alchimia",
|
||||||
"text_icon": "Al"
|
"text_icon": "Al"
|
||||||
},
|
},
|
||||||
|
"animals": {
|
||||||
|
"set_name": "Animals",
|
||||||
|
"text_icon": "An"
|
||||||
|
},
|
||||||
"base": {
|
"base": {
|
||||||
"set_name": "Base",
|
"set_name": "Base",
|
||||||
"text_icon": "B"
|
"text_icon": "B"
|
||||||
|
|||||||
@ -351,6 +351,24 @@
|
|||||||
"extra": " Deze koningkrijkkaart is een overwinningskaart, geen actiekaart. De Wijnberg bevindt zich uitsluitend in het spel als deze aan het begin van het spel bij de 10 uitgekozen of getrokken koningkrijkkaart behoort. De kaart doet tijdens het spel niets. Aan het einde van het spel is de Wijnber 1 <VP> waard per 3 actiekaarten in je deck (al je kaarten tellen mee, dus bijvoorbeeld ook je handkaarten). Rond naar beneden af. Voorbeeld: als je 11 actiekaarten in je deck hebt is de Wijnberg 3 <VP> waard. Een kaart die bij meerdere soorten kaarten hoort, waaronder actiekaarten, geldt als een actiekaart en wordt bij het bepalen van de overwinningspunten voor de wijnberg meegeteld. Gebruik 8 Wijnberg-kaarten in een spel met 2 spelers en 12 in een spel met 3 of meer spelers.",
|
"extra": " Deze koningkrijkkaart is een overwinningskaart, geen actiekaart. De Wijnberg bevindt zich uitsluitend in het spel als deze aan het begin van het spel bij de 10 uitgekozen of getrokken koningkrijkkaart behoort. De kaart doet tijdens het spel niets. Aan het einde van het spel is de Wijnber 1 <VP> waard per 3 actiekaarten in je deck (al je kaarten tellen mee, dus bijvoorbeeld ook je handkaarten). Rond naar beneden af. Voorbeeld: als je 11 actiekaarten in je deck hebt is de Wijnberg 3 <VP> waard. Een kaart die bij meerdere soorten kaarten hoort, waaronder actiekaarten, geldt als een actiekaart en wordt bij het bepalen van de overwinningspunten voor de wijnberg meegeteld. Gebruik 8 Wijnberg-kaarten in een spel met 2 spelers en 12 in een spel met 3 of meer spelers.",
|
||||||
"name": "Wijnberg"
|
"name": "Wijnberg"
|
||||||
},
|
},
|
||||||
|
"Grey Mustang": {
|
||||||
|
"description": "+1 Card<n>(Victory cards may be discarded, then draw another)<n>+2 Actions<n>-1 Coin<br>(The coin is used for the entertainment of the precious thoroughbred.)<line>1 <*VP*><br>The victory point is counted at the end of the game.",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Grey Mustang",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
|
"Rabbits": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>All other players put a victory card from their hand on their deck.<br>If it's the <b>2nd Rabbits card</b> played (in this turn), players must also search through their discard pile for Victory cards if they have none in hand.<br>If it's the <b>3rd Rabbits card</b> (rabbit plague), all other players must put <b>all</b> Victory cards from their hand and discard pile on their deck.<br><b>Rabbits can only be defended against by Yard Dog.</b>",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Rabbits",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
|
"Yard Dog": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>Defends the section in which he dwells (hand, discard pile or deck) against any attack which aims at this section (only if he is or becomes visible or can be shown)",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Yard Dog",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
"Potion": {
|
"Potion": {
|
||||||
"description": "1 <*POTION*>",
|
"description": "1 <*POTION*>",
|
||||||
"extra": " Dit is een standaard geldkaart. Deze kost 4 Coins en levert Potion op. Het is geen koninkrijkkaart. Als één of meer van de 10 te gebruiken stapels koninkrijkkaarten een Potion in de kosten heeft, leg dan de stapel toverdranken in de voorraad. Gebruik altijd alle 16 toverdranken, ongeacht het aantal spelers. Als de toverdranken op zijn, telt dit als lege stapel bij het bepalen van het einde van het spel.",
|
"extra": " Dit is een standaard geldkaart. Deze kost 4 Coins en levert Potion op. Het is geen koninkrijkkaart. Als één of meer van de 10 te gebruiken stapels koninkrijkkaarten een Potion in de kosten heeft, leg dan de stapel toverdranken in de voorraad. Gebruik altijd alle 16 toverdranken, ongeacht het aantal spelers. Als de toverdranken op zijn, telt dit als lege stapel bij het bepalen van het einde van het spel.",
|
||||||
|
|||||||
@ -11,6 +11,10 @@
|
|||||||
"set_name": "Alchemisten",
|
"set_name": "Alchemisten",
|
||||||
"text_icon": "A"
|
"text_icon": "A"
|
||||||
},
|
},
|
||||||
|
"animals": {
|
||||||
|
"set_name": "Animals",
|
||||||
|
"text_icon": "An"
|
||||||
|
},
|
||||||
"base": {
|
"base": {
|
||||||
"set_name": "Basis",
|
"set_name": "Basis",
|
||||||
"text_icon": "B"
|
"text_icon": "B"
|
||||||
|
|||||||
@ -27,6 +27,16 @@
|
|||||||
"set_name": "*alchemy*",
|
"set_name": "*alchemy*",
|
||||||
"text_icon": "*"
|
"text_icon": "*"
|
||||||
},
|
},
|
||||||
|
"animals": {
|
||||||
|
"edition": [
|
||||||
|
"1",
|
||||||
|
"latest"
|
||||||
|
],
|
||||||
|
"fan": true,
|
||||||
|
"image": "animals.png",
|
||||||
|
"set_name": "*animals*",
|
||||||
|
"text_icon": "*"
|
||||||
|
},
|
||||||
"base": {
|
"base": {
|
||||||
"edition": [
|
"edition": [
|
||||||
"1",
|
"1",
|
||||||
|
|||||||
@ -11,6 +11,7 @@
|
|||||||
"Buys",
|
"Buys",
|
||||||
"Buy",
|
"Buy",
|
||||||
"Actions",
|
"Actions",
|
||||||
"Action"
|
"Action",
|
||||||
|
"<VP>"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -419,6 +419,24 @@
|
|||||||
"name": "Vineyard",
|
"name": "Vineyard",
|
||||||
"untranslated": "description, extra, name"
|
"untranslated": "description, extra, name"
|
||||||
},
|
},
|
||||||
|
"Grey Mustang": {
|
||||||
|
"description": "+1 Card<n>(Victory cards may be discarded, then draw another)<n>+2 Actions<n>-1 Coin<br>(The coin is used for the entertainment of the precious thoroughbred.)<line>1 <*VP*><br>The victory point is counted at the end of the game.",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Grey Mustang",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
|
"Rabbits": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>All other players put a victory card from their hand on their deck.<br>If it's the <b>2nd Rabbits card</b> played (in this turn), players must also search through their discard pile for Victory cards if they have none in hand.<br>If it's the <b>3rd Rabbits card</b> (rabbit plague), all other players must put <b>all</b> Victory cards from their hand and discard pile on their deck.<br><b>Rabbits can only be defended against by Yard Dog.</b>",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Rabbits",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
|
"Yard Dog": {
|
||||||
|
"description": "+1 Card<n>+1 Action<br>Defends the section in which he dwells (hand, discard pile or deck) against any attack which aims at this section (only if he is or becomes visible or can be shown)",
|
||||||
|
"extra": "",
|
||||||
|
"name": "Yard Dog",
|
||||||
|
"untranslated": "description, extra, name"
|
||||||
|
},
|
||||||
"Potion": {
|
"Potion": {
|
||||||
"description": "1 <*POTION*>",
|
"description": "1 <*POTION*>",
|
||||||
"extra": "This is a basic Treasure card. It costs 4 Coins and produces Potion. It is not a Kingdom card. After you choose 10 Kingdom cards for the Supply, if any of them have Potion in the cost, add the Potion pile to the Supply. Also add the Potion pile if you are using the promotional card Black Market, and the Black Market deck includes at least one card with Potion in the cost. If you don't have any cards with Potion in the cost in the Supply or the Black Market deck, do not use the Potion pile in this game. When you have a Potion pile, put all 16 Potions in it, no matter how many players there are. In games using this pile, if the pile becomes empty, that will count towards the game ending condition.",
|
"extra": "This is a basic Treasure card. It costs 4 Coins and produces Potion. It is not a Kingdom card. After you choose 10 Kingdom cards for the Supply, if any of them have Potion in the cost, add the Potion pile to the Supply. Also add the Potion pile if you are using the promotional card Black Market, and the Black Market deck includes at least one card with Potion in the cost. If you don't have any cards with Potion in the cost in the Supply or the Black Market deck, do not use the Potion pile in this game. When you have a Potion pile, put all 16 Potions in it, no matter how many players there are. In games using this pile, if the pile becomes empty, that will count towards the game ending condition.",
|
||||||
|
|||||||
@ -11,6 +11,10 @@
|
|||||||
"set_name": "Alchemy",
|
"set_name": "Alchemy",
|
||||||
"text_icon": "A"
|
"text_icon": "A"
|
||||||
},
|
},
|
||||||
|
"animals": {
|
||||||
|
"set_name": "Animals",
|
||||||
|
"text_icon": "An"
|
||||||
|
},
|
||||||
"base": {
|
"base": {
|
||||||
"set_name": "Base",
|
"set_name": "Base",
|
||||||
"text_icon": "B"
|
"text_icon": "B"
|
||||||
|
|||||||
BIN
domdiv/images/animals.png
Normal file
BIN
domdiv/images/animals.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
141
domdiv/main.py
141
domdiv/main.py
@ -4,7 +4,7 @@ import json
|
|||||||
import sys
|
import sys
|
||||||
import argparse
|
import argparse
|
||||||
import copy
|
import copy
|
||||||
|
import fnmatch
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
|
|
||||||
import reportlab.lib.pagesizes as pagesizes
|
import reportlab.lib.pagesizes as pagesizes
|
||||||
@ -26,6 +26,7 @@ EXPANSION_CHOICES = ["adventures", "alchemy", "base", "cornucopia", "dark ages",
|
|||||||
"empires", "guilds", "hinterlands",
|
"empires", "guilds", "hinterlands",
|
||||||
"intrigue1stEdition", "intrigue2ndEdition", "intrigue2ndEditionUpgrade",
|
"intrigue1stEdition", "intrigue2ndEdition", "intrigue2ndEditionUpgrade",
|
||||||
"promo", "prosperity", "seaside"]
|
"promo", "prosperity", "seaside"]
|
||||||
|
FAN_CHOICES = ["animals"]
|
||||||
ORDER_CHOICES = ["expansion", "global", "colour", "cost"]
|
ORDER_CHOICES = ["expansion", "global", "colour", "cost"]
|
||||||
|
|
||||||
LANGUAGE_DEFAULT = 'en_us' # the primary language used if a language's parts are missing
|
LANGUAGE_DEFAULT = 'en_us' # the primary language used if a language's parts are missing
|
||||||
@ -240,11 +241,28 @@ def parse_opts(cmdline_args=None):
|
|||||||
"If no limits are set, then all expansions are included. "
|
"If no limits are set, then all expansions are included. "
|
||||||
"Expansion names can also be given in the language specified by "
|
"Expansion names can also be given in the language specified by "
|
||||||
"the --language parameter. Any expansion with a space in the name must "
|
"the --language parameter. Any expansion with a space in the name must "
|
||||||
"be enclosed in quotes. This may be called multiple times. "
|
"be enclosed in double quotes. This may be called multiple times. "
|
||||||
"Values are not case sensitive and can also match the starting characters "
|
"Values are not case sensitive. Wildcards may be used: "
|
||||||
"of an expansion name. For example, 'dominion' will match all expansions "
|
"'*' any number of characters, '?' matches any single character, "
|
||||||
"that start with that name; Choices available in all languages include: %s" %
|
"'[seq]' matches any character in seq, and '[!seq]' matches any character not in seq. "
|
||||||
|
"For example, 'dominion*' will match all expansions that start with 'dominion'. "
|
||||||
|
"Choices available in all languages include: %s" %
|
||||||
", ".join("%s" % x for x in EXPANSION_CHOICES))
|
", ".join("%s" % x for x in EXPANSION_CHOICES))
|
||||||
|
group_select.add_argument(
|
||||||
|
"--fan",
|
||||||
|
nargs="*",
|
||||||
|
action="append",
|
||||||
|
dest="fan",
|
||||||
|
help="Add dividers from the specified fan made expansions. "
|
||||||
|
"If this option is not used, no fan expansions will be included. "
|
||||||
|
"Fan made expansion names can also be given in the language specified by "
|
||||||
|
"the --language parameter. Any fan expansion with a space in the name must "
|
||||||
|
"be enclosed in double quotes. This may be called multiple times. "
|
||||||
|
"Values are not case sensitive. Wildcards may be used: "
|
||||||
|
"'*' any number of characters, '?' matches any single character, "
|
||||||
|
"'[seq]' matches any character in seq, and '[!seq]' matches any character not in seq. "
|
||||||
|
"Choices available in all languages include: %s" %
|
||||||
|
", ".join("%s" % x for x in FAN_CHOICES))
|
||||||
group_select.add_argument(
|
group_select.add_argument(
|
||||||
"--edition",
|
"--edition",
|
||||||
choices=EDITION_CHOICES,
|
choices=EDITION_CHOICES,
|
||||||
@ -410,9 +428,25 @@ def parse_opts(cmdline_args=None):
|
|||||||
if options.notch:
|
if options.notch:
|
||||||
options.notch_length = 1.5
|
options.notch_length = 1.5
|
||||||
|
|
||||||
if options.expansions:
|
if options.expansions is None:
|
||||||
# options.expansions is a list of lists. Reduce to single list
|
# No instance given, so default to all Official expansions
|
||||||
options.expansions = [item for sublist in options.expansions for item in sublist]
|
options.expansions = ['*']
|
||||||
|
else:
|
||||||
|
# options.expansions is a list of lists. Reduce to single lowercase list
|
||||||
|
options.expansions = [item.lower() for sublist in options.expansions for item in sublist]
|
||||||
|
if 'none' in options.expansions:
|
||||||
|
# keyword to indicate no options. Same as --expansions without any expansions given.
|
||||||
|
options.expansions = []
|
||||||
|
|
||||||
|
if options.fan is None:
|
||||||
|
# No instance given, so default to no Fan expansions
|
||||||
|
options.fan = []
|
||||||
|
else:
|
||||||
|
# options.fan is a list of lists. Reduce to single lowercase list
|
||||||
|
options.fan = [item.lower() for sublist in options.fan for item in sublist]
|
||||||
|
if 'none' in options.fan:
|
||||||
|
# keyword to indicate no options. Same as --fan without any expansions given
|
||||||
|
options.fan = []
|
||||||
|
|
||||||
return options
|
return options
|
||||||
|
|
||||||
@ -507,8 +541,9 @@ def read_card_data(options):
|
|||||||
Card.sets = json.load(setfile)
|
Card.sets = json.load(setfile)
|
||||||
assert Card.sets, "Could not load any sets from database"
|
assert Card.sets, "Could not load any sets from database"
|
||||||
for s in Card.sets:
|
for s in Card.sets:
|
||||||
if 'no_randomizer' not in Card.sets[s]:
|
# Make sure these are set either True or False
|
||||||
Card.sets[s]['no_randomizer'] = False
|
Card.sets[s]['no_randomizer'] = Card.sets[s].get('no_randomizer', False)
|
||||||
|
Card.sets[s]['fan'] = Card.sets[s].get('fan', False)
|
||||||
|
|
||||||
# Set cardset_tag and expand cards that are used in multiple sets
|
# Set cardset_tag and expand cards that are used in multiple sets
|
||||||
new_cards = []
|
new_cards = []
|
||||||
@ -812,37 +847,81 @@ def filter_sort_cards(cards, options):
|
|||||||
if options.language != LANGUAGE_DEFAULT:
|
if options.language != LANGUAGE_DEFAULT:
|
||||||
Card.sets = add_set_text(options, Card.sets, options.language)
|
Card.sets = add_set_text(options, Card.sets, options.language)
|
||||||
|
|
||||||
for card in cards:
|
# Split out Official and Fan set information
|
||||||
if card.cardset_tag in Card.sets:
|
Official_sets = set() # Will hold official sets
|
||||||
if 'set_name' in Card.sets[card.cardset_tag].keys():
|
Official_search = [] # Will hold official sets for searching, both set key and set_name
|
||||||
card.cardset = Card.sets[card.cardset_tag]['set_name']
|
Fan_sets = set() # Will hold fan sets
|
||||||
|
Fan_search = [] # Will hold fan sets for searching, both set key and set_name
|
||||||
|
wantedSets = set() # Will hold all the sets requested for printing
|
||||||
|
for s in Card.sets:
|
||||||
|
if Card.sets[s].get("fan", False):
|
||||||
|
# Fan Expansion
|
||||||
|
Fan_sets.add(s)
|
||||||
|
Fan_search.extend([s.lower(), Card.sets[s].get('set_name', None).lower()])
|
||||||
|
else:
|
||||||
|
# Official Expansion
|
||||||
|
Official_sets.add(s)
|
||||||
|
Official_search.extend([s.lower(), Card.sets[s].get('set_name', None).lower()])
|
||||||
|
|
||||||
# If expansion names given, then remove any cards not in those expansions
|
# If expansion names given, then find out which expansions are requested
|
||||||
# Expansion names can be the names from the language or the cardset_tag
|
# Expansion names can be the names from the language or the cardset_tag
|
||||||
if options.expansions:
|
if options.expansions:
|
||||||
options.expansions = set([e.lower() for e in options.expansions])
|
# Expand out any wildcards, matching set key or set name in the given language
|
||||||
wantedExpansions = set()
|
expanded_expansions = []
|
||||||
knownExpansions = set()
|
|
||||||
# Match sets that either start with the expansion set key (used by cardset_tag)
|
|
||||||
# or the actual name of the set/expansion in the specified language.
|
|
||||||
for e in options.expansions:
|
for e in options.expansions:
|
||||||
for s in Card.sets:
|
matches = fnmatch.filter(Official_search, e)
|
||||||
if (s.lower().startswith(e) or
|
if matches:
|
||||||
Card.sets[s].get('set_name', "").lower().startswith(e)):
|
expanded_expansions.extend(matches)
|
||||||
wantedExpansions.add(s)
|
else:
|
||||||
knownExpansions.add(e)
|
expanded_expansions.append(e)
|
||||||
|
|
||||||
|
# Now get the actual sets that are matched above
|
||||||
|
options.expansions = set([e for e in expanded_expansions]) # Remove duplicates
|
||||||
|
knownExpansions = set()
|
||||||
|
for e in options.expansions:
|
||||||
|
for s in Official_sets:
|
||||||
|
if (s.lower() == e or Card.sets[s].get('set_name', "").lower() == e):
|
||||||
|
wantedSets.add(s)
|
||||||
|
knownExpansions.add(e)
|
||||||
# Give indication if an imput did not match anything
|
# Give indication if an imput did not match anything
|
||||||
unknownExpansions = options.expansions - knownExpansions
|
unknownExpansions = options.expansions - knownExpansions
|
||||||
if unknownExpansions:
|
if unknownExpansions:
|
||||||
print "Error - unknown expansion(s): %s" % ", ".join(unknownExpansions)
|
print "Error - unknown expansion(s): %s" % ", ".join(unknownExpansions)
|
||||||
|
|
||||||
# Now keep only the cards that were in the expansions requested
|
# Take care of fan expansions. Fan expansions must be explicitly named to be added.
|
||||||
filteredCards = []
|
# If no --fan is given, then no fan cards are added.
|
||||||
for c in cards:
|
# Fan expansion names can be the names from the language or the cardset_tag
|
||||||
if c.cardset_tag in wantedExpansions:
|
if options.fan:
|
||||||
filteredCards.append(c)
|
# Expand out any wildcards, matching set key or set name in the given language
|
||||||
cards = filteredCards
|
expanded_expansions = []
|
||||||
|
for e in options.fan:
|
||||||
|
matches = fnmatch.filter(Fan_search, e)
|
||||||
|
if matches:
|
||||||
|
expanded_expansions.extend(matches)
|
||||||
|
else:
|
||||||
|
expanded_expansions.append(e)
|
||||||
|
|
||||||
|
# Now get the actual sets that are matched above
|
||||||
|
options.fan = set([e for e in expanded_expansions]) # Remove duplicates
|
||||||
|
knownExpansions = set()
|
||||||
|
for e in options.fan:
|
||||||
|
for s in Fan_sets:
|
||||||
|
if (s.lower() == e or Card.sets[s].get('set_name', "").lower() == e):
|
||||||
|
wantedSets.add(s)
|
||||||
|
knownExpansions.add(e)
|
||||||
|
# Give indication if an imput did not match anything
|
||||||
|
unknownExpansions = options.fan - knownExpansions
|
||||||
|
if unknownExpansions:
|
||||||
|
print "Error - unknown fan expansion(s): %s" % ", ".join(unknownExpansions)
|
||||||
|
|
||||||
|
# Now keep only the cards that are in the sets that have been requested
|
||||||
|
keep_cards = []
|
||||||
|
for c in cards:
|
||||||
|
if c.cardset_tag in wantedSets:
|
||||||
|
# Add the cardset informaiton to the card and add it to the list of cards to use
|
||||||
|
c.cardset = Card.sets[c.cardset_tag].get('set_name', c.cardset_tag)
|
||||||
|
keep_cards.append(c)
|
||||||
|
cards = keep_cards
|
||||||
|
|
||||||
# Now add text to the cards. Waited as long as possible to catch all groupings
|
# Now add text to the cards. Waited as long as possible to catch all groupings
|
||||||
cards = add_card_text(options, cards, LANGUAGE_DEFAULT)
|
cards = add_card_text(options, cards, LANGUAGE_DEFAULT)
|
||||||
|
|||||||
@ -9,7 +9,7 @@ class TestCardDB(unittest.TestCase):
|
|||||||
options = main.parse_opts([])
|
options = main.parse_opts([])
|
||||||
options.data_path = '.'
|
options.data_path = '.'
|
||||||
cards = main.read_card_data(options)
|
cards = main.read_card_data(options)
|
||||||
self.assertEquals(len(cards), 445)
|
self.assertEquals(len(cards), 448)
|
||||||
valid_cardsets = {
|
valid_cardsets = {
|
||||||
u'base',
|
u'base',
|
||||||
u'dominion1stEdition',
|
u'dominion1stEdition',
|
||||||
@ -32,7 +32,8 @@ class TestCardDB(unittest.TestCase):
|
|||||||
u'empires',
|
u'empires',
|
||||||
u'empires extras',
|
u'empires extras',
|
||||||
u'promo',
|
u'promo',
|
||||||
u'extras'
|
u'extras',
|
||||||
|
u'animals'
|
||||||
}
|
}
|
||||||
for c in cards:
|
for c in cards:
|
||||||
self.assertIsInstance(c, domdiv_cards.Card)
|
self.assertIsInstance(c, domdiv_cards.Card)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user