mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Update the deck conversion toolchain to the latest version. (#3128)
* - Fix the name of the swamp tribal town. * - Update deck conversion toolchain to the one that was used for the May 2023 MTGDecks.net archive update.
This commit is contained in:
@@ -5,7 +5,7 @@ DECKFOLDER = "."
|
||||
|
||||
import argparse, os, re
|
||||
|
||||
print("Agetian's MTG Forge Deck AI Compatibility Analyzer v4.0\n")
|
||||
print("Agetian's MTG Forge Deck AI Compatibility Analyzer v5.0\n")
|
||||
|
||||
parser = argparse.ArgumentParser(description="Analyze MTG Forge decks for AI compatibility.")
|
||||
parser.add_argument("-p", action="store_true", help="print only AI-playable decks")
|
||||
@@ -45,18 +45,18 @@ for root, dirs, files in os.walk(CARDSFOLDER):
|
||||
for line in cardname_lines:
|
||||
if line.strip().lower().startswith("name:"):
|
||||
if line.count(':') == 1:
|
||||
cardname = line.split(':')[1].strip()
|
||||
cardname = line.split(':')[1].strip().lower()
|
||||
break
|
||||
if cardname == "":
|
||||
cardname_literal = cardtext.replace('\r','').split('\n')[0].split(':')
|
||||
cardname = ":".join(cardname_literal[1:]).strip()
|
||||
cardname = ":".join(cardname_literal[1:]).strip().lower()
|
||||
if (cardtext_lower.find("alternatemode:split") != -1) or (cardtext_lower.find("alternatemode: split") != -1):
|
||||
# split card, special handling needed
|
||||
cardsplittext = cardtext.replace('\r','').split('\n')
|
||||
cardnames = []
|
||||
for line in cardsplittext:
|
||||
if line.lower().find("name:") != -1:
|
||||
cardnames.extend([line.split('\n')[0].split(':')[1]])
|
||||
cardnames.extend([line.split('\n')[0].split(':')[1].lower()])
|
||||
cardname = " // ".join(cardnames)
|
||||
if (cardtext_lower.find("alternatemode:modal") != -1) or (cardtext_lower.find("alternatemode: modal") != -1):
|
||||
# ZNR modal card, special handling needed
|
||||
@@ -64,7 +64,7 @@ for root, dirs, files in os.walk(CARDSFOLDER):
|
||||
cardnames = []
|
||||
for line in cardsplittext:
|
||||
if line.lower().find("name:") != -1:
|
||||
cardnames.extend([line.split('\n')[0].split(':')[1]])
|
||||
cardnames.extend([line.split('\n')[0].split(':')[1].lower()])
|
||||
cardname = cardnames[0].strip()
|
||||
if cardtext.lower().find("remaideck") != -1 or cardtext.lower().find("ai:removedeck:all") != -1:
|
||||
cardlist[cardname] = 0
|
||||
@@ -93,7 +93,7 @@ for root, dirs, files in os.walk(DECKFOLDER):
|
||||
regexobj = re.search('^([0-9]+) +([^|]+)', line)
|
||||
if regexobj:
|
||||
cardname = regexobj.groups()[1].replace('\n','').replace('\r','').strip()
|
||||
cardname = cardname.replace('\xC6', 'AE')
|
||||
cardname = cardname.replace('\xC6', 'AE').lower()
|
||||
if cardlist[cardname] == 0:
|
||||
cardnames.extend([cardname])
|
||||
nonplayable_in_deck += 1
|
||||
|
||||
Reference in New Issue
Block a user