diff --git a/forge-gui/res/cardsfolder/s/shoot_down.txt b/forge-gui/res/cardsfolder/s/shoot_down.txt index 4cef93772dc..cbe5f7cf6b4 100644 --- a/forge-gui/res/cardsfolder/s/shoot_down.txt +++ b/forge-gui/res/cardsfolder/s/shoot_down.txt @@ -1,5 +1,5 @@ Name:Shoot Down ManaCost:3 G -Types:Instant +Types:Sorcery A:SP$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Artifact,Enchantment,Creature.withFlying | TgtPrompt$ Select target artifact, enchantment or creature with flying | SpellDescription$ Exile target artifact, enchantment or creature with flying. -Oracle:Exile target artifact, enchantment, or creature with flying. \ No newline at end of file +Oracle:Exile target artifact, enchantment, or creature with flying. diff --git a/forge-gui/tools/DeckConversionTools/mtgdecksnet_convert.py b/forge-gui/tools/DeckConversionTools/mtgdecksnet_convert.py index d802c8a6ffa..b721736e7b9 100755 --- a/forge-gui/tools/DeckConversionTools/mtgdecksnet_convert.py +++ b/forge-gui/tools/DeckConversionTools/mtgdecksnet_convert.py @@ -9,7 +9,7 @@ OUT_DECKFOLDER = "./ForgeDecks" import argparse, os, re -print("Agetian's MtgDecks.net DEC to MTG Forge Deck Converter v4.0\n") +print("Agetian's MtgDecks.net DEC to MTG Forge Deck Converter v4.1\n") parser = argparse.ArgumentParser(description="Convert MtgDecks.net DEC to Forge DCK.") @@ -50,27 +50,27 @@ 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]]) - cardname = " // ".join(cardnames) + cardnames.extend([line.split('\n')[0].split(':')[1].lower()]) + cardname = " // ".join(cardnames).lower() if (cardtext_lower.find("alternatemode:modal") != -1) or (cardtext_lower.find("alternatemode: modal") != -1): # ZNR modal 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]]) - cardname = cardnames[0].strip() + cardnames.extend([line.split('\n')[0].split(':')[1].lower()]) + cardname = cardnames[0].strip().lower() if cardtext.lower().find("remaideck") != -1: cardlist[cardname] = 0 else: @@ -174,7 +174,7 @@ for root, dirs, files in os.walk(DECKFOLDER): if cardName == "": continue altModalKey = cardName.split(" // ")[0].strip() - if not cardName in cardlist.keys() and not cardName.replace("Aether", "AEther") in cardlist.keys() and not cardName.replace("AEther", "Aether") in cardlist.keys() and not altModalKey in cardlist.keys(): + if not cardName.lower() in cardlist.keys() and not cardName.replace("Aether", "AEther").lower() in cardlist.keys() and not cardName.replace("AEther", "Aether").lower() in cardlist.keys() and not altModalKey.lower() in cardlist.keys(): print("Unsupported card (MAIN): " + cardName) if args.f: supported = False @@ -183,14 +183,10 @@ for root, dirs, files in os.walk(DECKFOLDER): deckHasUnsupportedCards = True if not cardName in unsupportedList: unsupportedList.extend([cardName]) - if altModalKey in cardlist.keys(): + if altModalKey.lower() in cardlist.keys(): mdline = cardAmount + " " + altModalKey # ZNR modal cards with // - elif cardName in cardlist.keys(): + elif cardName.lower() in cardlist.keys(): mdline = cardAmount + " " + cardName - elif cardName.replace("Aether", "AEther") in cardlist.keys(): - mdline = cardAmount + " " + cardName.replace("Aether", "AEther") - elif cardName.replace("AEther", "Aether") in cardlist.keys(): - mdline = cardAmount + " " + cardName.replace("AEther", "Aether") else: mdline = cardAmount + " " + cardName # for the purposes of unsupported cards if isCardSupported: @@ -206,7 +202,7 @@ for root, dirs, files in os.walk(DECKFOLDER): if cardName == "": continue altModalKey = cardName.split(" // ")[0].strip() - if not cardName in cardlist.keys() and not cardName.replace("Aether", "AEther") in cardlist.keys() and not cardName.replace("AEther", "Aether") in cardlist.keys() and not altModalKey in cardlist.keys(): + if not cardName.lower() in cardlist.keys() and not cardName.replace("Aether", "AEther").lower() in cardlist.keys() and not cardName.replace("AEther", "Aether").lower() in cardlist.keys() and not altModalKey.lower() in cardlist.keys(): print("Unsupported card (SIDE): " + cardName) if args.f: supported = False @@ -215,14 +211,10 @@ for root, dirs, files in os.walk(DECKFOLDER): deckHasUnsupportedCards = True if not cardName in unsupportedList: unsupportedList.extend([cardName]) - if altModalKey in cardlist.keys(): + if altModalKey.lower() in cardlist.keys(): sdline = cardAmount + " " + altModalKey # ZNR modal cards with // - elif cardName in cardlist.keys(): + elif cardName.lower() in cardlist.keys(): sdline = cardAmount + " " + cardName - elif cardName.replace("Aether", "AEther") in cardlist.keys(): - sdline = cardAmount + " " + cardName.replace("Aether", "AEther") - elif cardName.replace("AEther", "Aether") in cardlist.keys(): - sdline = cardAmount + " " + cardName.replace("AEther", "Aether") else: sdline = cardAmount + " " + cardName # for the purposes of unsupported cards if isCardSupported: diff --git a/forge-gui/tools/deckAiCompat.py b/forge-gui/tools/deckAiCompat.py index e7fb166d991..9f65b396dce 100755 --- a/forge-gui/tools/deckAiCompat.py +++ b/forge-gui/tools/deckAiCompat.py @@ -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 diff --git a/forge-gui/tools/deckAiCompat_limext.py b/forge-gui/tools/deckAiCompat_limext.py index 0857dc29441..7a1fe5d005c 100755 --- a/forge-gui/tools/deckAiCompat_limext.py +++ b/forge-gui/tools/deckAiCompat_limext.py @@ -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") @@ -40,7 +40,7 @@ limited_playable_cards = [] if args.x: ff = open("ai_limitedplayable.lst").readlines() for line in ff: - limited_playable_cards.extend([line.replace("\n","")]) + limited_playable_cards.extend([line.replace("\n","").lower()]) # main algorithm print("Loading cards...") @@ -56,18 +56,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 @@ -75,7 +75,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 @@ -107,7 +107,7 @@ for root, dirs, files in os.walk(DECKFOLDER): cardname = regexobj.groups()[1].replace('\n','').replace('\r','').strip() cardname = cardname.replace('\xC6', 'AE') cardname = cardname.replace("AEther Mutation", "Aether Mutation") - cardname = cardname.replace("AEther Membrane", "Aether Membrane") + cardname = cardname.replace("AEther Membrane", "Aether Membrane").lower() if cardlist[cardname] == 0: if limited_playable_cards.count(cardname) > 0: print("Found limited playable: " + cardname)