diff --git a/forge-core/src/main/java/forge/util/ImageUtil.java b/forge-core/src/main/java/forge/util/ImageUtil.java index b7a065be721..ddfb046bc56 100644 --- a/forge-core/src/main/java/forge/util/ImageUtil.java +++ b/forge-core/src/main/java/forge/util/ImageUtil.java @@ -160,11 +160,8 @@ public class ImageUtil { return getImageRelativePath(cp, face, true, true); } - public static String getScryfallDownloadUrl(PaperCard cp, String face, String setCode, String langCode, boolean useArtCrop){ - return getScryfallDownloadUrl(cp, face, setCode, langCode, useArtCrop, false); - } - public static String getScryfallDownloadUrl(PaperCard cp, String face, String setCode, String langCode, boolean useArtCrop, boolean hyphenateAlchemy){ + public static String getScryfallDownloadUrl(PaperCard cp, String face, String setCode, String langCode, boolean useArtCrop){ String editionCode; if (setCode != null && !setCode.isEmpty()) editionCode = setCode; @@ -183,12 +180,6 @@ public class ImageUtil { } else if (cardCollectorNumber.startsWith("OPC2")) { editionCode = "opc2"; cardCollectorNumber = cardCollectorNumber.substring("OPC2".length()); - } else if (hyphenateAlchemy) { - if (!cardCollectorNumber.startsWith("A")) { - return null; - } - - cardCollectorNumber = cardCollectorNumber.replace("A", "A-"); } String versionParam = useArtCrop ? "art_crop" : "normal"; String faceParam = ""; diff --git a/forge-gui/res/cardsfolder/rebalanced/a-baba_lysaga_night_witch.txt b/forge-gui/res/cardsfolder/rebalanced/a-baba_lysaga_night_witch.txt deleted file mode 100644 index 8bb128f2c2a..00000000000 --- a/forge-gui/res/cardsfolder/rebalanced/a-baba_lysaga_night_witch.txt +++ /dev/null @@ -1,11 +0,0 @@ -Name:A-Baba Lysaga, Night Witch -ManaCost:2 B G -Types:Legendary Creature Human Warlock -PT:4/4 -A:AB$ LoseLife | Cost$ T Sac | Defined$ Player.Opponent | LifeAmount$ 3 | AnnounceType$ ChooseNumber | Min$ 0 | Max$ 3 | ConditionCheckSVar$ Y | ConditionSVarCompare$ GE3 | NumCards$ 3 | SubAbility$ DBGainThree | SpellDescription$ If there were three or more card types among the sacrificed permanents, each opponent loses 3 life, you gain 3 life, and you draw three cards. -SVar:DBGainThree:DB$ GainLife | LifeAmount$ 3 | SubAbility$ DBDrawThree | ConditionCheckSVar$ Y | ConditionSVarCompare$ GE3 -SVar:DBDrawThree:DB$ Draw | NumCards$ 3 | ConditionCheckSVar$ Y | ConditionSVarCompare$ GE3 -SVar:X:Count$ChosenNumber -SVar:Y:Sacrificed$CardTypes -DeckHas:Ability$Sacrifice -Oracle:{T}, Sacrifice up to three permanents: If there were three or more card types among the sacrificed permanents, each opponent loses 3 life, you gain 3 life, and you draw three cards. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-divide_by_zero.txt b/forge-gui/res/cardsfolder/rebalanced/a-divide_by_zero.txt deleted file mode 100644 index 2392f6c1d0f..00000000000 --- a/forge-gui/res/cardsfolder/rebalanced/a-divide_by_zero.txt +++ /dev/null @@ -1,6 +0,0 @@ -Name:A-Divide by Zero -ManaCost:2 U -Types:Instant -A:SP$ ChangeZone | ValidTgts$ Permanent.cmcGE1,Card.inZoneStack+cmcGE1 | TgtZone$ Stack,Battlefield | Origin$ Battlefield,Stack | Destination$ Hand | SubAbility$ DBLearn | SpellDescription$ Return target spell or permanent with mana value 1 or greater to its owner's hand. If its mana value was 4 or less, learn. -SVar:DBLearn:DB$ Learn | ConditionDefined$ Targeted | ConditionPresent$ Card.cmcLE4 | ConditionCompare$ EQ1 -Oracle:Return target spell or permanent with mana value 1 or greater to its owner's hand. If its mana value was 4 or less, learn. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-esikas_chariot.txt b/forge-gui/res/cardsfolder/rebalanced/a-esikas_chariot.txt deleted file mode 100644 index 4d65004a0f4..00000000000 --- a/forge-gui/res/cardsfolder/rebalanced/a-esikas_chariot.txt +++ /dev/null @@ -1,11 +0,0 @@ -Name:A-Esika's Chariot -ManaCost:3 G -Types:Legendary Artifact Vehicle -PT:4/4 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters, create a 2/2 green Cat creature token. -SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_2_2_cat -T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigCopy | TriggerDescription$ Whenever CARDNAME attacks, create a token that's a copy of target token you control. -SVar:TrigCopy:DB$ CopyPermanent | ValidTgts$ Permanent.token+YouCtrl | TgtPrompt$ Select target token you control | NumCopies$ 1 -K:Crew:2 -DeckHas:Ability$Token -Oracle:When Esika's Chariot enters, create a 2/2 green Cat creature token.\nWhenever Esika's Chariot attacks, create a token that's a copy of target token you control.\nCrew 2 diff --git a/forge-gui/res/cardsfolder/rebalanced/a-faceless_haven.txt b/forge-gui/res/cardsfolder/rebalanced/a-faceless_haven.txt deleted file mode 100644 index 76697ca79b8..00000000000 --- a/forge-gui/res/cardsfolder/rebalanced/a-faceless_haven.txt +++ /dev/null @@ -1,7 +0,0 @@ -Name:A-Faceless Haven -ManaCost:no cost -Types:Snow Land -A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. -A:AB$ Animate | Cost$ S S S | Defined$ Self | Power$ 3 | Toughness$ 3 | Types$ Creature | AddAllCreatureTypes$ True | Keywords$ Vigilance | StackDescription$ CARDNAME becomes a 3/3 creature with vigilance and all creature types until end of turn. It's still a land. | SpellDescription$ CARDNAME becomes a 3/3 creature with vigilance and all creature types until end of turn. It's still a land. -DeckNeeds:Type$Snow -Oracle:{T}: Add {C}.\n{S}{S}{S}: Faceless Haven becomes a 3/3 creature with vigilance and all creature types until end of turn. It's still a land. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-goldspan_dragon.txt b/forge-gui/res/cardsfolder/rebalanced/a-goldspan_dragon.txt deleted file mode 100644 index 26c71fbd34c..00000000000 --- a/forge-gui/res/cardsfolder/rebalanced/a-goldspan_dragon.txt +++ /dev/null @@ -1,13 +0,0 @@ -Name:A-Goldspan Dragon -ManaCost:3 R R -Types:Creature Dragon -PT:4/4 -K:Flying -K:Haste -T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME attacks, create a Treasure token. -SVar:TrigToken:DB$ Token | TokenScript$ c_a_treasure_sac -S:Mode$ Continuous | Affected$ Card.Treasure+YouCtrl | AddAbility$ Mana | Description$ Treasures you control have "{T}, Sacrifice this artifact: Add two mana of any one color." -SVar:Mana:AB$ Mana | Cost$ T Sac<1/CARDNAME/this artifact> | Produced$ Any | Amount$ 2 | SpellDescription$ Add two mana of any one color. -SVar:HasAttackEffect:TRUE -DeckHas:Ability$Token|Sacrifice & Type$Treasure|Artifact -Oracle:Flying, haste\nWhenever Goldspan Dragon attacks, create a Treasure token.\nTreasures you control have "{T}, Sacrifice this artifact: Add two mana of any one color." diff --git a/forge-gui/res/cardsfolder/rebalanced/a-hullbreaker_horror.txt b/forge-gui/res/cardsfolder/rebalanced/a-hullbreaker_horror.txt deleted file mode 100644 index 0bd83d57e56..00000000000 --- a/forge-gui/res/cardsfolder/rebalanced/a-hullbreaker_horror.txt +++ /dev/null @@ -1,10 +0,0 @@ -Name:A-Hullbreaker Horror -ManaCost:5 U U -Types:Creature Kraken Horror -PT:7/8 -K:Flash -T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a spell, ABILITY -SVar:TrigCharm:DB$ Charm | Choices$ ControlReturn,ControlBounce | MinCharmNum$ 0 | CharmNum$ 1 -SVar:ControlReturn:DB$ ChangeZone | ValidTgts$ Card.YouDontCtrl | TgtPrompt$ Select target spell you don't control | TgtZone$ Stack | Origin$ Stack | Destination$ Hand | SpellDescription$ Return target spell you don't control to its owner's hand. -SVar:ControlBounce:DB$ ChangeZone | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | TgtZone$ Battlefield | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target nonland permanent to its owner's hand. -Oracle:Flash\nWhenever you cast a spell, choose up to one —\n• Return target spell you don't control to its owner's hand.\n• Return target nonland permanent to its owner's hand. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-kumano_faces_kakkazan_etching_of_kumano.txt b/forge-gui/res/cardsfolder/rebalanced/a-kumano_faces_kakkazan_etching_of_kumano.txt deleted file mode 100644 index df6794699e2..00000000000 --- a/forge-gui/res/cardsfolder/rebalanced/a-kumano_faces_kakkazan_etching_of_kumano.txt +++ /dev/null @@ -1,28 +0,0 @@ -Name:A-Kumano Faces Kakkazan -ManaCost:R -Types:Enchantment Saga -K:Chapter:3:DBDamage,DBEffectAddCounter,DBTransform -SVar:DBDamage:DB$ DamageAll | NumDmg$ 1 | ValidPlayers$ Opponent | ValidCards$ Planeswalker.OppCtrl | SpellDescription$ CARDNAME deals 1 damage to each opponent and 1 damage to each planeswalker they control. -SVar:DBEffectAddCounter:DB$ Effect | Triggers$ TrigSpellCast | SpellDescription$ When you cast your next creature spell this turn, that creature enters with an additional +1/+1 counter on it. -SVar:TrigSpellCast:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | OneOff$ True | Static$ True | TriggerZones$ Command | Execute$ ReplEffAddCounter | TriggerDescription$ When you cast your next creature spell this turn, that creature enters with an additional +1/+1 counter on it. -SVar:ReplEffAddCounter:DB$ Effect | ReplacementEffects$ ETBAddCounter | RememberObjects$ TriggeredCard | Execute$ TrigRemoveSelf -SVar:ETBAddCounter:Event$ Moved | Origin$ Stack | Destination$ Battlefield | ValidCard$ Card.IsRemembered | ReplaceWith$ ETBAddExtraCounter | ReplacementResult$ Updated -SVar:ETBAddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ TrigRemoveSelf -SVar:TrigRemoveSelf:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile -SVar:DBTransform:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBReturn | SpellDescription$ Exile this Saga, then return it to the battlefield transformed under your control. -SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | Transformed$ True | GainControl$ True | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -DeckHas:Ability$Counters -AlternateMode:DoubleFaced -Oracle:(As this Saga enters and after your draw step, add a lore counter.)\nI — Kumano Faces Kakkazan deals 1 damage to each opponent and each planeswalker they control.\nII — When you cast your next creature spell this turn, that creature enters with an additional +1/+1 counter on it.\nIII — Exile this Saga, then return it to the battlefield transformed under your control. - -ALTERNATE - -Name:A-Etching of Kumano -ManaCost:no cost -Colors:red -Types:Enchantment Creature Human Shaman -PT:2/2 -R:Event$ Moved | ValidLKI$ Creature.DamagedByCard.YouCtrl;Emblem.YouCtrl | Destination$ Graveyard | ReplaceWith$ DBExile | ActiveZones$ Battlefield | Description$ If a creature dealt damage this turn by a source you controlled would die, exile it instead. -SVar:DBExile:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ Battlefield | Destination$ Exile -Oracle:If a creature dealt damage this turn by a source you controlled would die, exile it instead. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-luminarch_aspirant.txt b/forge-gui/res/cardsfolder/rebalanced/a-luminarch_aspirant.txt deleted file mode 100644 index 3ce097aa78d..00000000000 --- a/forge-gui/res/cardsfolder/rebalanced/a-luminarch_aspirant.txt +++ /dev/null @@ -1,8 +0,0 @@ -Name:A-Luminarch Aspirant -ManaCost:1 W -Types:Creature Human Cleric -PT:1/1 -T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your end step, put a +1/+1 counter on target creature you control. -SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ P1P1 | CounterNum$ 1 -DeckHas:Ability$Counters -Oracle:At the beginning of your end step, put a +1/+1 counter on target creature you control. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-monster_manual_zoological_study.txt b/forge-gui/res/cardsfolder/rebalanced/a-monster_manual_zoological_study.txt deleted file mode 100644 index a26c7cbe48a..00000000000 --- a/forge-gui/res/cardsfolder/rebalanced/a-monster_manual_zoological_study.txt +++ /dev/null @@ -1,17 +0,0 @@ -Name:A-Monster Manual -ManaCost:3 G -Types:Artifact -A:AB$ ChangeZone | Cost$ 1 G T | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature | ChangeNum$ 1 | SorcerySpeed$ True | SpellDescription$ You may put a creature card from your hand onto the battlefield. Activate only as a sorcery. -AlternateMode:Adventure -Oracle:{1}{G}, {T}: You may put a creature card from your hand onto the battlefield. Activate only as a sorcery. - -ALTERNATE - -Name:A-Zoological Study -ManaCost:2 G -Types:Sorcery Adventure -A:SP$ Mill | NumCards$ 5 | RememberMilled$ True | SubAbility$ DBChangeZone | SpellDescription$ Mill five cards, then return a creature card milled this way to your hand. -SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.IsRemembered | ChangeTypeDesc$ creature cards milled this way | ChangeNum$ 1 | SelectPrompt$ Choose a creature card milled this way | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -DeckHas:Ability$Mill|Graveyard -Oracle:Mill five cards, then return a creature card milled this way to your hand. diff --git a/forge-gui/res/cube/MTG Arena Chromatic Cube June 24.dck b/forge-gui/res/cube/MTG Arena Chromatic Cube June 24.dck index 9db9b980b7f..cae010fe8ec 100644 --- a/forge-gui/res/cube/MTG Arena Chromatic Cube June 24.dck +++ b/forge-gui/res/cube/MTG Arena Chromatic Cube June 24.dck @@ -89,7 +89,7 @@ Name=MTG Arena Chromatic Cube June 24 1 Voracious Greatshark|IKO 1 Dream Eater|GRN 1 Torrential Gearhulk|KLD -1 A-Hullbreaker Horror|VOW +1 Hullbreaker Horror|VOW 1 Jin-Gitaxias, Progress Tyrant|NEO 1 Scholar of the Lost Trove|JMP 1 Teferi, Master of Time|M21 diff --git a/forge-gui/res/editions/Alchemy Horizons Baldur's Gate.txt b/forge-gui/res/editions/Alchemy Horizons Baldur's Gate.txt index d92a9df83bd..9b39a16704c 100644 --- a/forge-gui/res/editions/Alchemy Horizons Baldur's Gate.txt +++ b/forge-gui/res/editions/Alchemy Horizons Baldur's Gate.txt @@ -298,36 +298,34 @@ ScryfallCode=HBG 286 L Forest @Julian Kok Joon Wen [rebalanced] -A85 C A-Blessed Hippogriff @Leanna Crossan -A87 C A-Dawnbringer Cleric @Lie Setiawan -A104 C A-Steadfast Unicorn @John Thacker -A117 C A-Dragonborn Looter @Julio Reyna -A120 U A-Goggles of Night @Forrest Imel -A125 U A-Kenku Artificer @Dave Greco -A127 U A-Lapis Orb of Dragonkind @Olena Richards -A128 C A-Pseudodragon Familiar @Campbell White -A136 C A-You Come to a River @Viko Menezes -A138 C A-Young Blue Dragon @Tuan Duong Chu -A143 C A-Baleful Beholder @Lars Grant-West -A154 C A-Eyes of the Beholder @Kari Christensen -A160 C A-Guildsworn Prowler @Fariba Khamseh -A163 C A-Manticore @Billy Christian -A166 C A-Sepulcher Ghoul @Jason A. Engle -A168 U A-Sigil of Myrkul @David Astruga -A177 U A-Carnelian Orb of Dragonkind @Olena Richards -A197 C A-Young Red Dragon @Adam Vehige -A203 C A-Circle of the Land Druid @Alexandre Honoré -A208 C A-Druidic Ritual @Vincent Christiaens -A209 R A-Earthquake Dragon @Johan Grenier -A210 U A-Emerald Dragon @Diego Gisbert -A215 U A-Jade Orb of Dragonkind @Olena Richards -A217 R A-Monster Manual @David Gaillet -A223 U A-Split the Spoils @Edgar Sánchez Hidalgo -A232 R A-Baba Lysaga, Night Witch @Slawomir Maniak -A239 U A-Krydle of Baldur's Gate @Bryan Sola -A243 M A-Minsc & Boo, Timeless Heroes @Andreas Zafiratos -A259 C A-Lantern of Revealing @Eytan Zana -A262 U A-Navigation Orb @Robin Olausson +A-85 C A-Blessed Hippogriff @Leanna Crossan +A-87 C A-Dawnbringer Cleric @Lie Setiawan +A-104 C A-Steadfast Unicorn @John Thacker +A-117 C A-Dragonborn Looter @Julio Reyna +A-120 U A-Goggles of Night @Forrest Imel +A-125 U A-Kenku Artificer @Dave Greco +A-127 U A-Lapis Orb of Dragonkind @Olena Richards +A-128 C A-Pseudodragon Familiar @Campbell White +A-136 C A-You Come to a River @Viko Menezes +A-138 C A-Young Blue Dragon @Tuan Duong Chu +A-143 C A-Baleful Beholder @Lars Grant-West +A-154 C A-Eyes of the Beholder @Kari Christensen +A-160 C A-Guildsworn Prowler @Fariba Khamseh +A-163 C A-Manticore @Billy Christian +A-166 C A-Sepulcher Ghoul @Jason A. Engle +A-168 U A-Sigil of Myrkul @David Astruga +A-177 U A-Carnelian Orb of Dragonkind @Olena Richards +A-197 C A-Young Red Dragon @Adam Vehige +A-203 C A-Circle of the Land Druid @Alexandre Honoré +A-208 C A-Druidic Ritual @Vincent Christiaens +A-209 R A-Earthquake Dragon @Johan Grenier +A-210 U A-Emerald Dragon @Diego Gisbert +A-215 U A-Jade Orb of Dragonkind @Olena Richards +A-223 U A-Split the Spoils @Edgar Sánchez Hidalgo +A-239 U A-Krydle of Baldur's Gate @Bryan Sola +A-243 M A-Minsc & Boo, Timeless Heroes @Andreas Zafiratos +A-259 C A-Lantern of Revealing @Eytan Zana +A-262 U A-Navigation Orb @Robin Olausson [conjured] 45a R Hag of Ceaseless Torment @Konstantin Porubov diff --git a/forge-gui/res/editions/Bloomburrow.txt b/forge-gui/res/editions/Bloomburrow.txt index 9fdde7a6445..15c83b89d8a 100644 --- a/forge-gui/res/editions/Bloomburrow.txt +++ b/forge-gui/res/editions/Bloomburrow.txt @@ -443,7 +443,7 @@ Replace=.012F RareMythic:fromSheet("BLB cards") 386 R Thundertrap Trainer @Jesper Ejsing [rebalanced] -A138 U A-Heartfire Hero @Jakub Kasper +A-138 U A-Heartfire Hero @Jakub Kasper [special guests] 1 Sword of Fire and Ice|SPG diff --git a/forge-gui/res/editions/Dominaria United.txt b/forge-gui/res/editions/Dominaria United.txt index e7efae42d5f..a7bf8df8028 100644 --- a/forge-gui/res/editions/Dominaria United.txt +++ b/forge-gui/res/editions/Dominaria United.txt @@ -462,23 +462,23 @@ ScryfallCode=DMU 436 M Sheoldred, the Apocalypse @Richard Whitters [rebalanced] -A1 M A-Karn, Living Legacy @Chris Rahn -A138 C A-Meria's Outrider @Lius Lasahido -A141 R A-Radha's Firebrand @Ângelo Bortolini -A145 U A-Sprouting Goblin @Uriah Voth -A169 R A-Llanowar Greenwidow @Jokubas Uogintas -A170 R A-Llanowar Loamspeaker @Zara Alfonso -A176 C A-Scout the Wilderness @A. M. Sartor -A181 C A-Sunbathing Rootwalla @Campbell White -A207 U A-Nael, Avizoa Aeronaut @Miguel Mercado -A211 U A-Radha, Coalition Warlord @Randy Vargas -A217 U A-Rulik Mons, Warren Chief @Tuan Duong Chu -A220 M A-Soul of Windgrace @Liiga Smilshkalne -A222 U A-Tatyova, Steward of Tides @Howard Lyon -A225 U A-Uurg, Spawn of Turg @Nicholas Gregory -A227 U A-Zar Ojanen, Scion of Efrava @Justine Cruz -A259 R A-Thran Portal @Sarah Finnigan -A286 R A-Briar Hydra @Caio Monteiro +A-1 M A-Karn, Living Legacy @Chris Rahn +A-138 C A-Meria's Outrider @Lius Lasahido +A-141 R A-Radha's Firebrand @Ângelo Bortolini +A-145 U A-Sprouting Goblin @Uriah Voth +A-169 R A-Llanowar Greenwidow @Jokubas Uogintas +A-170 R A-Llanowar Loamspeaker @Zara Alfonso +A-176 C A-Scout the Wilderness @A. M. Sartor +A-181 C A-Sunbathing Rootwalla @Campbell White +A-207 U A-Nael, Avizoa Aeronaut @Miguel Mercado +A-211 U A-Radha, Coalition Warlord @Randy Vargas +A-217 U A-Rulik Mons, Warren Chief @Tuan Duong Chu +A-220 M A-Soul of Windgrace @Liiga Smilshkalne +A-222 U A-Tatyova, Steward of Tides @Howard Lyon +A-225 U A-Uurg, Spawn of Turg @Nicholas Gregory +A-227 U A-Zar Ojanen, Scion of Efrava @Justine Cruz +A-259 R A-Thran Portal @Sarah Finnigan +A-286 R A-Briar Hydra @Caio Monteiro [lands] 2 Plains|DMU|1 diff --git a/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt b/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt index 8a7067d0861..62ea6b03f12 100644 --- a/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt +++ b/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt @@ -425,26 +425,28 @@ FatPackExtraSlots=20 BasicLands, 20 BasicLands+ 402 U Prosperous Innkeeper @Eric Deschamps [rebalanced] -A7 U A-Cloister Gargoyle @Mark Zug -A14 C A-Dwarfhold Champion @Miguel Mercado -A32 U A-Plate Armor @Martina Pilcerova -A53 M A-Demilich @Daniel Zrom -A81 U A-Wizard Class @Marta Nael -A87 M A-Acererak the Archlich @Andrey Kuzinskiy -A95 U A-Death-Priest of Myrkul @Lius Lasahido -A102 C A-Fates' Reversal @Alix Branwyn -A115 C A-Precipitous Drop @Gabor Szikszai -A118 C A-Sepulcher Ghoul @Jason A. Engle -A130 C A-Armory Veteran @Caio Monteiro -A180 U A-Druid Class @Svetlin Velinov -A181 M A-Ellywick Tumblestrum @Anna Steinbauer -A183 C A-Find the Path @Lindsey Look -A196 R A-Ochre Jelly @Daarken -A219 U A-Bruenor Battlehammer @Wayne Reynolds -A231 U A-Shessra, Death's Whisper @Marie Magny -A233 R A-Sorcerer Class @Alexander Mokhov -A237 R A-Triumphant Adventurer @Alexander Mokhov -A255 R A-Dungeon Descent @Kasia 'Kafis' Zielińska +A-7 U A-Cloister Gargoyle @Mark Zug +A-9 C A-Dawnbringer Cleric @Lie Setiawan +A-14 C A-Dwarfhold Champion @Miguel Mercado +A-32 U A-Plate Armor @Martina Pilcerova +A-53 M A-Demilich @Daniel Zrom +A-81 U A-Wizard Class @Marta Nael +A-87 M A-Acererak the Archlich @Andrey Kuzinskiy +A-95 U A-Death-Priest of Myrkul @Lius Lasahido +A-102 C A-Fates' Reversal @Alix Branwyn +A-115 C A-Precipitous Drop @Gabor Szikszai +A-118 C A-Sepulcher Ghoul @Jason A. Engle +A-130 C A-Armory Veteran @Caio Monteiro +A-180 U A-Druid Class @Svetlin Velinov +A-181 M A-Ellywick Tumblestrum @Anna Steinbauer +A-183 C A-Find the Path @Lindsey Look +A-196 R A-Ochre Jelly @Daarken +A-219 U A-Bruenor Battlehammer @Wayne Reynolds +A-226 U A-Krydle of Baldur's Gate @Bryan Sola +A-231 U A-Shessra, Death's Whisper @Marie Magny +A-233 R A-Sorcerer Class @Alexander Mokhov +A-237 R A-Triumphant Adventurer @Alexander Mokhov +A-255 R A-Dungeon Descent @Kasia 'Kafis' Zielińska [dungeons] S Dungeon of the Mad Mage diff --git a/forge-gui/res/editions/Duskmourn House of Horror.txt b/forge-gui/res/editions/Duskmourn House of Horror.txt index 82bc1a81f7c..8f48012fb88 100644 --- a/forge-gui/res/editions/Duskmourn House of Horror.txt +++ b/forge-gui/res/editions/Duskmourn House of Horror.txt @@ -475,7 +475,7 @@ Replace=.078F RareMythic:fromSheet("DSK cards") 417 R Twitching Doll @John Tedrick [rebalanced] -A143 R A-Leyline of Resonance @Sergey Glushakov +A-143 R A-Leyline of Resonance @Sergey Glushakov [special guests] 1 Collected Company|SPG diff --git a/forge-gui/res/editions/Final Fantasy Through the Ages.txt b/forge-gui/res/editions/Final Fantasy Through the Ages.txt index 18554491fda..34b57416c20 100644 --- a/forge-gui/res/editions/Final Fantasy Through the Ages.txt +++ b/forge-gui/res/editions/Final Fantasy Through the Ages.txt @@ -70,3 +70,6 @@ ScryfallCode=FCA 62 R Smuggler's Copter @Square Enix 63 U Strixhaven Stadium @Square Enix 64 R Command Beacon @Square Enix + +[rebalanced] +A-19 R A-Winota, Joiner of Forces @Yoshitaka Amano \ No newline at end of file diff --git a/forge-gui/res/editions/Ikoria Lair of Behemoths.txt b/forge-gui/res/editions/Ikoria Lair of Behemoths.txt index 56f40b1dd73..1b6db1e757e 100644 --- a/forge-gui/res/editions/Ikoria Lair of Behemoths.txt +++ b/forge-gui/res/editions/Ikoria Lair of Behemoths.txt @@ -412,7 +412,7 @@ ScryfallCode=IKO 387 R Crystalline Giant @Kotakan [rebalanced] -A216 M A-Winota, Joiner of Forces @Magali Villeneuve +A-216 M A-Winota, Joiner of Forces @Magali Villeneuve [Lands] 10 Bloodfell Caves|IKO diff --git a/forge-gui/res/editions/Innistrad Crimson Vow.txt b/forge-gui/res/editions/Innistrad Crimson Vow.txt index f52ef96f6a3..d12a98705c8 100644 --- a/forge-gui/res/editions/Innistrad Crimson Vow.txt +++ b/forge-gui/res/editions/Innistrad Crimson Vow.txt @@ -435,18 +435,17 @@ Prerelease=6 Boosters, 1 RareMythic+ 412 L Forest @Pig Hands [rebalanced] -A48 C A-Binding Geist @Campbell White -A52 U A-Cobbled Lancer @Igor Kieryluk -A58 R A-Dreamshackle Geist @Andreas Zafiratos -A62 U A-Gutter Skulker @Viko Menezes -A63 R A-Hullbreaker Horror @Svetlin Velinov -A66 C A-Lantern Bearer @Zoltan Boros -A69 U A-Mischievous Catgeist @Denman Rooke -A81 C A-Stitched Assistant @Andrey Kuzinskiy -A233 U A-Brine Comber @Olena Richards -A235 R A-Dorothea, Vengeful Victim @Marta Nael -A247 U A-Sigardian Paladin @Slawomir Maniak -A248 U A-Skull Skaab @Nicholas Gregory +A-48 C A-Binding Geist @Campbell White +A-52 U A-Cobbled Lancer @Igor Kieryluk +A-58 R A-Dreamshackle Geist @Andreas Zafiratos +A-62 U A-Gutter Skulker @Viko Menezes +A-66 C A-Lantern Bearer @Zoltan Boros +A-69 U A-Mischievous Catgeist @Denman Rooke +A-81 C A-Stitched Assistant @Andrey Kuzinskiy +A-233 U A-Brine Comber @Olena Richards +A-235 R A-Dorothea, Vengeful Victim @Marta Nael +A-247 U A-Sigardian Paladin @Slawomir Maniak +A-248 U A-Skull Skaab @Nicholas Gregory [tokens] 1 w_1_1_human @Miguel Mercado diff --git a/forge-gui/res/editions/Innistrad Midnight Hunt.txt b/forge-gui/res/editions/Innistrad Midnight Hunt.txt index 2159d852cd8..2b568af9f8d 100644 --- a/forge-gui/res/editions/Innistrad Midnight Hunt.txt +++ b/forge-gui/res/editions/Innistrad Midnight Hunt.txt @@ -417,14 +417,14 @@ Prerelease=6 Boosters, 1 RareMythic+ 391 U Join the Dance @Raoul Vitale [rebalanced] -A52 C A-Falcon Abomination @Brent Hollowell -A59 M A-Lier, Disciple of the Drowned @Ekaterina Burmak -A69 R A-Patrician Geist @Marta Nael -A70 U A-Phantom Carriage @Igor Kieryluk -A74 C A-Shipwreck Sifters @Svetlin Velinov -A106 C A-Hobbling Zombie @Josh Hass -A112 M A-The Meathook Massacre @Chris Seaman -A218 U A-Devoted Grafkeeper @Raoul Vitale +A-52 C A-Falcon Abomination @Brent Hollowell +A-59 M A-Lier, Disciple of the Drowned @Ekaterina Burmak +A-69 R A-Patrician Geist @Marta Nael +A-70 U A-Phantom Carriage @Igor Kieryluk +A-74 C A-Shipwreck Sifters @Svetlin Velinov +A-106 C A-Hobbling Zombie @Josh Hass +A-112 M A-The Meathook Massacre @Chris Seaman +A-218 U A-Devoted Grafkeeper @Raoul Vitale [tokens] 1 w_1_1_human @Kari Christensen diff --git a/forge-gui/res/editions/Jumpstart Historic Horizons.txt b/forge-gui/res/editions/Jumpstart Historic Horizons.txt index 31197e610c0..ec77339e231 100644 --- a/forge-gui/res/editions/Jumpstart Historic Horizons.txt +++ b/forge-gui/res/editions/Jumpstart Historic Horizons.txt @@ -784,8 +784,8 @@ ScryfallCode=J21 776 R Sliver Hive [rebalanced] -A438 U A-Dragon's Rage Channeler @Martina Fackova -A529 C A-Unholy Heat @Kari Christensen +A-438 U A-Dragon's Rage Channeler @Martina Fackova +A-529 C A-Unholy Heat @Kari Christensen [tokens] u_8_8_kraken diff --git a/forge-gui/res/editions/Jumpstart.txt b/forge-gui/res/editions/Jumpstart.txt index 43289380316..ac1a708b534 100644 --- a/forge-gui/res/editions/Jumpstart.txt +++ b/forge-gui/res/editions/Jumpstart.txt @@ -503,4 +503,4 @@ ScryfallCode=JMP 495 C Rupture Spire @Jaime Jones [rebalanced] -A206 U A-Blood Artist @Johannes Voss +A-206 U A-Blood Artist @Johannes Voss diff --git a/forge-gui/res/editions/Kaldheim.txt b/forge-gui/res/editions/Kaldheim.txt index 103288948a0..678feb69102 100644 --- a/forge-gui/res/editions/Kaldheim.txt +++ b/forge-gui/res/editions/Kaldheim.txt @@ -433,28 +433,25 @@ ScryfallCode=KHM 407 M Vorinclex, Monstrous Raider @Richard Whitters [rebalanced] -A40 M A-Alrund, God of the Cosmos @Kieran Yanner -A41 M A-Alrund's Epiphany @Kieran Yanner -A51 R A-Cosmos Charger @Nils Hamm -A106 U A-Return Upon the Tide @Martina Fačková -A109 R A-Skemfar Avenger @Randy Vargas -A139 M A-Goldspan Dragon @Andrew Mar -A165 C A-Elderleaf Mentor @Zoltan Boros -A166 U A-Elven Bow @Dallas Williams -A169 R A-Esika's Chariot @Raoul Vitale -A198 M A-Tyvar Kell @Chris Rallis -A208 U A-Fall of the Impostor @Eric Deschamps -A212 U A-Harald, King of Skemfar @Grzegorz Rutkowski -A213 R A-Harald Unites the Elves @Ryan Pancoast -A224 U A-Narfi, Betrayer King @Daarken -A233 U A-Vega, the Watcher @Paul Scott Canavan -A237 R A-Cosmos Elixir @Volkan Baǵa -A253 U A-Bretagard Stronghold @Jung Park -A255 R A-Faceless Haven @Titus Lunter -A268 U A-Skemfar Elderhall @Johannes Voss -A378 R A-Canopy Tactician @Ekaterina Burmak -A385 U A-Elderfang Ritualist @Wisnu Tan -A387 U A-Thornmantle Striker @Magali Villeneuve +A-40 M A-Alrund, God of the Cosmos @Kieran Yanner +A-41 M A-Alrund's Epiphany @Kieran Yanner +A-51 R A-Cosmos Charger @Nils Hamm +A-106 U A-Return Upon the Tide @Martina Fačková +A-109 R A-Skemfar Avenger @Randy Vargas +A-165 C A-Elderleaf Mentor @Zoltan Boros +A-166 U A-Elven Bow @Dallas Williams +A-198 M A-Tyvar Kell @Chris Rallis +A-208 U A-Fall of the Impostor @Eric Deschamps +A-212 U A-Harald, King of Skemfar @Grzegorz Rutkowski +A-213 R A-Harald Unites the Elves @Ryan Pancoast +A-224 U A-Narfi, Betrayer King @Daarken +A-233 U A-Vega, the Watcher @Paul Scott Canavan +A-237 R A-Cosmos Elixir @Volkan Baǵa +A-253 U A-Bretagard Stronghold @Jung Park +A-268 U A-Skemfar Elderhall @Johannes Voss +A-378 R A-Canopy Tactician @Ekaterina Burmak +A-385 U A-Elderfang Ritualist @Wisnu Tan +A-387 U A-Thornmantle Striker @Magali Villeneuve [Snow Lands] 5 Snow-Covered Plains|KHM|1 diff --git a/forge-gui/res/editions/Kamigawa Neon Dynasty.txt b/forge-gui/res/editions/Kamigawa Neon Dynasty.txt index 8e6adf93a17..1c180c16914 100644 --- a/forge-gui/res/editions/Kamigawa Neon Dynasty.txt +++ b/forge-gui/res/editions/Kamigawa Neon Dynasty.txt @@ -539,24 +539,23 @@ ScryfallCode=NEO 514 M Jin-Gitaxias, Progress Tyrant @Richard Whitters [rebalanced] -A1 C A-Ancestral Katana @Daniel Ljunggren -A10 C A-Eiganjo Exemplar @Ernanda Souza -A19 C A-Imperial Subduer @Zara Alfonso -A53 U A-Futurist Operative @Justine Cruz -A67 C A-Moon-Circuit Hacker @Tia Masic -A73 U A-Prosperous Thief @Fajareka Setiawan -A86 R A-Thousand-Faced Shadow @Ekaterina Burmak -A95 U A-Dokuchi Silencer @David Rapoza -A114 M A-Nashi, Moon Sage's Scion @Valera Lutfullina -A116 U A-Nezumi Prowler @Joseph Weston -A131 C A-Akki Ronin @Olivier Bernard -A152 U A-Kumano Faces Kakkazan @Mike Bierek -A156 C A-Peerless Samurai @Micah Epstein -A215 U A-Asari Captain @Donato Giancola -A232 R A-Raiyuu, Storm's Edge @Heonhwa Choe -A234 R A-Satoru Umezawa @Anna Pavleeva -A236 U A-Silver-Fur Master @Carl Critchlow -A242 U A-Circuit Mender @Hector Ortiz +A-1 C A-Ancestral Katana @Daniel Ljunggren +A-10 C A-Eiganjo Exemplar @Ernanda Souza +A-19 C A-Imperial Subduer @Zara Alfonso +A-53 U A-Futurist Operative @Justine Cruz +A-67 C A-Moon-Circuit Hacker @Tia Masic +A-73 U A-Prosperous Thief @Fajareka Setiawan +A-86 R A-Thousand-Faced Shadow @Ekaterina Burmak +A-95 U A-Dokuchi Silencer @David Rapoza +A-114 M A-Nashi, Moon Sage's Scion @Valera Lutfullina +A-116 U A-Nezumi Prowler @Joseph Weston +A-131 C A-Akki Ronin @Olivier Bernard +A-156 C A-Peerless Samurai @Micah Epstein +A-215 U A-Asari Captain @Donato Giancola +A-232 R A-Raiyuu, Storm's Edge @Heonhwa Choe +A-234 R A-Satoru Umezawa @Anna Pavleeva +A-236 U A-Silver-Fur Master @Carl Critchlow +A-242 U A-Circuit Mender @Hector Ortiz [lands] 1 Plains|NEO|1 diff --git a/forge-gui/res/editions/Modern Horizons 2.txt b/forge-gui/res/editions/Modern Horizons 2.txt index 2a0befa08ca..5e05e584c08 100644 --- a/forge-gui/res/editions/Modern Horizons 2.txt +++ b/forge-gui/res/editions/Modern Horizons 2.txt @@ -590,6 +590,10 @@ ScryfallCode=MH2 6 Patchwork Gnomes|MH2|1 6 Zuran Orb|MH2|1 +[rebalanced] +A-121 U A-Dragon's Rage Channeler @Martina Fačková +A-145 C A-Unholy Heat @Kari Christensen + [tokens] 1 w_1_1_bird_flying @Howard Lyon 2 u_0_3_crab @Yeong-Hao Han diff --git a/forge-gui/res/editions/Modern Horizons 3.txt b/forge-gui/res/editions/Modern Horizons 3.txt index 143cfb1d5a4..a28d6a1d283 100644 --- a/forge-gui/res/editions/Modern Horizons 3.txt +++ b/forge-gui/res/editions/Modern Horizons 3.txt @@ -585,10 +585,10 @@ Replace=.042F fromSheet("MH3 commanders") 496 R Flusterstorm @Andrew Mar [rebalanced] -A29 R A-Guide of Souls @Ryan Valle -A38 M A-Ocelot Pride @Chris Seaman -A122 C A-Galvanic Discharge @Zoltan Boros -A193 R A-Nadu, Winged Wisdom @Daren Bader +A-29 R A-Guide of Souls @Ryan Valle +A-38 M A-Ocelot Pride @Chris Seaman +A-122 C A-Galvanic Discharge @Zoltan Boros +A-193 R A-Nadu, Winged Wisdom @Daren Bader [new to modern] 1 Angel of the Ruins|MH3 diff --git a/forge-gui/res/editions/Multiverse Legends.txt b/forge-gui/res/editions/Multiverse Legends.txt index 0bec4688390..affd41d2fa1 100644 --- a/forge-gui/res/editions/Multiverse Legends.txt +++ b/forge-gui/res/editions/Multiverse Legends.txt @@ -202,6 +202,9 @@ ScryfallCode=MUL 194 R Yorion, Sky Nomad @Justine Mara Andersen 195 R Zirda, the Dawnwaker @Justine Mara Andersen +[rebalanced] +A-120 U A-Radha, Coalition Warlord @Randy Vargas + [draft booster] 2 Anafenza, Kin-Tree Spirit|MUL 7 Daxos, Blessed by the Sun|MUL diff --git a/forge-gui/res/editions/Streets of New Capenna.txt b/forge-gui/res/editions/Streets of New Capenna.txt index 05023941b35..2683782d219 100644 --- a/forge-gui/res/editions/Streets of New Capenna.txt +++ b/forge-gui/res/editions/Streets of New Capenna.txt @@ -496,50 +496,50 @@ ScryfallCode=SNC 469 M Urabrask, Heretic Praetor @Richard Whitters [rebalanced] -A6 C A-Buy Your Silence @Tony Foti -A7 C A-Celebrity Fencer @Inka Schulz -A20 U A-Knockout Blow @Zoltan Boros -A32 C A-Speakeasy Server @Scott Murphy -A37 C A-Case the Joint @Stella Spente -A53 C A-Psionic Snoop @Marcela Medeiros -A55 U A-Public Enemy @Dominik Mayer -A60 C A-Sewer Crocodile @Milivoj Ćeran -A74 C A-Deal Gone Bad @Mathias Kollros -A75 C A-Demon's Due @Slawomir Maniak -A81 U A-Graveyard Shift @Liiga Smilshkalne -A84 C A-Incriminate @Kieran Yanner -A87 C A-Midnight Assassin @Christina Davis -A91 C A-Revel Ruiner @Christina Davis -A98 U A-Vampire Scrivener @Bastien L. Deharme -A106 C A-Exhibition Magician @Greg Staples -A111 C A-Jackhammer @John Severin Brassell -A118 U A-Pyre-Sledge Arsonist @Kekai Kotaki -A119 C A-Ready to Rumble @Josu Hernaiz -A120 C A-Riveteers Initiate @Svetlin Velinov -A123 U A-Sizzling Soloist @Véronique Meignaud -A139 C A-Capenna Express @Viko Menezes -A149 C A-Glittermonger @Evyn Fong -A150 C A-High-Rise Sawjack @Randy Vargas -A153 C A-Most Wanted @Rémi Jacquot -A157 C A-Social Climber @Carly Mazur -A164 C A-Warm Welcome @Inka Schulz -A173 U A-Cabaretti Charm @Steve Argyle -A174 C A-Celestial Regulator @Mathias Kollros -A176 C A-Civil Servant @Tony Foti -A189 U A-Forge Boss @Igor Kieryluk -A190 C A-Glamorous Outlaw @Maria Zolotukhina -A201 C A-Masked Bandits @Micah Epstein -A203 U A-Metropolis Angel @Lie Setiawan -A204 U A-Mr. Orfeo, the Boulder @Daarken -A212 U A-Queza, Augur of Agonies @Josh Hass -A214 C A-Rakish Revelers @Alessandra Pisano -A220 U A-Security Rhox @Lie Setiawan -A221 C A-Shattered Seraph @Bastien L. Deharme -A224 C A-Spara's Adjudicators @Aaron J. Riley -A225 U A-Stimulus Package @Robin Olausson -A226 U A-Syndicate Infiltrator @Mila Pesic -A241 C A-Ominous Parcel @Joe Slucher -A242 C A-Paragon of Modernity @Volkan Baǵa +A-6 C A-Buy Your Silence @Tony Foti +A-7 C A-Celebrity Fencer @Inka Schulz +A-20 U A-Knockout Blow @Zoltan Boros +A-32 C A-Speakeasy Server @Scott Murphy +A-37 C A-Case the Joint @Stella Spente +A-53 C A-Psionic Snoop @Marcela Medeiros +A-55 U A-Public Enemy @Dominik Mayer +A-60 C A-Sewer Crocodile @Milivoj Ćeran +A-74 C A-Deal Gone Bad @Mathias Kollros +A-75 C A-Demon's Due @Slawomir Maniak +A-81 U A-Graveyard Shift @Liiga Smilshkalne +A-84 C A-Incriminate @Kieran Yanner +A-87 C A-Midnight Assassin @Christina Davis +A-91 C A-Revel Ruiner @Christina Davis +A-98 U A-Vampire Scrivener @Bastien L. Deharme +A-106 C A-Exhibition Magician @Greg Staples +A-111 C A-Jackhammer @John Severin Brassell +A-118 U A-Pyre-Sledge Arsonist @Kekai Kotaki +A-119 C A-Ready to Rumble @Josu Hernaiz +A-120 C A-Riveteers Initiate @Svetlin Velinov +A-123 U A-Sizzling Soloist @Véronique Meignaud +A-139 C A-Capenna Express @Viko Menezes +A-149 C A-Glittermonger @Evyn Fong +A-150 C A-High-Rise Sawjack @Randy Vargas +A-153 C A-Most Wanted @Rémi Jacquot +A-157 C A-Social Climber @Carly Mazur +A-164 C A-Warm Welcome @Inka Schulz +A-173 U A-Cabaretti Charm @Steve Argyle +A-174 C A-Celestial Regulator @Mathias Kollros +A-176 C A-Civil Servant @Tony Foti +A-189 U A-Forge Boss @Igor Kieryluk +A-190 C A-Glamorous Outlaw @Maria Zolotukhina +A-201 C A-Masked Bandits @Micah Epstein +A-203 U A-Metropolis Angel @Lie Setiawan +A-204 U A-Mr. Orfeo, the Boulder @Daarken +A-212 U A-Queza, Augur of Agonies @Josh Hass +A-214 C A-Rakish Revelers @Alessandra Pisano +A-220 U A-Security Rhox @Lie Setiawan +A-221 C A-Shattered Seraph @Bastien L. Deharme +A-224 C A-Spara's Adjudicators @Aaron J. Riley +A-225 U A-Stimulus Package @Robin Olausson +A-226 U A-Syndicate Infiltrator @Mila Pesic +A-241 C A-Ominous Parcel @Joe Slucher +A-242 C A-Paragon of Modernity @Volkan Baǵa [lands] 2 Plains|SNC|1 diff --git a/forge-gui/res/editions/Strixhaven School of Mages.txt b/forge-gui/res/editions/Strixhaven School of Mages.txt index 57e1f66cfdb..d2864c21ef4 100644 --- a/forge-gui/res/editions/Strixhaven School of Mages.txt +++ b/forge-gui/res/editions/Strixhaven School of Mages.txt @@ -408,17 +408,16 @@ ScryfallCode=STX 382 U Decisive Denial @Lorenzo Mastroianni [rebalanced] -A15 U A-Dueling Coach @Caio Monteiro -A41 U A-Divide by Zero @Liiga Smilshkalne -A46 U A-Mentor's Guidance @Brian Valeza -A56 U A-Symmetry Sage @Jehan Choo -A88 U A-Tenured Inkcaster @Jake Murray -A92 U A-Ardent Dustspeaker @Mads Ahm -A117 C A-Tome Shredder @Sam Rowan -A156 M A-Rowan, Scholar of Sparks @Magali Villeneuve -A202 U A-Maelstrom Muse @Michele Parisi -A240 M A-Tanazir Quandrix @Raymond Swanland -A258 U A-Spell Satchel @YW Tang +A-15 U A-Dueling Coach @Caio Monteiro +A-46 U A-Mentor's Guidance @Brian Valeza +A-56 U A-Symmetry Sage @Jehan Choo +A-88 U A-Tenured Inkcaster @Jake Murray +A-92 U A-Ardent Dustspeaker @Mads Ahm +A-117 C A-Tome Shredder @Sam Rowan +A-156 M A-Rowan, Scholar of Sparks @Magali Villeneuve +A-202 U A-Maelstrom Muse @Michele Parisi +A-240 M A-Tanazir Quandrix @Raymond Swanland +A-258 U A-Spell Satchel @YW Tang [lesson] 2 Environmental Sciences diff --git a/forge-gui/res/editions/The Brothers War.txt b/forge-gui/res/editions/The Brothers War.txt index d719712bd0d..a444946c803 100644 --- a/forge-gui/res/editions/The Brothers War.txt +++ b/forge-gui/res/editions/The Brothers War.txt @@ -407,18 +407,18 @@ ScryfallCode=BRO 384 U Blanchwood Armor @Manuel Castañón [rebalanced] -A58 C A-Mightstone's Animation @Igor Kieryluk -A63 U A-Splitting the Powerstone @Campbell White -A69 U A-Urza, Powerstone Prodigy @Donato Giancola -A70 R A-Urza's Command @Dominik Mayer -A132 C A-Excavation Explosion @Campbell White -A140 U A-Mishra, Excavation Prodigy @Donato Giancola -A156 R A-Visions of Phyrexia @Dominik Mayer -A199 U A-Haywire Mite @Izzy -A219 M A-Saheeli, Filigree Master @Aurore Folny -A254 R A-Thran Spider @Joshua Cairos -A263 R A-Hall of Tagsin @Christian Dimitrov -A289 R A-Geology Enthusiast @Fajareka Setiawan +A-58 C A-Mightstone's Animation @Igor Kieryluk +A-63 U A-Splitting the Powerstone @Campbell White +A-69 U A-Urza, Powerstone Prodigy @Donato Giancola +A-70 R A-Urza's Command @Dominik Mayer +A-132 C A-Excavation Explosion @Campbell White +A-140 U A-Mishra, Excavation Prodigy @Donato Giancola +A-156 R A-Visions of Phyrexia @Dominik Mayer +A-199 U A-Haywire Mite @Izzy +A-219 M A-Saheeli, Filigree Master @Aurore Folny +A-254 R A-Thran Spider @Joshua Cairos +A-263 R A-Hall of Tagsin @Christian Dimitrov +A-289 R A-Geology Enthusiast @Fajareka Setiawan [lands] 2 Plains|BRO|1 diff --git a/forge-gui/res/editions/The Lord of the Rings Tales of Middle-earth.txt b/forge-gui/res/editions/The Lord of the Rings Tales of Middle-earth.txt index b324208d91a..485fd9c94be 100644 --- a/forge-gui/res/editions/The Lord of the Rings Tales of Middle-earth.txt +++ b/forge-gui/res/editions/The Lord of the Rings Tales of Middle-earth.txt @@ -862,8 +862,8 @@ ScryfallCode=LTR 301 M Sauron, the Dark Lord @Anton Solovianchyk [rebalanced] -A103 R A-Orcish Bowmasters @Maxim Kostin -A246 M A-The One Ring @Veli Nyström +A-103 R A-Orcish Bowmasters @Maxim Kostin +A-246 M A-The One Ring @Veli Nyström [tokens] 1 w_1_1_human_soldier @Anastasia Balakchina diff --git a/forge-gui/res/editions/The Lost Caverns of Ixalan.txt b/forge-gui/res/editions/The Lost Caverns of Ixalan.txt index 64bf229cb30..2cf06ebb001 100644 --- a/forge-gui/res/editions/The Lost Caverns of Ixalan.txt +++ b/forge-gui/res/editions/The Lost Caverns of Ixalan.txt @@ -437,7 +437,7 @@ ScryfallCode=LCI 409 U Bartolomé del Presidio @Randy Gallegos [rebalanced] -A150 U A-Geological Appraiser @Alix Branwyn +A-150 U A-Geological Appraiser @Alix Branwyn [double-face] 9 Idol of the Deep King|LCI diff --git a/forge-gui/res/editions/Throne of Eldraine.txt b/forge-gui/res/editions/Throne of Eldraine.txt index 9c35efc082b..a78e02cc50b 100644 --- a/forge-gui/res/editions/Throne of Eldraine.txt +++ b/forge-gui/res/editions/Throne of Eldraine.txt @@ -424,8 +424,8 @@ ScryfallCode=ELD 397 U Inspiring Veteran @Scott Murphy [rebalanced] -A81 U A-Cauldron Familiar @Milivoj Ćeran -A125 R A-Fires of Invention @Stanton Feng +A-81 U A-Cauldron Familiar @Milivoj Ćeran +A-125 R A-Fires of Invention @Stanton Feng [tokens] 1 w_0_1_goat @Forrest Imel diff --git a/forge-gui/res/editions/War of the Spark.txt b/forge-gui/res/editions/War of the Spark.txt index f33cc3430c0..865f57d9e27 100644 --- a/forge-gui/res/editions/War of the Spark.txt +++ b/forge-gui/res/editions/War of the Spark.txt @@ -332,7 +332,7 @@ ScryfallCode=WAR 275 M Tezzeret, Master of the Bridge @Chase Stone [rebalanced] -A221 R A-Teferi, Time Raveler @Chris Rallis +A-221 R A-Teferi, Time Raveler @Chris Rallis [tokens] 1 c_2_2_spirit @Johann Bodin diff --git a/forge-gui/src/main/java/forge/util/ImageFetcher.java b/forge-gui/src/main/java/forge/util/ImageFetcher.java index 4ffb505747c..1d45f72453c 100644 --- a/forge-gui/src/main/java/forge/util/ImageFetcher.java +++ b/forge-gui/src/main/java/forge/util/ImageFetcher.java @@ -40,12 +40,12 @@ public abstract class ImageFetcher { private String getScryfallDownloadURL(PaperCard c, String face, boolean useArtCrop, boolean hasSetLookup, String imagePath, ArrayList downloadUrls) { StaticData data = StaticData.instance(); CardEdition edition = data.getEditions().get(c.getEdition()); - if (edition == null) // edition does not exist - some error occurred with card data + if (edition == null) // Edition does not exist - some error occurred with card data return null; if (hasSetLookup) { List clones = StaticData.instance().getCommonCards().getAllCards(c.getName()); for (PaperCard pc : clones) { - if (clones.size() > 1) {//clones only + if (clones.size() > 1) { // Clones only if (!c.getEdition().equalsIgnoreCase(pc.getEdition())) { CardEdition ed = data.getEditions().get(pc.getEdition()); if (ed != null) { @@ -72,10 +72,9 @@ public abstract class ImageFetcher { // It seems like the scryfall lookup might be better if we didn't include the language code at all? downloadUrls.add(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + ImageUtil.getScryfallDownloadUrl(c, face, setCode, "", useArtCrop)); - String alternateUrl = ImageUtil.getScryfallDownloadUrl(c, face, setCode, langCode, useArtCrop, true); - if (alternateUrl != null && !alternateUrl.equals(primaryUrl)) { + String alternateUrl = ImageUtil.getScryfallDownloadUrl(c, face, setCode, langCode, useArtCrop); + if (!alternateUrl.equals(primaryUrl)) { downloadUrls.add(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + alternateUrl); - downloadUrls.add(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + ImageUtil.getScryfallDownloadUrl(c, face, setCode, "", useArtCrop, true)); } } return null; @@ -112,7 +111,7 @@ public abstract class ImageFetcher { if (imageKey.equalsIgnoreCase("t:null")) return; - //planechaseBG file... + // PlanechaseBG file... final ArrayList downloadUrls = new ArrayList<>(); if (imageKey.startsWith("PLANECHASEBG:")) { final String filename = imageKey.substring("PLANECHASEBG:".length()); @@ -136,7 +135,7 @@ public abstract class ImageFetcher { System.err.println("Paper card not found for: " + imageKey); return; } - //Skip fetching if it's a custom user card. + // Skip fetching if it's a custom user card. if (paperCard.getRules().isCustom()) { return; } @@ -186,7 +185,7 @@ public abstract class ImageFetcher { filename = TextUtil.fastReplace(filename, ".full", ".artcrop"); } boolean updateLink = false; - if ("back".equals(face)) {// seems getimage relative path don't process variants for back faces. + if ("back".equals(face)) { // Seems getimage relative path don't process variants for back faces. try { filename = TextUtil.fastReplace(filename, "1.full", imageKey.substring(imageKey.lastIndexOf('|') + 1, imageKey.indexOf('$')) + ".full"); updateLink = true; @@ -196,9 +195,9 @@ public abstract class ImageFetcher { } destFile = new File(ForgeConstants.CACHE_CARD_PICS_DIR, filename + ".jpg"); - //skip ftp if using art crop + // Skip ftp if using art crop if (!useArtCrop) { - //move priority of ftp image here + // Move priority of ftp image here StringBuilder setDownload = new StringBuilder(ForgeConstants.URL_PIC_DOWNLOAD); if (!hasSetLookup) { if (!updateLink) { @@ -227,11 +226,11 @@ public abstract class ImageFetcher { this.getScryfallDownloadURL(paperCard, face, useArtCrop, hasSetLookup, filename, downloadUrls); } } else if (ImageKeys.getTokenKey(ImageKeys.HIDDEN_CARD).equals(imageKey)) { - // extra logic for hidden card to not clog the other logic + // Extra logic for hidden card to not clog the other logic final String filename = "hidden.png"; if (ImageKeys.missingCards.contains(filename)) return; - // scryfall only as png version + // Scryfall only as png version downloadUrls.add("https://cards.scryfall.io/back.png"); ImageKeys.missingCards.add(filename); destFile = new File(ForgeConstants.CACHE_TOKEN_PICS_DIR, filename); @@ -274,13 +273,13 @@ public abstract class ImageFetcher { CardEdition edition = StaticData.instance().getEditions().get(setCode); if (edition == null || edition.getType() == CardEdition.Type.CUSTOM_SET) return; //Custom set token, skip fetching. - //PaperToken pt = StaticData.instance().getAllTokens().getToken(tokenName, setCode); + // PaperToken pt = StaticData.instance().getAllTokens().getToken(tokenName, setCode); Collection allTokens = edition.getTokens().get(tokenName); if (tempdata.length > 2) { String tokenCode = edition.getTokensCode(); String langCode = edition.getCardsLangCode(); - // just assume the CNr from the token image is valid + // Just assume the CNr from the token image is valid downloadUrls.add(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + ImageUtil.getScryfallTokenDownloadUrl(tempdata[2], tokenCode, langCode, face)); } else if (!allTokens.isEmpty()) { // This loop is going to try to download all the arts until it finds one @@ -314,7 +313,7 @@ public abstract class ImageFetcher { if (destFile.exists()) { // TODO: Figure out why this codepath gets reached. - // Ideally, fetchImage() wouldn't be called if we already have the image. + // Ideally, fetchImage() wouldn't be called if we already have the image. if (prefix.equals(ImageKeys.CARD_PREFIX)) { PaperCard paperCard = ImageUtil.getPaperCardFromImageKey(imageKey); if (paperCard != null)