diff --git a/main.py b/main.py
index 2760996..9bdc9c6 100644
--- a/main.py
+++ b/main.py
@@ -22,7 +22,9 @@ else:
"--centre-expansion-dividers",
"--expansion-reset-tabs",
"--expansions", "base",
- #"alchemy", "cornucopia", "dark ages", "dominion2ndEdition", "empires",
+ # "alchemy", "cornucopia",
+ "dark ages",
+ # "dominion2ndEdition", "empires",
"prosperity", "promo",
"--no-trash",
@@ -32,6 +34,7 @@ else:
"--curse10",
"--start-decks",
"--victory8_4split",
+ "--shelters-as-startdecks",
"--only-promo", "Prince", "Sauna", "Courtier"
]
opts = domdiv.main.parse_opts(base_args)
diff --git a/src/domdiv/card_db/cards_db.json b/src/domdiv/card_db/cards_db.json
index ec2a756..10b54dd 100644
--- a/src/domdiv/card_db/cards_db.json
+++ b/src/domdiv/card_db/cards_db.json
@@ -975,6 +975,18 @@
"Start Deck"
]
},
+ {
+ "card_tag": "Shelter Start Deck",
+ "cardset_tags": [
+ "dark ages"
+ ],
+ "cost": "",
+ "count": "0",
+ "randomizer": false,
+ "types": [
+ "Shelter Start Deck"
+ ]
+ },
{
"card_tag": "Trash",
"cardset_tags": [
diff --git a/src/domdiv/card_db/de/cards_de.json b/src/domdiv/card_db/de/cards_de.json
index a1535dc..9af79c2 100644
--- a/src/domdiv/card_db/de/cards_de.json
+++ b/src/domdiv/card_db/de/cards_de.json
@@ -409,6 +409,11 @@
"extra": "",
"name": "Startkarten"
},
+ "Shelter Start Deck": {
+ "description": "Startkarten jedes spieleres, falls mit Unterschlüpfen anstatt Anwesen gespielt wird.",
+ "extra": "",
+ "name": "Unterschlupf"
+ },
"Trash": {
"description": "Müllstapel.",
"extra": "",
@@ -680,7 +685,7 @@
"name": "Schurke"
},
"Ruins": {
- "description": "Verlassene Mine: +1 CoinZerstörte Bibliothek: +1 KarteZerstörter Markt: +1 KaufZerstörtes Dorf: +1 AktionÜberlebende: Sieh dir die obersten beiden Karten von deinem Nachziehstapel an. Lege beide Karten ab oder lege beide Karten in beliebiger Reihenfolge zurück auf deinen Nachziehstapel.",
+ "description": "2 Spieler: 10 Karten, 3 Spieler: 20 Karten, ...Verlassene Mine: +1 CoinZerstörte Bibliothek: +1 KarteZerstörter Markt: +1 KaufZerstörtes Dorf: +1 AktionÜberlebende: Sieh dir die obersten beiden Karten von deinem Nachziehstapel an. Lege beide Karten ab oder lege beide Karten in beliebiger Reihenfolge zurück auf deinen Nachziehstapel.",
"extra": "Der Ruinen-Stapel besteht aus bis zu 5 unterschiedlichen Karten. Siehe hierzu auch unter Spielvorbereitung 'gemischte Stapel' und 'Ruinen'. Der Ruinen-Stapel ist Teil des Vorrats. Die offenliegende Karte (und nur diese) kann bzw. muss durch eine entsprechende Kartenanweisung genommen oder auch gekauft werden. Wenn du die Überlebenden ausspielst, siehst du dir die obersten beiden Karten von deinem Nachziehstapel an und entscheidest dich dann, ob du beide Karten auf deinen Ablagestapel legst oder ob du beide Karten in beliebiger Reihenfolge zurück auf deinen Nachziehstapel legst. Du darfst nicht eine Karte ablegen und die andere zurück auf den Nachziehstapel legen. Die übrigen 4 Ruinen-Karten sind selbsterklärend.",
"name": "Ruinen"
},
diff --git a/src/domdiv/card_db/de/types_de.json b/src/domdiv/card_db/de/types_de.json
index 9e01835..478118f 100644
--- a/src/domdiv/card_db/de/types_de.json
+++ b/src/domdiv/card_db/de/types_de.json
@@ -30,6 +30,7 @@
"Shelters": "Unterschlüpfe",
"Spirit": "Erscheinung",
"Start Deck": "Startkarten",
+ "Shelter Start Deck": "Unterschlupf",
"State": "Zustand",
"Trash": "Müll",
"Traveller": "Reisender",
diff --git a/src/domdiv/card_db/types_db.json b/src/domdiv/card_db/types_db.json
index 9daa995..2effa5e 100644
--- a/src/domdiv/card_db/types_db.json
+++ b/src/domdiv/card_db/types_db.json
@@ -503,6 +503,15 @@
"tabCostHeightOffset": -1,
"tabTextHeightOffset": 0
},
+ {
+ "card_type": [
+ "Shelter Start Deck"
+ ],
+ "card_type_image": "action-shelter.png",
+ "defaultCardCount": 0,
+ "tabCostHeightOffset": -1,
+ "tabTextHeightOffset": 0
+ },
{
"card_type": [
"State"
diff --git a/src/domdiv/main.py b/src/domdiv/main.py
index b0542fb..1bc4b2f 100644
--- a/src/domdiv/main.py
+++ b/src/domdiv/main.py
@@ -556,6 +556,12 @@ def parse_opts(cmdline_args=None):
dest="curse10",
help="Package Curse cards into groups of ten cards.",
)
+ group_select.add_argument(
+ "--shelters-as-startdecks",
+ action="store_true",
+ dest="shelters_as_startdecks",
+ help="Package Curse cards into groups of ten cards.",
+ )
group_select.add_argument(
"--start-decks",
action="store_true",
@@ -1241,6 +1247,17 @@ def read_card_data(options):
# Add the new dividers
cards.extend(new_cards)
+ if options.shelters_as_startdecks:
+ cards = [c for c in cards if "Shelter" not in c.types]
+ ShelterStartDeck_index = find_index_of_object(cards, {"card_tag": "Shelter Start Deck"})
+ for i in range(3): ## add 3 more card (sum=4)
+ cards.append(copy.deepcopy(cards[ShelterStartDeck_index]))
+ else:
+ # Remove Shelter Start Deck prototype. It is not needed.
+ ShelterStartDeck_index = find_index_of_object(cards, {"card_tag": "Shelter Start Deck"})
+ if ShelterStartDeck_index is not None:
+ del cards[ShelterStartDeck_index]
+
# Add any blank cards
if options.include_blanks > 0:
for x in range(0, options.include_blanks):
@@ -1414,7 +1431,7 @@ class CardSorter(object):
def by_cost_sort_key(self, card):
"""
Enforce color order:
- 0 Start Deck
+ 0 Start Deck / Shelter Start Deck
1 Action
2 Treasure
3 Curse
@@ -1423,7 +1440,7 @@ class CardSorter(object):
6 Landmark
7 Way (?)
8 Project (?)
- 9 Ruine
+ 9 Ruins
10 Hideout
11 Hex (?)
12 Night (?)
@@ -1435,6 +1452,8 @@ class CardSorter(object):
# order of if-statements matters!
if "Start Deck" in types:
type_index = 0
+ elif "Shelter Start Deck" in types:
+ type_index = 0
elif "Ruins" in types:
type_index = 9
elif "Shelter" in types:
@@ -1924,7 +1943,7 @@ def filter_sort_cards(cards, options):
# Use the base card ordering
order = 100 + cardSorter.baseOrder.index(c.card_tag)
cardnamesByExpansion[c.cardset][c.card_tag] = {
- "name": c.name.strip().replace(" ", " "),
+ "name": c.name.strip().replace(" (4)", "").replace(" (8)", "").replace(" ", " "),
"randomizer": c.randomizer,
"count": 1,
"sort": "%03d%s"
@@ -1953,7 +1972,7 @@ def filter_sort_cards(cards, options):
if not n["randomizer"]:
# Highlight cards without Randomizers
n["name"] = "" + n["name"] + ""
- if n["count"] > 1:
+ if n["count"] > 1 and exp_name != "Basis":
# Add number of copies
n["name"] = (
"{} \u00d7 ".format(n["count"]) + n["name"]